Skip to content
Snippets Groups Projects
javascript.md 2.64 KiB
Newer Older
pmaksimo's avatar
pmaksimo committed
title: Web Programs
parent_menu: Research
Shale XIONG's avatar
Shale XIONG committed
menu_order: 4
pmaksimo's avatar
pmaksimo committed
sub_menu_order: 3
pmaksimo's avatar
pmaksimo committed
We study the mechanised specification of the JavaScript language
(following the ECMAScript 5 standard) and the verification of
JavaScript programs.

Thomas Wood's avatar
Thomas Wood committed
#### JSCert
pmaksimo's avatar
pmaksimo committed

pmaksimo's avatar
pmaksimo committed
With Bodin, Charguéraud, and Schmitt at Inria, we
Thomas Wood's avatar
Thomas Wood committed
have developed [JSCert](http://jscert.org/), a substantial Coq specification that is
pmaksimo's avatar
pmaksimo committed
line-by-line close to the core language of the ECMAScript 5
standard. It comes with a reference interpreter, JSRef, proven correct
with respect to JSCert and tested using the official Test262 test
suite. We are currently extending this specification to the
numerous libraries, providing continuous test integration for the
ever-growing specification, developing a new, human-readable JSRef,
with a tighter connection to the standard and good tracking
properties, and creating the web service Explain.js to explain
behavioural complexities of JavaScript programs.

Thomas Wood's avatar
Thomas Wood committed
#### JSIL
pmaksimo's avatar
pmaksimo committed

We have developed a principled compiler from JavaScript (ECMAScript 5
strict) to a small intermediate language JSIL, which has a simpler
operational semantics and is better suited to program verification.
The compiler has been substantially tested using the Test262 test
pmaksimo's avatar
pmaksimo committed
suite and it comes with a hand-proof of translation correctness
pmaksimo's avatar
pmaksimo committed
for a fragment of the language. We will use JSIL to develop JSVerify - a
verification tool for JavaScript. Daiva Naudžiūnienė will
this year hold internships at Amazon and Facebook  to use
JSIL to develop front-ends for the CBMC and Infer verification tools.

Thomas Wood's avatar
Thomas Wood committed
#### Research Support
pmaksimo's avatar
pmaksimo committed

This research is supported by the EPSRC
programme grant [EP/K008528/1]: [REMS: Rigorous Engineering of
Mainstream Systems][REMS] and previously by the EPSRC/GCHQ grant [EP/K032089/1]:
[Certified Verification of Client-Side Web Programs][1] and the EPSRC
programme grant [EP/H008373/2]: [Resource Reasoning].

We also interact extensively with [Arthur Charguéraud], [Alan Schmitt] and
Thomas Wood's avatar
Thomas Wood committed
[Martin Bodin] of INRIA, who are supported by the [AJACS] project.

[EP/K032089/1]: http://gow.epsrc.ac.uk/NGBOViewGrant.aspx?GrantRef=EP/K032089/1
[EP/H008373/2]: http://gow.epsrc.ac.uk/NGBOViewGrant.aspx?GrantRef=EP/H008373/2
[EP/K008528/1]: http://gow.epsrc.ac.uk/NGBOViewGrant.aspx?GrantRef=EP/K008528/1
[REMS]: http://www.cl.cam.ac.uk/~pes20/rems/
Thomas Wood's avatar
Thomas Wood committed
[1]: https://verificationinstitute.org/project/certified-verification-of-client-side-web-programs/
[Resource Reasoning]: http://www.resourcereasoning.com/
Thomas Wood's avatar
Thomas Wood committed
[Arthur Charguéraud]: http://www.chargueraud.org/
[Alan Schmitt]: https://www.irisa.fr/celtique/aschmitt/
[Martin Bodin]: http://people.irisa.fr/Martin.Bodin/index.html?lang=en
[AJACS]: http://ajacs.inria.fr/