Software Engineering and Architecture Group (SEARCH) > CS > JBI > FWN > RUG

Hybrid Partial Evaluation for Javascript

Partial evaluation is a technique for optimizing interpreters of programming languages. It works by fixing one of the arguments to the intepreter (i.e., the program), but leaving other parameters open (i.e., the dynamic input). A partial evaluator then "executes" the program, evaluating as much as possible. Partial evaluation is a well-research topic, both theoretically, and practically. A recent technique that claims to solve one of the problems of partial evaluation (e.g., code explosion) is Hybrid Partial Evaluation (see reference below). This original work is based on class-based OO languages (i.e., Java). The goal of this project is to transfer the idea of Hybrid partial evaluation to Javascript.

In particular, this project should consist of the following components:

  • A clear, semantic description of the concept of hybrid partial evaluation, modified to the context of Javascript (at least ECMAScript 5)
  • A hybrid partial evaluator for full Javascript (implemented in Javascript itself).
  • Evaluation of the performance gains of partial evaluation using standard benchmarks (e.g. power, FFT, regexps) and one or more interpreters of languages implemented in Javascript.


Contact: Tijs van der Storm