DOPPIO: Breaking the Browser Language Barrier

被引:0
|
作者
Vilk, John [1 ]
Berger, Emery D. [1 ]
机构
[1] Univ Massachusetts, Sch Comp Sci, Amherst, MA 01003 USA
关键词
Languages; Design; Web; Browsers; Programming Languages; JVM; Operating Systems; !text type='Java']Java[!/text]Script; COMPILATION;
D O I
10.1145/2666356.2594293
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 24 x and 42 x slower on CPU-intensive benchmarks in Google Chrome), DOPPIOJVM makes it feasible to directly reuse existing, non compute-intensive code.
引用
收藏
页码:508 / 518
页数:11
相关论文
共 50 条