|
ABSTRACT
Object-oriented programming languages have always distinguished between “primitive” and “user-defined” data types, and in the case of languages like C++ and Java, the primitives are not even treated as objects, further fragmenting the programming model. The distinction is especially problematic when a particular programming community requires primitive-level support for a new data type, as for complex, intervals, fixed-pointed numbers, and so on.
We present Kava, a design for a backward-compatible version of Java that solves the problem of programmable lightweight objects in a much more aggressive and uniform manner than previous proposals. In Kava, there are no primitive types; instead, object-oriented programming is provided down to the level of single bits, and types such as int can be explicitly programmed within the language. While the language maintains a uniform object reference semantics, efficiency is obtained by making heavy use of unboxing and semantic expansion.
We describe Kava as a dialect of the Java language, show how it can be used to define various primitive types, describe how it can be translated into Java, and compare it to other approaches to lightweight objects.
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
|
Gilad Bracha , Martin Odersky , David Stoutamire , Philip Wadler, Making the future safe for the past: adding genericity to the Java programming language, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.183-200, October 18-22, 1998, Vancouver, British Columbia, Canada
|
| |
3
|
BROPHY, J. Complex numbers in Java, 1999. Poster presentation, ACM Java Grande Conference.
|
 |
4
|
Michael G. Burke , Jong-Deok Choi , Stephen Fink , David Grove , Michael Hind , Vivek Sarkar , Mauricio J. Serrano , V. C. Sreedhar , Harini Srinivasan , John Whaley, The Jalapeño dynamic optimizing compiler for Java, Proceedings of the ACM 1999 conference on Java Grande, p.129-141, June 12-14, 1999, San Francisco, California, United States
[doi> 10.1145/304065.304113]
|
| |
5
|
CHAMBERS, C. The Cecil language: Specification and rationale. Tech. Rep. TR-93-03-05, Department of Computer Science, University of Washington, Mar. 1993.
|
| |
6
|
CHARLES, P., AND SHIELDS, D. The Jikes project, 1999. Available at oss. software, ibm. com.
|
| |
7
|
CODY, W. J., ET AL. A proposed radix- and word-lengthindependent standard for floating-point arithmetic. 1EEE Micro 4, 4 (1984), 86-100.
|
| |
8
|
DARCY, J. D. Borneo 1.0: Adding IEEE 754 floating-point support to Java. Master's thesis, Computer Science Division, University of California, Berkeley, 1998.
|
| |
9
|
|
| |
10
|
GOSLING, J. The evolution of numerical computing in Java, 1998. Available at java.sun.com/- people/j ag/FP, html.
|
| |
11
|
James Gosling , Bill Joy , Guy Steele , Gilad Bracha, Java Language Specification, Second Edition: The Java Series, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 2000
|
| |
12
|
IEEE Standard VHDL Language Reference Manual: 1EEE Standard 1076-1993, revised ed., 1994.
|
 |
13
|
|
| |
14
|
LEROY, X. The effectiveness of type-based unboxing. In Workshop on Types in Compilation (June 1997), Technical Report BCCS-97-03, Computer Science Department, Boston College.
|
| |
15
|
|
| |
16
|
|
| |
17
|
|
 |
18
|
|
| |
19
|
NUMERICS WORKING GROUP, JAVA GRANDE FO- RUM. Improving Java for numerical computation, 1998. Available at math.nist.gov/javanumerics/- reports / j g fnwg- 01. html.
|
| |
20
|
|
| |
21
|
PHILIPPSEN, M., AND EDWIN GONTHNER. cj: A new approach for the efficient use of complex numbers in Java, 1999. Available at wwwipd, ira. uka. de/JavaPar ty/cj.
|
 |
22
|
|
 |
23
|
|
| |
24
|
System C Version 1.1 User's Guide, 2000. Available at www. systemc, org.
|
 |
25
|
D. Tarditi , G. Morrisett , P. Cheng , C. Stone , R. Harper , P. Lee, TIL: a type-directed optimizing compiler for ML, Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation, p.181-192, May 21-24, 1996, Philadelphia, Pennsylvania, United States
|
 |
26
|
David Ungar , Randall B. Smith, Self: The power of simplicity, Conference proceedings on Object-oriented programming systems, languages and applications, p.227-242, October 04-08, 1987, Orlando, Florida, United States
|
 |
27
|
Peng Wu , Sam Midkiff , José Moreira , Manish Gupta, Efficient support for complex numbers in Java, Proceedings of the ACM 1999 conference on Java Grande, p.109-118, June 12-14, 1999, San Francisco, California, United States
[doi> 10.1145/304065.304109]
|
| |
28
|
YELICK, K., ET AL. Titanium: A high-performance Java dialect. In ACM Workshop on Java for High-Performance Network Computing (Stanford, California, Feb. 1998).
|
 |
29
|
James Shin Young , Josh MacDonald , Michael Shilman , Abdallah Tabbara , Paul Hilfinger , A. Richard Newton, Design and specification of embedded systems in Java using successive, formal refinement, Proceedings of the 35th annual conference on Design automation, p.70-75, June 15-19, 1998, San Francisco, California, United States
[doi> 10.1145/277044.277058]
|
|