TY - GEN
T1 - Making abstract machines less abstract
AU - Hannan, John
N1 - Funding Information:
Acknowledgements. This work has been supported by a grant from the Danish Natural Science Research Council. I would like to thank Peter Koopman and the members of the programming language group at DIKU for discussions and comments that contributed to this work.
Publisher Copyright:
© Springer-Verlag Berlin Heidelberg 1990.
Copyright:
Copyright 2017 Elsevier B.V., All rights reserved.
PY - 1991
Y1 - 1991
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
T2 - 5th Conference on Functional Programming Languages and Computer Architecture, 1991
Y2 - 26 August 1991 through 30 August 1991
ER -