Affiliation:
1. Massachusetts Institute of Technology, Cambridge
2. Carnegie Mellon Univ., Pittsburgh, PA
Abstract
The use of hierarchy is an important component of object-oriented design. Hierarchy allows the use of type families, in which higher level supertypes capture the behavior that all of their subtypes have in common. For this methodology to be effective, it is necessary to have a clear understanding of how subtypes and supertypes are related. This paper takes the position that the relationship should ensure that any property proved about supertype objects also holds for its subtype objects. It presents two ways of defining the subtype relation, each of which meets this criterion, and each of which is easy for programmers to use. The subtype relation is based on the specifications of the sub- and supertypes; the paper presents a way of specifying types that makes it convenient to define the subtype relation. The paper also discusses the ramifications of this notion of subtyping on the design of type families.
Publisher
Association for Computing Machinery (ACM)
Cited by
598 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Unification of automated trading systems using the principle of interface segregation;Financial Analytics: Science and Experience;2024-08-29
2. On Formal Methods Thinking in Computer Science Education;Formal Aspects of Computing;2024-06
3. iCon: Automated Verification of Inter-Transaction Properties in Tezos Smart Contracts with Unknowns;2024 IEEE International Conference on Blockchain and Cryptocurrency (ICBC);2024-05-27
4. Contract Automata: A Specification Language for Mode-Based Systems;Proceedings of the 2024 IEEE/ACM 12th International Conference on Formal Methods in Software Engineering (FormaliSE);2024-04-14
5. Schematic Program Proofs with Abstract Execution;Journal of Automated Reasoning;2024-03-26