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. (link na tabelu će biti naknadno postavljen)

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. (Moguće su izmene u toku godine, proveriti spisak pitanja krajem maja.) U okviru ispita, izvlačite pet pitanja sa spiska ispitnih pitanja. Svako pitanje vredi 10 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.

Teorijski deo ispita možete polagati i u toku godine, putem testova, u okviru regularnih termina predavanja. Jedan test je odgovaranje na jedno ispitno pitanje. Svako odogovara na pitanje koje izvuče. Test traje oko 15 minuta. Test nije obavezan, možete raditi test po izboru (tj testovi se međusobno ne uslovljavaju). Takođe, rezultati testa važe u svakom ispitnom roku. Ako položite, na primer, tri pitanja preko testova (npr prvo, drugo i četvrto) onda na ispitu polažete preostala dva (treće i peto). Rezultati testa su konačni, tj kako tu nema iznenađenja (ispitna pitanja su poznata u napred) onda nema ni ponavljanja polaganja istog ispitnog pitanja.

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)

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