Prevođenje programskih jezika
Prikazani su podaci za akademsku godinu: 2023./2024.
Predavanja
Laboratorijske vježbe
Opis predmeta
Proučavaju se procesi postupnog hijerarhijskog prevođenja korisničkih jezika, viših programskih jezika i jezika hijerarhije virtualnih strojeva u ciljni jezik odabranog računalnog sustava. Opisuju se tehnike i načela procesa prevođenja jezika potrebnih u suvremenim sveprisutnim, svakidašnjim i nevidljivim raspodijeljenim računalnim sustavima. Daje se kratki pregled i povijest programskih jezika i jezičnih procesora. Prevođenje jezika objašnjava se osnovnim procesima analize izvornog i sinteze ciljnog programa. Uključene su osnovne faze analize (leksička, sintaksna i semantička analiza) i sinteze (generiranje međukôda, generiranje ciljnog programa i optimiranje). Razmatra se priprema i potpora izvođenju programa. Proučavaju se generatori jezičnih procesora.
Studijski programi
Sveučilišni preddiplomski
[FER3-HR] Računarstvo - studij
(5. semestar)
[FER2-HR] Obradba informacija - modul
Obvezni predmeti modula - po izboru
(5. semestar)
[FER2-HR] Programsko inženjerstvo i informacijski sustavi - modul
(5. semestar)
[FER2-HR] Računarska znanost - modul
Obvezni predmeti modula - po izboru
(5. semestar)
[FER2-HR] Telekomunikacije i informatika - modul
Obvezni predmeti modula - po izboru
(5. semestar)
Ishodi učenja
- raščlaniti postupak oblikovanja računalnog sustava na analizu problema i sintezu rješenja
- opisati leksička, sintaksna i semantička svojstva programskog jezika primjenom formalne gramatike
- usporediti i odabrati formalnu gramatiku optimalne složenosti za potrebe opisa programskog jezika
- usporediti i odabrati postupak parsiranja optimalne složenosti za potrebe prevođenja programskog jezika
- razviti prevoditelj programskog jezika na osnovi formalnog opisa jezika
- dizajnirati proces prevođenja programskog jezika koji učinkovito koristi sredstva procesora i memorijske hijerarhije
Oblici nastave
Predavanja
Predavanja popraćena PowerPoint projekcijom s prikazom teorijskih načela, popratnim primjerima i rješavanjem zadataka
LaboratorijProgramsko ostvarenje dijelova ili cjelokupnog jezičnog procesora. Studenti samostalno programski ostvaruju laboratorijski zadatak i putem web-aplikacije predaju rješenja na automatizirano ocjenjivanje.
Način ocjenjivanja
Kontinuirana nastava | Ispitni rok | |||||
---|---|---|---|---|---|---|
Vrsta provjere | Prag | Udio u ocjeni | Prag | Udio u ocjeni | ||
Laboratorijske vježbe | 50 % | 30 % | 50 % | 0 % | ||
Međuispit: Pismeni | 50 % | 35 % | 0 % | |||
Završni ispit: Pismeni | 50 % | 35 % | ||||
Ispit: Pismeni | 50 % | 100 % | ||||
Ispit: Usmeni | 100 % |
Tjedni plan nastave
- Programi za analizu (drugih) programa: interpretatori. kompilatori. programi za provjeru tipova podataka. generatori dokumentacije, Strukture podataka za prikaz programa tijekom izvođenja. prevođenja i prijenosa, Razlika između interpretacije. prevođenja u strojni jezik i prevođenja u prenosivi međukod, Faze prevođenja programskog jezika: parsiranje. provjera tipova podataka. prevođenje. povezivanje. izvođenje
- Leksička analiza primjenom regularnih izraza, Generatori leksičkog analizatora
- Parsiranje od vrha prema dnu (S. Q i LL(k) gramatika. tehnika rekurzivnog spusta)
- Parsiranje od dna prema vrhu (pomakni-pronađi. pomakni-reduciraj. LR parsiranje)
- Generatori parsera (sintaksnog analizatora)
- Apstraktno sintaksno stablo, Atributno sintaksno stablo, Međukod visoke razine. apstraktno sintaksno stablo, Djelokrug deklaracije imena
- Provjera tipova podataka, Atributna i atributna prijevodna gramatika
- Međuispit
- Potpora izvođenju programa: tablice metoda za rukovanje objektima i okruženja za rukovanje funkcijama, Organizacija memorije tijekom izvođenja programa: stog. gomila. statička memorija, Pozivi procedura i metoda
- Upravljanje memorijom, Izravno upravljanje memorijom: zauzimanje. oslobađanje i ponovno korištenje memorije gomile, Automatsko upravljanje memorijom: pronalazak napuštenih memorijskih područja, Postupci i tehnike dinamičkog upravljanja memorijom: zauzmi/oslobodi. pronalazak napuštenih memorijskih područja
- Memorijska organizacija programskih objekata i poziva potprograma, Dinamičko interpretiranje programa, Osnovna svojstva virtualnih strojeva: učitavanje razreda. višedretvenost. sigurnost, Statičko i dinamičko povezivanje
- Osnovni blokovi, Statičko jednostruko pridruživanje, Izvorni program. strojni program. program virtualnog stroja, Zasebno prevođenje dijelova programa. Povezivanje, Izvodivi ciljni program. premjestivi ciljni program. program virtualnog stroja, Sintaksom upravljano generiranje ciljnog programa, Generiranje međukoda
- Graf tijeka izvođenja, Definicija-uporaba lanci, Izbor redoslijeda instrukcija, Odabir strojnih naredbi, Dodjela registara
- Programsko ostvarenje petlji. rekurzije i završnih funkcijskih poziva, Strojno nezavisno optimiranje, Strojno zavisno optimiranje, Optimiranje zasnovano na prozorčiću
- Završni ispit
Literatura
Siniša Srbljić (2009.), Prevođenje programskih jezika, Element
Za studente
Izvedba
ID 183425
Zimski semestar
5 ECTS
R3 Engleski jezik
R2 E-učenje
60 Predavanja
0 Seminar
0 Auditorne vježbe
10 Laboratorijske vježbe
0 Konstrukcijske vježbe
Ocjenjivanje
88 izvrstan
75 vrlo dobar
63 dobar
50 dovoljan