20 research outputs found

    A survey of compiler development aids

    Get PDF
    A theoretical background was established for the compilation process by dividing it into five phases and explaining the concepts and algorithms that underpin each. The five selected phases were lexical analysis, syntax analysis, semantic analysis, optimization, and code generation. Graph theoretical optimization techniques were presented, and approaches to code generation were described for both one-pass and multipass compilation environments. Following the initial tutorial sections, more than 20 tools that were developed to aid in the process of writing compilers were surveyed. Eight of the more recent compiler development aids were selected for special attention - SIMCMP/STAGE2, LANG-PAK, COGENT, XPL, AED, CWIC, LIS, and JOCIT. The impact of compiler development aids were assessed some of their shortcomings and some of the areas of research currently in progress were inspected

    Translator generation using denotational semantics

    Full text link

    Metadata and provenance management

    Get PDF
    Scientists today collect, analyze, and generate TeraBytes and PetaBytes of data. These data are often shared and further processed and analyzed among collaborators. In order to facilitate sharing and data interpretations, data need to carry with it metadata about how the data was collected or generated, and provenance information about how the data was processed. This chapter describes metadata and provenance in the context of the data lifecycle. It also gives an overview of the approaches to metadata and provenance management, followed by examples of how applications use metadata and provenance in their scientific processes

    Machine Assisted Proofs of Recursion Implementation

    Get PDF
    Three studies in the machine assisted proof of recursion implementation are described. The verification system used is Edinburgh LCF (Logic for Computable Functions). Proofs are generated, in LCF, in a goal-oriented fashion by the application of strategies reflecting informal proof plans. LCF is introduced in Chapter 1. We present three case studies in which proof strategies are developed and (except in the third) tested in LCF. Chapter 2 contains an account of the machine generated proofs of three program transformations (from recursive to iterative function schemata). Two of the examples are taken from Manna and Waldinger. In each case, the recursion is implemented by the introduction of a new data type, e.g., a stack or counter. Some progress is made towards the development of a general strategy for producing the equivalence proofs of recursive and iterative function schemata by machine. Chapter 3 is concerned with the machine generated proof of the correctness of a compiling algorithm. The formulation, borrowed from Russell, includes a simple imperative language with a while and conditional construct, and a low level language of labelled statements, including jumps. We have, in LCF, formalised his denotational descriptions of the two languages and performed a proof of the preservation of the semantics under compilation. In Chapter 4, we express and informally prove the correctness of a compiling algorithm for a language containing declarations and calls of recursive procedures. We present a low level language whose semantics model a standard activation stack implementation. Certain theoretical difficulties (connected with recursively defined relations) are discussed, and a proposed proof in LCF is outlined. The emphasis in this work is less on proving original theorems, or even automatically finding proofs of known theorems, than on (i) exhibiting and analysing the underlying structure of proofs, and of machine proof attempts, and (ii) investigating the nature of the interaction (between a user and a computer system) required to generate proofs mechanically; that is, the transition from informal proof plans to behaviours which cause formal proofs to be performed

    A Specification Environment That Supports the Prototyping of Distributed Systems Using an Object-Oriented Model.

    Get PDF
    High-speed computer networking, interactive service, and incremental growth for computing are some of the motivations for developing a distributed system. Despite the inherent benefits of a distributed system, the development of software support is more difficult for distributed systems than for sequential systems. In either case, difficulties may arise from the communication problems between two groups of people with different backgrounds trying to formulate requirements for the system. This process depends on feedback and may take many iterations to converge. Customers can usually recognize the features they need when they start using a system, which makes prototyping an important tool in requirement analysis. Many prototyping goals, objectives, and approaches are possible. Executable formal specifications are the most attractive ones. This unification of specification and prototyping by having code generators has advantages of providing consistency and prototyping at higher levels of abstraction. Thus, a methodology for executing the DOSL (Distributed Object-based Specification Language) is defined and a prototype system is developed. DOSL is extended as a new formal distributed object-oriented specification language, DOSL-II. DOSL-II is object-oriented rather than object-based, and includes class, inheritance, simple I/O, stream I/O, concurrent I/O, and new constructs for object communication

    Constructing a tractable reasoning framework upon a fine-grained structural operational semantics

    Get PDF
    The primary focus of this thesis is the semantic gap between a fine-grained structural operational semantics and a set of rely/guarantee-style development rules. The semantic gap is bridged by considering the development rules to be a part of the same logical framework as the operational semantics, and a set of soundness proofs show that the development rules, though making development easier for a developer, do not add any extra power to the logical framework as a whole. The soundness proofs given are constructed to take advantage of the structural nature of the language and its semantics; this allows for the addition of new development rules in a modular fashion. The particular language semantics allows for very fine-grained concurrency. The language itself includes a construct for nested parallel execution of statements, and the semantics is written so that statements can interfere with each other between individual variable reads. The language also includes an atomic block construct for which the semantics is an embodiment of a form of software transactional memory. The inclusion of the atomic construct helps illustrate the inherent expressive weakness present in the rely/guarantee rules with respect to termination properties. As such, two development rules are proposed for the atomic construct, one of which has serious restrictions in its application, and another for which the termination property does not hold.EThOS - Electronic Theses Online ServiceRODIN project UK EPSRCGBUnited Kingdo

    Increasing productivity in High Energy Physics data mining with a Domain Specific Visual Query Language

    Get PDF
    Diese Arbeit entwickelt die erste anwendungsspezifische visuelle Anfragesprache fĂŒr Hochenergiephysik. Nach dem aktuellen Stand der Technik ist Analyse von experimentellen Ergebnissen in der Hochenergiephysik ein sehr aufwendiger Vorgang. Die Verwendung allgemeiner höherer Programmiersprachen und komplexer Bibliotheken fĂŒr die Erstellung und Wartung der Auswertungssoftware lenkt die Wissenschaftler von den Kernfragen ihres Gebiets ab. Unser Ansatz fĂŒhrt eine neue Abstraktionsebene in Form einer visuellen Programmiersprache ein, in der die Physiker die gewĂŒnschten Ergebnisse in einer ihrem Anwendungsgebiet nahen Notation formulieren können. Die Validierung der Hypothese erfolgte durch die Entwicklung einer Sprache und eines Software-Prototyps. Neben einer formalen Syntax wird die Sprache durch eine translationale Semantik definiert. Die Semantik wird dabei mittels einer Übersetzung in eine durch spezielle Gruppierungsoperatoren erweiterte NF2-Algebra spezifiziert. Die vom Benutzer erstellten visuellen Anfragen werden durch einen Compiler in Code fĂŒr eine Zielplattform ĂŒbersetzt. Die Benutzbarkeit der Sprache wurde durch eine Benutzerstudie validiert, deren qualitative und quantitative Ergebnisse vorgestellt werden
    corecore