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 条
  • [31] Sol2js']js: Translating Solidity Contracts into Java']Javascript for Hyperledger Fabric
    Zafar, Muhammad Ahmad
    Sher, Falak
    Janjua, Muhammad Umar
    Baset, Salman
    SERIAL'18: PROCEEDINGS OF THE 2018 WORKSHOP ON SCALABLE AND RESILIENT INFRASTRUCTURES FOR DISTRIBUTED LEDGERS, 2018, : 19 - 24
  • [32] JS']JS Comm: A networking mechanism collaborative applications for Java']JavaScript-based on the Web
    Furui, Y
    DIGITAL CONVERGENCE FOR CREATIVE DIVERGENCE, VOL I: TECHNICAL SPEECH SESSIONS, 1999, : 99 - 106
  • [33] Visualization of protein sequence features using Java']JavaScript and SVG with pViz.js']js
    Mukhyala, Kiran
    Masselot, Alexandre
    BIOINFORMATICS, 2014, 30 (23) : 3408 - 3409
  • [34] igv.js']js: an embeddable Java']JavaScript implementation of the Integrative Genomics Viewer (IGV)
    Robinson, James T.
    Thorvaldsdottir, Helga
    Turner, Douglass
    Mesirov, Jill P.
    BIOINFORMATICS, 2023, 39 (01)
  • [35] Static Analysis of Event-Driven Node.js']js Java']JavaScript Applications
    Madsen, Magnus
    Tip, Frank
    Lhotak, Ondrej
    ACM SIGPLAN NOTICES, 2015, 50 (10) : 505 - 519
  • [37] JS']JSSlicer: a static program slicing tool for Java']JavaScript
    Wang, Liming
    Xian, Ying
    Zhang, Li
    Liu, Xiyang
    INDUSTRIAL INSTRUMENTATION AND CONTROL SYSTEMS, PTS 1-4, 2013, 241-244 : 2690 - 2695
  • [38] JS']JSEFT: Automated Java']JavaScript Unit Test Generation
    Mirshokraie, Shabnam
    Mesbah, Ali
    Pattabiraman, Karthik
    2015 IEEE 8TH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST), 2015,
  • [39] JS']JSOPT: A Framework for Optimization of Java']JavaScript on Web Browsers
    Waqas, Muhammad
    Khan, Minhaj Ahmad
    MEHRAN UNIVERSITY RESEARCH JOURNAL OF ENGINEERING AND TECHNOLOGY, 2018, 37 (01) : 95 - 104
  • [40] JS']JSDeodorant: Class-awareness for Java']JavaScript programs
    Eshkevari, Laleh
    Mazinanian, Davood
    Rostami, Shahriar
    Tsantalis, Nikolaos
    PROCEEDINGS OF THE 2017 IEEE/ACM 39TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING COMPANION (ICSE-C 2017), 2017, : 71 - 74