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

FISA DISCIPLINEI

Codul
Denumirea disciplinei
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+0
specialitate
obligatorie
Metode formale în programare - în limba engleză
2
2+1+0
specialitate
obligatorie
Modelare şi simulare - în limba engleză
2
2+1+0
specialitate
obligatorie
Titularii de disciplina
Conf. Dr. MOTOGNA Simona Claudia,  motognacs.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.
Continutul
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. – Semantics of programming languages, MIT Press, 1992
4. Hennessy, M. - The Semantics of Programming Languages. Wiley, 1990
5. MOTOGNA, S. – 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 2009-2010, detalii la
http://cs.ubbcluj.ro/~motogna/FormalModels.html
Legaturi: Syllabus-urile tuturor disciplinelor
Versiunea in limba engleza a acestei discipline
Versiunea in format rtf a acestei discipline