User-defined types and procedural data structures as complementary approaches to data abstraction

@inproceedings{Reynolds1994UserdefinedTA,
  title={User-defined types and procedural data structures as complementary approaches to data abstraction},
  author={John C. Reynolds},
  year={1994}
}
User-defined types (or modes) and procedural (or functional) data structures are complementary methods for data abstraction, each providing a capability lacked by the other. With user-defined types, all information about the representation of a particular kind of data is centralized in a type definition and hidden from the rest of the program. With procedural data structures, each part of the program which creates data can specify its own representation, independently of any representations… Expand
Synthesizing Object-Oriented and Functional Design to Promote Re-Use
TLDR
This paper presents a composite design pattern that synthesizes the best of both approaches to extensibility and in the process resolves the tension between the two design strategies. Expand
Ownership confinement ensures representation independence for object-oriented programs
TLDR
This article formulates representation independence for classes, in an imperative, object-oriented language with pointers, subclassing and dynamic dispatch, class oriented visibility control, recursive types and methods, and a simple form of module. Expand
The expression problem revisited: Four new solutions using generics
TLDR
This paper investigates the solution space within the framework of the soon-to-be mainstream generic extensions of C# and the Java programming language and presents four new solutions which, though quite different, all rely on techniques that can be used in everyday programming. Expand
Type Classes and Instance Chains: A Relational Approach
TLDR
This work proposes two improvements to existing class systems, and introduces several novel language features, instance chains and explicit failure, that increase the expressiveness of type classes while providing more direct expression of current idioms. Expand
Type Classes and Instance Chains: A Relational Approach
TLDR
This work proposes two improvements to existing class systems, and introduces several novel language features, instance chains and explicit failure, that increase the expressiveness of type classes while providing more direct expression of current idioms. Expand
The Expression Problem, Gracefully
  • A. Black
  • Computer Science
  • MASPEGHI@ECOOP
  • 2015
TLDR
It is shown that the core problem is in fact the use of global constants, and it is demonstrated that an important aspect of the problem goes away when Java is replaced by a language like Grace, which eliminates them. Expand
Half & Half: Multiple Dispatch and Retroactive Abstraction for Java TM†
TLDR
A type-safe solution that combines the two mechanisms that facilitate extending existing type hierarchies by limiting multimethod type checks to package boundaries and by compiling certain packages withMultimethods into sealed Jar files is presented. Expand
Modular typechecking for hierarchically extensible datatypes and functions
TLDR
This work describes Extensible ML (eml), an ML-like language that supports hierarchical, extensible datatype and functions while preserving purely modular typechecking, and formalized a core version of eml and proven the associated type system sound. Expand
Modular typechecking for hierarchically extensible datatypes and functions
TLDR
EML's type system imposes a few requirements on datatype and function extensibility, but EML is still able to express both traditional functional and OO idioms, and is formalized and proven the associated type system sound. Expand
An Extensible State Machine Pattern for Interactive Applications
TLDR
The extensible state design pattern is described, which augments the traditional state pattern with a few additional constraints that allow subclasses to easily add both new states and new events. Expand
...
1
2
3
4
5
...