A virtual machine framework for domain-specific languages

by Fick, David.

Abstract (Summary)
Software engineering professionals are frequently faced with the challenges of applying good design principles in an environment that is often lacking in consistency and discipline. Those experienced in industry will argue that it is mostly due to processes that are not always followed and problems that are rather demanding on the developer’s knowledge gained from experience and general expertise. Also, developers with a lesser degree of experience who are required to improve upon, or implement a new set of requirements specified by system level designers are faced with steep learning curves. While system designers play very little role in the actual implementation of systems, it is up to the developers to wade through copious amounts of source code and documentation, first understanding a system’s behaviour, before any further coding can commence. It is not just software practitioners, but also end-users like experts in a particular scientific or engineering domain who experience similar problems. These experts are not necessarily versed in software design, yet may still require a scientific means to express solutions in a particular problem domain, and it would certainly be to their advantage if they did not concern themselves with the seemingly limitless amount of complexities in software. Many new ideas aim to make software development easier and shift the development role closer to the end-user. This dissertation investigates a software development strategy, which entails the design of a Domain-Specific Language (DSL) that is tailored towards a particular problem domain, and a Virtual Machine (VM) to support execution of a program written in the DSL. Since DSLs have the characteristic of being highly end-user oriented, they are favourable to experts who have a thorough understanding of their problem domain since they provide an elegant means to express their solutions easily. Different techniques to support DSLs are examined, namely an interpreter, a hard-coded VM, and a VM Framework. The VM Framework is proven to be most effective in rapidly prototyping a DSL for a particular problem domain. Throughout this dissertation, example DSLs are used to illustrate some of the concepts that are discussed. For each DSL example some details are shown, such as their grammars and results of executing a program written in the DSL. The DSL grammars and example programs are all included in the appendix. The implementation of the interpreters, hard-coded VMs and VMs based on the VM Framework for each DSL are all included on the accompanying CD. 4
Bibliographical Information:


School:University of Pretoria/Universiteit van Pretoria

School Location:South Africa

Source Type:Master's Thesis

Keywords:semantics computer software virtual systems


Date of Publication:

© 2009 All Rights Reserved.