Skip to content
Snippets Groups Projects
javascript.md 2.64 KiB
Newer Older
  • Learn to ignore specific revisions
  • ---
    title: JavaScript
    
    parent_menu: Research
    
    Shale XIONG's avatar
    Shale XIONG committed
    menu_order: 4
    sub_menu_order: 2
    
    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
    suite and it comes with a hand-proof of translation correctness 
    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
    
    
    Thomas Wood's avatar
    Thomas Wood committed
    This research is supported by the EPSRC/GCHQ grant [EP/K032089/1]:
    
    [Certified Verification of Client-Side Web Programs][1], the EPSRC
    programme grant [EP/K008528/1]: [REMS: Rigorous Engineering of
    Mainstream Systems][REMS] and previously by 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/