You are on page 1of 5

UNIVERZITET U NOVOM SADU DATUM:

TEHNIČKI FAKULTET „MIHAJLO PUPIN“ PREZIME I IME:


ZRENJANIN
Nastavni predmet: PROGRAMSKI PREVODIOCI BROJ INDEKSA:
TEORIJSKI TEST

1. (4) Navesti i objasniti komponente kompajlera u odnosu na osnovne faze i aktivnosti


rada kompajlera.

Osnovne komponente kompajlera su odreĎene fazama i aktivnostima:


I FAZA – ANALIZA (“Front-end”)
1. LEKSIČKI ANALIZATOR - SKENER realizuje leksičku analizu izvornog
programskog koda. Prepoznaje lekseme (reči) u početnom tekstu i zamenjuje ih
tokenima (opštijim oblikom).
2. SINTAKSNI ANALIZATOR - PARSER realizuje sintaksnu analizu nad prethodno
tokenizovanim tekstom.
3. SEMANTIČKI ANALIZATOR
4. GENERATOR MEĐUKODA
II FAZA – SINTEZA (“Back end”)
1. MAŠINSKI NEZAVISAN OPTIMIZATOR MEĐUKODA
2. GENERATOR ASEMBLERSKOG KODA
3. MAŠINSKI ZAVISAN OPTIMIZATOR ASEMBLERSKOG KODA
4. GENERATOR MAŠINSKOG KODA

2. Vrste programskih jezika prema paradigmi – navesti, kratko objasniti.

Imperativni programski jezici – naredbe opisuju kako treba da se realizuje neka aktivnost. Podrvrste:
proceduralni (Fortran, Basic, COBOL), objektno-orjentisani (C++, Java), skriptni jezici (JavaScript, Perl)
Deklarativni programski jezici – naredbe opisuju šta je potrebno da bude uraĎeno, ali ne i kako.
Podvrste: Funkcionalni (primer LISP), Logički (primer PROLOG)
Objasniti pojam skriptnih jezika.

3. Pojam skriptnih jezika.

4. Matematička definicija formalne gramatike.


Matematička definicija formalne gramatike
Def – Formalna gramatika je uređena četvorka G=(V, T, S, P) gde je:
V - promenljive, neterminali, sintaksne kategorije (“variables”) – konačan neprazni
skup promenlivih, elementi koji mogu biti zamenjeni drugim promenljivama ili
konstantama.
T (ili Σ) – terminali, konstante, literali (“terminals”) – konačan skup konstanti koji ne
mogu biti zamenjeni nekim drugim elementom putem primene pravila. Elementi ovog
skupa ulaze u sastav reči jezika. Prvenstveno skup “Terminali” čini alfabet, tj. neprazni
skup dozvoljenih simbola tj. karaktera. U širem tumačenju, tu pripadaju konstante –
reči.
S – startna varijabla ili promenljiva (“start variable”) – inicijalna promenljiva gramatike,
pripada skupu V. Najčešće je to glavna sintaksna kategorija.
P – produkcije, pravila (“productions”) – konačan skup pravila za prevođenje iz jednog
u drugi element
.
5. Navesti kategorije formalnih gramatika prema Avram Noam Chomsky.
Kategorizacija formalnih gramatika prema Avram Noam Chomsky, u odnosu na vrste
elemenata leve i desne sekvence produkcionih pravila (alfa i beta), tj. pravila P formalne
gramatike G:
Tip 0 – Opšte gramatike (Unrestricted grammar, Turing-recognizable)
Tip 1 – Konteksno-zavisne gramatike (Context-sensitive)
Tip 2 – Konteksno-nezavisne gramatike (Context-free) ----ATRIBUTIVNA GRAMATIKA
Tip 3 – Regularne gramatike (Regular)
6. (3)Koji tipovi formalnih gramatika se koriste u konstrukciji programskih prevodilaca?
 konteksno- slobodne (za opis sintakse programskih jezika)
 atributivne (podrvrsta konteksno-slobodnih)– za konstrukciju kompajlera, za procesiranje
semantike programskih jezika
 regularne gramatike – za regularne izraze, tj. opis leksičkih elemenata jezika

7. Objasniti razliku između EBNF i BNF.

EBNF pravila se razlikuju od BNF:


1. Simbol dodele je = umesto ::=
2. Iza svakog elementa izraza se stavlja zarez, kako bi se povezali elementi
3. Nakon svakog pravila se stavlja simbol za kraj ;
4. Koriste se simboli [ ], {}, ()

8. Nacrtati primer sintaksnog dijagrama. 9. Nacrtati opšti model automata.


10. (2) Objasniti razliku između Tjuringove mašine i Univerzalne Tjuringove mašine.

11. Navesti vrste automata za rad sa formalnim jezicima.

12. Uloga međukoda.

13. Dve vrste prezentacije međukoda.


14. Pojam regularnih izraza.

Regularni izrazi predstavljaju mehanizam, baziran na šablonu, koji služi za proveru ispravnosti unetih stringova,
kao I izdvajanje elemenata unetog stringa (jedne pojave ili skupa pojava sačuvanih u memorijsku kolekciju),
zamenu podstringova i slično.

15. (2) Objasniti razliku između skenera i parsera.

16. (2) Navesti najčešće korišćene strukture podataka u radu kompajlera.


 Stablo (drvo) – sintaksno drvo, drvo parsiranja
 Tabela simbola
 Memorijska struktura: Stek (stek frejm)

17. (2) Objasniti razliku izmedju izvodjenja i redukcije u radu parsera.

18. Definicija transkompajlera.

19. Objasniti principfunkcionisanja Java Virtualne mašine.

JAVA VIRTUALNA MAŠINA (JVM) – program čija je namena da izvršava druge programe,
napisane primenom java
programskog jezika. Cilj JVM je da omogući da se java programi mogu izvršavati na bilokojem
uređaju ili operativnom
sistemu. JVM predstavlja apstrakciju prave mašine, tj. platforme (hardvera i operativnog sistema).

20. (2) Objasniti razliku izmedju native i cross kompajlera.

You might also like