Search : [ keyword: Javascript ] (3)

Program Synthesis for JavaScript via Divide-and-Conquer and Abstraction Interpretation

Jungmin Jo, Hangyeol Cho, Woosuk Lee

http://doi.org/10.5626/JOK.2021.48.6.629

Program synthesis aims to automatically generate a program that satisfies the user intent expressed in the form of a high-level specification. Recent years have witnessed a surge in interest in applying this technology to a wide range of problems. Program synthesis can help improve software development productivity. In this paper, we present an algorithm for synthesizing Javascript programs from input-output examples. Our approach was based on a synergistic combination of the version space algebra-based approach, which can efficiently solve synthesis problems through divide-and-conquer, and abstract interpretation, which can be used to finitize infinite search spaces. We have implemented our approach and evaluated it in 140 problems of synthesizing string- and integer-manipulating programs. On average, the desirable programs were generated within nine seconds.

Optimizing Constant Value Generation in Just-in-time Compiler for 64-bit JavaScript Engine

Hyung-Kyu Choi, Jehyung Lee

http://doi.org/

JavaScript is widely used in web pages with HTML. Many JavaScript engines adopt Just-in-time compilers to accelerate the execution of JavaScript programs. Recently, many newly introduced devices are adopting 64-bit CPUs instead of 32-bit and Just-in-time compilers for 64-bit CPU are slowly being introduced in JavaScript engines. However, there are many inefficiencies in the currently available Just-in-time compilers for 64-bit devices. Especially, the size of code is significantly increased compared to 32-bit devices, mainly due to 64-bit wide addresses in 64-bit devices. In this paper, we are going to address the inefficiencies introduced by 64-bit wide addresses and values in the Just-in-time compiler for the V8 JavaScript engine and propose more efficient ways of generating constant values and addresses to reduce the size of code. We implemented the proposed optimization in the V8 JavaScript engine and measured the size of code as well as performance improvements with Octane and SunSpider benchmarks. We observed a 3.6% performance gain and 0.7% code size reduction in Octane and a 0.32% performance gain and 2.8% code size reduction in SunSpider.

Tunable Static Analysis Framework for JavaScript Applications

Yoonseok Ko, Sukyoung Ryu

http://doi.org/

In this paper, we present a novel approach to analyzing large-scale JavaScript applications statically by tuning the analysis scalability, possibly sacrificing soundness. For a given sound static baseline analysis of JavaScript programs, our framework allows users to define a sound approximation of selected executions that they wish to analyze, and it derives a tuned static analysis that can analyze the selected executions practically. The selected executions serve as parameters of the framework by taking a trade-off between the scalability and the soundness of the derived analyses. We formally describe our framework in the abstract interpretation setting and present two instances of the framework.


Search




Journal of KIISE

  • ISSN : 2383-630X(Print)
  • ISSN : 2383-6296(Electronic)
  • KCI Accredited Journal

Editorial Office

  • Tel. +82-2-588-9240
  • Fax. +82-2-521-1352
  • E-mail. chwoo@kiise.or.kr