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í 2 (KMI / PAPR2)

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 / PAPR2 - Paradigmata programování 2, 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 zaměřen na pokročilé partie z funkcionálního programování(líné vyhodnocování, makra) a dále na problematiku imperativníhoprogramování (stav, změna stavu, vedlejší efekt) a nepreemptivníhoparalelního programování (kontext a jeho přepnutí). V kursu jsoustudenti dále seznámeni s pokročilými konstrukcemi, kterými jsounapříklad nelokální skoky (aktuální pokračování), je vysvětlen jejichprincip a implementace. V závěru kursu jsou studenti seznámeni sprincipy konstrukce plnohodnotného interpretu jazyka Scheme. Poabsolvování kursu by studenti měli získat přehled o programovánírůznými styly, které se v současnosti označuje jako multiparadigmovéprogramování. Některé ze stylů programování jsou dále rozvíjeny vnavazujících kursech.1. Imperativní rysy při programování. Stav, vedlejší efekt, legitimnívedlejší efekt. Příkaz přiřazení. Metody předávání argumentůprocedurám. Procedury udržující si vnitřní stav. Mutace. Mutovatelnéelementy, mutovatelné páry. Konstrukce mutovatelného páru pomocíprocedur vyšších řádů. Destruktivní práce se seznamy. Cyklickéseznamy. Další mutovatelné datové typy: boxy, vektory, struktury.2. Makra. Dva pohledy na makra: makra jako rozšíření syntaxe; makrajako uživatelsky definovatelné speciální formy. Expanze maker. Makrajako šablony na přepisování kódu. Vytváření forem let, let*, letrecpomocí maker. Kolize jmen symbolů (variable capture). Generovanésymboly. Vytváření maker realizující cykly a podmíněné výrazy.Hygienická makra.3. Modifikace vyhodnocovacího procesu. Líné vyhodnocování. Přísliby ajejich vytvoření pomocí maker a procedur vyšších řádů. Interpret slíným vyhodnocováním. Vyhodnocovací proces s vyrovnávací pamětí.Ovlivnění výpočtové efektivity. Proudy (streamy). Rozdíly mezi proudya 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.4. Aktuální pokračování a únikové funkce. Průběh výpočtu, stav výpočtua jeho pokračování. Práce s časem výpočtu jako s daty. Únikové funkce.Modelové příklady použití únikových funkcí: nelokální skoky, okamžitéopuštění rekurze, návrat z podprogramu. Modelování syntaxe a sémantikyprogramovacích jazyků. Rozšiřování interpretru o další konstrukce.Cykly obsahující break, continue a redo. Metody ošetřování výjimek.5. Zásobníkový model vyhodnocování programů a paralelismus. Metodyimplementace aktuálního pokračování. Zásobníkový model vyhodnocováníelementů. Optimalizace na koncovou rekurzi. Únikové funkce jakomanipulátory se zásobníky. Nedeterminismus a nepreemptivníparalelismus. Operátor amb. Simulace přepnutí kontextu procedur pomocíúnikových funkcí. Nepreemptivní paralelní systém.

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.htmlFelleisen 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.Konečný, Vychodil. Paradigmata programování 2, díl A. Olomouc, 2008. Konečný, Vychodil. Paradigmata programování 2, díl B. Olomouc, 2008. Springer G., Friedman D.P. Scheme and the Art of Programming. The MIT Press, Cambridge, Massachusetts, 1994. ISBN 0-262-19288-8.

Požadavky

Aktivní účast v hodině. Plnění zadaných úkolů. Složení ústní (příp. písemné) zkoušky.

Garant

Mgr. Jan Konečný, Ph.D.

Vyučující

Mgr. Jan Konečný, Ph.D.doc. RNDr. Michal Krupka, Ph.D.RNDr. Eduard Bartl, Ph.D.Ing. Miroslav Hruškadoc. RNDr. Michal Krupka, Ph.D.Mgr. Tomáš Kühr, Ph.D.Mgr. Pavel Procházka