A Practical Approach to Compiler Construction pp 141-175 | Cite as
Semantic Analysis and Intermediate Code
Chapter
First Online:
Abstract
The semantic analysis phase of a compiler is the last phase directly concerned with the analysis of the source program. The syntax analyser has produced a syntax tree or some equivalent data structure and the next step is to deal with all those remaining analysis tasks that are difficult or impossible to do in a conventional syntax analyser. These tasks are principally concerned with context-sensitive analysis.
Keywords
Intermediate Representation Type Rule Control Flow Graph Type Check Attribute Grammar
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.
References
- 1.Aho AV, Lam MS, Sethi R, Ullman JD (2007) Compilers – principles, techniques and tools, 2nd edn. Pearson Education, Upper Saddle RiverMATHGoogle Scholar
- 2.Cytron R, Ferrante J, Rosen BK, Wegman MN, Kenneth Zadek F (1991) Efficiently computing static single assignment form and the control dependence graph. ACM Trans Program Lang Syst 13(4):451–490CrossRefGoogle Scholar
- 3.Cooper KD, Torczon L (2011) Engineering a compiler, 2nd edn. Morgan Kaufmann, San FranciscoMATHGoogle Scholar
- 4.Bilardi G, Pingali K (2003) Algorithms for computing the static single assignment form. J ACM 50(3):375–425Google Scholar
- 5.Allen FE (1970) Control flow analysis. ACM SIGPLAN Notices 5(7):1–19CrossRefGoogle Scholar
- 6.Ferrante J, Ottenstein KJ, Warren JD (1987) The program dependence graph and its use in optimization. ACM Trans Program Lang Syst 9(3):319–349CrossRefMATHGoogle Scholar
- 7.Stanier J, Watson D (2013) Intermediate representations in imperative compilers: a survey. ACM Comput Surv 45(3):26:1–26:27CrossRefGoogle Scholar
- 8.Holub AI (1994) Compiler design in C, 2nd edn. Prentice Hall International, New YorkMATHGoogle Scholar
- 9.Fraser C, Hanson D (1995) A retargetable C compiler: design and implementation. Addison-Wesley, ReadingMATHGoogle Scholar
- 10.Pierce BC (2002) Types and programming languages. The MIT Press, CambridgeMATHGoogle Scholar
- 11.Mogensen TÆ (2011) Introduction to compiler design. Undergraduate topics in computer science. Springer, BerlinGoogle Scholar
- 12.Lindholm T, Yellin F (1997) The Java virtual machine specification. The Java series. Addison-Wesley, ReadingGoogle Scholar
- 13.Grune D, Bal HE, Jacobs CJH, Langendoen KG (2000) Modern compiler design. Wiley, New YorkGoogle Scholar
- 14.Appel AW (1992) Compiling with continuations. Cambridge University Press, CambridgeGoogle Scholar
- 15.Peyton Jones SL (1987) The implementation of functional programming languages. Prentice Hall international series in computer science. Prentice Hall, Englewood CliffsGoogle Scholar
- 16.Bernstein RL (1985) Producing good code for the case statement. Softw Pract Exp 15(10):1021–1024CrossRefGoogle Scholar
- 17.Hennessy JL, Mendelsohn N (1982) Compilation of the Pascal case statement. Softw Pract Exp 12(9):879–882CrossRefMATHGoogle Scholar
Copyright information
© Springer International Publishing AG 2017