Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bnf, ebnf, sint dijagrami:
- bnf(bakus naurova forma) ti je kako se zapisuje gramatika
- sastoji se od MLF(metalingvistickih formi)
- koje su u sustini linije parsera tipa
- E: E + E
- EBNF ti je prosirena BNF, samo dodato * + ko u regexu, [] za opciono i () za grupisanje
- sint dijagrami crtezi ko iz baza
- semant analiza:
- akcije parsera, tablica prom, konverzije tipova, klase za cvorove sint stabla
- generisanje medjukoda:
- dodavanje skokova i adresa
- optimizacija:
- opt medjukoda i opt ciljnog koda - arh asembl masinski jezik
- const folding (sracunavanje)
- const propagation (ne cuvanje u prom)
- strength reduction (* u <<)
- common subexpr elimination (ne racunanje 2 put)
- copy propagation (brisanje nepotrebnih kopija)
- dead code elimination
- optim petlji
- generisanje koda:
- odabir instrukcija
- dinamickim alg nalazimo optimalno pokrivanje stabla instrukcija
- alokacije registara
- liveness analysis => graf prom cvorovi, grane istovremenost => bojenje grafa
- rasporedjivanje instrukcija
- menjamo redosled da bolje iskoristimo pipelining
- serijalizacija = zapis u fajl
- AST
- c - cvor
- java/cpp - hijerarhija klasa
- haskel - lepi jednostavni tip
- Izgradnja
- Yacc/Bison
- rek spust
- DAG je efikasniji
- Izracunavanje => mapa
- Stek masina push pop jump
- Tablica simbola treba da sadrzi i scope
- Semant analiza konverzija tipova glavni zadatak
- Medjukod
- razni jezici koriste isti
- vrste: DAG, postfix, 3AC, graf toka kontrole, SSA(Static single asignment form)
- TAC:
- aritmetika se prevodi u akcijama
- logika:
- kod izracunava
- slicno kao aritmetika, boli nas uvo za lenjo izracunavanje
- kod odredjuje kontrolu toka
- uzimamo u obzir lenjo izracunavanje i stvaramo ga naredbama skoka
- Kod se deli na basic blocks koji se povezuju u control flow graph (CFG)
- bb = instrukcije koje idu zajedno, nema goto sem na kraju
- podela je u sustini nalazenje instrukcija koje su vodje blokova, tj od kojih se krece,
- prva, one na koje se skace, instrukcije posle skoka
- delimo na bb da bi olaksali analizu koda (za optim)
- od bb se pravi graf kontrole toka
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement