Lekce 17 - Interpreter
V dnešním tutoriálu Návrhové vzory GoF si představíme návrhový vzor chování Interpreter, který definuje způsob implementace interpretace nějakého jazyka pomocí objektově orientovaného programování.
Motivace použití vzoru Interpreter
I když je v dnešní době spíše přebytek programovacích jazyků, občas se stále můžeme dostat do situace, kdy je výhodné implementovat nějaký vlastní metajazyk. Např. nějakou českou obdobu SQL pro firemní skripty, kterou budou umět ovládat i osoby bez znalosti angličtiny a bude mít i o něco jednodušší gramatiku. Kód v takovém jazyce by mohl vypadat například takto:
Aktualizuj osoby a nastav jim jmeno na "Jan" když mají jmeno "Honza"
Kód v tomto jazyce bychom následně chtěli zpracovat, převést (interpretovat) na kód nějakého jiného jazyka. Například spouštět opravdové SQL příkazy na základě tohoto českého databázového jazyka. Nemusí se jednat jen o interpretaci vlastního programovacího jazyka, ale také například o vyhodnocení matematického výrazu.Pro ideální implementaci našeho interpreteru nemusíme chodit daleko, je jedním z návrhových vzorů GoF.
Definice vzoru Interpreter
Vzor řeší, jak kód jazyka reprezentovat v paměti jako množinu objektů a jak jej následně spustit. Naopak vůbec neřeší problém parsování zdrojového kódu do tohoto objektového modelu. Pouze popisuje, jak by měl model vypadat a jak jej následně vyhodnocovat. Funkční parsování matematických výrazů si ukážeme na příkladu níže. Interpreter zavádí dva základní typy výrazů jazyka:
...konec náhledu článku...
Pokračuj dál
Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.
Koupit tento kurz
Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.
- Neomezený a trvalý přístup k jednotlivým lekcím.
- Kvalitní znalosti v oblasti IT.
- Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.
Popis článku
Požadovaný článek má následující obsah:
V tutoriálu Návrhové vzory GoF si představíme návrhový vzor Interpreter, který definuje jakým způsobem implementovat interpretaci nějakého jazyka.
Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.