Naziv kolegija: Teorija prevođenja i primjene
Nastavnik: prof. dr. sc. Zdravko Dovedan Han
ECTS-bodovi: 6
Jezik: hrvatski
Trajanje: jedan semestar (9.)
Status: izborni za studente jednopredmetnog i dvopredmetnog diplomskog studija informatike, istraživački smjer, izborni za ostale studije
Oblik nastave: 1 sat predavanja - 2 sata seminara - 1 sat vježbi
Uvjeti: Teorija sintaksne analize i primjene
Ispit: pismeni i usmeni
Sadržaj
Uvod u teoriju prevođenja: prevođenje i semantika, sintaksno-upravljano prevođenje, konačni pretvarač, stogovni pretvarač. Jezici za programiranje: generacije jezika za programiranje, definiranje jezika za programiranje, leksička struktura, sintaksna struktura, hijerarhijska struktura jezika, tipovi i strukture podataka. Prevodioci: vrste prevodilaca, faze prevođenja, jednoprolazno prevođenje. Leksička analiza: neizravna leksička analiza, izravna leksička analiza. Sintaksna analiza: rekurzivni spust, prepoznavač jezika sa svojstvima. Generiranje koda: interpretiranje, predprocesiranje. Interpretator jezika PL/0: jezik PL/0, leksička struktura, osnovna sintaksna struktura, prevođenje, interpretator. Jezik DDH: osnovne definicije, definicija semantike, izvođenje naredbi jezika DDH, varijable, naredbe za unos i ispis. Predprocesor jezika DDH: uvod, opis jezika DDH, izbor ciljnog jezika, struktura predprocesora, predprocesor.
Sadržaj vježbi
Vježbe slijede predavanja. Sva teorijska razmatranja i definicije upotpunjavaju se odgovarajućim primjerima. Svi se algoritmi implementiraju u jeziku Python.
Sadržaj seminara
Rješavanje individualnog projektnog zadatka izradom praktičnog programskog rješenja (interpretatora ili predprocesora) u jeziku Python, a za izabrani mini programski jezik. Student predstavlja svoj rad u pisanom obliku i brani ga usmeno pred predmetnim nastavnikom.
Opće i specifične kompetencije
Student će dobiti temeljna znanja iz discipline formalnih jezika, posebno iz teorije leksičke i sintaksne analize jezika za programiranje te teorije prevođenja i bit će osposobljen da može samostalno definirati jezik i po potrebi projektirati odgovarajući prevodilac (interpretator ili predprocesor).
Ishodi učenja
Nakon uspješno savladanog predmeta, student će moći:
1) Definirati formalizme prevođenja formalnih jezika.
2) Opisati leksička, sintaksna i semantička svojstva programskog jezika.
3) Modelirati optimalan postupak leksičke analize jezika za programiranje.
4) Izabrati postupak parsiranja ili prepoznavanja optimalne složenosti za potrebe prevođenja programskog
jezika.
5) Oblikovati i realizirati vlastiti prevodilac (interpretator ili predprocesor) za potrebe krajnjih korisnika.
Način održavanja nastave
- Predavanja: kombinirano, klasično (ploča) i prikazom primjera izvedbom na PCu i projiciranjem uz istodobno pisanje primjera programa od strane studenata na svojim računalima.
- Vježbe: rješavanje postavljenih zadataka i pisanje programa na računalu.
- Seminar: rješavanje zadanog projektnog (seminarskog) rada uz konzultiranje s predmetnim nastavnikom.
Obveze studenata i uvjeti
Obvezno pohađanje nastave (predavanja i vježbi).
Način provjere znanja
Praćenje rada i aktivnosti studenata tijekom semestra:
- pohađanje predavanja – 10 bodova,
- posebna isticanja na vježbama – do 10 bodova.
Seminarski rad:
- Obrana seminarskog rada – 80 bodova
Skala ocjena:
dovoljno (2) 50% - 59%
dobro (3) 60% - 69%
vrlo dobro (4) 70% - 79%
izvrsno (5) 80% - 100%
Obavezna literatura
- Dovedan Han, Z.: FORMALNI JEZICI I PREVODIOCI • prevođenje i primjene, Element, Zagreb, 2013.
Preporučena literatura
-
Aho, V. A.; Ullman, D. J.: The Theory of Parsing, Translation, and Compiling, vol. I: Parsing,
Prentice-Hall, 1972. - Aho, V. A.; Ullman, D. J.: The Theory of Parsing, Translation, and Compiling, vol. II: Compiling, Prentice-Hall, 1973.
- Dijkstra, E.W.: A Discipline of Programming, Prentice-Hall, 1976.
- Dovedan Han, Z.: Pascal s tehnikama programiranja (1), VVG, Velika Gorica, 2011.
- Dovedan Han, Z.: FORMALNI JEZICI I PREVODIOCI • regularni izrazi, gramatike, automati, Element, Zagreb, 2012.
- Dovedan Han, Z.: FORMALNI JEZICI I PREVODIOCI • sintaksna analiza i primjene, Element, Zagreb, 2012.
- Wirth, N.: Algorithms + Data Structures = Programs, Prentice-Hall, 1976.