The course aims to introduce the theory of formal languages and its application to compiler design. Particular emphasis will be placed on designing applications for human-computer interaction and for the design of web-based systems.
The course objective is to provide the tools, both formal and practical, for the definition of programming languages and their translators and provide application design skills and interoperable web systems in compliance with international standards. The course aims to provide a necessary preparation to the formation of the profiles of the Information Engineers skills that are emerging at national and European level .
For the above purposes the course is organized into three parts:
Expected learning outcomes:
To acquire knowledge, skills and competencies necessary for a computer engineer for:
· be able to relate the results of the theory of formal languages with the basic techniques for constructing lexical and syntactical analyzers of programming languages,
also be able to use the results of the theory of formal languages for the design of human-machine interfaces and for the design of interoperable web systems, and also understand how web standards are not limited to the design, but rather a way to create a new generation of web applications that make it possible to reduce costs of design, development and quality control in compliance with current regulations and in terms of accessibility.
During the course will be required the student to participate in the development of:
Students will also invited to participate to a Discussion Forum on topics introduced during the lesson on the portal of the course.
Parte I – Models and Languages
Parte II – Compilers and Interpreters
Parte III – Natural Language Processing and Web 2.0
Practice and Laboratory
Ricevimento: The teacher receives by appointment mail message(send mail to adorni@unige.it) to the following addresse: Genoa: DIBRIS , Viale Francesco Causa 13, I floor
GIOVANNI ADORNI (President)
MARCO MARATEA
ARMANDO TACCHELLA
Classes are held during the first half.
The final examination consists in a discussion about the project and an assessment of the arguments posted in the Forum during the course.
Suggested Prerequisites:
Basic knowledge on procedural programming languages, on client and server side programming, and on scripting languages.