To show the organization of the course that includes this module, follow this link Course organization
The course teaches the fundamental concepts of programming languages, such as functions, types, memory management, and control. The aim is to give a thorough understanding of problems in the design of programming languages. This understanding enables students to grasp the advantages and disadvantages of using different kind of programming languages.
Virtual machines: interpreters and compilers. Syntactical descriptions of programming languages: context free grammars. Structured operational semantics.
Memory management: scoping rules, functions, procedures, parameter passing, stack of activation records, heap.
Control: structuring of statements, abstraction, exceptions.
Data and types: data types, base types, structured types, type systems, type inference and polymorphism.
|Maurizio Gabbrielli, Simone Martini||Linguaggi di programmazione: principi e paradigmi (Edizione 2)||McGraw Hill||2011||88-386-626|