From bytecode to Java']JavaScript: the Js']Js_of_ocaml compiler

被引:30
|
作者
Vouillon, Jerome [1 ]
Balat, Vincent [2 ]
机构
[1] Univ Paris Diderot, CNRS, UMR 7126, PPS,Sorbonne Paris Cite, F-75205 Paris 13, France
[2] Univ Paris Diderot, CNRS, UMR 7126, Sorbonne Paris Cite,PPS,INRIA Paris Rocquencourt, F-75205 Paris 13, France
来源
SOFTWARE-PRACTICE & EXPERIENCE | 2014年 / 44卷 / 08期
关键词
compiler; OCaml; !text type='Java']Java[!/text]Script; bytecode;
D O I
10.1002/spe.2187
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present the design and implementation of a compiler from OCaml bytecode to JavaScript. The compiler first translates the bytecode into a static single-assignment intermediate representation on which optimizations are performed, before generating JavaScript. We believe that taking bytecode as an input instead of a high-level language is a sensible choice. Virtual machines provide a very stable API. Such a compiler is thus easy to maintain. It is also convenient to use, and it can just be added to an existing installation of the development tools. Already-compiled libraries can be used directly, with no need to reinstall anything. Finally, some virtual machines are the target of several languages. A bytecode to JavaScript compiler would make it possible to retarget all these languages to Web browsers at once. Copyright (C) 2013 John Wiley & Sons, Ltd.
引用
收藏
页码:951 / 972
页数:22
相关论文
共 50 条
  • [1] SecureJS']JS Compiler: Portable Memory Isolation in Java']JavaScript
    Ko, Yoonseok
    Rezk, Tamara
    Serrano, Manuel
    36TH ANNUAL ACM SYMPOSIUM ON APPLIED COMPUTING, SAC 2021, 2021, : 1265 - 1274
  • [2] CHR.js']js: A CHR Implementation in Java']JavaScript
    Nogatz, Falco
    Fruhwirth, Thom
    Seipel, Dietmar
    RULES AND REASONING (RULEML+RR 2018), 2018, 11092 : 131 - 146
  • [3] JS']JSIMIL A Java']Java Bytecode Clone Detector
    Quesada, Luis
    Berzal, Fernando
    Cubero, Juan Carlos
    ICSOFT 2010: PROCEEDINGS OF THE FIFTH INTERNATIONAL CONFERENCE ON SOFTWARE AND DATA TECHNOLOGIES, VOL 2, 2010, : 333 - 336
  • [4] Math.js']js: An Advanced Mathematics Library for Java']JavaScript
    de Jong, Jos
    Mansfield, Eric
    COMPUTING IN SCIENCE & ENGINEERING, 2018, 20 (01) : 20 - 32
  • [5] JS']JSExplain: A Double Debugger for Java']JavaScript
    Chargueraud, Arthur
    Schmitt, Alan
    Wood, Thomas
    COMPANION PROCEEDINGS OF THE WORLD WIDE WEB CONFERENCE 2018 (WWW 2018), 2018, : 691 - 699
  • [6] BUGSJS']JS: A Benchmark of Java']JavaScript Bugs
    Gyimesi, Peter
    Vancsics, Bela
    Stocco, Andrea
    Mazinanian, Davood
    Beszedes, Arpad
    Ferenc, Rudolf
    Mesbah, Ali
    2019 IEEE 12TH CONFERENCE ON SOFTWARE TESTING, VALIDATION AND VERIFICATION (ICST 2019), 2019, : 90 - 101
  • [7] JS']JSXGraph - Dynamic Mathematics with Java']JavaScript
    Gerhaeuser, Michael
    Valentin, Bianca
    Wassermann, Alfred
    INTERNATIONAL JOURNAL FOR TECHNOLOGY IN MATHEMATICS EDUCATION, 2010, 17 (04): : 211 - 215
  • [8] JS']JSOD: Java']JavaScript obfuscation detector
    AL-Taharwa, Ismail Adel
    Lee, Hahn-Ming
    Jeng, Albert B.
    Wu, Kuo-Ping
    Ho, Cheng-Seen
    Chen, Shyi-Ming
    SECURITY AND COMMUNICATION NETWORKS, 2015, 8 (06) : 1092 - 1107
  • [9] astrojs']js: Java']JavaScript Libraries for Astronomy
    Kapadia, Amit
    Smith, Arfon
    ASTRONOMICAL DATA ANALYSIS SOFTWARE AND SYSTEMS XXII, 2013, 475 : 299 - 302
  • [10] ACDC-JS']JS: Explorative Benchmarking of Java']JavaScript Memory Management
    Aigner, Martin
    Miller, Alexander
    Huetter, Thomas
    Payer, Hannes
    Kirsch, Christoph M.
    Preishuber, Mario
    ACM SIGPLAN NOTICES, 2015, 50 (02) : 67 - 78