Skip to main content
Article
Virtual values of language extension
OOPSLA: Proceedings of the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, part of SPLASH 2011 (2011)
  • Thomas H. Austin, University of California, Santa Cruz
  • Tim Disney, University of California, Santa Cruz
  • Cormac Flanagan, University of California, Santa Cruz
Abstract
This paper focuses on extensibility, the ability of a programmer using a particular language to extend the expressiveness of that language. This paper explores how to provide an interesting notion of extensibility by virtualizing the interface between code and data. A virtual value is a special value that supports behavioral intercession. When a primitive operation is applied to a virtual value, it invokes a trap on that virtual value. A virtual value contains multiple traps, each of which is a user-defined function that describes how that operation should behave on that value. This paper formalizes the semantics of virtual values, and shows how they enable the definition of a variety of language extensions, including additional numeric types; delayed evaluation; taint tracking; contracts; revokable membranes; and units of measure. We report on our experience implementing virtual values for Javascript within an extension for the Firefox browser.
Keywords
  • Virtual values,
  • ACM,
  • language extensions,
  • program semantics,
  • semantics reasoning,
  • computation
Disciplines
Publication Date
2011
Publisher Statement
SJSU users: use the following link to login and access the article via SJSU databases
Citation Information
Thomas H. Austin, Tim Disney and Cormac Flanagan. "Virtual values of language extension" OOPSLA: Proceedings of the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, part of SPLASH 2011 Vol. 46 Iss. 10 (2011)
Available at: http://works.bepress.com/thomas_austin/10/