ACM Home Page
Please provide us with feedback. Feedback
Fine-grained interoperability through mirrors and contracts
Full text PdfPdf (392 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
San Diego, CA, USA
SESSION: Adaptation adapted table of contents
Pages: 231 - 245  
Year of Publication: 2005
ISBN:1-59593-031-0
Also published in ...
Authors
Kathryn E. Gray  University of Utah
Robert Bruce Findler  University of Chicago
Matthew Flatt  University of Utah
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 32,   Citation Count: 7
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1094811.1094830
What is a DOI?

ABSTRACT

As a value flows across the boundary between interoperating languages, it must be checked and converted to fit the types and representations of the target language. For simple forms of data, the checks and coercions can be immediate; for higher order data, such as functions and objects, some must be delayed until the value is used in a particular way. Typically, these coercions and checks are implemented by an ad-hoc mixture of wrappers, reflection, and dynamic predicates. We observe that 1) the wrapper and reflection operations fit the profile of mirrors, 2) the checks correspond to contracts, and 3) the timing and shape of mirror operations coincide with the timing and shape of contract operations. Based on these insights, we present a new model of interoperability that builds on the ideas of mirrors and contracts, and we describe an interoperable implementation of Java and Scheme that is guided by the model.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
K. Anderson, T. Hickey, and P. Norvig. JScheme User manual, Apr. 2002. jscheme.sourceforge.net/jscheme/doc/userman.html.
 
3
K. R. Anderson, T. J. Hickey, and P. Norvig. SILK - a playful blend of Scheme and Java. In Proc. Workshop on Scheme and Functional Programming, Sept. 2000.
 
4
D. M. Beazley. SWIG : An easy to use tool for integrating scripting languages with C and C++. In Tcl/Tk Workshop, 1996.
5
 
6
M. Blume. No-longer-foreign: Teaching an ML compiler to speak C "natively". In BABEL: Workshop on multi-language infrastructure and interoperability, Sept. 2001.
 
7
P. Bothner. Kawa: Compiling Scheme to Java. In Lisp Users Conference, Nov. 1998.
8
9
10
 
11
J. Clements and M. Felleisen. A tail-recursive semantics for stack inspections. In Proc. European Symposium on Programming, 2003.
12
13
 
14
 
15
R. B. Findler, M. Flatt, and M. Felleisen. Semantic casts: Contracts and structural subtyping in a nominal world. In Proc. European Conference on Object-Oriented Programming, 2004.
 
16
M. Flatt. PLT MzScheme: Language manual. Technical Report TR97-280, Rice University, 1997.
17
 
18
 
19
M. Furr and J. S. Foster. Checking Type Safety of Foreign Function Calls. Technical Report CS-TR-4627, University of Maryland, Computer Science Department, Nov. 2004.
 
20
 
21
 
22
P. Graunke. Web Interactions. PhD thesis, Northeastern University, 2003.
23
 
24
K. E. Gray and M. Flatt. Compiling Java to PLT Scheme. In Proc. Workshop on Scheme and Functional Programming, Sept. 2004.
 
25
J. Hamilton. Interlanguage object sharing with som. In COOTS, 1996.
26
27
 
28
 
29
S. G. Miller. SISC: A complete Scheme interpreter in Java. sisc.sourceforge.net/sisc.pdf, Feb. 2003.
 
30
S. G. Miller and M. Radestock. SISC for Seasoned Schemers, 2003. sisc.sourceforge.net/manual.
 
31
OMG(1997). The common object request broker: Architecture and specification. Revision 2.0 July 1995, Update July 1996, Object Management Group, formal document 97-02-25 www.omg.org.
 
32
33
 
34
 
35
 
36
G. van Rossum. Python Reference Manual, Nov. 2004. http://docs.python.org/ref/ref.html.
 
37
A. Wollrath, R. Riggs, and J. Waldo. A distributed object model for the Java system. In COOTS, 1996.


Collaborative Colleagues:
Kathryn E. Gray: colleagues
Robert Bruce Findler: colleagues
Matthew Flatt: colleagues