fişa disciplinei
1. Date despre program
1.1 Instituţia de învăţământ superior	Universitatea Babes-Bolyai Cluj-Napoca	
1.2 Facultatea	Facultatea de Matematica si Informatica	
1.3 Departamentul	Departamentul de informatica	
1.4 Domeniul de studii	Informatica	
1.5 Ciclul de studii	Licenta	
1.6 Programul de studiu / Calificarea	Matematica Informatica	

2. Date despre disciplină
2.1 Denumirea disciplinei	Limbaje formale şi tehnici de compilare	
2.2 Titularul activităţilor de curs	lect. dr. Lupsa Dana	
2.3 Titularul activităţilor de seminar	lect. dr. Lupsa Dana	
2.4 Anul de studiu	3	2.5 Semestrul	5	2.6. Tipul de evaluare	E	2.7 Regimul disciplinei	Obligatorie	

3. Timpul total estimat (ore pe semestru al activităţilor didactice)
3.1 Număr de ore pe săptămână	4	Din care: 3.2 curs	2	3.3 seminar/laborator	1sem + 1 lab	
3.4 Total ore din planul de învăţământ	56	Din care: 3.5 curs	28	3.6 seminar/laborator	28	
Distribuţia fondului de timp:	ore	
Studiul după manual, suport de curs, bibliografie şi notiţe	20	
Documentare suplimentară în bibliotecă, pe platformele electronice de specialitate şi pe teren	24	
Pregătire seminarii/laboratoare, teme, referate, portofolii şi eseuri	23	
Tutoriat	7	
Examinări 	20	
Alte activităţi: ..................		
3.7 Total ore studiu individual	94	
3.8 Total ore pe semestru	150	
3.9 Numărul de credite	6	

4. Precondiţii (acolo unde este cazul)
4.1 de curriculum	·	structuri de date si algoritmi	
4.2 de competenţe	·	abilitati de programare (nivel mediu)	

5. Condiţii (acolo unde este cazul)
5.1 De desfăşurare a cursului	·		
5.2  De desfăşurare a seminarului/laboratorului	·	laborator dotat cu calculatoare; mediu de dezvoltare pt. limbaje de programare de nivel inalt	

6. Competenţele specifice acumulate
Competenţe profesionale	·	cunoasterea, intelegerea si folosirea conceptelor informatice teoretice de baza
·	abilitatea de a munci independent si/sau in echipa pentru a rezolva probleme intr-un context prosional bine definit
·	o buna indemanare in scrierea de programe in limbaje de nivel inalt	
Competenţe transversale	·	abilitatea de a aplica tehnici de compilare pentru diferite probleme din viata reala
·	abilitatea de a modela diverse fenomene folosind limbaje formale
·	imbunatatirea abilitatilor de programare: depanarea programelor, o mai buna intelegere a modeului de raportare a erorilor de compilare oferite de compilator (depanarea si corectarea erorilor compilatoarelor)	

7. Obiectivele disciplinei (reieşind din grila competenţelor acumulate)
7.1 Obiectivul general al disciplinei	·	sa fie capabil sa inteleaga metodele de proiectare a compilatoarelor
·	imbunatatirea abilitatilor de programare 	
7.2 Obiectivele specifice

	·	cunostinte despre back-end-ul unui compilator 
·	intelegerea conceptelor limbajelor formale si dezvoltarea abilitatilor de a lucra cu ele 
·	intelegerea si capacitatea de a lucra cu concepte specifice compilatoarelor
(analiza lexicala, analiza sintactica)	

8. Conţinuturi
8.1 Curs	Metode de predare	Observaţii	
1. Prezentarea generala a problemelor proiectarii si implementarii unui compilator. Gramatici si limbaje.	Expunere: descrierea, explicatia, exemplificarea		
2. Analiza lexicala	Expunere: descrierea, explicatia, exemplificarea		
3. Gramatici regulare. Automate finite; determinism. Expresii regulare. Introducere: definitii, exemple	Expunere: descrierea, explicatia, exemplificarea		
4. Gramatici independente de context (GIC). Introducere: definitii, exemple	Expunere: descrierea, explicatia, exemplificarea		
5.  Automate push-down (APD).Constructia unui APD echivalent cu o GIC data.	Expunere: descrierea, explicatia, exemplificarea, studiu de caz		
6. Gramatici speciale - gramatici LL(k)
Analiza LL(1)	Expunere: descrierea, explicatia, exemplificarea, studiu de caz		
7. Gramatici speciale - gramatici LR(k)
Analiza LR(0)	Expunere: descrierea, explicatia, exemplificarea, studiu de caz		
8. Gramatici speciale - gramatici LR(k)
Analiza SLR, LR(1), LALR	Expunere: descrierea, explicatia, exemplificarea, studiu de caz		
9. Structura unui compilator. Unde se folosesc gramatici / automate 	Expunere: descrierea, explicatia, exemplificarea		
10. Generator de analiza lexicala lex/flex. 
Generator de analiza sintactica yacc/bison	Expunere: descrierea, explicatia, exemplificarea		
11. Demonstratii, constructii si aplicatii. 
Echivalenta dintre automatele finite si gramaticile regulare. Echivalenta dintre AF si expresiile regulare. Echivalenta unor tipuri de gramatici independente de context. 	Expunere: descrierea, explicatia, exemplificarea, demonstrarea		
12 Demonstratii, constructii si aplicatii. 
Proprietati ale limbajelor regulare (proprietati de inchidere, lema de pompare). 
Proprietati ale limbajelor independente de context (leme de pompare).	Expunere: descrierea, explicatia, exemplificarea, studiu de caz, demonstrarea		
13. Analiza semantica, forme intermediare, generarea codului intermediar, optimizarea codului intermediar. Introducere	Expunere: descrierea, explicatia, exemplificarea		
14. Aplicatii ale mecanismelor formale studiate in analiza semantica si generarea codului intermediar.	Expunere: descrierea, explicatia, exemplificarea		
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. D. GRIES - Compiler construction for digital computers,, John Wiley, New York, 1971.
4. S. MOTOGNA, – Metode de proiectare a compilatoarelor, Ed. Albastra, 2006
5. SIPSER, M., Introduction to the theory of computation, PWS Pulb. Co., 1997. 
6. L.D. SERBANATI - Limbaje de programare si compilatoare, Ed. Academiei RSR, 1987.
	
8.2 Seminar	Metode de predare	Observaţii	
1.	Specificarea unui limbaj de programare. Notatia BNF	Explicatia, dialogul, studiu de caz	Orele de seminar sint grupate cate 2, la fiecare 2 saptamani	
2.	Gramatici, limbaje generate de o gramatica, gramatica corespunzatoare unui limbaj	Dialogul, dezbaterea, studiul de caz, exemplificarea, demonstratia		
3.	Automate finite: limbaj generat de un automat finit, automat finit corespunzator unui limbaj	Dialogul, dezbaterea, studiul de caz, exemplificarea, 		
4.	Gramatici independente de context. Analiza sintactica LL(1)	Dialogul, dezbaterea, studiul de caz, exemplificarea, 		
5.	Analiza sintactica LR(k)	Dialogul, dezbaterea, studiul de caz, exemplificarea		
6.	Proprietati ale limbajelor. Demostratii si aplicatii. 	Dialogul, dezbaterea, studiul de caz, exemplificarea, demonstratia		
7.	APD. Gramatici de tip 1, 2 si 3 	Dialogul, dezbaterea, studiul de caz, exemplificarea		
			
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. S. MOTOGNA,– Metode de proiectare a compilatoarelor, Ed. Albastra, 2006
4. G. MOLDOVAN, V. CIOBAN, M. LUPEA - Limbaje formale si automate. Culegere de probleme, Univ. Babes-Bolyai, Cluj-Napoca, 1996
	
8.3 Laborator	Metode de predare	Observaţii	
sapt.1,2 
Tema 1: Specificarea uni mini-limbaj de programare si implementarea unui analizor lexical
1.1 specificarea mini-limbajului de programare	Explicatia, dialogul, studiu de caz	Orele de laborator sint grupate cate 2, la fiecare 2 saptamani	
sapt. 3,4: 
Tema 1: Specificarea uni mini-limbaj de programare si implementarea unui analizor lexical
1.2 implemetarea analizorului	Explicatia, dialogul, studiu de caz 		
sapt. 5,6: 
Tema 1: Specificarea uni mini-limbaj de programare si implementarea unui analizor lexical
1.3 testare + predare
Tema 2: Automate finite
2.1 verificarea acceptarii unei secvente
analiza problemei	Dialogul (discutarea datelor de test), evaluare 

Explicatia, dialogul, studiu de caz 		
sapt. 7,8
Tema 2: Automate finite
2.2 verificarea acceptarii unei secvente
implementare, testare si predare	Explicatia, dialogul (discutarea datelor de test), evaluare		
sapt. 9,10
Tema 2 Automate finite
2.3 Rescrieti/adaptati programul de analiza lexicala (tema 1) astfel incat sa foloseasca automate finite pentru a determina secventele corespunzatoare atomilor lexicali	Explicatia, dialogul, studiu de caz		
sapt. 11,12
Tema 3: utilizare lex/flex + yacc/bison 
3.1 implementare	Explicatia, dialogul, studiu de caz		
sapt. 13,14
Tema 3: utilizare lex/flex + yacc/bison 
3.2 testare si predare	Discutarea datelor de test, evaluare		
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. D. GRIES - Compiler construction for digital computers, John Wiley, New York, 1971
4. S. MOTOGNA – Metode de proiectare a compilatoarelor, Ed. Albastra, 2006
5. L.D. SERBANATI - Limbaje de programare si compilatoare, Ed. Academiei RSR, 1987

9. Coroborarea conţinuturilor disciplinei cu aşteptările reprezentanţilor comunităţii epistemice, asociaţiilor profesionale şi angajatori reprezentativi din domeniul aferent programului
•	Tematica cursului respecta recomandarile de continut IEEE si ACM pentru studiile din domeniul informatica
•	Cursul exista in programul de studiu al universitatilor importante din Romania si din alte tari
•	Tematica cursului este considerata de companiile soft ca fiind importanta cel putin pentru programatorii de nivel mediu

10. Evaluare
Tip activitate	10.1 Criterii de evaluare	10.2 metode de evaluare	10.3 Pondere din nota finală	
10.4 Curs	- cunoasterea princiilor de baza ale domeniului
- aplicarea conceptelor studiate la curs
- rezolvarea de probleme	Examen scris	75%	
				
10.5 Seminar/laborator	- sa fie capabili sa implementeze conceptele si algoritmii cursului
	Verificare continua a activitatii in timpul orelor de laborator
- verificarea documentatiei
- verificarea programelor
	25%	
				
10.6 Standard minim de performanţă	
·	 Cel putin nota 5 la examenul scris, si cel putin nota 5 pentru media calculata

Data completării				Semnătura titularului de curs		
...................................					Lect. Dr. LUPSA Dana
Semnătura titularului de seminar
							Lect. Dr. LUPSA Dana

Data avizării în departament			Semnătura directorului de departament
...........................................					…............................