Fakulteta za računalništvo in informatiko · Univerza v Ljubljani
Prevajalniki
Za predmet Prevajalniki še ni zapiskov.
Imaš svoje zapiske? Objavi jih: ceno določiš ti, z naročnino ti ostane cela, DDV se doda kupcu.
Objavi zapiskeČakaš na zapiske? Prijavi se in povej. Ko jih kdo objavi, dobiš sporočilo.
Želim zapiskeKaj lahko narediš že danes
Naloži svoje gradivo za predmet Prevajalniki: Mai ga prebere in ti iz njega naredi kartice, kviz in razlago, ko ti kaj ni jasno. Če zapiske kasneje objaviš, jih prodajaš tukaj.
Naloži svoje gradivoUčni načrt
Podatki so iz učnega načrta, ki ga objavlja Fakulteta za računalništvo in informatiko. Prebrano 7. 9. 2026. Poglej izvirnik
6 kreditnih točk
Obveznosti v urah
- Predavanja45 ur
- Vaje30 ur
- Samostojno delo105 ur
Vsebina
- Uvod: razbitje prevajalnika na prednji in zadnji del, zgradba prevajalnika kot cevovoda, izbira prevajanega programskega jezika in ciljnega zbirnika.
- Leksikalna analiza: opis simbolov programskega jezika z regularnimi izrazi in razbitje prevajanega programa na osnovne simbole;
- domača naloga: izdelava leksikalnega analizatorja na osnovi končnih avtomatov.
- Sintaksna analiza: opis sintakse s kontekstno neodvisno gramatiko, postopek sintaksne analize in reševanje iz napak med sintaksno analizo;
- domača naloga: izdelava sintaksnega analizatorja na osnovi skladovnega avtomata po algoritmu LR.
- Abstraktna sintaksa: poenostavljena interna predstavitev prevajanega programa;
- domača naloga: generiranje abstraktnega sintaksnega drevesa prevajanega programa.
- Semantična analiza: analiza podatkovnih tipov, (ne)dosegljivosti kode,…;
- domača naloga: izdelava semantičnega analizatorja za preverjanje tipov.
- Klicni zapisi: klicni zapisi za aktivacijo (gnezdenih, rekurzivnih) podprogramov, uporaba sklada ali kopice za realizacijo klicnih zapisov;
- domača naloga: načrt klicnih zapisov.
- Vmesna koda: drevesna ali ukazna vmesna koda, uporaba začasnih spremenljivk, nivoji vmesne kode, prevod v vmesno kodo;
- domača naloga: izdelava generatorja vmesne kode.
- Osnovni bloki: kanonizacija klicev in skokov v vmesni kodi, oblikovanje osnovnih blokov, permutacija osnovnih blokov;
- domača naloga: izračun osnovnih blokov.
- Izbira strojnih ukazov: prevod vmesne kode v ukaze zbirnika z uporabo začasnih spremenljivk;
- domača naloga: generator strojne kode brez registrov.
- Analiza aktivnosti začasnih spremenljivk: analiza aktivnosti začasnih spremenljivk na osnovi grafov poteka in podatkovnih enačb;
- domača naloga: izračun interferenčnega grafa spremenljivk.
- Izbira registrov: barvanje interferenčnega grafa in izračun preliva začasnih spremenljivk v klicni zapis;
- domača naloga: izračun preslikave začasnih spremenljivk v registre in preliv.
- Zaključek: domača naloga: združitev prvih desetih domačih nalog v delujoč prevajalnik.
Ocenjevanje
Sprotno preverjanje (domače naloge) 50 %, Končno preverjanje (pisni in ustni izpit) 50 %
Literatura
- Andrew W. Appel, Modern Compiler Implementation in Java, Cambridge University Press, 2002.
- Boštjan Vilfan, Prevajanje programskih jezikov, 1. del, Fakulteta za elektrotehniko in računalništvo, 1991.
- Steven Muchnick, Advanced Compiler Design and Implementation, Morgan Kaufmann, 1997.
Kako deluje
- Zapiske kupiš enkrat in ostanejo tvoji.
- V aplikaciji iz njih dobiš kartice, kvize in Mai, ki pozna gradivo.
- Ceno določi avtor. Prodajalec je Mislo AI, račun dobiš od nas.
