Making abstract machines less abstract

Research output: Chapter in Book/Report/Conference proceedingConference contribution

10 Citations (Scopus)

Abstract

We consider a class of abstract machines used for specifying the evaluation of intermediate-level programming languages, and demonstrate how various abstract aspects of these machines can be made concrete, providing for their direct implementation in a low-level microcoded architecture. We introduce the concept of stored programs and data to abstract machines. We demonstrate how machines that dynamically manipulate programs with abstract operations can be translated into machines that only need to read instructions from a fixed program. We show how familiar architectural features, such as a program counter, instruction register and a display can all be introduced very naturally into an abstract machine architecture once programs are represented as objects stored in memory. This translation lowers the level of the abstract machine, making it less abstract or, equivalently, more concrete. The resulting machines bear a close resemblance to a microcoded architecture in which the abstract machine instructions are defined in terms of a small set of micro-instructions that manipulate registers and memory. This work provides a further basis for the formal construction and implementation of abstract machines used for implementing programming languages. We demonstrate our results on an abstract machine that is a slight variant of the Categorical Abstract Machine.

Original languageEnglish (US)
Title of host publicationFunctional Programming Languages and Computer Architecture - 5th ACM Conference, Proceedings
EditorsJohn Hughes
PublisherSpringer Verlag
Pages618-635
Number of pages18
ISBN (Print)9783540475996
DOIs
StatePublished - Jan 1 1991
Event5th Conference on Functional Programming Languages and Computer Architecture, 1991 - Cambridge, United States
Duration: Aug 26 1991Aug 30 1991

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume523 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Other

Other5th Conference on Functional Programming Languages and Computer Architecture, 1991
CountryUnited States
CityCambridge
Period8/26/918/30/91

Fingerprint

Abstract Machines
Computer programming languages
Concretes
Data storage equipment
Display devices
Programming Languages
Demonstrate
Categorical
Display
Architecture
Evaluation

All Science Journal Classification (ASJC) codes

  • Theoretical Computer Science
  • Computer Science(all)

Cite this

Hannan, J. J. (1991). Making abstract machines less abstract. In J. Hughes (Ed.), Functional Programming Languages and Computer Architecture - 5th ACM Conference, Proceedings (pp. 618-635). (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 523 LNCS). Springer Verlag. https://doi.org/10.1007/3540543961_29
Hannan, John Joseph. / Making abstract machines less abstract. Functional Programming Languages and Computer Architecture - 5th ACM Conference, Proceedings. editor / John Hughes. Springer Verlag, 1991. pp. 618-635 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)).
@inproceedings{fd3119e511f1443192de3626b6279378,
title = "Making abstract machines less abstract",
abstract = "We consider a class of abstract machines used for specifying the evaluation of intermediate-level programming languages, and demonstrate how various abstract aspects of these machines can be made concrete, providing for their direct implementation in a low-level microcoded architecture. We introduce the concept of stored programs and data to abstract machines. We demonstrate how machines that dynamically manipulate programs with abstract operations can be translated into machines that only need to read instructions from a fixed program. We show how familiar architectural features, such as a program counter, instruction register and a display can all be introduced very naturally into an abstract machine architecture once programs are represented as objects stored in memory. This translation lowers the level of the abstract machine, making it less abstract or, equivalently, more concrete. The resulting machines bear a close resemblance to a microcoded architecture in which the abstract machine instructions are defined in terms of a small set of micro-instructions that manipulate registers and memory. This work provides a further basis for the formal construction and implementation of abstract machines used for implementing programming languages. We demonstrate our results on an abstract machine that is a slight variant of the Categorical Abstract Machine.",
author = "Hannan, {John Joseph}",
year = "1991",
month = "1",
day = "1",
doi = "10.1007/3540543961_29",
language = "English (US)",
isbn = "9783540475996",
series = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
publisher = "Springer Verlag",
pages = "618--635",
editor = "John Hughes",
booktitle = "Functional Programming Languages and Computer Architecture - 5th ACM Conference, Proceedings",
address = "Germany",

}

Hannan, JJ 1991, Making abstract machines less abstract. in J Hughes (ed.), Functional Programming Languages and Computer Architecture - 5th ACM Conference, Proceedings. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), vol. 523 LNCS, Springer Verlag, pp. 618-635, 5th Conference on Functional Programming Languages and Computer Architecture, 1991, Cambridge, United States, 8/26/91. https://doi.org/10.1007/3540543961_29

Making abstract machines less abstract. / Hannan, John Joseph.

Functional Programming Languages and Computer Architecture - 5th ACM Conference, Proceedings. ed. / John Hughes. Springer Verlag, 1991. p. 618-635 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 523 LNCS).

Research output: Chapter in Book/Report/Conference proceedingConference contribution

TY - GEN

T1 - Making abstract machines less abstract

AU - Hannan, John Joseph

PY - 1991/1/1

Y1 - 1991/1/1

N2 - We consider a class of abstract machines used for specifying the evaluation of intermediate-level programming languages, and demonstrate how various abstract aspects of these machines can be made concrete, providing for their direct implementation in a low-level microcoded architecture. We introduce the concept of stored programs and data to abstract machines. We demonstrate how machines that dynamically manipulate programs with abstract operations can be translated into machines that only need to read instructions from a fixed program. We show how familiar architectural features, such as a program counter, instruction register and a display can all be introduced very naturally into an abstract machine architecture once programs are represented as objects stored in memory. This translation lowers the level of the abstract machine, making it less abstract or, equivalently, more concrete. The resulting machines bear a close resemblance to a microcoded architecture in which the abstract machine instructions are defined in terms of a small set of micro-instructions that manipulate registers and memory. This work provides a further basis for the formal construction and implementation of abstract machines used for implementing programming languages. We demonstrate our results on an abstract machine that is a slight variant of the Categorical Abstract Machine.

AB - We consider a class of abstract machines used for specifying the evaluation of intermediate-level programming languages, and demonstrate how various abstract aspects of these machines can be made concrete, providing for their direct implementation in a low-level microcoded architecture. We introduce the concept of stored programs and data to abstract machines. We demonstrate how machines that dynamically manipulate programs with abstract operations can be translated into machines that only need to read instructions from a fixed program. We show how familiar architectural features, such as a program counter, instruction register and a display can all be introduced very naturally into an abstract machine architecture once programs are represented as objects stored in memory. This translation lowers the level of the abstract machine, making it less abstract or, equivalently, more concrete. The resulting machines bear a close resemblance to a microcoded architecture in which the abstract machine instructions are defined in terms of a small set of micro-instructions that manipulate registers and memory. This work provides a further basis for the formal construction and implementation of abstract machines used for implementing programming languages. We demonstrate our results on an abstract machine that is a slight variant of the Categorical Abstract Machine.

UR - http://www.scopus.com/inward/record.url?scp=0342532542&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=0342532542&partnerID=8YFLogxK

U2 - 10.1007/3540543961_29

DO - 10.1007/3540543961_29

M3 - Conference contribution

AN - SCOPUS:0342532542

SN - 9783540475996

T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

SP - 618

EP - 635

BT - Functional Programming Languages and Computer Architecture - 5th ACM Conference, Proceedings

A2 - Hughes, John

PB - Springer Verlag

ER -

Hannan JJ. Making abstract machines less abstract. In Hughes J, editor, Functional Programming Languages and Computer Architecture - 5th ACM Conference, Proceedings. Springer Verlag. 1991. p. 618-635. (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)). https://doi.org/10.1007/3540543961_29