ECOOP 2015
Sun 5 - Fri 10 July 2015 Prague, Czech Republic

Fourth Annual Workshop on Tools for JavaScript Analysis

JavaScript has become ubiquitous: not only is it the lingua franca of the Web platform, but it is also increasingly being used for developing server-side applications and for writing platform-independent mobile applications. Consequently, it is now the focus of many strands of research work in static and dynamic program analysis, automated testing, security analysis and refactoring, to name just a few. At the same time, there is a strong interest from industry in providing better development tools for JavaScript programmers, such as debuggers and smart IDEs.

All these projects need to overcome similar challenges: How to delineate the program in a dynamic setting like a web page, how to deal with the extensive native APIs and framework libraries most JavaScript code relies on, how to handle non-determinism of concurrency and asynchronous events, and what to do about the language’s extraordinarily dynamic features like eval or reflection over object structure.

JSTools will bring together participants from academia and industry working on analysis of JavaScript and its dialects to share ideas and problems, with a focus on presentations of shareable infrastructure created by the participants. We also aim to involve developers working on JavaScript dialects such as TypeScript to share their perspective.

The external web page of the workshop is here.

You're viewing the program in a time zone which is different from your device's time zone change time zone

Mon 6 Jul

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

10:10 - 10:15
Day OpeningJSTools at Hluboka I
Chair(s): Julian Dolby IBM Research, Shu-yu Guo Mozilla Corporation, Christian Hammer Saarland University, Michael Pradel TU Darmstadt
10:10
5m
Day opening
Opening Remarks
JSTools

10:15 - 10:45
TheoryJSTools at Hluboka I
Chair(s): Christian Hammer Saarland University
10:15
30m
Talk
ES5strict -> IVL, Principled Translation using Operational Semantics
JSTools
Daiva Naudžiūnienė Imperial College London
10:50 - 12:20
Invited Talks at STOPJSTools at Hluboka I
10:50
45m
Talk
Invited Talk at STOP by Andreas Rossberg
JSTools

11:35
45m
Talk
Invited Talk at STOP by Avik Chaudhuri
JSTools

13:50 - 14:35
Invited Talks at STOP IIJSTools at Hluboka I
13:50
45m
Talk
Invited Talk at STOP by Satish Chandra
JSTools

14:40 - 15:40
Practical AnalysisJSTools at Hluboka I
Chair(s): Julian Dolby IBM Research
14:40
30m
Talk
HybriDroid: Analysis Framework for Android Hybrid Applications
JSTools
Sukyoung Ryu Korea Advanced Institute of Science and Technology
15:10
30m
Talk
Jalangi: A Dynamic Analyses Framework for JavaScript
JSTools
Koushik Sen University of California, Berkeley
16:00 - 18:00
Practical Analysis IIJSTools at Hluboka I
Chair(s): Michael Pradel TU Darmstadt
16:00
30m
Talk
EventRacer: Scalable Analysis for Event-Driven Systems
JSTools
Martin Vechev ETH Zurich
16:30
30m
Talk
Stateless Model Checking for JavaScript
JSTools
Anders Møller Aarhus University
17:00
30m
Talk
MemInsight: Platform-Independent Memory Profiling for JavaScript
JSTools
Manu Sridharan Samsung Research America
17:30
30m
Talk
Visualizing the interactions of client and server JS code
JSTools
Saba Alimadadi University of British Columbia
18:00 - 18:30
Day ClosingJSTools at Hluboka I
Chair(s): Julian Dolby IBM Research, Shu-yu Guo Mozilla Corporation, Christian Hammer Saarland University, Michael Pradel TU Darmstadt
18:00
30m
Day closing
Closing Remarks
JSTools

Call For Papers

The challenges addressed by JSTools include:

  • What constitutes a JavaScript program itself is an increasingly slippery concept. Even simple web pages tend to be composed of multiple script tags in a Web page, some of which refer to external source files and some of which contain inline code. Further code is commonly added with handlers attached to various Web page elements. Depending on the particular structure of these tags, the semantics of the induced program can differ. And further, code is often loaded dynamically into a page, for instance by dynamically creating new script tags in the current page.
  • Web pages increasingly use concurrency. While JavaScript itself is single-threaded, execution in modern browsers sometimes is not entirely, and, even when it is, asynchronous styles such as AJAX can introduce non-determinism into when pieces of code execute. Even the initial parsing of the Web page is often not atomic from the point of view of the code. JavaScript is an extraordinarily dynamic language including a wide array of features for reflective programming and runtime code generation. This makes it challenging to design an internal representation as is commonly used for analysis and optimization purposes, since the semantics of even a simple statement can depend on the runtime state of the program in subtle and complex ways.
  • Almost all JavaScript programs rely on extensive native API libraries such as the browser’s DOM implementation for web applications, or APIs for accessing mobile phone hardware for mobile applications. Modeling the semantics of these libraries is a formidable task, but essential for analyzing real-world programs. Additionally, many programs use framework libraries such as jQuery or Sencha; while these are themselves written in JavaScript, they tend to use sophisticated coding patterns that are often extremely difficult to analyze.
  • JavaScript has given rise to variants such as ActionScript (the language behind Flash) and TypeScript (a strongly typed dialect of JavaScript), while JavaScript itself also keeps evolving. Supporting these dialects and new features is often desirable, but adds considerable additional complexity.

Various research and project groups have addressed these challenges, and there is a growing body of infrastructure that can be used and extended to tackle JavaScript. In this workshop, we hope to bring the builders and interested consumers of such tooling together. We plan to have a focus on tooling that, at least to some extent, addresses these challenges in a practical way. We want a combined focus on the research challenges the tools address and a tutorial-like to using these tools as well.

Submissions

We welcome any submissions of work in this field: you may submit a paper, an abstract for a talk, or a talk abstract together with a supporting position paper. To submit, please e-mail submissions to the organizers. Papers will be published on this site if desired by the authors. We propose to follow this style; if desired, slides from talks will be put online on the workshop Web site, but talks can also be kept unpublished if that is preferred so as not to preclude future publications in workshops and conferences. The organizing committee will referee submissions for relevance, as we are looking for ongoing work more than finished research projects. Additional expert opinions may be requested from the expected participants.

More details

The external web page of the workshop is here.