Universitatea "Babeş-Bolyai" din Cluj-Napoca

Facultatea de Matematică şi Informatică
FISA DISCIPLINEI

Limbaje formale şi tehnici de compilare Formal languages and compiler design methods
Cod
Semes-
trul
Ore: C+S+L
Credite
Tipul
Sectia
MI044
4
2+1+2
6
obligatorie
Matematică-Informatică
(Mathematics-Computer Science)
Cadre didactice indrumatoare Teaching Staff in Charge
Lect. Dr. MOTOGNA Simona Claudia, motogna@cs.ubbcluj.ro
Lect. ROBU Judit, robu@cs.ubbcluj.ro
Obiective Aims
Gramatici si limbaje; clasificarea lui Chomsky; gramatici regulare, automate finite si echivalenta lor; gramatici independente de context, automate push-down si echivalenta lor.
Notiuni de costructia compilatoarelor: fazele compilarii, analiza lexicala, analiza sintactica, analiza semantica.
Grammars and languages; Chomsky hierarchy; regular grammars, finite automata and the equivalence between them; context-free grammars, push-down automata and their equivalence.
Compiler construction fundamentals: compiling phases, scanning, persing and code generation.
Continut
Cursul urmareste prezentarea notiunilor fundamentale legate de limbaje formale: gramatici (clasificare, gramatici regulare, gramatici independente de context si proprietatile lor), automate finite (deterministe, nedeterministe, transformari, proprietati) si push-down si echivalenta dintre gramatici si automate.
Partea a doua a cursului va contine principalele aspecte legate de constructia compilatoarelor: analiza lexicala, analiza sintactica (diverse metode de analiza sintactica), generare de cod intermediar, optimizare de cod, generare de cod obiect.
Bibliografie
1. L.D. Serbanati - Limbaje de programare si compilatoare, Ed. Academiei RSR, 1987.
2. A.V. Aho, D.J. Ullman - Principles of computer design, Addison-Wesley, 1978.
3. A.V. Aho, D.J. Ullman - The theory of parsing, translation and compiling, Prentice-Hall, Engl. Cliffs., N.J., 1972, 1973.
4. D. Gries - Compiler construction for digital computers,, John Wiley, New York, 1971.
5. G. Moldovan, V. Cioban, M. Lupea - Limbaje formale si automate. Culegere de probleme, Univ. Babes-Bolyai, Cluj-Napoca, 1996.
6. Cioban, V., Lupea, M., Moldovan, G., Limbaje formale si automate. Culegere de probleme, http://math.ubbcluj.ro/~infodist/alf/INDEX.HTM
7. Csörnyei Zoltán, Bevezetés a fordítóprogramok elméletébe, I, II., ELTE, Budapest, 1996
8. Csörnyei Zoltán, Fordítási algoritmusok, Erdélyi Tankönyvtanács, Kolozsvár, 2000.
9. Demetrovics János-Denev, J.-Pavlov, R., A számítástudomány matematikai alapjai, Nemzeti Tankönyvkiadó, Budapest, 1999.
10. Sipser, M., Introduction to the theory of computation, PWS Pulb. Co., 1997.
Evaluare Assessment
Nota finala obtinuta la aceasta disciplina va reflecta atat activitatea la seminar si la laborator cat si cunsotiintele acumulate de studenti.
Nota finala se calculeaza astfel:
20% nota_laborator + 20% nota_seminar + 60% nota_examen.
Nota la seminar se va stabile pe baza temelor saptamanale pe care studentii le vor primi.
The final grade will reflect the seminar and lab activity and the knowledge obtained by the students.
The final mark will be compute from: 20% lab_mark + 20% seminar_mark + 60% exam_mark.
The seminar_mark will be establish from the weekly homeworks.