Advanced Optimizations in Dynamic Language Compiler
Advanced Optimizations in Dynamic Language Compiler
diplomová práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/46663Identifikátory
SIS: 104888
Kolekce
- Kvalifikační práce [10932]
Autor
Vedoucí práce
Oponent práce
Bednárek, David
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Teoretická informatika
Katedra / ústav / klinika
Katedra softwarového inženýrství
Datum obhajoby
30. 1. 2012
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
Dynamické programovací jazyky jsou navržené pro běh v interpretu a tím pádem provádějí značnou část typových kontrol za běhu. Oproti tomu překladače statických jazyků mohou značnou část této třídy kontrol odstranit za pomoci informací, které jsou jim známy v době překladu. Tato práce je zaměřena na zlepšení projektu Phalanger, který umožnuje překlad a běh programů implementovaných v jazyce PHP na platformě .NET, za pomoci statických programových analýz. Tyto analýzy umožní odstranit velkou část dynamických operací, které jsou nyní prováděny za běhu. V práci ukazujeme, že pečlivým navržením analýzy programového toku a následné typové analýzy jsme schopni několikanásobně zvýšit rychlost běhu jednoduchých PHP programů.
Dynamic programming languages are designed to be interpreted and consequently perform a considerable amount of runtime type checking. In contrast, compilers for statically typed languages can remove this class of checks using information known at compile-time. This thesis aims to improve Phalanger, a compiler of PHP language for CIL, by introducing advanced static program analyses to its compilation process in order to remove some, or most, of dynamic operations that are now performed at runtime by Phalanger-compiled programs. We show that using a carefully designed control flow analysis and subsequent type analysis we are able to improve the performance of simple PHP programs several times.