Course of Automi, Linguaggi e
Traduttori
Academic
Year 2010-2011
(Face-to-face Course and
On-line Course)
Laurea Triennale
in Ingegneria Informatica
Link to: Automi,
Linguaggi e Traduttori: On-line Course. (New site)
(Old
site)
Teacher: Alberto Pettorossi. You can talk to the teacher
after the lectures or
by appointment.
Curriculum Vitae of Alberto Pettorossi.
You can send
email messages to the teacher pettorossi@info.uniroma2.it
In
your message, please, use the subject:
alt2011_Lastname_Firstname_EnrolmentNumber
or if you are an ‘online’ student:
alt2011online_Lastname_Firstname_EnrolmentNumber
(The word ‘EnrolmentNumber’ stands for the Italian word
‘Matricola’).
Lectures: from 27.09.10 to
29.01.11 (No lectures from
22.12.10 to 06.01.11 inclusive)
Monday 16:00-16:45 Room
03 n.e.
Wednesday 14:00-15:45 Room 03 n.e.
Seminars and Exams: (the
word ‘call’ stands for the Italian word ‘appello’)
Tuesday
08.02.11 15:00 Room 06 n.e. The
‘Before-the-Exam’ Seminar
(1) Thursday 10.02.11
15:00 Room 03 n.e. Exam
(written part) for the first and the second call
(2) Thursday 17.02.11
15:00 Room 04 n.e. Second
call (oral part)
Thursday
30.06.11 16:00 Room 11 n.e. The
‘Before-the-Exam’ Seminar
(1) Tuesday 05.07.11 09:30 Room 12
n.e. Exam (written part) for the
first and the second call
(2) Wednesday 13.07.11
15:00 Room 08 n.e. Second
call (oral part)
Tuesday 06.09.11 16:00 Room 12 n.e. The ‘Before-the-Exam’ Seminar
(1) Thursday 08.09.11 15:00 Room 03 n.e. Exam (written part) for the first and the
second call
(2) Thursday 15.09.11 15:00 Room 03 n.e. Second call (oral part)
Thursday
02.02.12 11:45 Room B15 The
‘Before-the-Exam’ Seminar
(1)
Monday 13.02.12
15:00 Room C11 Exam (written
part) for the first and the second call
(2)
Tuesday 21.02.12 15:00 Room
C12 Second
call (oral part)
The dates of
the oral exam for the first call will be announced at the end of the written
exam.
---------------------------------
*** BOOKING
FOR THE FIRST CALL (1) AND THE SECOND CALL (2).
Both for the first
and the second call, within four days
before the date (1)
you should
register using the online system http://delphi.uniroma2.it
--> You cannot
register for both calls.
--> If you are
an ‘online’ student, write ’online’ besides your name,
please.
***
HANDING-IN YOUR HOMEWORK.
Within
four days before
date (1) for the first call, and date (2) for the
second
call, please send to:
alt@iasi.cnr.it and pettorossi@info.uniroma2.it
a
message with subject:
alt2011_Lastname_Firstname_EnrolmentNumber
and
body:
Invio in allegato i miei
elaborati per le due prove in itinere che ho fatto da
solo/a. Firstname Lastname
You
should attach to the message two text files (with
extension .cpp
or .java or
.txt). These files should contain
your solution to the two homework
exercises.
Each program should be documented and should contain instructions for
its
compilation and execution. Please, include also some execution tests as
comments
to the code of each program. The names of the files should be:
alt2011_Lastname_Firstname_EnrolmentNumber_CYKParser1
alt2011_Lastname_Firstname_EnrolmentNumber_LR1Parser2
If
you are an ‘online’ student the names of the files should be:
altonline2011_Lastname_Firstname_EnrolmentNumber_CYKParser1
altonline2011_Lastname_Firstname_EnrolmentNumber_LR1Parser2
Do not
add screenshots and strictly follows the above instruction, please.
Send
the message with the two attached files, according to the above
instructions, even if you have
done so for a previous exam call.
Normally,
you cannot register to more than three exam calls per academic year.
---------------------------------
Learning
Objectives.
Introduction
to formal languages and automata with particular reference to
regular
languages, context-free languages, finite automata, and
pushdown
automata. Introduction to the theory of computation
Introduction
to the basic techniques for parsing and compiling programming
languages.
Syllabus.
Mathematical
Preliminaries: relations, functions. Chomsky Hierarchy. Regular Languages,
regular
expressions, deterministic and nondeterministic finite automata.
Parsing
of regular languages.
Context-free
languages and deterministic and nondeterministic pushdown automata.
Parsing
of context-free languages: Cocke-Younger-Kasami parser, chop-expand parser,
Earley
parser (optional), LL(1) parsers, LR(0) parsers, LR(1) parsers, LALR(1)
parsers.
Turing
Machines and type 0 grammars and languages. Type 1 grammars and languages.
Decidable,
undecidable, and semidecidable problems.
Knuth-Morris-Pratt
pattern matcher. Hoare triples for partial correctness.
Homework: to be done by yourself.
Detailed syllabus and exam questions.
Previous
Exam Questions.
Handouts:
1. Quantifiers.pdf
2. DistributedTermination.pdf (facoltativo)
3. HsiangTheoremProver.pdf (facoltativo)
4. LeftLinear-RightLinear-Grammars-Conversion.pdf
5. ContextFreeOnSingletonSigma.pdf (facoltativo)
Requirements for the course: Fundamentals notions of Computer
Science.
Elements of C++ or
Java programming. Use of arrays, lists, pointers, and recursion.
Elements of Algebra
and elements of Predicate Calculus.
Attendance to lectures is compulsory.
The exam consists in the
presentation and the discussion of the homework (to be done by him/herself),
and a written and an
oral session.
The student should come
to the exam sessions with his/her enrolment book (‘libretto’).
Statistics of the outcome of previous exam
sessions.
Audio Recording of the lectures is available
on demand (for personal use only).
------------------------------------------------------------------------------------------------------------
Suggested
Textbooks.
1. A. Pettorossi: Automata Theory and Formal Languages. Second Edition. Aracne, 2009.
Without Sections 1.6, 2.7,
2.11, 3.13.2, 3.14, 3.15, 3.16, 6.2, 6.3, 6.4, 7.1, 7.2, 7.6.
and the proofs of the theorems of
Chapters
4 and 5, and of Section 6.1.
2. A. Pettorossi: Techniques for Searching, Parsing, and Matching. Second Edition. Aracne, 2009.
Chapter 2.2, 2.3, 4.1, 4.2, 5,
6.1, 6.2.1, 9.1.
Errata Corrige of Books
------------------------------------------------------------------------------------------------------------
Among the many
textbooks which are available for further reading on the subjects of
the course, we
list the following ones:
3. A.V. Aho, R.
Sethi, J.D. Ullman: Compilers: Principles, Techniques, and Tools.
Addison-Wesley, 1986. This
book is also known as "The Dragon Book".
4. J.E. Hopcroft,
R. Motwani, J.D. Ullman: Introduction to Automata Theory, Languages,
and Computation, Addison-Wesley Pub. Co., 2001
(Revised Edition).
5. A.
Pettorossi: Quaderni di Informatica Parte I. Second Edition. Aracne, 2004. Chapters 1 and 8.
6. A.
Pettorossi and M. Proietti: First Order
Predicate Calculus and Logic Programming.
Second Edition.
Aracne, 2005.
------------------------------------------------------------------------------------------------------------