Překladač z jazyka Scheme do C/C++
Compiler from Scheme to C/C++
bachelor thesis (DEFENDED)

View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/81953Identifiers
Study Information System: 142526
Collections
- Kvalifikační práce [10593]
Author
Advisor
Referee
Bednárek, David
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Programming
Department
Department of Software Engineering
Date of defense
7. 9. 2015
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
Czech
Grade
Excellent
Keywords (Czech)
překladač, Scheme, C, C++, knihovnaKeywords (English)
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)