8,762 research outputs found

    Practical Datatype Specializations with Phantom Types and Recursion Schemes

    Get PDF
    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.

    Get PDF
    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.

    Get PDF
    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.

    Get PDF
    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.

    Get PDF
    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

    No full text
    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

    Get PDF
    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

    Full text link
    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
    corecore