interpret of language ifj08

Post on 05-Dec-2014

1.318 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

I worked on interpret language IFJ08 with my team.

TRANSCRIPT

Interpret jazyka IFJ08

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

Součásti projektu

Lexikální analýza

Syntaktická a sémantická analýza

Vestavěné funkce a hashovací tabulka

Interpret

2

Lexikální analýza

Deterministický konečný automat

Vstupem je zdrojový soubor

Výstupem jsou tokeny nebo lexikální chyba

3

Lexikální analýza

Graf konečného automatu

4

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

Syntaktická analýza

Gramatika pro tvorbu LL-tabulky :

LL- tabulka

6

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

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

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

Funkce QuickSort

Algoritmus pro seřazení symbolů v řetězci

Řešený rekurzivně

Využívá metodu rozdělení - partition

10

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

Prostor pro dotazy

Děkujeme za pozornost

12

top related