skip to main content
10.1145/1292535.1292543acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
Article

Status report: specifying javascript with ML

Published: 02 October 2007 Publication History

Abstract

The Ecma TC39-TG1 working group is using ML as the specification language for the next generation of JavaScript, the popular programming language for browser-based web applications. This "definitional interpreter" serves many purposes: a high-level and readable specification language, an executable and testable specification, a reference implementation, and an aid in driving the design process. We describe the design and specification of JavaScript and our experience so far using Standard ML for this purpose.

References

[1]
Christopher Anderson, Paola Giannini, and Sophia Drossopoulou. Towards type inference for JavaScript. In 19th European Conference on Object-Oriented Programming (ECOOP 2005), pages 428--453, 2005.
[2]
Andrew W. Appel and David B. MacQueen. Standard ML of New Jersey. In J. Maluszynski and M. Wirsing, editors, Proceedings of the Third International Symposium on Programming Language Implementation and Logic Programming, pages 1--13. Springer Verlag, 1991.
[3]
Nick Benton, Andrew Kennedy, and Claudio V. Russo. Adventures in interoperability: the SML.NET experience. In PPDP '04: Proceedings of the 6th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming, pages 215--226, New York, NY, USA, 2004. ACM Press. ISBN 1-58113-819-9.
[4]
Frederick P. Brooks, Jr. No silver bullet: essence and accidents of software engineering. In Information Processing 86, pages 1069--1076, 1986. International Federation of Information Processing (IFIP) Congress '86.
[5]
Paul T. Darga and Chandrasekhar Boyapati. Efficient software model checking of data structure properties. In OOPSLA '06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, pages 363--382, New York, NY, USA, 2006. ACM Press. ISBN 1-59593-348-4.
[6]
Ecma 2007. ECMAScript Edition 4 specification wiki, 2007. URL http://wiki.ecmascript.org.
[7]
Ecma 2006. C} Language Specification. Ecma International, 4th edition, 2006. ECMA-334.
[8]
Ecma 1999. ECMAScript Language Specification. Ecma International, 3rd edition, 1999. ECMA-262.
[9]
Steven E. Ganz, Daniel P. Friedman, and Mitchell Wand. Trampolined style. In International Conference on Functional Programming, pages 18--27, 1999.
[10]
Jesse J. Garrett. Ajax: A new approach to web applications, 2005.
[11]
James Gosling, Bill Joy, Guy Steele, and Gilad Bracha. The Java Language Specification, Second Edition. Addison-Wesley, Boston, Mass., 2000. ISBN 0-201-31008-2.
[12]
David Herman. Functional Pearl: The Great Escape. In International Conference on Functional Programming (ICFP), October 2007. To appear.
[13]
David Herman, Aaron Tomb, and Cormac Flanagan. Space-efficient gradual typing. In Trends in Functional Programming, April 2007.
[14]
Waldemar Horwat. ECMAScript edition 3 errata, June 2003a. URL http://www.mozilla.org/js/language/E262-3-errata.html.
[15]
Waldemar Horwat. JavaScript 2.0: Evolving a language for evolving systems. URL http://www.mozilla.org/js/ language/evolvingJS.pdf. Lightweight Languages Workshop (LL1), 2001.
[16]
Waldemar Horwat. ECMAScript 4 Netscape proposal, June 2003b. URL http://www.mozilla.org/js/language/old--es4.
[17]
Waldemar Horwat. JavaScript 2.0 experimental semantics, 2003c. URL http://lxr.mozilla.org/mozilla/source/js2/semantics/.
[18]
LtU 2006. Specifying ECMAScript via ML, November 2006. URL http://lambda-the-ultimate.org/node/1784.
[19]
Jacob Matthews, Robert Bruce Findler, Matthew Flatt, and Matthias Felleisen. A visual environment for developing context-sensitive term rewriting systems. In International Conference on Rewriting Techniques and Applications (RTA2004), 2004.
[20]
Robin Milner, Mads Tofte, Robert Harper, and David MacQueen. The Definition of Standard ML - Revised. The MIT Press, May 1997. ISBN 0262631814.
[21]
Monotone 2007. Monotone: Distributed version control, 2007. URL http://monotone.ca/.
[22]
John C. Reynolds. Definitional interpreters for higher--order programming languages. In Proceedings of the ACM Annual Conference, pages 717--740, New York, NY, August 1972. ACM Press.
[23]
Neil Schemenauer, Tim Peters, and Magnus Lie Hetland. Simple generators, May 2001. URL http://www.python.org/dev/peps/pep-0255/. PEP-255.
[24]
Jeremy G. Siek and Walid Taha. Gradual typing for functional languages. In Scheme and Functional Programming Workshop, September 2006.
[25]
Jeremy G. Siek and Walid Taha. Gradual typing for objects. In ECOOP, Berlin, Germany, July 2007.
[26]
Peter Thiemann. Towards a type system for analyzing JavaScript programs. In European Symposium On Programming, pages 408--422, 2005.
[27]
Trac 2007. The Trac Project, 2007. URL http://trac.edgewall.org/.
[28]
David Ungar and Randall B. Smith. Self: The power of simplicity. In Norman Meyrowitz, editor, Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), pages 227--242, New York, NY, 1987. ACM Press.
[29]
Guido van Rossum and Phillip J. Eby. Coroutines via enhanced generators, May 2005. URL http://www.python.org/dev/peps/pep-0342/.
[30]
Eelco Visser. Stratego: A language for program transformation based on rewriting strategies. System description of Stratego 0.5. In A. Middeldorp, editor, Rewriting Techniques and Applications (RTA'01), volume 2051 of Lecture Notes in Computer Science, pages 357--361. Springer-Verlag, May 2001.
[31]
Stephen Weeks. Whole-program compilation in MLton. In ML '06: Proceedings of the 2006 workshop on ML, pages 1--1, New York, NY, USA, 2006. ACM Press. ISBN 1-59593-483-9.

Cited By

View all
  • (2022)Automatically deriving JavaScript static analyzers from specifications using Meta-level static analysisProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3549097(1022-1034)Online publication date: 7-Nov-2022
  • (2020)Verilog HDL and its ancestors and descendantsProceedings of the ACM on Programming Languages10.1145/33863374:HOPL(1-90)Online publication date: 12-Jun-2020
  • (2020)The history of Standard MLProceedings of the ACM on Programming Languages10.1145/33863364:HOPL(1-100)Online publication date: 12-Jun-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ML '07: Proceedings of the 2007 workshop on Workshop on ML
October 2007
102 pages
ISBN:9781595936769
DOI:10.1145/1292535
  • General Chair:
  • Claudio Russo,
  • Program Chair:
  • Derek Dreyer
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 02 October 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. JavaScript
  2. definitional interpreters
  3. standard ML

Qualifiers

  • Article

Conference

ICFP07
Sponsor:

Acceptance Rates

Overall Acceptance Rate 6 of 11 submissions, 55%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 22 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2022)Automatically deriving JavaScript static analyzers from specifications using Meta-level static analysisProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3549097(1022-1034)Online publication date: 7-Nov-2022
  • (2020)Verilog HDL and its ancestors and descendantsProceedings of the ACM on Programming Languages10.1145/33863374:HOPL(1-90)Online publication date: 12-Jun-2020
  • (2020)The history of Standard MLProceedings of the ACM on Programming Languages10.1145/33863364:HOPL(1-100)Online publication date: 12-Jun-2020
  • (2020)JavaScript: the first 20 yearsProceedings of the ACM on Programming Languages10.1145/33863274:HOPL(1-189)Online publication date: 12-Jun-2020
  • (2020)A history of the Groovy programming languageProceedings of the ACM on Programming Languages10.1145/33863264:HOPL(1-53)Online publication date: 12-Jun-2020
  • (2017)Analysis of JavaScript ProgramsACM Computing Surveys10.1145/310674150:4(1-34)Online publication date: 25-Aug-2017
  • (2015)KJS: a complete formal semantics of JavaScriptACM SIGPLAN Notices10.1145/2813885.273799150:6(346-356)Online publication date: 3-Jun-2015
  • (2015)KJS: a complete formal semantics of JavaScriptProceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/2737924.2737991(346-356)Online publication date: 3-Jun-2015
  • (2014)A trusted mechanised JavaScript specificationACM SIGPLAN Notices10.1145/2578855.253587649:1(87-100)Online publication date: 8-Jan-2014
  • (2014)A trusted mechanised JavaScript specificationProceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages10.1145/2535838.2535876(87-100)Online publication date: 11-Jan-2014
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media