Cod:
Titular curs: Prof. dr. Ion Iancu
Titular laborator: Asist. drd. Mirela Carmen Andrei
Forma de invatamant: lunga
Ciclul: I; Anul III
Semestrul 1, Curs: 2h, Laborator: 2h
Nr. credite:
Profil: informatica
Specializare: informatica
Tip disciplina: obligatorie
Categoria formativa: de specialitate
Obiective:
- Notiuni generale de teoria limbajelor formale.
- Cunoaterea unor elemente de teoria traducerii.
- Cunoasterea principiilor de baza, a etapelor si tehnicilor de proiectare a unui compilator.
- Insusirea unor tehnici de implementare utilizate in teoria compilatoarelor .
Continutul laboratorului:
- Notiuni generale de teoria limbajelor formale.
- Gramatici formale. Ierarhia lui Chomsky.
- Automate finite.
- Automate pushdown.
- Elemente de teoria traducerii
- Scheme de traducere orientate de sintaxa.
- Traducatoare finite
- Traducatoare pushdown.
- Analiza lexicala
- Modele utilizate in proiectarea analizoarelor lexicale .
- Analiza sintactica
- Analiza sintactica descendenta.
- Analiza sintactica ascendenta.
- Analiza sintactica de tip Cooke-Younger-Kasami.
- Analiza sintactica pentru gramatici de precedenta.
- Analiza sintactica LL(k).
- Analiza sintactica LR(k).
- Analiza semantica
- Gramatici cu atribute
- Gramatici L-atributate.
- Exemple de analiza semantica.
- Generarea codului intermediar. Optimizarea codului.
- Forma poloneza.
- Arbori sintactici.
- Cod intermediar cu trei adrese.
- Optimizari simple.
- Optimizari locale.
- Optimizari globale.
- Tabela de simboluri
- Generalitati.
- Organizarea tabelei de simboluri.
- Reprezentarea identificatorilor.
- Tratarea erorilor.
- Erori in analiza lexicala.
- Erori in anliza sintactica
- Erori in analiza semantica
Discipline anterioare cerute:
Discipline anterioare recomandate:
- Algoritmi si structuri de date
Cod: CB3111; CB4108
Forma de evaluare: proiect la laborator + examen
Proiectul la laborator: consta in realizarea urmatoarelor patru lucrari:
Implementarea unor algoritmi prezentati la automate finite si pushdown
Proiectarea unui analizor lexical
Proiectarea unui analizor sintactic
Generare de cod intermediar sau cod obiect pentru o secventa de program data.
Bibliografie:
- A. Aho, J. D. Ullman - The Theory of parsing, Translation and Compiling, Vol I, Compiling, Prentice-Hall, Englewood Cliffs, NewJersey, 1972
- A. Aho, J. D. Ullman - The Theory of parsing, Translation and Compiling, Vol II, Compiling, Prentice-Hall, Englewood Cliffs, NewJersey, 1973
- A. Aho, J. D. Ullman - Principles of compiler design, Addison-Wesley, 1978
- A. Aho, R. Sethi, J. D. Ullman - Compilers. Principles, techniques and tools, Addison-Wesley, 1986
- D. Gries - Compiler construction for digital computers. Wiley and Sons, New York, 1971
- S. Ginsburg - The Mathematical Theory of Context Free Languages. McGraww-Hill, New York, 1966
- A. Hajjam El Hassani - Les compilateurs et leurs priciples. Edition Scientifiques et Tehniques, Ecole Superieure des Sciences Appliquees pour l'Inginieur, Mulhouse, 1993<
- D. E. Knuth - Semantics of programming languages, Math. Systems Theory, 2(1968), 127-145
- I. Iancu - Teoria compilatoarelor, ed. Vlad&Vlad, Craiova, 1997
- I. Iancu, M. Andrei - Teoria compilatoarelor si semantica limbajelor de programare, Reprografia Univ. Craiova, 1998
- L. Livovschi, C. Popovici, H. Georgescu, N. Tandareanu - Bazele informaticii, Editura Didactica si pedagogica, Bucuresti, 1981.
- A. B. Pyster - Compiler design and construction. Tools and techniques, Van Nostrand Reinhold, NeW York, 1988
- T. Rus - Mecanisme formale pentru specificarea limbajelor, Editura Academiei, Bucuresti, 1976
- A. Salomaa - Formal LanguagesAcademic Press, New York, 1973.
- L. D. Serbanati - Limbaje de programare si compilatoare, Editura Academiei, Bucuresti, 1987
- J. P. Tremblay, P. G.Sorenson - The Theory and practice of compiler writing, McGraw-Hill, Inc., New York, 1985
- D. Vaida - Limbaje formale si tehnici de compilare, Tipografia Univ. Bucuresti, 1978.
Modele de proiecte pentru activitatea din timpul anului:
|