The amber machine

  • Luca Cardelli
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 242)


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.


Input Stream Output Stream Garbage Collector Text Object Current Closure 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Apple 84]
    Apple Computer: "Inside Macintosh".Google Scholar
  2. [Cardelli 83]
    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.Google Scholar
  3. [Cardelli 84]
    L.Cardelli: "Amber", AT&T Bell Laboratories Technical Memorandum, 11271-840924-10TM, 1984.Google Scholar
  4. [Cousineau 85]
    G.Cousineau, P-L.Curien, M.Mauny: "The Categorical Abstract Machine", to appear.Google Scholar
  5. [Landin 64]
    P.J. Landin: "The Mechanical Evaluation of Expressions", Computer Journal, Vol 6, No. 4, 1964, pp. 308–320.Google Scholar
  6. [Pike 84]
    R.Pike, L.Guibas, D.Ingalls: "Bitmap Graphics", SIGGRAPH '84 course notes.Google Scholar
  7. [Turner 79]
    D.A. Turner: "A new implementation technique for applicative languages", Software Practice and Experience, vol 9, 31–49, 1979.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1986

Authors and Affiliations

  • Luca Cardelli
    • 1
  1. 1.AT&T Bell LaboratoriesMurray Hill

Personalised recommendations