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

Metode de proiectare a compilatoarelor
Cod
Semes-
trul
Ore: C+S+L
Tipul
Specializarea
MI046
6
2+0+2
obligatorie
Informatica
Cadre didactice indrumatoare
Conf. 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 compilatoarelor. 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 compilatoarelor Limbaje de programare,interpretare si compilare. Structura generala a unui compilator.
2. Analiza lexicala. Rolul analizei lexicale in procesul compilarii. Structura si gestionarea tabelei de simboluri si a formei interne a programului. Prezentare si utilizare Lex.
3. Analiza sintactica. Rolul analizei sintactice. Moduri de reprezentare a arborelui de analiza sintactica. Metode descendente de analiza sintactica (descendent cu reveniri, LL(1), elemente de teoria gramaticilor de tip LL(k) ). Metode ascendente de analiza sintactica (LR(0), SLR, LR(1),LALR, elemente de teoria gramaticilor de tip LR(k) ). Prezentare si utilizare LLgen si Yacc.
4. Forme intermediare ale programelor: forme poloneze, cvadruple, triple, 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 calculatoare 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. MOTOGNA, S. - Metode de proiectare a compilatoarelor, Ed. Albastra, 2006
Evaluare
Nota finala se acorda pe baza urmatoarelor activitati:
-lucrari de laborator 25%
-examen final 75%
Legaturi: Syllabus-urile tuturor disciplinelor
Versiunea in limba engleza a acestei discipline
Versiunea in format rtf a acestei discipline