Témata prací (Výběr práce)Témata prací (Výběr práce)(verze: 368)
Detail práce
   Přihlásit přes CAS
Automatické odstranění nadbytečných částí programu
Název práce v češtině: Automatické odstranění nadbytečných částí programu
Název v anglickém jazyce: Automatic Reduction of Source Code
Akademický rok vypsání: 2008/2009
Typ práce: bakalářská práce
Jazyk práce: čeština
Ústav: Ústav formální a aplikované lingvistiky (32-UFAL)
Vedoucí / školitel: doc. RNDr. Ondřej Bojar, Ph.D.
Řešitel: skrytý - zadáno a potvrzeno stud. odd.
Datum přihlášení: 12.11.2008
Datum zadání: 12.11.2008
Datum a čas obhajoby: 10.02.2010 00:00
Datum odevzdání elektronické podoby:10.02.2010
Datum proběhlé obhajoby: 10.02.2010
Oponenti: RNDr. Miroslav Spousta
 
 
 
Zásady pro vypracování
Cílem práce je vytvořit nástroj, 'reduktor', který na základě vstupního zdrojového kódu a množiny ukázkových vstupních dat, která má daný program zpracovávat, odstraní ze zdrojového kódu redundantní části. V prvním přiblížení stačí odstranit redundantní rutiny a definice datových typů ap. ("statická redukce"). Práce se však musí pokusit též "dynamickou" redukci: ze zdrojového kódu budou odstraněny větve výpočtu, které nebyly použity během zpracování dané množiny dat. Na nových datech, kde by neredukovaný program použil nějakou novou větev výpočtu, redukovaný program skončí výjimkou. Jako rozšíření lze uvažovat o odstranění nadbytečných položek v datových strukturách ap.

Výstup 'reduktoru' musí být i nadále v přijatelném tvaru, aby redukovaný program mohl programátor dále zpracovávat.

Jako podkladový programovací jazyk výrazně doporučuji Mercury pro jeho přesnou a dobře popsanou sémantiku. Dobře však mohou posloužit i jiné jazyky typu Haskell, ML, ... (Pokročilé rysy jazyků, např. typové třídy, lze v prvním přiblížení pominout.)
Seznam odborné literatury
http://www.cs.mu.oz.au/research/mercury/

Zoltan Somogyi, Fergus Henderson and Thomas Conway. Mercury: an efficient purely declarative logic programming language. ASCS'95, Glenelg, Australia.
 
Univerzita Karlova | Informační systém UK