interpret of language ifj08

12
Interpret jazyka IFJ08 Autoři: J. Miklósy, V. Sák, R. Makudera, M. Nechvátal, R. Šebedovský

Upload: jirka-miklosy

Post on 05-Dec-2014

1.318 views

Category:

Technology


2 download

DESCRIPTION

I worked on interpret language IFJ08 with my team.

TRANSCRIPT

Page 1: Interpret of language IFJ08

Interpret jazyka IFJ08

Autoři: J. Miklósy, V. Sák, R. Makudera, M. Nechvátal, R. Šebedovský

Page 2: Interpret of language IFJ08

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

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

Lexikální analýza

Graf konečného automatu

4

Page 5: Interpret of language IFJ08

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

Syntaktická analýza

Gramatika pro tvorbu LL-tabulky :

LL- tabulka

6

Page 7: Interpret of language IFJ08

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

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

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

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

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

Prostor pro dotazy

Děkujeme za pozornost

12