The DOPPIO JVM: Building a Complete Language in the Browser John Vilk CJ Carey Jez Ngy Emery D. Berger School of Computer Science yDept. of Computer Science University of Massachusetts, Amherst Amherst College Amherst, MA 01003 Amherst, MA 01002 {jvilk,ccarey,emery}@cs.umass.edu,
[email protected] Abstract 1. Introduction Web browsers are rapidly overtaking native environments as Recent dramatic improvements in JavaScript performance the central focus of application development. Developers are have made it possible to write a wide range applications building increasingly rich and responsive applications that that run entirely inside the browser. Examples of these run entirely in the browser. However, web applications must include full office suites [7, 16], instant messengers [4], and be written in JavaScript, the only language available in all photo editors [6]. Browsers are an attractive implementation browsers. Developers thus cannot reuse existing code in other substrate because web applications can run unchanged across languages; rewriting this code in JavaScript can be onerous desktop, mobile, and tablet platforms. and error-prone. However, these applications must be written specifically An attractive alternative is to enable the execution of stan- in JavaScript and tailored to the browser environment. Devel- dard programming languages within the browser. This ap- opers cannot take advantage of existing bodies of well-tested proach would let programmers use familiar languages and code in languages like Java, and must instead rewrite