Otázky z PRE 2011
Z Milan Kerslager
Otázky z PRE (Překladače, vyučovaný na Pedagogické fakultě Technické univerzity v Liberci) slouží jako osnova předmětu a jako otázky ke zkoušce. Odkazy do internetové encyklopedie Wikipedia nemusí správně nebo úplně popisovat dané téma, poskytují jen vodítko při samostatném studiu a jako témata pro vypracování zápočtu.
- Překladače a programovací jazyky
- rozdělení programovacích jazyků, příklady programovacích jazyků
- preprocesor, makra, podmíněný překlad (u preprocesoru jazyka C)
- kompilátory, interprety, hybridní překladače, JIT, příklady překladačů
- Vnitřní struktura překladače
- činnost překladače, interaktivní překladač, části překladače, fáze překladu
- jednoprůchodové a víceprůchodové překladače, chyby (zpracování, reakce, typy)
- vývojové prostředí (IDE), zvýrazňování syntaxe, regulární výrazy
- platforma, křížová kompilace, portování, portabilita, otevřený systém
- Zápis programu
- algoritmus, program, proces, thread
- styl zápisu programu, komentáře, bílé znaky, dokumentace
- strukturované programování, vývojový diagram, diagramový vstup
- základní řídící struktury, klíčová slova, podprogramy, procedury, funkce
- koprogramy, metody, předávání parametrů, knihovní funkce
- knihovny statické, dynamické a sdílené, verze, správa knihoven, dynamic loading
- Lexikální analýza jazyka
- vstupní formáty, lexémy, lexikální chyby
- syntaktické grafy, stavové diagramy automatu, rozlišení čísla a identifikátoru
- implementace automatu, zpracování datových typů (čísla, řetězce, pole, záznamy)
- Syntaktická analýza
- syntaktické chyby, derivační strom, determinismus, levá a pravá derivace
- syntaktická analýza shora dolů a zdola nahoru, výstup syntaktické analýzy
- otázka jednoznačnosti, množiny FIRST a FOLLOW
- Sémantická analýza
- sémantické chyby, tabulka symbolů, bloková struktura, organizace tabulek
- intermediální kód, tříadresní kód, postfixový tvar
- typový systém, typová kontrola a přetypování, silně a slabě typované jazyky
- statická a dynamická sémantika,
GNU bison, flex, yacc
- Optimalizace
- Operační paměť
- adresní prostor procesu, virtualizace operační paměti, logická a fyzická adresa
- segmentace a stránkování paměti, správa paměti, organizace paměti v procesu,
- software a data, deklarace proměnných, datových typů a jejich reprezentace
- řešení rozsahu platnosti proměnných, statické a automatické proměnné
- halda, dynamická alokace a uvolňování paměti, únik paměti
- využití zásobníku, rekurze, běhové prostředí, garbage collector
- Generování cílového kódu
- objektový soubor, úloha linkeru, relokace, PIC a PIE, soubory
.DLL
,.so
,.a
- spustitelný soubor (ELF, EXE, COM,
JAR,SWF), loader a knihovny - ladění, debugger, breakpoint, ladící symboly, běhová chyba, core dump
- logování, trasování, profilování
- objektový soubor, úloha linkeru, relokace, PIC a PIE, soubory
- Rezerva
Cvičení
- Strojový kód, jazyk symbolických adres, nižší a vyšší programovací jazyky, ukázky
- Překlad programu, hlášení chyb, řízení překladu (make), správa verzí
- Ladění, trasování, profilování, analýza core
- Zápis programu, styl, strukturované programování, analýza
- Proměnné a jejich reprezentace, práce s pamětí
- Konstrukce lexikálního analyzátoru, program Lex (Flex)
- Syntaktická analýza jazyka, program YACC
- Gramatiky LL(k)
- Překladový automat
- Gramatiky LR(k)
- Sémantická analýza
- Tříadresní kód, zápis infixový, postfixový a prefixový
- Optimalizace
- Generování kódu, linker, zavaděč, dynamické knihovny
Materiály
- Slajdy pro výuku
- http://elearning.fm.tul.cz – Moodle + záznamy streamovaných přednášek
- Linux#Jazyk C v Linuxu – základy práce s překladačem
- Stránka předmětu PRK (STAG)
- RNDr. PaedDr. Hashim Habiballa, PhD.: Regulární a bezkontextové jazyky I. (PDF, 1.4MB)
- RNDr. PaedDr. Hashim Habiballa, PhD.: Regulární a bezkontextové jazyky II. (PDF, 640kB)
- RNDr. PaedDr. Hashim Habiballa, PhD.: Překladače (PDF, 474kB)
- Mgr. Šárka Vavrečková: Stránky předmětu Překladače, starší skripta (září 2006)
- Ing. Marek Běhálek: Programovací jazyky a překladače (slidy, skripta – doc. Ing Miroslav Beneš Ph.D., úlohy)
- Prof. Ing. Bořivoj Melichar, DrSc.: Skripta a cvičení z předmětu Tvorba překladačů
- Doc. Ing. Karel Müller, CSc.: Programovací jazyky a překladače (slidy, příklady)
- Překladač (článek v české Wikipedii)
- Jazyky a překladače (série článků na abclinuxu.cz)
- http://compilers.iecc.com/crenshaw/ – Let's Build a Compiler, by Jack Crenshaw (ZIP)
- http://prednasky.tul.cz – login: PRK_09_10, heslo: prkrl (školní rok 2009/10)
Doporučená literatura
- Vavrečková, Š.: Programování překladačů. Slezská univerzita Opava, 2008. 218 s. ISBN 978-80-7248-493-5.
- Müller, K.: Programovací jazyky. 1. vyd. Praha: ČVUT, 2005. 219 s. ISBN 80-01-02458-X.
- Nešvera, Š.: Programovací jazyky. Cvičení. 1. vyd. Praha: ČVUT, 2005. 114 s. ISBN 80-01-02522-5.
- Melichar, B.: Překladače, skriptum. ČVUT Praha, 1989.
- Melichar, B.: Překladače cvičení, skriptum. ČVUT Praha, 1990.