Advertisement

A Trusted Mechanised Specification of JavaScript: One Year On

  • Philippa Gardner
  • Gareth Smith
  • Conrad Watt
  • Thomas Wood
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9206)

Abstract

The JSCert project provides a Coq mechanised specification of the core JavaScript language. A key part of the project was to develop a methodology for establishing trust, by designing JSCert in such a way as to provide a strong connection with the JavaScript standard, and by developing JSRef, a reference interpreter which was proved correct with respect to JSCert and tested using the standard Test262 test suite. In this paper, we assess the previous state of the project at POPL’14 and the current state of the project at CAV’15. We evaluate the work of POPL’14, providing an analysis of the methodology as a whole and a more detailed analysis of the tests. We also describe recent work on extending JSRef to include Google’s V8 Array library, enabling us to cover more of the language and to pass more tests.

Keywords

Operational Semantic Correctness Proof Reference Interpreter Core Language English Prose 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Notes

Acknowledgements

Two of the authors of this paper, Gardner and Smith, were part of the original team working on JSCert. We would like to thank the other co-authors for continuing invaluable discussions about this project: Martin Bodin, Arthur Charguéraud and Alan Schmitt from Inria; and Daniel Filaretti, Sergio Maffeis and Daiva Naudžiūnienė from Imperial. We also would like to thank Petar Maksimović and Alan Schmitt for interesting discussions and interaction about the Array library. They are beginning to specify the core Array library in Coq.

Gardner and Smith are supported by EPSRC Grant EP/K032089/1. Watt was supported by a GCHQ Undergraduate Internship Project award. Wood is supported by an EPSRC DTA award.

References

  1. 1.
    Bodin, M., Charguéraud, A., Filiaretti, D., Gardner, P., Maffeis, S., Naudžiūnienė, D., Schmitt, A., Smith, G.: A trusted mechanised javascript specification. In: Proceedings of the 41st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. POPL 2014, ACM (2014)Google Scholar
  2. 2.
    Charguéraud, A.: Pretty-big-step semantics. In: Felleisen, M., Gardner, P. (eds.) ESOP 2013. LNCS, vol. 7792, pp. 41–60. Springer, Heidelberg (2013) Google Scholar
  3. 3.
    Maffeis, S., Mitchell, J.C., Taly, A.: An operational semantics for javascript. In: Ramalingam, G. (ed.) APLAS 2008. LNCS, vol. 5356, pp. 307–325. Springer, Heidelberg (2008) Google Scholar
  4. 4.
    Park, D., Ştefănescu, A., Roşu, G.: KJS: A complete formal semantics of javascript. In: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation. PLDI 2015, pp. 428–438. ACM (2015)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Philippa Gardner
    • 1
  • Gareth Smith
    • 1
  • Conrad Watt
    • 1
  • Thomas Wood
    • 1
  1. 1.Imperial College LondonLondonUK

Personalised recommendations