Překladač z jazyka Scheme do C/C++
Compiler from Scheme to C/C++
bakalářská práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/81953Identifikátory
SIS: 142526
Katalog UK: 990020254810106986
Kolekce
- Kvalifikační práce [11978]
Autor
Vedoucí práce
Oponent práce
Bednárek, David
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Programování
Katedra / ústav / klinika
Katedra softwarového inženýrství
Datum obhajoby
7. 9. 2015
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Čeština
Známka
Výborně
Klíčová slova (česky)
překladač, Scheme, C, C++, knihovnaKlíčová slova (anglicky)
compiler, Scheme, C, C++, libraryJazyk Scheme je jednoduchý jazyk, který je vhodný na analýzu vlastností programovacích jazyků a na experimentování s optimalizacemi kódu. Tato práce používá při jeho implementaci mezikód zvaný continuation-passing-style, který se často používá při implementaci funkcionálních jazyků. Uvádíme zejména jeho souvislost s konvenčními implementacemi, v kterých se program řídí pomocí zásobníku. Dále popisujeme jednoduché metody globální statické analýzy u jazyka Scheme. Základem všech analýz je abstraktní interpretace, jejíž důležitou součástí je abstraktní garbage collector. Ten umožňuje optimalizace jako jsou globalizace proměnných, přejmenování proměnných nebo eliminace nepoužitých dosazení. Powered by TCPDF (www.tcpdf.org)
Scheme is a simple language which is well suited for analyzing various constructs of programming languages and experiments with code optimization. To implement this language we use an intermediate code called continuation-passing-style, which is widely used in implementations of functional languages. We present its relation to conventional implementations which use stack to control the program. Then we describe simple methods of global static analysis of the language. Analyses are based on abstract interpretation which uses abstract garbage collector. It allows many optimizations such as variable globalization, variable renaming and elimination of unused assignments. Powered by TCPDF (www.tcpdf.org)
