Vysvetlite čo je paradigma programovacieho jazyka, uveďte príklady
Opíšte spôsob použitia DSL v softvérovom vývoji - architektúra spracovania DSL
Porovnajte modely a programy - rozdiely a podobnosti, vykonateľné modely
Charakterizujte výhody a nevýhody použitia DSL v softvérovom vývoji
Argumentujte prečo je nejaký konkrétny jazyk DSL, resp. GPL
Opíšte a rozlíšte konkrétnu a abstraktnú syntax jazyka a sémantiku jazyka
Charakterizujte jazykový (sémantický) model a jeho zápis v OOP, uveďte príklad zápisu jazykového
modelu v OOP
Porovnajte externé a interné DSL, ich vlastnosti, výhody a nevýhody ich aplikácie
Aký je rozdiel medzi použitím generovania a interpretácie pri implementácii DSL
Rozlíšte vzory pre implementácie interných DSL
Function Sequence
Nested Function
Method Chaining
Literal List/Map
Porovnajte regulárne a bezkontextové jazyky - štruktúra gramatiky a automatu
Opíšte lexikálnu, syntaktickú a sémantickú analýzu - fázy spracovania vety jazyka
Porovnajte prístupy pri spracovaní vety z jazyka - zhora nadol (top-down) a zdola nahor (bottom-up)
Opíšte ako funguje spracovanie viet na základe oddeľovačov - delimiter-directed translation (parsing)
Napíšte gramatiku v BNF pre určený jazyk
Opíšte stromové reprezentácie viet - strom odvodenia (parse tree), abstraktný syntaktický strom - ich
vytvorenie a prechádzanie
Charakterizujte prácu so symbolmi v programoch - tabuľka symbolov, oblasti viditeľnosti
Opíšte generátory jazykových procesorov - načo slúžia a ako sa používajú (napr. Antlr)
Opíšte vzťah doménovo-špecifických jazykov a modelom riadeného vývoja softvéru - DSL
(Domain-specific language) a MDSD (Model driven software development)
Charakterizujte jazykové prostredie - funkcie, význam, príklady (language workbenches)
Opíšte princíp projekčných editorov, porovnajte ich s klasickými textovými editormi
Opíšte generovanie kódu z modelu a porovnajte
generovanie pomocou šablón vs. generovanie transformáciou (Templated Generation vs.
Transformer Generation)
○ generovanie s použitím modelu a bez (Model-Aware Generation vs. Model Ignorant Generation)
Ako je možné prepojiť generovaný kód a ručne napísaný kód - význam jeho oddelenia
FM.1 Čo je formálna metóda a z čoho pozostáva? Aký je vzťah medzi formálnymi metódami a
programovacími jazykmi? Aké sú výhody a nevýhody formálnych metód?
FM.2 Čo rozumieme pod pojmom vyjadrovacia sila formálnej metódy? Na aké úrovne vieme
rozdeliť formálne metódy?
FM.3 Ako je formálne definovaná syntax a sémantika Petriho sietí?
FM.4 Opíšte postup výpočtu invariantov v Petriho sieťach (môžete aj na príklade).
FM.5 Čo je B-Metóda? Aké špecifikačné komponenty sa v nej používajú? Ako je definovaný
vývojový proces v B-Metóde?
FM.6 Čo je zovšeobecnená substitúcia (generalised substitution)? Ako je formálne definovaná
sémantika zovšeobecnenej substitúcie?