Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Masterat
FIŞA DISCIPLINEI

Codul	Disciplina	
MID1004	Modele formale în limbajele de programare	

Specializarea	Semestrul	Ore: C+S+L	Categoria	Statutul	
Programare bazată pe componente - în limba engleză	2	2+1+1	specialitate	obligatorie	
Metode formale în programare - în limba engleză	2	2+1+1	specialitate	obligatorie	
Modelare şi simulare - în limba engleză	2	2+1+1	specialitate	obligatorie	

Titularii de disciplină	Conf. Dr. MOTOGNA Simona Claudia, motogna@cs.ubbcluj.ro	
Obiective	Familiarizarea studentilor cu ideile fundamentale relative la analiza si proiectarea limbajelor de programare moderne. Prima parte prezinta studiul diferitelor modele de specificare a limbajelor de programare, analiza semantica - faza a constructiei unui compilator, semantcia operationala pentru a specifica modul de calcul dintr-un program si semantica denotationala pentru a specifica ce calculeaza programul. La sfarsitul cursului, studentii vor avea urmatoarele abilitati:
-  sa explice diferenta dintre o semantica informala si una formala si intre diferitele modele: operational, denotational, axiomatic;
- sa inteleaga un model formal pentru un limbaj de programare, sa il poate interpreta si sa poata prezice modul de comporatrea al definitiei semantice;
- sa poata efectua demonstratii a unor proprietati simple pentru un limbaj sau un program, pe baza modelului formal.	
Conţinutul	Cursul va fi structurat pe 3 parti, incepand cu o introducere in metode formale pentru specificarea limbajelor de programare. Va consta din: specificarea formala a constructiilor sintactice intr-un compilator, model operational si denotational pentru un limbaj de programare. Cursul va prezenta treptat modele pentru constructiile de limbaj: tipuri, expresii, instructiuni, functii, subtipizare si pentru diferite tipuri de limbaje: imperative, functionale, logice, orientate obiect. Pentru diferite modele se va discuta si echivalenta semantica.	
Bibliografie	1. BAUER, F.L. - WOSSNER, H.: Algorithmic language and program development, Springer-Verlag, Berlin,1982. 
2. GRUNE, DICK - BAL, H. - JACOBS, C. - LANGENDOEN, K.: Modern Compiler Design, John Wiley, 2000
3. GUNTER, C. &#8211; Semantics of programming languages, MIT Press, 1992
4. Hennessy, M. - The Semantics of Programming Languages. Wiley, 1990
5. MOTOGNA, S. &#8211; Metode de proiectare a compilatoarelor, Ed. Albastra, 2006
6. Schmidt,D.A. - Denotational semantics: a methodology for language development, William C. Brown, 1986.
7.Winskel,G. - The Formal Semantics of Programming Languages: an introduction, MIT Press, 1993
	
Evaluare	Evaluarea va lua in calcul:
- referate din bibliografie suplimentara prezentate public in timpul orelor de seminar.
- proiect care va implementa unul din modelele prezentate la curs pentru un mini-limbaj.

Nota finala se va calcula astfel:
- seminar 30%
- proiect 40%
- examen final 40%
Pentru anul universitar 2008-2009, detalii la
http://cs.ubbcluj.ro/~motogna/FormalModels.html