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. Austin | 1 | 307 | 15.96 |
Tim Disney | 2 | 47 | 3.64 |
Cormac Flanagan | 3 | 2990 | 181.36 |