Affiliation:
1. Stanford Univ., Stanford, CA
2. Univ. of Edinburgh, Edinburgh, Scotland, UK
Abstract
Abstract data type declarations appear in typed programming languages like Ada, Alphard, CLU and ML. This form of declaration binds a list of identifiers to a type with associated operations, a composite “value” we call a
data algebra
. We use a second-order typed lambda calculus SOL to show how data algebras may be given types, passed as parameters, and returned as results of function calls. In the process, we discuss the semantics of abstract data type declarations and review a connection between typed programming languages and constructive logic.
Publisher
Association for Computing Machinery (ACM)
Reference67 articles.
1. Lecture Notes in Computer Science 173;BRUCE K. B.,1984
2. BRUCE K. B. MEYER A. R. AND MITCHELL J. C. The semantics of second-order lambda calculus. In Information and Computation (to be published) 10.1016/0890-5401(90)90044-I BRUCE K. B. MEYER A. R. AND MITCHELL J. C. The semantics of second-order lambda calculus. In Information and Computation (to be published) 10.1016/0890-5401(90)90044-I
Cited by
227 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Existential Containers in Scala;Proceedings of the 21st ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes;2024-09-13
2. A Logical Approach to Type Soundness;Journal of the ACM;2024-07-10
3. The existential fragment of second-order propositional intuitionistic logic is undecidable;Journal of Applied Non-Classical Logics;2024-01-02
4. Polymorphic Types with Polynomial Sizes;Proceedings of the 9th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming;2023-06-06
5. A type-directed, dictionary-passing translation of method overloading and structural subtyping in Featherweight Generic Go;Journal of Functional Programming;2023