Title
Doppio: breaking the browser language barrier
Abstract
Web browsers have become a de facto universal operating system, and JavaScript its instruction set. Unfortunately, running other languages in the browser is not generally possible. Translation to JavaScript is not enough because browsers are a hostile environment for other languages. Previous approaches are either non-portable or require extensive modifications for programs to work in a browser. This paper presents Doppio, a JavaScript-based runtime system that makes it possible to run unaltered applications written in general-purpose languages directly inside the browser. Doppio provides a wide range of runtime services, including a file system that enables local and external (cloud-based) storage, an unmanaged heap, sockets, blocking I/O, and multiple threads. We demonstrate DOPPIO's usefulness with two case studies: we extend Emscripten with Doppio, letting it run an unmodified C++ application in the browser with full functionality, and present DoppioJVM, an interpreter that runs unmodified JVM programs directly in the browser. While substantially slower than a native JVM (between 24X and 42X slower on CPU-intensive benchmarks in Google Chrome), DoppioJVM makes it feasible to directly reuse existing, non compute-intensive code.
Year
DOI
Venue
2014
10.1145/2594291.2594293
PLDI
Keywords
Field
DocType
jvm program,cpu-intensive benchmarks,browser language barrier,native jvm,javascript-based runtime system,file system,web browser,present doppiojvm,unmodified c,runtime service,universal operating system,operating systems,javascript,web,programming languages
File system,Programming language,Instruction set,Computer science,Thread (computing),Heap (data structure),Interpreter,Operating system,Rich Internet application,JavaScript,Runtime system
Conference
Volume
Issue
ISSN
49
6
0362-1340
Citations 
PageRank 
References 
5
0.58
7
Authors
2
Name
Order
Citations
PageRank
John Vilk1182.28
Emery D. Berger2104855.87