A middle-out concept of hierarchy (or the problem of feeding the animals)
ACM SIGSOFT Software Engineering Notes
Programming Ruby: the pragmatic programmer's guide
Programming Ruby: the pragmatic programmer's guide
Types and programming languages
Types and programming languages
A Discipline of Programming
Java Virtual Machine Specification
Java Virtual Machine Specification
Structuring primitives in the Callimachus component-based open hypermedia system
Journal of Network and Computer Applications - Special issue: Structural computing: research directions, systems and issues
IUHM: a hypermedia-based model for integrating open services, data and metadata
Proceedings of the fourteenth ACM conference on Hypertext and hypermedia
Unifying structure, behavior, and data with themis types and templates
Proceedings of the fifteenth ACM conference on Hypertext and hypermedia
A metainformatical view of collections
MIS '05 Proceedings of the 2005 symposia on Metainformatics
Hi-index | 0.00 |
Structural computing has evolved from Work on open hypermedia to aid in the construction of domain-specific software infrastructure and tools. Part of the premise of structural computing has been that by focusing on the abstraction of structure rather than on a concrete data layer, it should make it easier for developers to use appropriate levels of abstraction to build applications. By using the appropriate level of abstraction, the resulting systems can represent components in ways that closely reflect the problem space, instead of forcing the problem into an implementation-centric paradigm. Our previous work has concentrated on how to accomplish these ends through the abstraction of data--this paper concentrates on the benefits of abstraction of type. As our concern is primarily with modelling the problem space in an application domain, we approach 'type' initially from a problem-space viewpoint, not from a theoretic model. 'Type' is not a monolithic concept: a type may be an interface definition, a set of properties, or a classification. The meaning of a type depends on the individual entity to which the type is being applied, as well as the context in which the typing occurs. The meaning of 'type' in a problem domain may differ greatly from 'type' in an application addressing that domain, and the distinction must be kept clear. Types, like the entities to which they are applied, are not necessarily static. This observation is especially important in applications addressing domains that involve complex activities. This paper proposes a framework for distinguishing among the varieties of 'type' and describes uses for each. In the context of structural programming, we discuss techniques for building context-dependent extensions to existing types (whether interface definitions or classifications) that support applications where both the definitions of types and the classification of items are subject to change. We contextualize this work with respect to related research, and with more general software development concerns.