Jak Začít?

Máš v počítači zápisky z přednášek
nebo jiné materiály ze školy?

Nahraj je na studentino.cz a získej
4 Kč za každý materiál
a 50 Kč za registraci!




Předmět Paradigmata programování 3 (KMI / PP3)

Na serveru studentino.cz naleznete nejrůznější studijní materiály: zápisky z přednášek nebo cvičení, vzorové testy, seminární práce, domácí úkoly a další z předmětu KMI / PP3 - Paradigmata programování 3, Přírodovědecká fakulta, Univerzita Palackého v Olomouci (UP).

Top 10 materiálů tohoto předmětu

Materiály tohoto předmětu

Materiál Typ Datum Počet stažení

Další informace

Obsah

Kurs je třetím ze série úvodních kursů v nichž jsou studenti seznámeni se styly programování, které se v současnosti používají. Tento kurs je zaměřen na pokročilé partie z funkcionálního programování (líné vyhodnocování, makra, nelokální skoky - aktuální pokračování) a jejich kombinaci s ostatními programovacími styly (imperativní, objektové programování), tzv. multiparadigmovému programování.V průběhu kurzu je konstruován experimentální interpret jazyka Scheme, na němž studenti pochopí probírané rysy funkcionálního programování z implementačního hlediska.1. Opakování základů jazyka Common Lisp, rozšíření sady používaných nástrojů jazyka.2. Makra. Dva pohledy na makra: makra jako rozšíření syntaxe, makra jako uživatelsky definovatelné speciální formy. Expanze maker. Makra jako šablony na přepisování kódu. Problém kolize symbolů a vícenásobného vyhodnocení parametrů. Kdy makra používat a kdy se jim vyhnout. Příklady použití maker: definice, vytvoření prostředí, podmíněné vyhodnocení, opakované vyhodnocení. Hygienická makra.3. Líné vyhodnocování. Přísliby a jejich vytvoření pomocí maker a procedur vyšších řádů. Přísliby s vyrovnávací pamětí. Ovlivnění výpočtové efektivity. Praktické příklady použití líného vyhodnocování.4. Proudy (streamy). Rozdíly mezi proudy a seznamy. Vytváření proudů pomocí příslibů. Nekonečné proudy. Rekurzivní procedury bez limitní podmínky. Implicitní proudy. Využití proudů při reprezentaci potenciálně nekonečných množin.5. Modifikace vyhodnocovacího procesu: normální substituční model. Proměnné, abstrakce (lambda-výrazy) a aplikace. Substituce, přejmenování parametrů, redukce. Interpret Scheme s normálním substitučním modelem.6. Zásobníkový model vyhodnocování programů. Průběh výpočtu, stav výpočtu a jeho pokračování. Aktuální pokračování a únikové funkce. Modelové příklady použití: nelokální skoky, okamžité opuštění rekurze, návrat z podprogramu. Cykly obsahující break, continue a redo. Metody ošetřování výjimek. Generátory.

Získané způsobilosti

1. ZnalostRozpoznej výhody a nevýhody používání pokročilých programovacích konstruktů jakými jsou makra a kontinuace.

Literatura

GRAHAM P. ANSI Common Lisp. Prentice Hall, 1996. http://www.lispworks.com/documentation/HyperSpec/index.htmlJ. Konečný, V. Vychodil. Cvičení z paradigmat programování I, II. Olomouc, 2006. Felleisen M., Findler R. B., Flatt M., Krishnamurthi S. How To Design Programs: An Introduction to Computing and Programming. The MIT Press, Cambridge, Massachusetts, 2001. ISBN 0-262-06218-6.Bird R., Wadler P. Introduction to Functional Programming. Prentice Hall, Englewood Cliffs, New Jersey, 1988. ISBN 0-13-484197-2.Springer G., Friedman D.P. Scheme and the Art of Programming. The MIT Press, Cambridge, Massachusetts, 1994. ISBN 0-262-19288-8.H. Abelson, G. J. Sussman. Structure and Interpretation of Computer Programs (SICP). MIT Press, 1985.

Požadavky

K získání zápočtu je nutno vypracovat několik menších projektů. Zkouška je písemná a ústní.

Garant

doc. RNDr. Michal Krupka, Ph.D.

Vyučující

doc. RNDr. Michal Krupka, Ph.D.doc. RNDr. Michal Krupka, Ph.D.