eJS']JSTK: Building Java']JavaScript virtual machines with customized datatypes for embedded systems

被引:7
作者
Ugawa, Tomoharu [1 ]
Iwasaki, Hideya [2 ]
Kataoka, Takafumi [1 ]
机构
[1] Kochi Univ Technol, Kami, Kochi 7828504, Japan
[2] Univ Electrocommun, Chofu, Tokyo 1828585, Japan
关键词
Virtual machine; !text type='Java']Java[!/text]Script; Embedded systems; Code generation; Decision diagram; LANGUAGE;
D O I
10.1016/j.cola.2019.01.003
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Using JavaScript as a description language can increase the productivity of application programs on embedded systems. Since JavaScript is a dynamic language, it is important for a JavaScript virtual machine (VM) to efficiently identify the types of first-class values and perform type-based dispatches. For embedded systems, the type-based dispatching code is desired to be compact as well as fast. Although operators of JavaScript are heavily overloaded and capable of accepting a variety of datatypes as operands, all the datatypes are not always necessarily used in a specific program. If some datatypes are never used in this program, a VM for a subset of JavaScript with operators that support limited datatypes suffices. Such a VM is expected to be compact and efficient. In addition, internal representation of datatype of each value may affect performance of type-based dispatching. This paper presents a novel framework that can generate a VM for a subset of JavaScript on the basis of operand specifications and datatype specifications given by the programmer. The operand specifications describe possible operand datatypes for every instruction and the datatype specifications describe adequate internal representations of necessary datatypes for a target program. The generated VM is specialized in the sense that it has efficient and minimum type-based dispatching code for all instructions.
引用
收藏
页码:261 / 279
页数:19
相关论文
共 27 条
  • [1] A brief history of just-in-time
    Aycock, J
    [J]. ACM COMPUTING SURVEYS, 2003, 35 (02) : 97 - 113
  • [2] mruby on TECS: Component-based Framework for Running Script Program
    Azumi, Takuya
    Nagahara, Yuki
    Oyama, Hiroshi
    Nishio, Nobuhiko
    [J]. 2015 IEEE 18TH INTERNATIONAL SYMPOSIUM ON REAL-TIME DISTRIBUTED COMPUTING (ISORC), 2015, : 252 - 259
  • [3] Beatty Andrew., 2003, Proceedings of the 2003 ACM Symposium on Applied Computing, SAC'03, P692, DOI DOI 10.1145/952532.952667
  • [4] THREADED CODE
    BELL, JR
    [J]. COMMUNICATIONS OF THE ACM, 1973, 16 (06) : 370 - 372
  • [5] Efficient Interpretation using Quickening
    Brunthaler, Stefan
    [J]. ACM SIGPLAN NOTICES, 2010, 45 (12) : 1 - 13
  • [6] Brunthaler S, 2010, LECT NOTES COMPUT SC, V6183, P429, DOI 10.1007/978-3-642-14107-2_21
  • [7] EFetch: Optimizing Instruction Fetch for Event-Driven Web Applications
    Chadha, Gaurav
    Mahlke, Scott
    Narayanasamy, Satish
    [J]. PROCEEDINGS OF THE 23RD INTERNATIONAL CONFERENCE ON PARALLEL ARCHITECTURES AND COMPILATION TECHNIQUES (PACT'14), 2014, : 75 - 86
  • [8] Chambers C., 1991, LISP and Symbolic Computation, V4, P243, DOI 10.1007/BF01806108
  • [9] Fast algorithms for compressed multimethod dispatch table generation
    Dujardin, E
    Amiel, E
    Simon, E
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1998, 20 (01): : 116 - 165
  • [10] ECMA International, 2011, ECMA262