Title
Virtual values for language extension
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.
Year
DOI
Venue
2011
10.1145/2048066.2048136
OOPSLA
Keywords
Field
DocType
special value,behavioral intercession,language extension,firefox browser,delayed evaluation,particular language,additional numeric type,virtual value,interesting notion,primitive operation
Units of measurement,Programming language,Programmer,Computer science,Theoretical computer science,Extensibility,Semantics,Expressivity,JavaScript
Conference
Volume
Issue
ISSN
46
10
0362-1340
Citations 
PageRank 
References 
15
0.80
14
Authors
3
Name
Order
Citations
PageRank
Thomas H. Austin130715.96
Tim Disney2473.64
Cormac Flanagan32990181.36