Abstract
The final goal of a compiler is to get programs written in a high-level language to run on a computer. This means that, eventually, the program will have to be expressed as machine code that can run on the computer. This does not mean that we need to translate directly from the high-level abstract syntax to machine code. Many compilers use a medium-level language as a stepping-stone between the high-level language and the very low-level machine code. Such stepping-stone languages are called intermediate code .
The art of free society consists first in the maintenance of the symbolic code; and secondly in fearlessness of revision, to secure that the code serves those purposes which satisfy an enlightened reason.
Alfred North Whitehead (1869–1947)
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Note that the coordinate system is rotated 90° clockwise compared to mathematical tradition.
References
Aït-Kaci, H.: Warren’s Abstract Machine - A Tutorial Reconstruction. MIT Press, Cambridge (1991)
Appel, A.W.: Compiling with Continuations. Cambridge University Press, Cambridge (1992)
Jones, S.L.P., Lester, D.: Implementing Functional Languages - A Tutorial. Prentice Hall, Reading (1992)
Lattner, C.: LLVM language reference manual (2011). http://llvm.org/docs/LangRef.html
Lindholm, T., Yellin, F.: The Java Virtual Machine Specification, 2nd edn. Addison-Wesley, Reading (1999)
Muchnick, S.S.: Advanced Compiler Design and Implementation. Morgan Kaufmann, San Francisco (1997)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this chapter
Cite this chapter
Mogensen, T. (2017). Intermediate-Code Generation. In: Introduction to Compiler Design. Undergraduate Topics in Computer Science. Springer, Cham. https://doi.org/10.1007/978-3-319-66966-3_6
Download citation
DOI: https://doi.org/10.1007/978-3-319-66966-3_6
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-66965-6
Online ISBN: 978-3-319-66966-3
eBook Packages: Computer ScienceComputer Science (R0)