4 research outputs found

    Institutional approaches to programming language specification

    Get PDF
    Formal specification has become increasingly important in software engineering, both as a design tool, and as a basis for verified software design. Formal methods have long been in use in the field of programming language design and implementation, and many formalisms, in both the syntactic and semantic domains, have evolved for this purpose. In this thesis we examine the possibilities of integrating specifications written in different formalisms used in the description of programming languages within a single framework. We suggest that the theory of institutions provides a suitable background for such integration, and we develop descriptions of several formalisms within this framework. While we do not merge the formalisms themselves, we see that it is possible to relate modules from specifications in each of them, and this is demonstrated in a small example

    Parsing for agile modeling

    Get PDF
    Agile modeling refers to a set of methods that allow for a quick initial development of an importer and its further refinement. These requirements are not met simultaneously by the current parsing technology. Problems with parsing became a bottleneck in our research of agile modeling. In this thesis we introduce a novel approach to specify and build parsers. Our approach allows for expressive, tolerant and composable parsers without sacrificing performance. The approach is based on a context-sensitive extension of parsing expression grammars that allows a grammar engineer to specify complex language restrictions. To insure high parsing performance we automatically analyze a grammar definition and choose different parsing strategies for different parts of the grammar. We show that context-sensitive parsing expression grammars allow for highly composable, tolerant and variable-grained parsers that can be easily refined. Different parsing strategies significantly insure high-performance of parsers without sacrificing expressiveness of the underlying grammars

    Incremental rewriting

    Get PDF

    Affix Grammars for Programming Languages

    No full text
    Affix Grammars are members of the family of Two-Level Grammars, along with W-grammars, Metamorphosis Grammars and Attribute Grammars. In this tutorial we shall be concerned with the nature and rationale of Affix Grammars and their application in describing programming languages. Some parsing and affix evaluation methods for deterministic and nondeterministic Affix Grammars are discussed. By means of an example, a comparison is made with W-grammars and Attribute Grammars
    corecore