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	Categoria	Statutul	
5	2+2+2	specialitate	obligatorie	

II. Cadre didactice cu norma de bază în Universitate
Numele şi	Titlul	Gradul	Catedra	Tipul activităţii	
prenumele	ştiinţific	didactic		C	S	L	
MOTOGNA Simona Claudia	Dr.	Conf.	Limbaje şi Metode de Programare	*			

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
Automate Turing
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

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. CSÖRNYEI ZOLTÁN, Bevezetés a fordítóprogramok elméletébe, I, II., ELTE, Budapest, 1996
4. CSÖRNYEI ZOLTÁN, Fordítási algoritmusok, Erdélyi Tankönyvtanács, Kolozsvár, 2000.
5. DEMETROVICS JÁNOS-DENEV, J.-PAVLOV, R., A számítástudomány matematikai alapjai, Nemzeti Tankönyvkiadó, Budapest, 1999.
6. D. GRIES - Compiler construction for digital computers,, John Wiley, New York, 1971.
7. D. GRUNE, H.BAL,C.JACOBS, K. LANGENDOEN – Modern Copiler Design, John Wiley, 2000
8. 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
9. S. MOTOGNA – Metode de proiectare a compilatoarelor, Ed. Albastra, 2006
10. L.D. SERBANATI - Limbaje de programare si compilatoare, Ed. Academiei RSR, 1987.

VI. Tematica activităţilor didactice pe săptămâni
Curs 1. Ce este un compilator; structura generala si fazele compilarii [6,9]
Curs 2. Analiza lexicala [9,7,10]
Curs 3. Notiuni introductive de limaje formale: limbaj, gramatica [2]
Curs 4. Gramatici regulare si automate finite. [2]
-	Definitii 
-	Echivalenta dintre ele 
Curs 5. Expresii regulare [2]
-	Echivalenta limbajelor regulare cu cele generate de automate finite si gramatici regulare;
-	Proprietati de inchidere, 
-	Lema de pompare 
Curs 6. Gramatici independente de context. [2]
-	Definitie, lema de pompare
-	Arbore de analiza sintactica.
-	Transformari echivalente.
Curs 7. Automate push-down [2]
-	Definitie
-	Echivalenta cu gramatici independente de context
Curs 8. Analiza sintactica [1,9]
-	Notiuni generale. Forme de reprezentare a arborelui de analiza sintactica
-	Clasificarea analizoarelor sintactice
-	Analiza sintactica descendenta cu reveniri
Curs 9. Analiza sintactica LL(1) [1,9,10]
-	Gramatici de tip LL(k)
-	Functiile FIRST si FOLLOW
-	Construirea unui analizor sintactic LL(1)
Curs 10. Analiza sintactica LR [1,9,10]
-	Analiza sintactica de tip deplasare-reducere
-	Principiile generale ale analizei sintactice LR(k); gramatici LR(k)
-	Construirea colectiei canonice LR(0)
Curs 11. Analiza sintactica LR - continuare [1,9,10]
-	Construirea unui analizor sintactic LR(0)
Curs 12. Analiza sintactica LR – continuare [1,9,10]
-	Analizor sintactic SLR
-	Analizor sintactic LR(1)
-	Analizor sintactic LALR
Curs 13. Generatoare de analiza lexicala si sintactica [7,9]
-	Generator de analiza lexicala (lex)
-	Generator de analiza sintactica (yacc, lgen)
Curs 14. Masini Turing [1]	

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ă .
Modelarea: utilizarea modelelor. 
Algoritmizarea: algoritmi de rezolvare. 
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).

IX. Bibliografie suplimentară
***[lex & yacc] - http://dinosaur.compilertools.net/	

	Data,							Titular curs,
								Conf. Dr. MOTOGNA Simona Claudia