Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications 2011
DOI: 10.1145/2048066.2048136
|View full text |Cite
|
Sign up to set email alerts
|

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 fu… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
8
0

Year Published

2012
2012
2023
2023

Publication Types

Select...
5
1
1

Relationship

0
7

Authors

Journals

citations
Cited by 23 publications
(8 citation statements)
references
References 21 publications
0
8
0
Order By: Relevance
“…Yet to avoid jeopardizing the security of the host page, the programmer of the host page needs to carefully restrict the authority of embedded code. To help programmers resolve this tension, tools for "taming" third-party JavaScript code, such as Caja [1] and JSand [6], use JavaScript proxy technology [7,8,9] to enforce the principles of object capabilities on mashups. Object-capability systems [10] treat all object references as capabilities and achieve capability safety by restricting object interactions to message passing.…”
Section: A Example: Securing a Web Mashupmentioning
confidence: 99%
See 1 more Smart Citation
“…Yet to avoid jeopardizing the security of the host page, the programmer of the host page needs to carefully restrict the authority of embedded code. To help programmers resolve this tension, tools for "taming" third-party JavaScript code, such as Caja [1] and JSand [6], use JavaScript proxy technology [7,8,9] to enforce the principles of object capabilities on mashups. Object-capability systems [10] treat all object references as capabilities and achieve capability safety by restricting object interactions to message passing.…”
Section: A Example: Securing a Web Mashupmentioning
confidence: 99%
“…Object-capability-safe languages typically already have constructs that achieve complete and transparent mediation and interposition, e.g., membranes [10] in E and Caja. Recent research [7] explores the addition of such a feature to existing languages, and contract systems have been implemented using membrane-like constructs [19,31]. In addition, membranes have been used to equip Javascript objects with contracts for path-based access control for method invocation [32].…”
Section: B Implementing Capability Controlmentioning
confidence: 99%
“…First, we manually combine the example test programs into a single file via concatenation (not shown). 4 DSLInfer uses the Ruby Intermediate Language (RIL) [19], a tool designed for exactly this kind of use, to parse in the example programs and replace each call m(args...) without an explicit receiver (i.e., a potential keyword call) with a call to dsl log(:m, stmt id, args...). Here, m is the method name, stmt id is the unique RIL statement id, and args are the original 4 No example uses side effects such that concatenation would be unsafe.…”
Section: Contracts For Dsl Structurementioning
confidence: 99%
“…Proxies. Both Strickland et al [31] and Austin et al [4] present systems for proxying primitive values and interposing on their operations in JavaScript and Racket, respectively. Method shims in our implementation are inspired by Strickland et al's description of chaperones and impersonators for functional values.…”
Section: Related Workmentioning
confidence: 99%
“…Such objects have been called mirages [15] or virtual values [4], and have largely been studied in the context of behavioural intercession, or augmenting or replacing behaviours on existing objects. Holographic objects are similar in implementation, but focus instead on reproducing the behaviour of base objects with no actual base object available in the runtime to provide the base behaviour.…”
Section: Mirror-based Behavioral Intercessionmentioning
confidence: 99%