Skip to content

Otazky 2025

Počítačové jazyky, doménovo-špecifické jazyky


  • Vysvetlite pojem DSL, porovnajte GPL a DSL
  • 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

Modularita a architektúra


  • Vysvetlíte čo je to modularita a prečo je podstatná vo vývoji softvéru.
  • Ako súvisí modularita s testovaním softvéru?
  • Vysvetlíte význam pojmu kohézia (cohesion) v softvéru.
  • Vymenujte a stručne vysvetlite hlavné princípy pre dekompozíciu softvérových systémov.
  • V čom spočíva princíp skrývania informácii (information hiding) v návrhu softvéru a ako súvisí s dekompozíciou?
  • Čo je to prepojenosť (coupling) v návrhu softvéru a ako ju môžeme znížiť?
  • Vymenujte a stručne vysvetlíte 4 oblastí, ktoré sú súčasťou architektúry softvéru.
  • Aké vlastnosti by mal mať softvérový architekt?
  • Vymenujte a stručne vysvetlite SOLID princípy.
  • Vysvetlite princíp „čistej architektúry“.
  • Vysvetlíte princíp otočenia závislostí a aký problém je možné pomocou neho riešiť.
  • Vymenujte a stručne opíšte aspoň 4 architektonické štýly
  • Aké sú výhody a nevýhody distribuovaných architektúr.
  • Aký je význam záznamov o architektonických rozhodnutiach (Architecture Decision Records) a aké položky by mali obsahovať?

Fomálne metódy


  • 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?