Universitatea "Babes-Bolyai" Cluj-Napoca
Facultatea de Matematica si Informatica
FISA DISCIPLINEI

Metode de proiectare a compilatoarelor
Cod
Semes-
trul
Ore: C+S+L
Credite
Tipul
Specializarea
MI046
6
2+0+2
6
obligatorie
Informatică
Cadre didactice indrumatoare
Lect. Dr. MOTOGNA Simona Claudia,  motognacs.ubbcluj.ro
Prof. Dr. CSORNYEI Zoltan
Asist. TARTA Adriana Mihaela,  adrianacs.ubbcluj.ro
Obiective
Cursul urmareste prezentarea sistematica a notiunilor si metodelor de baza utilizate la proiectarea si implementarea limbajelor de programare. Laboratorul are ca tematica construirea unui compilator pentru un mini-limbaj de programare, cu utilizarea unora din metodele prezentate la curs.
Continut
1. Prezentarea generala a problemelor proiectarii si implementarii limbajelor de programare. Limbaje de programare,interpretare si compilare. Structura generala a unui compilator.
2. Analiza lexicala. Rolul analizei lexicale in procesul compilarii. Structura si gestionarea tabelului de simboluri si a formei interne a programului. Gestionarea memoriei. Prezentare si utilizare Lex.
3. Analiza sintactica. Rolul analizei sintactice. Moduri de reprezentare a arborelui de analiza sintactica. Metode descendente de analiza sintactica (LL(1), elemente de teoria gramaticilor de tip LL(k) ). Metode ascendente de analiza sintactica (precedenta simpla, precedenta a operatorilor, LR(0), SLR, LR(1),LALR, elemente de teoria gramaticilor de tip LR(k) ). Prezentare si utilizare Yacc
4. Forme intermediare ale programelor: forme poloneze, codul cvadrupletelor, codul tripletelor, arbore sintactic abstract.
5. Optimizarea codului intermediar. Principalele surse de optimizare independente de masina si utilizarea lor in compilare.
6. Generarea codului obiect pentru calculatore cu acumulator si pentru calculatore cu registri generali in cazul limbajelor fara si cu structura de bloc.
7. Tratarea erorilor in diferitele faze ale compilarii.
Bibliografie
1. HOPCROFT, J.E. - ULLMAN, J.E.: Introduction to Automata Theory, Languages and Computation, Addison Wesley, 1979
2. SERBANATI, L.D.: Limbaje de programare si compilatoare, Ed. Academiei RSR, 1987
3. AHO, A.V. - ULLMAN, D.J.: Principles of computer design, Addison-Wesley, 1978
4. AHO, A.V. - ULLMAN, D.J.: The theory of parsing, translation and compiling, Prentice-Hall, Engl. Cliffs., N.J., 1972, 1973
5. GRIES, DAVID: Compiler construction for digital computers, John Wiley, New York, 1971
6. GRUNE, DICK - BAL, H. - JACOBS, C. - LANGENDOEN, K.: Modern Compiler Design, John Wiley, 2000
7. "Lex & Yacc Page." [http://dinosaur.compilertools.net/]
8. MOLDOVAN, GRIGOR - CIOBAN, VASILE - LUPEA, MIHAELA: Limbaje formale si automate. Culegere de probleme, Univ. "Babes-Bolyai", Cluj-Napoca, 1996
Evaluare
Nota finala se acorda pe baza urmatoarelor activitati:
-lucrari de laborator 25%
-examen final 75%