145,627 research outputs found

    Dependable compositions : a formal approach

    Get PDF
    Design processes for most engineering disciplines are based on component reuse. In much the same way as the need for customizable reuse of software fueled the growth and development of object-oriented programming languages over module-based languages, the same driving force for component-based solutions is leading to object-oriented languages being transcended by component-based composition languages. Existing declarative programming languages are ideally suited to the construction of software components, but are inappropriate for specifying compositions of components in a high level manner. Indeed several composition environments exist that are built on top of object-oriented languages though they fail to supply the level of abstraction required to specify compositions of components. This is particularly true when the components are black boxes. In order to reuse a black box component, an accurate and unambiguous description of the component's functionality must exist. It is doubtful that natural language can fulfil this requirement. This thesis advocates a formal approach to specifying a component and demonstrates that this approach will aid in the composition and verification of component based systems. The thesis presents a general solution to the problem by defining the formal semantics for a composition of components. Building on this work, a formal definition of exceptional component behaviour is provided along with a formal reasoning about component dependability. These then form the basis for the formal definition of a composition specification language and theoretical declarative compositional programming language. Such a language would afford the programmer the tools required to construct a dynamic composition of components.EThOS - Electronic Theses Online ServiceGBUnited Kingdo

    Overview of Hydra: a concurrent language for synchronous digital circuit design

    Get PDF
    Hydra is a computer hardware description language that integrates several kinds of software tool (simulation, netlist generation and timing analysis) within a single circuit specification. The design language is inherently concurrent, and it offers black box abstraction and general design patterns that simplify the design of circuits with regular structure. Hydra specifications are concise, allowing the complete design of a computer system as a digital circuit within a few pages. This paper discusses the motivations behind Hydra, and illustrates the system with a significant portion of the design of a basic RISC processor

    Facilitating modular property-preserving extensions of programming languages

    Get PDF
    We will explore an approach to modular programming language descriptions and extensions in a denotational style. Based on a language core, language features are added stepwise on the core. Language features can be described separated from each other in a self-contained, orthogonal way. We present an extension semantics framework consisting of mechanisms to adapt semantics of a basic language to new structural requirements in an extended language preserving the behaviour of programs of the basic language. Common templates of extension are provided. These can be collected in extension libraries accessible to and extendible by language designers. Mechanisms to extend these libraries are provided. A notation for describing language features embedding these semantics extensions is presented

    Hierarchical index sets in algebraic modelling languages

    Get PDF
    Multi-dimensional algebraic modelling languages make extensive use of simple and compound index sets. In this paper the multi-dimensional modelling paradigm is extended with the concept of a hierarchical index set to support the use of hierarchical data structures. The appropriate reference and indexing mechanisms are introduced, together with mechanisms to support various set operations. Special attention is paid to the Cartesian product of two hierarchical index sets. The modelling of multi-stage programming models is supported through the introduction of a hierarchical indexing mechanism. The extensions proposed in this paper are compared to existing facilities designed to support the modelling of hierarchical structures

    Enhanced sharing analysis techniques: a comprehensive evaluation

    Get PDF
    Sharing, an abstract domain developed by D. Jacobs and A. Langen for the analysis of logic programs, derives useful aliasing information. It is well-known that a commonly used core of techniques, such as the integration of Sharing with freeness and linearity information, can significantly improve the precision of the analysis. However, a number of other proposals for refined domain combinations have been circulating for years. One feature that is common to these proposals is that they do not seem to have undergone a thorough experimental evaluation even with respect to the expected precision gains. In this paper we experimentally evaluate: helping Sharing with the definitely ground variables found using Pos, the domain of positive Boolean formulas; the incorporation of explicit structural information; a full implementation of the reduced product of Sharing and Pos; the issue of reordering the bindings in the computation of the abstract mgu; an original proposal for the addition of a new mode recording the set of variables that are deemed to be ground or free; a refined way of using linearity to improve the analysis; the recovery of hidden information in the combination of Sharing with freeness information. Finally, we discuss the issue of whether tracking compoundness allows the computation of more sharing information
    • ā€¦
    corecore