FESB NASTAVA
Loading...
    Diplomski
    220 Elektronika i računalno inženjerstvo
    2. semestar
    Nema predmeta

    Jezici i prevoditelji

    (FELH06)
    2024/25 godina
    preduvjeti za upis
    nema
    ciljevi predmeta

    Osposobljavanje studenata za:
    • Razumijevanje programskih jezika: imperativnih, objektno orijentiranih, funkcionalnih i logičkih.
    • Izradu leksičkih analizatora te parsera.
    • Korištenje genaratora leksičkih i sintaktičkih analizatora (LEX i YACC)
    • Izradu semantičkog analizatora
    • Izradu generatora koda

    očekivani ishodi učenja

    Studenti će nakon uspješno savladanog predmeta moći:
    1. definirati gramatiku formalnim jezicima (BNF i EBNF) i definirati leksiku pomoću regularne gramatike i regularnih izraza
    2. Napisati program za leksički analizator pomoću programa LEX.
    3. Izraditi parser na temelju LR(1) specifikacije pomoću genaratora parsera YACC
    4. Napisati programski kod za strukture koje se koriste za izradu tablice simbola, tablice tipova te za apstraktno sintaktičko stablo.
    5. Definirati semantičke akcije temeljem pravila određivanja tipova
    6. Napisati programski kod za generator koda

    nositelji predmeta
    nastava i predavači
     
    Predavanja
    45 sati
    3 sata tjedno × 15 tjedana
     
    Laboratorijske vježbe
    15 sati
    1 sat tjedno × 15 tjedana
    sadržaj

    Povijest programskih jezika, uvod u jezik Cool, elementi jezika, struktura kompajlera, regularni i jezici, funkcija značenja, regularni izrazi, algoritam dijeljenja ulaznog stringa, DKA, NKA, regularna gramatika, NKA-DKA, optimizacija DKA, tablica prijelaza, bezkontekstna gramatika, izvodi, višeznačnost, obrada grešaka, RSP algoritam, višeznačnost, prerada slijeva, sadržaj semantičke analize, pojam dosega, tablica simbola, tipovi, pravila određivanja tipova, stanje varijabli, podtipovi, stanje varijabli klase, najmanji nadtip, stanje metoda, implementacija provjere tipova, ograničenja statičke provjere tipova, napredna provjera tipova i SELF TYPE, implementacija SELF_TYPE, greške pri provjeri tipova, organizacija izvođenja, aktivacijski zapisi, poravnavanje memorije, stog mašina, registar mašina, stog mašina s jednim registrom, generiranje koda

    preporučena literatura
    • Aho, Sethi, Ullman: Compilers - Principles, Techniques and Tools, Adison Wesley, 1986.

    • Ivo Mateljan: Prevodioci i interpreteri, skripta, FESB, 2004

    dopunska literatura
    • A. Appel: Modern Compiler Implementation in C, Cambridge University Press, 1997.

    jezik poduke
    Hrvatski
    način praćenja kvalitete i uspješnosti izvedbe svakog predmeta i/ili modula

    Mišljenja studenata o kvaliteti nastave putem anketa.
    Povremeno promatranje i evaluacija nastave od strane predstojnika odsjeka/ šefa katedre, itd.

    ispit (način polaganja, ispitni rokovi)

    Ispit se sastoji od teoretskog i praktičnog dijela. Praktični dio je seminarski rad u kojem studenti izrađuju prevoditelj za jezik Cool u četiri faze. Uvjet za pozitivnu ocjenu je ukupno 50% bodova iz teoretskog dijela ispita.

      Nastavne jedinice za Predavanja Broj sati
    1.

    O predmetu, povijest jezika, ekonomika, uvod u jezik Cool

    3 sata
    2.

    Elementi jezika, struktura kompajlera, početak leksičke analize i primjeri

    3 sata
    3.

    Lekser I - Regularni i jezici, funkcija značenja, regularni izrazi, algoritam dijeljenja ulaznog stringa

    3 sata
    4.

    Lekser II - DKA, NKA, regularna gramatika, NKA-DKA, optimizacija DKA, tablica prijelaza

    3 sata
    5.

    Parser I - Bezkontekstna gramatika, izvodi, višeznačnost, obrada grešaka

    3 sata
    6.

    Parser II - RSP algoritam, višeznačnost, prerada slijeva

    3 sata
    7.

    Semantička analiza I - sadržaj semantičke analize, pojam dosega, tablica simbola, tipovi, pravila određivanja tipova
    stanje varijabl

    3 sata
    8.

    Semantička analiza II - podtipovi, stanje varijabli klase, najmanji nadtip, stanje metoda, implementacija provjere tipova, ograničenja statičke provjere tipova

    3 sata
    9.

    Semantička analiza III - napredna provjera tipova i SELF TYPE, implementacija SELF_TYPE, greške pri provjeri tipova

    3 sata
      Nastavne jedinice za Laboratorijske vježbe Broj sati
    1.

    Postavljanje okruženja za COOL, programski jezik COOL I

    2 sata
    2.

    Programski jezik COOL II

    2 sata
    3.

    Flex I

    2 sata
    4.

    Flex II

    2 sata
    5.

    Bison I - Bison ulazna datoteka, veza Bisona i leksera, Bison semantičke akcije, deklaracije prioriteta i asocijativnosti

    2 sata
    6.

    Bison II - Apstraktno sintaksno stablo, prošireni aritmetički parser, jednostavni interpreter kalkulator

    2 sata
    7.

    Izrada leksera za COOL

    2 sata
    8.

    Izrada parsera za COOL

    2 sata
    9.

    Izrada provjere tipova za COOL

    Niste više prijavljeni

    Istekla vam je prethodna prijava te se morate ponovno prijaviti.

    Nastao je problem u radu sustava

    Informacije o problemu smo pohranili i nastojat ćemo ga riješiti. Ako vas ova greška sprječava da obavite nešto važno, možete nas odmah kontaktirati na helpdesk@fesb.hr.

    Vaš preglednik nije podržan

    Koristite web preglednik koji nije podržan. Za puno korisničko iskustvo, preuzmite najnoviju inačicu vašeg preglednika.