Constraining Concrete Syntax via Metamodel Information

Author(s):  
P. Bottoni ◽  
P. Quattrocchi ◽  
D. Ventriglia
Keyword(s):  
2008 ◽  
Vol 7 (4) ◽  
pp. 383-398 ◽  
Author(s):  
Thomas Baar
Keyword(s):  

1994 ◽  
Vol 4 (3) ◽  
pp. 371-394 ◽  
Author(s):  
Gérard Huet

AbstractWe present the complete development, in Gallina, of the residual theory of β-reduction in pure λ-calculus. The main result is the Prism Theorem, and its corollary Lévy's Cube Lemma, a strong form of the parallel-moves lemma, itself a key step towards the confluence theorem and its usual corollaries (Church-Rosser, uniqueness of normal forms). Gallina is the specification language of the Coq Proof Assistant (Dowek et al., 1991; Huet 1992b). It is a specific concrete syntax for its abstract framework, the Calculus of Inductive Constructions (Paulin-Mohring, 1993). It may be thought of as a smooth mixture of higher-order predicate calculus with recursive definitions, inductively defined data types and inductive predicate definitions reminiscent of logic programming. The development presented here was fully checked in the current distribution version Coq V5.8. We just state the lemmas in the order in which they are proved, omitting the proof justifications. The full transcript is available as a standard library in the distribution of Coq.


2020 ◽  
Vol 21 (4) ◽  
Author(s):  
Nikolay Handzhiyski ◽  
Elena Somova

The article describes a new and efficient algorithm for parsing, called Tunnel Parsing, that parses from left to right on the basis of a context-free grammar without left recursion and rules that recognize empty words. The algorithm is applicable mostly for domain-specific languages. In the article, particular attention is paid to the parsing of grammar element repetitions. As a result of the parsing, a statically typed concrete syntax tree is built from top to bottom, that accurately reflects the grammar. The parsing is not done through a recursion, but through an iteration. The Tunnel Parsing algorithm uses the grammars directly without a prior refactoring and is with a linear time complexity for deterministic context-free grammars.


Author(s):  
Paolo Bottoni ◽  
Dino Frediani ◽  
Paolo Quattrocchi

The definition of visual languages, of their semantics, and of the interactions with them, can all be referred to a notion of transformation of multisets of resources. Moreover, the concrete syntax for a particular language can be obtained in a semi-automatic way, by declaring the conformity of the language to some family of languages, specified by a metamodel. In a similar way, the generation of the associated semantics can take advantage of the identification of the variety of the semantics being expressed. According to the associated metamodel, one can obtain an abstract view of the semantic roles that visual elements can play with respect to the process being described. We propose here an integrated framework and interactive environment, based on a collection of metamodels, in which to express both syntactical characterizations of diagrammatic sentences and their semantic interpretations.


Author(s):  
Mary Holstege

In the mid-eighties a group at Stanford built the MUIR language-development environment as a system for notation design with rendering and layout from the abstract syntax, parsing from concrete syntax, and semi-automated transformation between language variants. We developed models for representing documents at all levels and understanding how the levels relate to one another. Presentation widgets have a purpose: to convey specific abstract syntax relationships. Having an account of what kinds of widgets there are, what kinds of abstract relationships there are, and how the two connect allows for an analysis of how the notation works as a whole. The concept of "notation" taken here is a broad one, encompassing programming or technical notations as well as the form of structured documents of various kinds. Notation designers can apply such an analysis to improve their designs so that the structure is more clearly conveyed by the concrete syntax or so that humans can more readily use the notation without confusion. Software can render or parse instances of notations using rules that capture the concrete syntax, the abstract syntax, and the rules between them in a declarative.


Sign in / Sign up

Export Citation Format

Share Document