vai al contenuto della pagina
vai al menu di navigazione
vai alla sezione Accessibilità
vai alla mappa del sito
Multicampus
Bologna
Cesena
Forlì
Ravenna
Rimini
Buenos Aires
IT
ES
Map
UniboSearch
Directories
Home
Home
default
University
Students
Course catalogue
Programme catalogue
Course unit catalogue
Vocational training
Research doctorates
Summer and winter schools
Research
International Relations
Libraries and Museums
Always Useful
Studenti Online
Student Guide
Student Administration Office
Guide to services
Italian courses for foreign students
University Sports Centre
Merchandising
Online services
Choose online services
Alma Digital Library
AlmaLaurea
AMS Tesi online
Document and Library Services
Staff-student mailing lists
Teaching materials: searches
Badge, PUK and Certificates
Online Student Loan
WIFI Wireless Connection
Online study plans
Studenti Online
AlmaRM
AlmaEsami
Guidance and internships
La mia e-mail
Il mio Portale
Unibo Structures
Choose unibo structures
Administrative Divisions
Advanced Schools
AlmaMater Foundation
Alma Graduate School
Buenos Aires Campus
Campus Branches
College of China
Collegium Musicum Almae Matris
Collegio Superiore
Departments
Doctorates School
Equal Opportunities Committee
Faculties
Interdepartmental Research Centres
Institute of Advanced Studies
Language centres
Other Service Structures
Public relations office helpdesk
Specialisation Schools
Student Administration Offices
Unibo Sports Centre
University Residential Centre - Advanced studies
University Residential Centre of Bertinoro
Admission
Multicampus
Schools
Departments
Public Relations Office
Administrative Divisions
You are in:
Home
>
Course catalogue
>
Course unit catalogue
> Teaching
35238 - Computational Models and Languages M
Academic Year 2011/2012
Teacher
Enrico Denti
Number of credits
6
SSD
ING-INF/05
Teaching Mode
Traditional lectures
Lingua
Italian
Versione italiana
Learning outcomes
Course contents
Readings/Bibliography
Teaching methods
Assessment methods
Teaching tools
Language of instruction
Links to further information
Office hours
Learning outcomes
This 60-hour 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. More precisely, we discuss the main formal methods for language definition, in terms of syntax and semantics, for both programming languages and specification languages, and relate them to different computational models. The main techniques for language evaluation and recognition are also presented. Students will then be able to define reasonably simple languages understanding their properties, implementing the corresponding interpreters, and evaluating the pros and cons of different choices/computational paradigms in application design. Multi-paradigm and multi-language issues are also presented.
Course contents
The 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. Detailed 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/JTB and others. 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. Introduction to foundational languages. Javascript as an example of a functional language with a prorotype-based object model. Introduction to Multi-paradigm and Multi-language programming.
Readings/Bibliography
Please refer to the course's web portal for up-to-date information.
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. 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 exams consists of an oral discussion, which can include the presentation and discussion of a work project previosly agreed between teacher and student, and developed by the student autonomously. The project design and development of a case-study application is mandatory if the student also selected the 3-credit extra Work Project in this subject.
Teaching tools
The teacher's web portal (http://edenti.deis.unibo.it) provides updated information, copy of the slides projected and discussed during the lecture hours, some extra material, and suggested books.
Language of instruction
Italian
Links to further information
http://edenti.deis.unibo.it
Office hours
See the
Faculty member's website
Print
Send to a friend
Teaching Material