- Docente: Enrico Denti
- Credits: 6
- SSD: ING-INF/05
- Language: Italian
- Teaching Mode: Traditional lectures
- Campus: Bologna
- Corso: Second cycle degree programme (LS) in Computer Engineering (cod. 0234)
Learning outcomes
This 60-hour (8-week) course aims to provide a rational view over the fundamental concepts of programming languages, relating them to the different computational models and to the problem of language translation and recognition. The course provides also an introduction to Petri Nets and foundation languages, as well as a short introduction to Javascript as an example of a functional language featuring a prototype-based object model.
Course contents
Formal description and implementation of programming languages: grammars and Chomsky classification. Relationship between grammars and language interpreters/translators: lexical analysis, top-down and bottom-up techniques for the syntactical analysis of regular languages and context-free languages. Overview on methods for the formal description of the semantic aspects of a language. Basic concepts about the structure and construction of interpreters/compilers, and their run-time support: examples in the java language. Semi-automated tools for parser generation: JavaCC and SableCC.
Introduction to non-imperative programming styles: Prolog as a tool to ease parser construction from the language formal semantics. Hybrid applications mixing Prolog and Java.XML-based grammars and XSLT-based interpretation: possible approaches.
Petri Nets as a model for system description and their computation power and expressiveness. Seminarial introduction to foundational languages.
Javscript as an example of a functional language with a prorotype-based object model.
Readings/Bibliography
Please see the course's web portal.
Teaching methods
Powerpoint slides (whose PDF printouts are available from the teacher's Web portal before the corresponding lecture) are projected and discussed during class hours, thus avoiding students the burden of taking notes all the time, letting them focus on the discussed concepts. Exercises are continuously interleaved with theoretical concepts and immediately discussed. Autonomous lab activities are welcome and promoted by suggesting ideas and possible test projects.
Assessment methods
The final examination consists of the discussion of a project, previously proposed by the student and accepted by the teacher.
Teaching tools
The teacher's web portal provides updated information, copy of the slides projected and discussed during the lecture hours, some extra material, and suggested books.
Links to further information
Office hours
See the website of Enrico Denti