Abstract
A systematic representation of objects grouped into types by constructions similar to the composition of sets in mathematics is proposed. The representation is by lambda expressions, which supports the representation of objects from function spaces. The representation is related to a rather conventional language of type descriptions in a way that is believed to be new. Ordinary control-expressions (i.e.,case- and let-expressions) are derived from the proposed representation.
- 1 BARENDREGT, H. P. The Lambda Calculus--Its Syntax and Semantics. North Holland, Amsterdam, 1981.Google Scholar
- 2 B/~HM, C., AND BERARDUCCI, A. Automatic synthesis of typed A-programs on term algebras. Theor. Comput. Sci. 39 (1985), 135-154.Google Scholar
- 3 CURRY, H. B., HINDLEY, J. R., AND SELDIN, J.P. Combinatory Logic: Volume II. North Holland, Amsterdam, 1972.Google Scholar
- 4 GOGUEN, J. A., THATCHER, g. W., AND WAGNER, E. G. An initial algebra approach to the specification, correctness and implementation of abstract data types. In Current Trends in Programming Methodology--IV. R. T. Yeh, Ed. Prentice-Hall, Englewood Cliffs, N.J., 1979, pp. 80-149.Google Scholar
- 5 HENDERSON, P. Functional Programming Application and Implementation. Prentice-Hall, Englewood Cliffs, N.J., 1980. Google Scholar
- 6 HOARE, C. A.R. Recursive data structure. Int. J. Comput. Inf. Sci. 4, 2 (1975), 105-132.Google Scholar
- 7 HOWARD, W.A. The formulae-as-types notion of construction. In To H. B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism. J. P. Seldin, and J. R. Hindley, Eds. Academic Press, New York, 1980, pp. 479-490.Google Scholar
- 8 KAMIN, S. Final data types and their specification. ACM Trans. Program. Lang. Syst. 5, i (Jan. 1983), 97-123. Google Scholar
- 9 LEIVANT, D. Reasoning about functional programs and complexity classes associated with type disciplines. In 24th Annual Symposium on the Foundation of Computer Science (Tucson, Ariz., Nov. 7-9, 1983). IEEE, New York, 1983, pp. 460-469.Google Scholar
- 10 MARTIN-LOF, P. Constructive mathematics and computer programming. In 6th International Congress for Logic, Methodology and Philosophy of Science (Hannover, 1979). North-Holland, Amsterdam, 1982, pp. 153-175.Google Scholar
- 11 MILNER, R. A proposal for standard ML. In Proceedings of the 1984 ACM Symposium on Lisp and Functional Programming (Austin, Tex., Aug. 1984). ACM, New York, 1984, pp. 184-197. Google Scholar
- 12 MORRIS, J. Types are not sets. In ACM Symposium on Principles of Programming Languages (Boston, 1973) ACM, New York, 1973, pp. 120-124. Google Scholar
- 13 SCOTT, D. Data types as latices. SIAM J. Comput. 5, 3 (Sept. 1976), 522-577.Google Scholar
- 14 STEENSGAARD-MADSEN, J. Pascal--clarification and recommended extensions. Acta Inf. 12 (1979) 73-94.Google Scholar
- 15 STEENSGAARD-MADSEN, J. A statement-oriented approach to data abstraction. ACM Trans. Program. Lang. Syst. 3, i (Jan. 1981), 1-10. Google Scholar
- 16 STEENGAARD-MADSEN, J. Definition of the programming language MODEF. SIGPLAN Not. 19, 2 (Feb. 1984).Google Scholar
- 17 WANO, M. Final algebra semantics and data type extensions. J. Comput. Syst. Sci. 19, 1 (Aug. 1979), 27-44.Google Scholar
- 18 WEANER, P. Classification in object-oriented systems. SIGPLAN Not. 21, 10 (Oct. 1986), 173-182. Google Scholar
- 19 WIRTH, N. The programming language Pascal, Acta Inf. 1, I (1971), 35-63.Google Scholar
Index Terms
- Typed representation of objects by functions
Recommendations
Typed self-evaluation via intensional type functions
POPL '17Many popular languages have a self-interpreter, that is, an interpreter for the language written in itself. So far, work on polymorphically-typed self-interpreters has concentrated on self-recognizers that merely recover a program from its ...
Typed self-evaluation via intensional type functions
POPL '17: Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming LanguagesMany popular languages have a self-interpreter, that is, an interpreter for the language written in itself. So far, work on polymorphically-typed self-interpreters has concentrated on self-recognizers that merely recover a program from its ...
Typed self-representation
PLDI '09Self-representation -- the ability to represent programs in their own language -- has important applications in reflective languages and many other domains of programming language design. Although approaches to designing typed program representations ...
Comments