Abstract
Given two context-free grammars (CFGs), G1 and G2, the language generated by the union of the grammars is not the union of the languages generated by each grammar: L (G1 ∪ G2) ≠ L(G1)∪L(G2). In order to account for modularity of grammars, another way of defining the meaning of grammars is needed. This paper adapts results from the semantics of logic programming languages to CFGs. We discuss alternative approaches for defining the denotation of a grammar, culminating in one which we show to be both compositional and fully-abstract. We then show how grammar modules can be defined such that their semantics retains these desirable properties. This gives a clear, mathematically sound way for composing parts of grammars.
Original language | English |
---|---|
Pages (from-to) | 41-63 |
Number of pages | 23 |
Journal | Grammars |
Volume | 5 |
Issue number | 1 |
State | Published - 2002 |
Bibliographical note
Funding Information:This research was supported a post-doctoral fellowship from the Institute for Research in Cognitive Science, University of Pennsylvania, and by the Israel Science Foundation (grant number 136/01-1).
Keywords
- Context-free grammars
- Modularity
- Programming language semantics
ASJC Scopus subject areas
- Management of Technology and Innovation