interpret of language ifj08
DESCRIPTION
I worked on interpret language IFJ08 with my team.TRANSCRIPT
![Page 1: Interpret of language IFJ08](https://reader034.vdocuments.mx/reader034/viewer/2022051514/5481cb1db4af9f9b0d8b4601/html5/thumbnails/1.jpg)
Interpret jazyka IFJ08
Autoři: J. Miklósy, V. Sák, R. Makudera, M. Nechvátal, R. Šebedovský
![Page 2: Interpret of language IFJ08](https://reader034.vdocuments.mx/reader034/viewer/2022051514/5481cb1db4af9f9b0d8b4601/html5/thumbnails/2.jpg)
Součásti projektu
Lexikální analýza
Syntaktická a sémantická analýza
Vestavěné funkce a hashovací tabulka
Interpret
2
![Page 3: Interpret of language IFJ08](https://reader034.vdocuments.mx/reader034/viewer/2022051514/5481cb1db4af9f9b0d8b4601/html5/thumbnails/3.jpg)
Lexikální analýza
Deterministický konečný automat
Vstupem je zdrojový soubor
Výstupem jsou tokeny nebo lexikální chyba
3
![Page 4: Interpret of language IFJ08](https://reader034.vdocuments.mx/reader034/viewer/2022051514/5481cb1db4af9f9b0d8b4601/html5/thumbnails/4.jpg)
Lexikální analýza
Graf konečného automatu
4
![Page 5: Interpret of language IFJ08](https://reader034.vdocuments.mx/reader034/viewer/2022051514/5481cb1db4af9f9b0d8b4601/html5/thumbnails/5.jpg)
Syntaktická analýza
Spolu se sémantickou analýzou se podílí na syntaxí řízeném překladu
Vstupem jsou tokeny
Ukládá instrukce do seznamu
LL-tabulka
Gramatika výrazů
Implementována metodou rekurzivního sestupu
5
![Page 6: Interpret of language IFJ08](https://reader034.vdocuments.mx/reader034/viewer/2022051514/5481cb1db4af9f9b0d8b4601/html5/thumbnails/6.jpg)
Syntaktická analýza
Gramatika pro tvorbu LL-tabulky :
LL- tabulka
6
![Page 7: Interpret of language IFJ08](https://reader034.vdocuments.mx/reader034/viewer/2022051514/5481cb1db4af9f9b0d8b4601/html5/thumbnails/7.jpg)
Syntaktická analýza
Gramatika pro výrazy
Precedenční SA
Implementováno precedenční
tabulkou
Redukce výrazů pomocí zásobníku
Definice gramatiky :
7
![Page 8: Interpret of language IFJ08](https://reader034.vdocuments.mx/reader034/viewer/2022051514/5481cb1db4af9f9b0d8b4601/html5/thumbnails/8.jpg)
Interpret
Postupné zpracovávání instrukcí
Vstupem je seznam instrukcí uložených v tří-adresném kódu
typ instrukce (např. DIV, READ, NOT ...)
• adresa vstupního operandu (op1)
• adresa vstupního operandu (op 2)
• adresa výstupního operandu (op 3)
8
![Page 9: Interpret of language IFJ08](https://reader034.vdocuments.mx/reader034/viewer/2022051514/5481cb1db4af9f9b0d8b4601/html5/thumbnails/9.jpg)
Hashovací tabulka
Tabulka symbolů
Pole lineárních seznamů
Statická velikost hash tabulky je 1024
Pomocí funkce hash se zjistí index pro uložení prvku
Ukládá informace o proměnných
9
![Page 10: Interpret of language IFJ08](https://reader034.vdocuments.mx/reader034/viewer/2022051514/5481cb1db4af9f9b0d8b4601/html5/thumbnails/10.jpg)
Funkce QuickSort
Algoritmus pro seřazení symbolů v řetězci
Řešený rekurzivně
Využívá metodu rozdělení - partition
10
![Page 11: Interpret of language IFJ08](https://reader034.vdocuments.mx/reader034/viewer/2022051514/5481cb1db4af9f9b0d8b4601/html5/thumbnails/11.jpg)
Boyer-Mooreův algoritmus
Vyhledávací algoritmus pro vyhledání vzorku v řetězci
Vzorek se porovnává zprava
Využívá dvě heuristiky
V případě nalezení vrací pozici, jinak vrací -1
11
![Page 12: Interpret of language IFJ08](https://reader034.vdocuments.mx/reader034/viewer/2022051514/5481cb1db4af9f9b0d8b4601/html5/thumbnails/12.jpg)
Prostor pro dotazy
Děkujeme za pozornost
12