|
ABSTRACT
Object-oriented programming is becoming a popular approach to the construction of complex software systems. Benefits of object orientation include support for modular design, code sharing, and extensibility. In order to make the most of these advantages, a type theory for objects and their interactions should be developed to aid checking and controlled derivation of programs and to support early binding of code bodies for efficiency. As a step in this direction, this paper surveys a number of existing type theories and examines the manner and extent to which these theories are able to represent the ideas found in object-oriented programming. Of primary interest are the models provided by type theories for abstract data types and inheritance, and the major portion of this paper is devoted to these topics. Code fragments illustrative of the various approaches are provided and discussed. The introduction provides an overview of object-oriented programming and types in programming languages; the summary provides a comparative evaluation of the reviewed typing systems, along with suggestions for future work.
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
|
|
| |
3
|
AIT-KACI, H. 1985. Integrating data type inheritance into logic programming. In Persistence in Data Types, Papers for the Appin Workshop (Aug.). Dept. of Computational Science, Univ. of St. Andrews, Scotland.
|
 |
4
|
|
| |
5
|
AIT-KACI, H., LINCOLN, P., AND NASR, R. 1987. A logic of inheritance, functions, and equations. Talk presented at joint U.S./Japan Workshop on Logic of Programs, Honolulu, Hawaii.
|
 |
6
|
Pierre America , Jaco de Bakker , Joost N. Kok , Jan J. M. M. Rutten, Operational semantics of a parallel object-oriented language, Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, p.194-208, January 01, 1986, St. Petersburg Beach, Florida
[doi> 10.1145/512644.512662]
|
| |
7
|
|
 |
8
|
|
 |
9
|
Andrew Black , Norman Hutchinson , Eric Jul , Henry Levy, Object structure in the Emerald system, Conference proceedings on Object-oriented programming systems, languages and applications, p.78-86, September 29-October 02, 1986, Portland, Oregon, United States
|
 |
10
|
Daniel G. Bobrow , Kenneth Kahn , Gregor Kiczales , Larry Masinter , Mark Stefik , Frank Zdybel, CommonLoops: merging Lisp and object-oriented programming, Conference proceedings on Object-oriented programming systems, languages and applications, p.17-29, September 29-October 02, 1986, Portland, Oregon, United States
|
 |
11
|
|
| |
12
|
BRACHMAN, R. 1985. I lied about the trees. AI Magazine (fall).
|
| |
13
|
|
| |
14
|
BURSTALL, R., AND GOGUEN, J. 1982. Algebras, theories and freeness: An introduction for computer scientists. CSR-101-82, Dept. of Computer Science, Univ. of Edinburgh, Scotland.
|
| |
15
|
|
| |
16
|
CARDELLI, L. 1984a. Amber. Tech. Memo 11271- 840924-10TM, AT&T Bell Labs, Murray Hill, N.J.
|
| |
17
|
|
| |
18
|
CARDELLI, L. 1986. A polymorphic lambda calculus with type: Type. DEC Systems Research Center Rep. No. 10, Digital Equipment Corp., Palo Alto, Calif.
|
| |
19
|
|
 |
20
|
|
| |
21
|
CARDELLI, L., AND MACQUEEN, D. 1985. Persistence and type abstraction. In Persistence in Data Types, Papers for the Appin Workshop (Aug.). Res. Rep. 16, Dept. of Computational Science, Univ. of St. Andrews, Scotland, pp. 231-240.
|
 |
22
|
|
| |
23
|
COX, B. 1984. Message/object programming: An evolutionary change in programming technology. IEEE Software 1, I (Jan.).
|
| |
24
|
CURRY, H., AND FEYS, R. 1958. Combinatory Logic. North-Holland, Amsterdam.
|
 |
25
|
|
 |
26
|
|
| |
27
|
DEMERS, A., AND DONAHUE, J. 1979. Revised report on Russell. TR79-389, Dept. of Computer Science, Cornell Univ., Ithaca, N.Y.
|
 |
28
|
|
 |
29
|
|
 |
30
|
Kokichi Futatsugi , Joseph A. Goguen , Jean-Pierre Jouannaud , José Meseguer, Principles of OBJ2, Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, p.52-66, January 14-16, 1985, New Orleans, Louisiana, United States
[doi> 10.1145/318593.318610]
|
| |
31
|
GIRARD, J. 1971. Une extension de l'interpretation de GSdel ~ l'analyse, et son application ~ l'61imination des coupures dans l'analyse et la th6orie des types. In Second Scandinavian Logic Symposium, J. E. Fenstad, Ed. North-Holland, Amsterdam.
|
| |
32
|
GOGUEN, J., AND MESEGUER, J. 1986. EQLog: Equality, types, and generic modules for logic programming. In Logic Programming, D. DeGroot and G. Lindstrom, Eds. Prentice-Hall, Englewood Cliffs, N.J.
|
| |
33
|
|
| |
34
|
|
| |
35
|
GUTTAO, J. 1980. Notes on type abstraction. IEEE Trans. So{tw. Eng. SE-6, i (Jan.), 13-23.
|
 |
36
|
|
| |
37
|
HEXT, J. 1967. Compile time type-matching. Cornput. J. 9, 365-369.
|
| |
38
|
|
 |
39
|
|
 |
40
|
Yutaka Ishikawa , Mario Tokoro, A concurrent object-oriented knowledge representation language Orient84/K: its features and implementation, Conference proceedings on Object-oriented programming systems, languages and applications, p.232-241, September 29-October 02, 1986, Portland, Oregon, United States
|
 |
41
|
|
 |
42
|
|
 |
43
|
|
| |
44
|
KAY, A. 1972. Smalltalk-72 instruction manual. Xerox PARC Rep. SSL-76-6, Xerox Palo Alto Research Center, Palo Alto, Calif.
|
 |
45
|
Wilf R. LaLonde , Dave A. Thomas , John R. Pugh, An exemplar based Smalltalk, Conference proceedings on Object-oriented programming systems, languages and applications, p.322-330, September 29-October 02, 1986, Portland, Oregon, United States
|
 |
46
|
|
 |
47
|
Kevin J. Lang , Barak A. Pearlmutter, Oaklisp: an object-oriented scheme with first class types, Conference proceedings on Object-oriented programming systems, languages and applications, p.30-37, September 29-October 02, 1986, Portland, Oregon, United States
|
 |
48
|
|
 |
49
|
|
| |
50
|
MACQUEEN, D. 1985. Modules for ML. Polymorphism Newsletter (Oct.).
|
 |
51
|
|
 |
52
|
|
 |
53
|
David MacQueen , Gordon Plotkin , Ravi Sethi, An ideal model for recursive polymorphic types, Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, p.165-174, January 15-18, 1984, Salt Lake City, Utah, United States
[doi> 10.1145/800017.800528]
|
| |
54
|
MARTIN-LOF, P. 1982. Constructive logic and computer programming. In Proceedings o{ 6th International Congress for Logic, Methodology, and Philosophy of Science. North-Holland, Amsterdam.
|
| |
55
|
MATTHEWS, D. 1983. Programming language design with polymorphism. Ph.D. dissertation, Computer Lab., Univ. of Cambridge, Cambridge, England.
|
| |
56
|
MESEGUER, J., AND GOGUEN, J. 1983. Initiality, induction, and computability. Tech. Rep. CSL-140, Computer Science Laboratory, SRI, Menlo Park, Calif.
|
 |
57
|
|
| |
58
|
MEYROWITZ, N., ED. 1987. OOPSLA Conference Proceedings (Orlando, Fla., Oct.). ACM S{G- PLAN 22, 12 (Dec.).
|
| |
59
|
MILNER, R. 1978. A theory of type polymorphism in programming. J. Comput. Syst. Sci. 17, 348-375.
|
 |
60
|
|
| |
61
|
|
 |
62
|
|
 |
63
|
|
 |
64
|
|
| |
65
|
REYNOLDS, J. 1970. Transformational systems and the algebraic structure of atomic formulas. In Machine Intelligence, D. Michie, Ed., vol. 5. Edinburgh University Press, Edinburgh, Scotland, chap. 7.
|
| |
66
|
|
 |
67
|
|
 |
68
|
Craig Schaffert , Topher Cooper , Bruce Bullis , Mike Kilian , Carrie Wilpolt, An introduction to Trellis/Owl, Conference proceedings on Object-oriented programming systems, languages and applications, p.9-16, September 29-October 02, 1986, Portland, Oregon, United States
|
| |
69
|
|
| |
70
|
SCOTT, D. 1976. Data types as lattices. SIAM J. Comput. (Sept.), 522-587.
|
| |
71
|
|
| |
72
|
|
| |
73
|
SNYDER, A. 1987. inheritance and the development of encapsulated software components. In Proceedings o{ the 20th Hawaiian International Conference on Systems Sciences. Software Track, Western Periodicals, North Hollywood, Calif., pp. 227-238.
|
| |
74
|
|
 |
75
|
|
| |
76
|
|
| |
77
|
STROUSTRUP, B. 1986. C++. Addison-Wesley, Reading, Mass.
|
 |
78
|
|
| |
79
|
|
| |
80
|
U.S. DEPARTMENT OF DEFENSE. 1983. Ada Reference Manual. ANSI/MIS-STD 1815, U.S. Printing Office (Jan.), Washington, D.C.
|
| |
81
|
|
| |
82
|
|
|