Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Informatică
Programul de studii: Informatică - linia de studiu română
Limba de predare: Română

SYLLABUS

I. Date generale
Codul	Disciplina	
MIF0003	Limbaje formale şi tehnici de compilare	

Semestrul	Ore: C+S+L+P	Categoria	Statutul	
5	2+1+2+0	specialitate	obligatorie	

II. Cadre didactice cu norma de bază în Universitate
Numele şi	Titlul	Gradul	Departamentul	Tipul activităţii	
prenumele	ştiinţific	didactic		C	S	L	
LUPSA Dana	Dr. 	Lect.	Informatică	*			

Cadre didactice asociate
Numele şi	Titlul	Instituţia	Tipul	Tipul activităţii	
prenumele	ştiinţific		postului	C	S	L	

III. Obiectivele disciplinei
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.	

IV. Conţinutul disciplinei
I. Gramatici, limbaje, automate

Gramatici regulare si automate finite
Gramatici independente de context  si automate pushdown
Gramatici speciale - gramatici LR(k), LL(k)

II. Compilatoare

Prezentarea generala a problemelor proiectarii si implementarii limbajelor
de programare
Analiza lexicala
Analiza sintactica - metode ascendente, metode descendente
Analiza semantica. 	

V. Bibliografie
1. A.V. AHO, D.J. ULLMAN - Principles of computer design, Addison-Wesley, 1978.
2. A.V. AHO, D.J. ULLMAN - The theory of parsing, translation and compiling, Prentice-Hall, Engl. Cliffs., N.J., 1972, 1973.
3. MOTOGNA, S. – Metode de proiectare a compilatoarelor, Ed. Albastra, 2006
3. D. GRIES - Compiler construction for digital computers,, John Wiley, New York, 1971.
4. SIPSER, M., Introduction to the theory of computation, PWS Pulb. Co., 1997. 
5. G. MOLDOVAN, V. CIOBAN, M. LUPEA - Limbaje formale si automate. Culegere de probleme, Univ. Babes-Bolyai, Cluj-Napoca, 1996.,l http://math.ubbcluj.ro/~infodist/alf/INDEX.HTM
6. CSÖRNYEI ZOLTÁN, Bevezetés a fordítóprogramok elméletébe, I, II., ELTE, Budapest, 1996
7. L.D. SERBANATI - Limbaje de programare si compilatoare, Ed. Academiei RSR, 1987.

VI. Tematica activităţilor didactice pe săptămâni
Sapt. 1. Structura generala a unui compilator. Fazele compilarii. Analiza lexicala
Sapt. 2 Notiuni introductive de limbaje formale. Gramatici s clasificarea Chomsky
Sapt. 3. Automate finite. Echivalenta dintre automate finite si gramatici regulare
Sapt. 4. Limbaj regular. Limbaj independent de context. Gramatici independente de context: analiza sintactica; arbore de analiza sintactica; transformari echivalente
Sapt. 5. Analiza sintactica: faza a compilarii. Analizor sintactic descendent cu reveniri
Sapt. 6. Analiza sintactica LL(k). Analizor sintactic LL(1)
Sapt. 7. Analiza sintactica LR(k). Analizoarele sintactice LR(0), SLR, LR(1), LALR
Sapt. 8. Generator de analizor lexical. Generator de analizor sintactic. 
Sapt. 9. Proprietati limbaje regulare (teoreme, constructii)
Sapt. 10. Proprietati limbaje indepedente de context (teoreme, constructii)
Sapt. 11. Automate Push-down
Sapt. 12. Gramatici de atribute
Sapt. 13. Fazele compilarii analiza semantica, cod intermediar
Sapt. 14. Subiect rezervat

Seminar:
Sem1: Multimi si limbaje; specificarea unui limbaj de programare;  notatia BNF
Sem 2: Gramatici: limbaj generat de o gramatica; gramatica corespunzatoare unui limbaj; structuri de date pentru gramatici
Sem 3: Automat Finit: limbaj generat; AF corespunzator unui limbaj; structuri de date pentru AF
Sem 4: gramatici independente de context; analiza sintactica LL(1)
Sem 5: analiza sintactica LR(k) 
Sem 6: Limbaje regulare: proprietati si aplicatii ale lemei de pompare. Limbaje independente de context: proprietati, aplicatii ale lemei de pompare
Sem 7: APD. Limbaje si gramatici independente de context si gramatici 

Laborator:
tema 1: Specificarea unui minilimbaj + implementare (naiva) analiza lexicala (4 lab)
tema 2: AF determinist.Verificarea acceptarii unei secvente de catre un AFD. Analiza lexicala folosind automate finite (2 lab)
tema 3: gramatici independente de context; transformari echivalente (1 lab)
tema 4: analiza sintactica (decendenta cu reveniri, LL(1) sau LR)  (4 lab)
tema 5: utilizare lex si yacc (2 lab) 	

VII. Metode didactice folosite
Expunerea: descrierea, explicaţia, prelegerea cu demonstraţii, prelegeri introductive. 
Conversaţia: conversaţia euristică, dezbaterea, dialogul, conversaţii introductive, conversaţii de fixare şi consolidare a cunoştinţelor, conversaţii de sistematizare şi sinteză, conversaţii de aplicare 
Demonstraţia didactică: demonstraţia la tablă .
Problematizarea: utilizarea întrebărilor-problemă, problemelor şi situaţiilor-problemă. 
Alte metode: studiul de caz; studiul individual, exerciţiul.

VIII. Evaluare
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:
25% nota_laborator + 75% nota_examen (incluzand si activitatea la seminar).

Pentru anul academic 2011-2012:
http://www.cs.ubbcluj.ro/~dana/LFTC/	

IX. Bibliografie suplimentară

	Decan,							Director departament,,

	Data,							Titular curs,
								Lect. Dr.  LUPSA Dana