mislo

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 zapiske

Kaj 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 gradivo

Uč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

  1. Uvod: razbitje prevajalnika na prednji in zadnji del, zgradba prevajalnika kot cevovoda, izbira prevajanega programskega jezika in ciljnega zbirnika.
  2. Leksikalna analiza: opis simbolov programskega jezika z regularnimi izrazi in razbitje prevajanega programa na osnovne simbole;
  3. domača naloga: izdelava leksikalnega analizatorja na osnovi končnih avtomatov.
  4. Sintaksna analiza: opis sintakse s kontekstno neodvisno gramatiko, postopek sintaksne analize in reševanje iz napak med sintaksno analizo;
  5. domača naloga: izdelava sintaksnega analizatorja na osnovi skladovnega avtomata po algoritmu LR.
  6. Abstraktna sintaksa: poenostavljena interna predstavitev prevajanega programa;
  7. domača naloga: generiranje abstraktnega sintaksnega drevesa prevajanega programa.
  8. Semantična analiza: analiza podatkovnih tipov, (ne)dosegljivosti kode,…;
  9. domača naloga: izdelava semantičnega analizatorja za preverjanje tipov.
  10. Klicni zapisi: klicni zapisi za aktivacijo (gnezdenih, rekurzivnih) podprogramov, uporaba sklada ali kopice za realizacijo klicnih zapisov;
  11. domača naloga: načrt klicnih zapisov.
  12. Vmesna koda: drevesna ali ukazna vmesna koda, uporaba začasnih spremenljivk, nivoji vmesne kode, prevod v vmesno kodo;
  13. domača naloga: izdelava generatorja vmesne kode.
  14. Osnovni bloki: kanonizacija klicev in skokov v vmesni kodi, oblikovanje osnovnih blokov, permutacija osnovnih blokov;
  15. domača naloga: izračun osnovnih blokov.
  16. Izbira strojnih ukazov: prevod vmesne kode v ukaze zbirnika z uporabo začasnih spremenljivk;
  17. domača naloga: generator strojne kode brez registrov.
  18. Analiza aktivnosti začasnih spremenljivk: analiza aktivnosti začasnih spremenljivk na osnovi grafov poteka in podatkovnih enačb;
  19. domača naloga: izračun interferenčnega grafa spremenljivk.
  20. Izbira registrov: barvanje interferenčnega grafa in izračun preliva začasnih spremenljivk v klicni zapis;
  21. domača naloga: izračun preslikave začasnih spremenljivk v registre in preliv.
  22. 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

  1. Zapiske kupiš enkrat in ostanejo tvoji.
  2. V aplikaciji iz njih dobiš kartice, kvize in Mai, ki pozna gradivo.
  3. Ceno določi avtor. Prodajalec je Mislo AI, račun dobiš od nas.