3c: A JIT Compiler with LLVM
Edd Barrett
Abstract:
In the past, implementing virtual machines has either been a custom process or an endeavour into interfacing an existing virtual machine using (relatively) low level programming languages like C. Recently there has been a boom in high level scripting languages, which claim to make a programmer more productive, yet the field of compiler design is still rooted firmly with low level languages. It remains to be seen why language processors are not implemented in high level scripting languages.
The following report presents an investigation into designing and implementing computer languages using a modern compiler construction tool-kit called the "Low Level Virtual Machine" (LLVM), in combination with a modern scripting language. The report covers in detail traditional approaches to compiler construction, parsing and virtual machine theory. Comparisons are made between traditional approaches and the modern approach offered by LLVM, via an experimental object oriented language called 3c, developed using LLVM, the Aperiot parser, Python and an incremental development methodology.
BibTeX:
@techreport{EBARRETT:3C,
author = "Edward Barrett",
institution = "Bournemouth University",
year = 2009,
title = "3c - A {JIT} Compiler with {LLVM}",
url = "http://llvm.org/pubs/2009-05-21-Thesis-Barrett-3c.html"
}
Download:
Paper: