Konstrukcija kompilatora

I smer

Kurs Konstrukcija kompilatora je izborni kurs na četvrtoj godini I smera u okviru kojeg se proučavaju osnovni koncepti konstrukcije kompilatora (ili kompajlera, eng. compiler):

  • Semantička analiza
  • Optimizacija koda
  • Generisanje koda
  • LLVM infrastruktura
U okviru studija postoje i drugi kursevi koji se bave bliskim temama.

Predmetni nastavnik:

Asistent:

Tekući rezultati

Tekuće rezultate možete pratiti preko naredne tabele.

Izborni predmet

  • 6 ESPB bodova
  • 2 časa predavanja
  • 3 časa vežbi

Završni ispit

  • teorija: 50 poena, radi se 60 minuta
  • zadaci: 50 poena, radi se 120 minuta
BITNO: Da bi se položio ispit, potrebno je da se ostvari najmanje 51 poen, od čega najmanje 20 poena na teoriji i najmanje 25 poena na zadacima.

Ispitna pitanja

Spisak ispitnih pitanja možete pronaći ovde. U okviru ispita, izvlačite četiri pitanja sa spiska ispitnih pitanja. Svako pitanje se boduje sa 12.5 poena. Odgovarate pismeno. Teoriju možete polagati u istom roku sa praktičnim delom ispita (u istom terminu, odmah nakon završenog praktičnog dela) ili u nekom od narednih rokova, u terminima praktičnog dela ispita.

Teoriju možete da polažete i iz dva puta - prva dva ispitna pitanja (1-19) u jednom roku i druga dva ispitna pitanja u drugom roku (20-40).
Prvo ispitno pitanje 1-11, drugo ispitno pitanje 12-19, treće ispitno pitanje 20-31, četvrto ispitno pitanje 32-40.

Primeri prakitčnog dela ispita

Seminarski rad

Seminarski rad menja praktični deo ispita ukoliko student to želi. Seminarski rad se radi u grupama od dva do četiri studenta. Maksimalan broj bodova koji se može osvojiti je 50, a za polaganje ispita je potrebno 25 poena. Seminarski rad se može braniti u jednom terminu u svakom ispitnom roku. Teme se dogovaraju sa predmetnim asistentom.

Materijali sa časova

Napomena: ovi materijali biće dopunjavani i menjani u toku godine.

Materijali sa časova

Neki projekti od prethodne godine se mogu naći ovde.

Forma za prijavu projekta.

Ukoliko želite da radite projekat molimo da svoje ime upišete u tabelu. Ukoliko želite da polažete ispit, molimo upišite svoje ime u tabelu.

Snimci sa vežbi.

Virtuelna mašina za Konstrukciju kompilatora se može naći ovde.

Kratko uputstvo za podešavanje virtuelne mašine.

Skripta za skidanje unapred buildovane verzije projekta unutar VM-a.

Skripta za ručno buildovanje projekta. Postaviti je u direktorijum llvm-project, tj direktorijum koji ste dobili kada ste klonirali llvm repozitorijum.


Literatura za predavanja

Literatura za vežbe

  • C++: Klasa razlomak, C++ kroz primere, Saša Malkov (pdf)
  • Yacc-skripta, Filip Marić (pdf)
  • GNU programerski alati, Aleksandar Samardžić (pdf)
  • Skripta iz C++-a (pdf)
  • LLVM tutorijal (link)
  • Video materijali (link)

Ispit i odbrana projekata u roku januar 1

Praktični i teorijski deo ispita počinju u 9h na Trgu u učionici BIM. Odbrane projekata počinju od 11:00h na istom mestu.


19.08.2025.

Polaganje ispita

Teorijski deo ispita

Spisak ispitnih pitanja možete pronaći ovde. U okviru ispita, izvlačite četiri pitanja sa spiska ispitnih pitanja. Svako pitanje se boduje sa 12.5 poena. Odgovarate pismeno. Teoriju možete polagati u istom roku sa praktičnim delom ispita (u istom terminu, odmah nakon završenog praktičnog dela) ili u nekom od narednih rokova, u terminima praktičnog dela ispita. Teoriju možete da polažete i pre nego što izađete na praktični deo ispita. U tom slučaju, teorija će biti pregledana tek nakon što položite praktični deo.

Teoriju možete da polažete i iz dva puta - prva dva ispitna pitanja (1-19) u jednom roku i druga dva ispitna pitanja u drugom roku (20-40).
Prvo ispitno pitanje 1-11, drugo ispitno pitanje 12-19, treće ispitno pitanje 20-31, četvrto ispitno pitanje 32-40.

Ukoliko je neko polagao deo teorije prošle godine i želi da to iskoristi, to može da uradi u prva dva ispitna roka. U ta dva roka može da se polaže teorija po starom (dakle teorija koja uključuje stara ispitna pitanja i ukupno pet pitanja). Potrebno je da se pre ispita javite predmetnom asistentu kako biste dobili odgovarajuća pitanja. U preostalim rokovoma nije moguće polagati po starom.

Praktični deo ispita

Praktični deo ispita se može polagati preko projekta ili izlaskom na praktični deo u ispitnom roku. Gradivo za studente koji izlaze na praktični deo ispita je redukovano i ne obuhvata časove 5, 12 i 13. Snimci svih vežbi od ranijih godina se mogu naći ovde.

22.07.2025.

Način polaganja praktičnog dela ispita

Praktični deo ispita se može polagati na 2 načina:
  • Projekat
  • Ispit
Projekti se rade u timovima od 2 do 4 osobe. Temu studenti biraju sami uz dogovor sa asistentom. Projekat može biti dopuna optimizacije rađene na času, ili neka optimizacija koja nije rađena na času. Zavisno od broja ljudi u timu se definiše i obim teme. Temu je moguće menjati bilo kada do odbrane projekta. Moguće je odabrati projekat pa polagati ispit ili obrnuto. Odbrane projekta se organizuju u svakom ispitnom roku u danu održavanja praktičnog dela ispita.

04.03.2025.

Početak semestra

Svi materijali potrebni za pripremu ispita su dostupni sa kartica za predavanja i vežbe. Po okončanju blokada, nastava će biti organizovana u skladu sa opštim dogovorom sa studentima. Za sva pitanje i dodatne informacije možete poslati mejl.

17. 02. 2025.

Matematički fakultet, Univerzitet u Beogradu
školska 2024/25. godina