Semantic Analysis and Intermediate Code

Chapter
Part of the Undergraduate Topics in Computer Science book series (UTICS)

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. 1.
    Aho AV, Lam MS, Sethi R, Ullman JD (2007) Compilers – principles, techniques and tools, 2nd edn. Pearson Education, Upper Saddle RiverMATHGoogle Scholar
  2. 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. 3.
    Cooper KD, Torczon L (2011) Engineering a compiler, 2nd edn. Morgan Kaufmann, San FranciscoMATHGoogle Scholar
  4. 4.
    Bilardi G, Pingali K (2003) Algorithms for computing the static single assignment form. J ACM 50(3):375–425Google Scholar
  5. 5.
    Allen FE (1970) Control flow analysis. ACM SIGPLAN Notices 5(7):1–19CrossRefGoogle Scholar
  6. 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. 7.
    Stanier J, Watson D (2013) Intermediate representations in imperative compilers: a survey. ACM Comput Surv 45(3):26:1–26:27CrossRefGoogle Scholar
  8. 8.
    Holub AI (1994) Compiler design in C, 2nd edn. Prentice Hall International, New YorkMATHGoogle Scholar
  9. 9.
    Fraser C, Hanson D (1995) A retargetable C compiler: design and implementation. Addison-Wesley, ReadingMATHGoogle Scholar
  10. 10.
    Pierce BC (2002) Types and programming languages. The MIT Press, CambridgeMATHGoogle Scholar
  11. 11.
    Mogensen TÆ (2011) Introduction to compiler design. Undergraduate topics in computer science. Springer, BerlinGoogle Scholar
  12. 12.
    Lindholm T, Yellin F (1997) The Java virtual machine specification. The Java series. Addison-Wesley, ReadingGoogle Scholar
  13. 13.
    Grune D, Bal HE, Jacobs CJH, Langendoen KG (2000) Modern compiler design. Wiley, New YorkGoogle Scholar
  14. 14.
    Appel AW (1992) Compiling with continuations. Cambridge University Press, CambridgeGoogle Scholar
  15. 15.
    Peyton Jones SL (1987) The implementation of functional programming languages. Prentice Hall international series in computer science. Prentice Hall, Englewood CliffsGoogle Scholar
  16. 16.
    Bernstein RL (1985) Producing good code for the case statement. Softw Pract Exp 15(10):1021–1024CrossRefGoogle Scholar
  17. 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

Authors and Affiliations

  1. 1.Department of InformaticsSussex UniversityBrightonUK

Personalised recommendations