Abstract
The Amber machine is a stack machine designed as an intermediate language for compiling higher-order languages. The current version is specialized for the Amber language. The machine supports a set of basic and structured data types, functional closures, signals, bitmap graphics, persistent objects and meta-level execution. The latter is needed as the Amber compiler is entirely written in Amber (above the Amber machine level) and needs to switch level when executing a program it has just compiled.
A set of implementation strategies are admissible for this machine, including byte-code interpretation, threaded code interpretation and compilation to native code. The current implementation is based on a byte-code interpreter and a one-space compacting collector, and runs on a Macintosh.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
Apple Computer: "Inside Macintosh".
L.Cardelli: "The Functional Abstract Machine", AT&T Bell Laboratories Technical Report TR-107, 1983. Also in "Polymorphism, the ML/LCF/Hope Newsletter", vol I, no. 1, 1983.
L.Cardelli: "Amber", AT&T Bell Laboratories Technical Memorandum, 11271-840924-10TM, 1984.
G.Cousineau, P-L.Curien, M.Mauny: "The Categorical Abstract Machine", to appear.
P.J. Landin: "The Mechanical Evaluation of Expressions", Computer Journal, Vol 6, No. 4, 1964, pp. 308–320.
R.Pike, L.Guibas, D.Ingalls: "Bitmap Graphics", SIGGRAPH '84 course notes.
D.A. Turner: "A new implementation technique for applicative languages", Software Practice and Experience, vol 9, 31–49, 1979.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1986 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Cardelli, L. (1986). The amber machine. In: Cousineau, G., Curien, PL., Robinet, B. (eds) Combinators and Functional Programming Languages. LITP 1985. Lecture Notes in Computer Science, vol 242. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-17184-3_39
Download citation
DOI: https://doi.org/10.1007/3-540-17184-3_39
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-17184-3
Online ISBN: 978-3-540-47253-7
eBook Packages: Springer Book Archive