Disciplina: Metode de proiectare a compilatoarelor	Cod: MI046	

Semestrul	Ore: C+S+L	Tipul	Specializarea	
6	2+0+2	obligatorie	Informatica	

Cadre didactice indrumatoare	Conf. Dr. MOTOGNA Simona Claudia, motogna@cs.ubbcluj.ro
Prof. Dr. CSORNYEI Zoltan
Asist. TARTA Adriana Mihaela, adriana@cs.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 selectiva	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, 200	
Evaluare	Nota finala se acorda pe baza urmatoarelor activitati:
-lucrari de laborator 25%
-examen final 75