Yes! Finally! I am done with my Master’s Thesis.

It was a lot of work, but it was worth it. The results are quite interesting. Especially, if you’re interested in modularization, architecture, separation of concerns and may be even high-level language virtual machines. Unfortunately, I had not the muse and time to write the whole thesis in English, but the abstract will give you some hints what it is about. In addition, hopefully, there will be a publication derived from my work which summarizes the results early next year. Until then, you have to know German to read the whole thesis 🙂

Modularization of Virtual Machines: Implementation and Evaluation of an Architecture Description Language

Abstract

Today, high-level language virtual machines are custom-made special purpose systems optimized for specific domains like embedded devices. Their implementation suffers from high complexity, strongly intertwined subsystems and little maintainability. This is caused by insufficient modularization techniques failing to represent the system architecture in the code. To overcome this situation, the Virtual Machine Architecture Definition Language (VMADL) has been proposed. In this work, the language features of VMADL are investigated and a VMADL compiler is implemented to conduct a case study on an existing Smalltalk VM written in C named CSOM.

The aim of this case study is to test the language on CSOM and to modularize it in a way that it is possible to build a product family of VMs out of it, to be able to benefit from a product-line approach for customizing VMs. In a first step, CSOM is reverse engineered and several feature implementations are analyzed for their specific requirements on modularization. Based on this examination, a CSOM specific feature-oriented class definition language is added to VMADL to allow a completely modularized implementation of all analyzed features.

Afterwards, the case study is evaluated using several metrics to prove that the code overhead caused by VMADL is minimal and necessary for the architecture and modularization. Furthermore, it is shown that there is no negative impact on the runtime performance of the system. To prove the positive influence of VMADL on architectural comprehension and maintainability, an experiment with students is designed and conducted. Eventually, this work demonstrates how VMADL can be used to explicitly express the architecture of a VM in the code, improve modularization, and add the necessary variability to build a VM product family.