ACM Home Page
Please provide us with feedback. Feedback
Type theories and object-oriented programmimg
Full text PdfPdf (4.39 MB)
Source ACM Computing Surveys (CSUR) archive
Volume 20 ,  Issue 1  (March 1988) table of contents
Pages: 29 - 72  
Year of Publication: 1988
ISSN:0360-0300
Authors
Scott Danforth  MCC, Austin, TX
Chris Tomlinson  MCC, Austin, TX
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 75,   Citation Count: 24
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/62058.62060
What is a DOI?

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
 
7
8
9
10
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
 
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
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
46
47
48
49
 
50
MACQUEEN, D. 1985. Modules for ML. Polymorphism Newsletter (Oct.).
51
52
53
 
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
 
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

CITED BY  24

Collaborative Colleagues:
Scott Danforth: colleagues
Chris Tomlinson: colleagues