8,762 research outputs found
Practical Datatype Specializations with Phantom Types and Recursion Schemes
Datatype specialization is a form of subtyping that captures program
invariants on data structures that are expressed using the convenient and
intuitive datatype notation. Of particular interest are structural invariants
such as well-formedness. We investigate the use of phantom types for describing
datatype specializations. We show that it is possible to express
statically-checked specializations within the type system of Standard ML. We
also show that this can be done in a way that does not lose useful programming
facilities such as pattern matching in case expressions.Comment: 25 pages. Appeared in the Proc. of the 2005 ACM SIGPLAN Workshop on
M
Encapsulation and information hiding as the keys to maintainable and reusable hypermedia applications.
This paper presents a solution to the maintenance problem in hypermedia by applying object-oriented techniques to both the hypermedia data model and the hypermedia system's actual implementation. First, the primary concepts of the 'MESH' (Maintainable, End user friendly, Structured Hypermedia) approach are discussed briefly. These consist of a conceptual data model, a navigation paradigm and an implementation framework. Thereafter, it is shown how the object-oriented concepts of encapsulation and information hiding result in a hypermedia system consisting of self-contained, independently coded nodes. Intra node maintenance is separated entirely from inter node maintenance: the hyperbase's link structure can be updated without affecting node content, whereas an individual node's multimedia content can be reorganized without necessitating updates to links or link anchors.Applications; Information; Data; Model; Structure;
A model-based approach to hypermedia design.
This paper introduces the MESH approach to hypermedia design, which combines established entity-relationship and object-oriented abstractions with proprietary concepts into a formal hypermedia data model. Uniform layout and link typing specifications can be attributed and inherited in a static node typing hierarchy, whereas both nodes and links can be submitted dynamically to multiple complementary classifications. In addition, the data model's support for a context-based navigation paradigm, as well as a platform-independent implementation framework, are briefly discussed.Data; Model; Specifications; Classification;
MESH: an object-oriented approach to hypermedia modeling and navigation.
This paper introduces the MESH approach to hypermedia modeling and navigation, which aims at relieving the typical drawbacks of poor maintainability and user disorientation. The framework builds upon two fundamental concepts. The data model combines established entity-relationship and object-oriented abstractions with proprietary concepts into a formal hypermedia data model. Uniform layout and link typing specifications can be attributed and inherited in a static node typing hierarchy, whereas both nodes and links can be submitted dynamically to multiple complementary classifications. In the context-based navigation paradigm, conventional navigation along static links is complemented by run-time generated guided tours, which are derived dynamically from the context of a user's information requirements. The result is a two-dimensional navigation paradigm, which reconciles complete navigational freedom and flexibility with a measure of linear guidance. These specifications are captured in a high-level, platform independent implementation framework.Data; Model; Specifications; Classification; Information; Requirements;
Abstracted navigational actions for improved hypermedia navigation and maintainance.
This paper discusses the MESH framework, which proposes a fully object-oriented approach to hypermedia. Object-oriented abstractions are not only applied to the conceptual data model, but also to the navigation paradigm. This results in the concept of context-based navigation, which reduces the end user's disorientation problem by means of dynamically generated, context-sensitive guided tours. Moreover, maintainability is greatly improved, as both nodes and links are defined as instances of abstract classes. I this way, single links and entire guided tours are anchored on type level as abstract navigational actions, which are independent of the actual link instances.Marketing; Data; Model;
The Ecce and Logen Partial Evaluators and their Web Interfaces
We present Ecce and Logen, two partial evaluators for Prolog using the online and offline approach respectively. We briefly present the foundations of these tools and discuss various applications. We also present new implementations of these tools, carried out in Ciao Prolog. In addition to a command-line interface new user-friendly web interfaces were developed. These enable non-expert users to specialise logic programs using a web browser, without the need for a local installation
Waltz User Manual
This Document describes relevant information to understand and control the Waltz Visualization System. Waltz is a tool to visualize three dimensional data and reads special reference files containing details of the data file, path name, dimensions and aspect ratios of the data. Waltz (as the name suggests) contains three parts: Generalization, Specialization and Abstraction. The Generalization Process splits the data into spatially connected groups. A specialization is formed from a subset (selection) of these groups. The results are displayed in multiple abstract views of the same data. These abstractions are formed by losing or augmenting the data to facilitate in the understanding of the data
Description and Optimization of Abstract Machines in a Dialect of Prolog
In order to achieve competitive performance, abstract machines for Prolog and
related languages end up being large and intricate, and incorporate
sophisticated optimizations, both at the design and at the implementation
levels. At the same time, efficiency considerations make it necessary to use
low-level languages in their implementation. This makes them laborious to code,
optimize, and, especially, maintain and extend. Writing the abstract machine
(and ancillary code) in a higher-level language can help tame this inherent
complexity. We show how the semantics of most basic components of an efficient
virtual machine for Prolog can be described using (a variant of) Prolog. These
descriptions are then compiled to C and assembled to build a complete bytecode
emulator. Thanks to the high level of the language used and its closeness to
Prolog, the abstract machine description can be manipulated using standard
Prolog compilation and optimization techniques with relative ease. We also show
how, by applying program transformations selectively, we obtain abstract
machine implementations whose performance can match and even exceed that of
state-of-the-art, highly-tuned, hand-crafted emulators.Comment: 56 pages, 46 figures, 5 tables, To appear in Theory and Practice of
Logic Programming (TPLP
- …