A trusted mechanised JavaScript specification

  • Authors:
  • Martin Bodin;Arthur Chargueraud;Daniele Filaretti;Philippa Gardner;Sergio Maffeis;Daiva Naudziuniene;Alan Schmitt;Gareth Smith

  • Affiliations:
  • Inria & ENS Lyon, Rennes, France;Inria & LRI, Universite Paris Sud, CNRS, Saclay, France;Imperial College London, London, United Kingdom;Imperial College London, London, United Kingdom;Imperial College London, London, United Kingdom;Imperial College London, London, United Kingdom;Inria, Rennes, France;Imperial College London, London, United Kingdom

  • Venue:
  • Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
  • Year:
  • 2014

Quantified Score

Hi-index 0.00

Visualization

Abstract

JavaScript is the most widely used web language for client-side applications. Whilst the development of JavaScript was initially just led by implementation, there is now increasing momentum behind the ECMA standardisation process. The time is ripe for a formal, mechanised specification of JavaScript, to clarify ambiguities in the ECMA standards, to serve as a trusted reference for high-level language compilation and JavaScript implementations, and to provide a platform for high-assurance proofs of language properties. We present JSCert, a formalisation of the current ECMA standard in the Coq proof assistant, and JSRef, a reference interpreter for JavaScript extracted from Coq to OCaml. We give a Coq proof that JSRef is correct with respect to JSCert and assess JSRef using test262, the ECMA conformance test suite. Our methodology ensures that JSCert is a comparatively accurate formulation of the English standard, which will only improve as time goes on. We have demonstrated that modern techniques of mechanised specification can handle the complexity of JavaScript.