Metaprogramovanie - koronaprednáška 6
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Prednáška sa venuje generovaniu kódu, teda situácii, keď program vytvára časti iného alebo vlastného programu. Rozlišuje generovanie cudzieho kódu, kde metaprogram slúži ako generátor (UML nástroje, generátory rozhraní webových služieb, prevod tabuľky štruktúr z Excelu alebo špecifikácie formátu EMF z Wordu do Pythonu), a generovanie vlastného kódu v pamäti, ktoré zrýchľuje operácie, napríklad v kombinácii s reflexiou alebo pri spracovaní videa. Ako príklad slúži súťažná úloha s počtom cifier faktoriálu, kde Python predpočítal hodnoty a vygeneroval zdrojový kód v C. Na záver prednášajúci uvádza techniky generovania (interpreter, preklad zdrojového kódu, medzikód, strojový kód) a začína vzor Interpreter s terminálnymi a neterminálnymi výrazmi.
- - Generovanie kódu znamená, že program vytvára časti programu, cudzieho alebo vlastného.
- - Generovanie cudzieho kódu je zápis zdrojového textu a metaprogram slúži ako generátor, napríklad z UML, definície webovej služby alebo tabuliek v dokumentoch.
- - Generovanie vlastného kódu vytvára spustiteľný kód v pamäti počas behu programu.
- - Reflexia je pomalá, ale spolu s generovaním kódu na mieru dosiahne rýchlosť ručne písaného programu.
- - Generovanie kódu je pomalé, no jeho vykonanie býva rýchle, čo využíva napr. spracovanie videa.
- - Príklad zo súťaže: Python predpočítal počet cifier faktoriálov a vygeneroval C program s hotovými hodnotami.
- - Techniky generovania sú vzor Interpreter, preklad vygenerovaného zdrojáku, medzikód a strojový kód.
- - Vzor Interpreter stojí na triede Expression s metódou interpret(kontext) a rozlišuje terminálové a neterminálové výrazy.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky