|
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
|
Gilad Bracha , David Griswold, Strongtalk: typechecking Smalltalk in a production environment, Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications, p.215-230, September 26-October 01, 1993, Washington, D.C., United States
|
 |
9
|
Gilad Bracha , David Ungar, Mirrors: design principles for meta-level facilities of object-oriented programming languages, Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 24-28, 2004, Vancouver, BC, Canada
|
 |
10
|
Martin C. Carlisle , Ricky E. Sward , Jeffrey W. Humphries, Weaving Ada 95 into the .net environment, Proceedings of the 2002 annual ACM SIGAda international conference on Ada: The engineering of correct and reliable software for real-time & distributed systems using Ada and related technologies, p.22-26, December 08-12, 2002, Houston, Texas, USA
|
| |
11
|
J. Clements and M. Felleisen. A tail-recursive semantics for stack inspections. In Proc. European Symposium on Programming, 2003.
|
 |
12
|
|
 |
13
|
|
| |
14
|
Robert Bruce Findler , Cormac Flanagan , Matthew Flatt , Shriram Krishnamurthi , Matthias Felleisen, DrScheme: A Pedagogic Programming Environment for Scheme, Proceedings of the9th International Symposium on Programming Languages: Implementations, Logics, and Programs: Including a Special Trach on Declarative Programming Languages in Education, p.369-388, September 03-05, 1997
|
| |
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
|
Kathryn E. Gray , Matthew Flatt, ProfessorJ: a gradual introduction to Java through language levels, Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 26-30, 2003, Anaheim, CA, USA
[doi> 10.1145/949344.949394]
|
| |
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
|
Atshushi Igarashi , Benjamin Pierce , Philip Wadler, Featherwieght Java: a minimal core calculus for Java and GJ, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.132-146, November 01-05, 1999, Denver, Colorado, United States
|
| |
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.
|
CITED BY 7
|
|
Sam Tobin-Hochstadt , Matthias Felleisen, Interlanguage migration: from scripts to programs, Companion to the 21st ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 22-26, 2006, Portland, Oregon, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|