PyGirl: Generating Whole-System VMs from High-Level Prototypes Using PyPy

Bruni, Camillo; Verwaest, Toon (2009). PyGirl: Generating Whole-System VMs from High-Level Prototypes Using PyPy. In: Oriol, Manuel; Meyer, Bertrand (eds.) Objects, Components, Models and Patterns, Proceedings of TOOLS Europe 2009. Lecture Notes in Business Information: Vol. 33 (pp. 328-347). Heidelberg: Springer Verlag 10.1007/978-3-642-02571-6_19

[img] Text
Seiten aus 10.1007_978-3-642-02571-6.pdf - Published Version
Restricted to registered users only
Available under License Publisher holds Copyright.

Download (277kB) | Request a copy

Virtual machines (VMs) emulating hardware devices are generally implemented in low-level languages for performance reasons. This results in unmaintainable systems that are difficult to understand. In this paper we report on our experience using the PyPy toolchain to improve the portability and reduce the complexity of whole-system VM implementations. As a case study we implement a VM prototype for a Nintendo Game Boy, called PyGirl, in which the high-level model is separated from low-level VM implementation issues. We shed light on the process of refactoring from a low-level VM implementation in Java to a high-level model in RPython. We show that our whole-system VM written with PyPy is significantly less complex than standard implementations, without substantial loss in performance.

Item Type:

Book Section (Book Chapter)

Division/Institute:

08 Faculty of Science > Institute of Computer Science (INF)
08 Faculty of Science > Institute of Computer Science (INF) > Software Composition Group (SCG) [discontinued]

UniBE Contributor:

Verwaest, Toon Wim Jan

ISBN:

978-3-642-02571-6

Series:

Lecture Notes in Business Information

Publisher:

Springer Verlag

Language:

English

Submitter:

Factscience Import

Date Deposited:

04 Oct 2013 15:22

Last Modified:

05 Dec 2022 14:25

Publisher DOI:

10.1007/978-3-642-02571-6_19

BORIS DOI:

10.7892/boris.37177

URI:

https://boris.unibe.ch/id/eprint/37177 (FactScience: 207150)

Actions (login required)

Edit item Edit item
Provide Feedback