Informácie o predmete

Anotácia

Oboznámite sa s pokročilými vlastnosťami programovacích jazykov, ktoré umožňujú programom analyzovať a upravovať vlastnú štruktúru a kód. Naučíte sa využívať rôzne formy metaprogramovania, reflexiu, atribútové programovanie, aspektovo-orientované programovanie.

Zápočet

  • Zadanie: 3 iterácie po 10 bodov
  • Aktivita — 10 bodov

Skúška

  • Písomná práca — 10 bodov
  • Povinné čítanie — 10 bodov
  • Ústna skúška — 40 bodov

Okruhy skúškových otázok

  1. Metaprogramovanie — definícia, použitie, typy metaprogramovania
  2. Reflexia — definícia, prostriedky realizácie reflexie, použitie v jazyku Java
  3. Zásobník volaní a jeho introspekcia
  4. Realizácia tried v jazyku Java a ich načítavanie (ClassLoader)
  5. Dynamické proxy v jazyku Java
  6. Anotácie — význam a typy metadát v programovom kóde, ich použitie
  7. Anotácie v jazyku Java — definícia a použitie anotačných typov pomocou reflexie
  8. Spracovanie anotácií počas prekladu — anotačný procesor
  9. Princíp inverzie závislosti v architektúre softvéru a vzor Dependency Injection
  10. Generovanie kódu — typy generátorov a techniky generovania kódu
  11. Vývoj softvéru na základe modelu (MDSD), význam modelu pri generovaní
  12. Makrá a ich použitie v programovacích jazykoch
  13. Systémy typov a ich využitie
  14. Aspektovo orientované programovanie — význam, základné vlastnosti, realizácia v AspectJ
  15. AspectJ — body spájania a súvisiace bodové prierezy (kinded pointcuts)
  16. AspectJ — non-kinded pointcuts (scoping pointcuts, contextual pointcuts)
  17. AspectJ — odporučenia
  18. AspectJ — statické pretínanie (medzitypové deklarácie, dedenie, varovania a chyby, atď.)

Moodle

Metaprogramovanie na Moodle