Twopy: A Just-In-Time Compiler For Python Based On Code Specialization
Python is a multiple paradigm language. The language is dynamically typed, offers object-oriented, procedural and functional features. It is often used for scripting but is also widely used for general purpose programming. The Python language is designed to be easy to use with permissive features, even if it means compromising performance. For example it is possible to add a new property to an object after its creation. Many other dynamic features are available and represent a challenge to implement efficiently.
Our preliminary results show that our compiler can remove around 80% of type-checks on small benchmarks containing mainly binary operations. In the future we plan to extend basic block versioning to handle different issues with Python implementation. For example we want to explore using this technique as an optimization to object-oriented mechanism implementation in Python. We think that this technique can be used in multiple and new ways to handle dynamicity in Python.
Sun 4 Nov
|15:30 - 15:55|
|15:55 - 16:15|
|16:15 - 16:40|
Baptiste PaugetÉcole Normale Supérieure, David PearceVictoria University of Wellington, Alex PotaninVictoria University of WellingtonDOI Pre-print File Attached
|16:40 - 17:05|
Eliot MirandaCadence Design Systems, Clément BéraSofware Languages Lab, Vrije Universiteit Brussel, Elisa Gonzalez BoixVrije Universiteit Brussel, Dan IngallsDOI