|
ABSTRACT
By extending an ML-style type system with record polymorphism, recursive type definition, and an ordering relation induced by field inclusion, it is possible to achieve seamless and type safe interoperability with an object-oriented language. Based on this observation, we define a polymorphic language that can directly access external objects and methods, and develop a type inference algorithm. This calculus enjoys the features of both higher-order programming with ML polymorphism and class-based object-oriented programming with dynamic method dispatch. To establish type safety, we define a sample object-oriented language with multiple inheritance as the target for interoperability, define an operational semantics of the calculus, and show that the type system is sound with respect to the operational semantics. These results have been implemented in our prototype interpretable language, which can access Java class files and other external resources.
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
|
M. Blume. No-longer-foreign: Teaching an ML compiler to speak C "natively". In N. Benton and A. Kennedy, editors, Electronic Notes in Theoretical Computer Science, volume~59. Elsevier Science Publishers, 2001.
|
| |
2
|
|
 |
3
|
|
| |
4
|
M. Corporation and D. Corporation. The component object model specification, 1995.
|
 |
5
|
Sigbjorn Finne , Daan Leijen , Erik Meijer , Simon Peyton Jones, Calling hell from heaven and heaven from hell, Proceedings of the fourth ACM SIGPLAN international conference on Functional programming, p.114-125, September 27-29, 1999, Paris, France
|
 |
6
|
Sigbjorn Finne , Daan Leijen , Erik Meijer , Simon Peyton Jones, H/Direct: a binary foreign language interface for Haskell, Proceedings of the third ACM SIGPLAN international conference on Functional programming, p.153-162, September 26-29, 1998, Baltimore, Maryland, United States
|
 |
7
|
|
| |
8
|
|
| |
9
|
|
 |
10
|
|
| |
11
|
X. Leroy. Polymorphic typing of an algorithmic language. PhD thesis, University of Paris VII, 1992.
|
| |
12
|
X. Leroy. The Objective Caml system: Documentation and user's manual, 2000. (with Damien Doligez, Jacques Garrigue, Didier Rémy, and Jérôme Vouillon Available from http://caml.inria.fr.)
|
| |
13
|
|
| |
14
|
E. Meijer and K. Claessen. The design and implementation of Mondrian. In Haskell Workshop. ACM, June 1997.
|
| |
15
|
E. Meijer and S. Finne. Lambada, Haskell as a better java. In G. Hutton, editor, Electronic Notes in Theoretical Computer Science, volume~41. Elsevier Science Publishers, 2001.
|
| |
16
|
|
 |
17
|
|
 |
18
|
|
 |
19
|
|
| |
20
|
|
 |
21
|
|
Peer to Peer - Readers of this Article have also read:
-
Data structures for quadtree approximation and compression
Communications of the ACM
28, 9
Hanan Samet
-
A hierarchical single-key-lock access control using the Chinese remainder theorem
Proceedings of the 1992 ACM/SIGAPP Symposium on Applied computing
Kim S. Lee
, Huizhu Lu
, D. D. Fisher
-
The GemStone object database management system
Communications of the ACM
34, 10
Paul Butterworth
, Allen Otis
, Jacob Stein
-
An intelligent component database for behavioral synthesis
Proceedings of the 27th ACM/IEEE conference on Design automation
Gwo-Dong Chen
, Daniel D. Gajski
-
Putting innovation to work: adoption strategies for multimedia communication systems
Communications of the ACM
34, 12
Ellen Francik
, Susan Ehrlich Rudman
, Donna Cooper
, Stephen Levine
|