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. |