13M111PP2 - Programski prevodioci 2

Opšte informacije o predmetu
Tip studija Master akademske studije
Nastavnik
Pravila polaganja ispita Rad na predmetu je mentorski uz konsultacije sa nastavnikom. Studenti su u obavezi da urade praktičan projekat po temi koju biraju u dogovoru sa predmetnim nastavnikom. Studenti predaju urađeni projekat i zatim ga usmeno brane u terminu ispita.
Cilj kursa Studenti treba da steknu bolje razumevanje sledećih tema: raznovrsne tehnike parsiranja; otkrivanje grešaka i oporavak; predstavljanje međukoda; Optimizacija koda; upravljanje memorijom; generisanje koda. Sposobnost primene naprednih alata za konstrukciju kompajlera i jezičkih procesora.
Sadržaj predmeta
Sadržaj teorijske nastave Napredne tehnike leksičke i sintaksne analize. Oporavak od grešaka u parsiranju. Napredno generisanje međukoda SSA. Izvršno okruženje:strategije dodele i oslobađanja memorije, virtuelne mašine. Napredniji generatori koda. Optimizacije za klasične arhitekture: lokalne i globalne. Napredni alati za konstrukciju kompajlera LLVM i drugi.
Sadržaj praktične nastave Praktičan projekat implementacije zadatog algoritma iz oblasti konstrukcije prevodioca koji student samostalno izrađuje.
Literatura
  1. Modern Compiler Implementation in Java 2nd Ed, A. W. Appel, Cambridge University Press, 2002
  2. Compilers/Principles, Techniques and Tools, 2ed, A. Aho, M. Lam, R. Sethi, J. Ullman, 2006.
  3. Low Level Virtual Machine https://llvm.org/docs/
  4. Advanced Compiler Design & Implementation, S. Muchnick, Morgan Kaufmann, 2003.