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 条
  • [41] JS']JSOptimizer: An Extensible Framework for Java']JavaScript Program Optimization
    Liu, Yi
    2019 IEEE/ACM 41ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: COMPANION PROCEEDINGS (ICSE-COMPANION 2019), 2019, : 168 - 170
  • [42] JS']JSWhiz Static Analysis for Java']JavaScript Memory Leaks
    Pienaar, Jacques A.
    Hundt, Robert
    PROCEEDINGS OF THE 2013 IEEE/ACM INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION (CGO), 2013, : 313 - 323
  • [43] JS']JSISOLATE: Lightweight In-Browser Java']JavaScript Isolation
    Zhang, Mingxue
    Meng, Wei
    PROCEEDINGS OF THE 29TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE '21), 2021, : 193 - 204
  • [44] Migratom.js']js: A Java']JavaScript Migration Framework for Distributed Web Computing and Mobile Devices
    Tseng, Tai-Lun
    Hung, Shih-Hao
    Tu, Chia-Heng
    30TH ANNUAL ACM SYMPOSIUM ON APPLIED COMPUTING, VOLS I AND II, 2015, : 798 - 801
  • [45] pileup. js']js: a Java']JavaScript library for interactive and in-browser visualization of genomic data
    Vanderkam, Dan
    Aksoy, B. Arman
    Hodes, Isaac
    Perrone, Jaclyn
    Hammerbacher, Jeff
    BIOINFORMATICS, 2016, 32 (15) : 2378 - 2379
  • [46] spl-js']js-engine: a Java']JavaScript tool to implement Software Product Lines
    Cortinas, Alejandro
    Luaces, Miguel R.
    Pedreira, Oscar
    26TH ACM INTERNATIONAL SYSTEMS AND SOFTWARE PRODUCT LINE CONFERENCE, SPLC 2022, VOL B, 2022, : 66 - 69
  • [47] Node.js']js: Using Java']JavaScript to Build High-Performance Network Programs
    Tilkov, Stefan
    Vinoski, Steve
    IEEE INTERNET COMPUTING, 2010, 14 (06) : 80 - 83
  • [48] JS']JS Capsules: A Framework for Capturing Fine-grained Java']JavaScript Memory Measurements for the MobileWeb
    Naseer, Usama
    Benson, Theophilus A.
    PROCEEDINGS OF THE ACM ON MEASUREMENT AND ANALYSIS OF COMPUTING SYSTEMS, 2023, 7 (01)
  • [49] SECBENCH. JS']JS: An Executable Security Benchmark Suite for Server-Side Java']JavaScript
    Bhuiyan, Masudul Hasan Masud
    Parthasarathy, Adithya Srinivas
    Vasilakis, Nikos
    Pradel, Michael
    Staicu, Cristian-Alexandru
    2023 IEEE/ACM 45TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, ICSE, 2023, : 1059 - 1070
  • [50] Study of Java']JavaScript Static Analysis Tools for Vulnerability Detection in Node.js']js Packages
    Brito, Tiago
    Ferreira, Mafalda
    Monteiro, Miguel
    Lopes, Pedro
    Barros, Miguel
    Santos, Jose Fragoso
    Santos, Nuno
    IEEE TRANSACTIONS ON RELIABILITY, 2023, 72 (04) : 1324 - 1339