Theoretical Computer Science
Pretty patterns produced by hyperedge replacement
Proceedings of the International Workshop WG '87 on Graph-theoretic concepts in computer science
The complexity of graph languages generated by hyperedge replacement
Acta Informatica
Definite-clause set grammars: a formalism for problem solving
Journal of Logic Programming
Logic programming in a fragment of intuitionistic linear logic
Papers presented at the IEEE symposium on Logic in computer science
A Parsing Methodology for the Implementation of Visual Systems
IEEE Transactions on Software Engineering
Hyperedge replacement graph grammars
Handbook of graph grammars and computing by graph transformation
Journal of the ACM (JACM)
Concepts and realization of a diagram editor generator based on hypergraph transformation
Science of Computer Programming - Special issue on applications of graph transformations (GRATRA 2000)
Deductive Parsing of Visual Languages
LACL '01 Proceedings of the 4th International Conference on Logical Aspects of Computational Linguistics
A Functional-Logic Perspective on Parsing
FLOPS '99 Proceedings of the 4th Fuji International Symposium on Functional and Logic Programming
Functional Logic Design Patterns
FLOPS '02 Proceedings of the 6th International Symposium on Functional and Logic Programming
Fast, Error Correcting Parser Combinatiors: A Short Tutorial
SOFSEM '99 Proceedings of the 26th Conference on Current Trends in Theory and Practice of Informatics on Theory and Practice of Informatics
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text
Implementation and Application of Functional Languages
Multi-paradigm declarative languages
ICLP'07 Proceedings of the 23rd international conference on Logic programming
An Algorithm for Hypergraph Completion According to Hyperedge Replacement Grammars
ICGT '08 Proceedings of the 4th international conference on Graph Transformations
Journal of Visual Languages and Computing
Hi-index | 0.02 |
Parser combinators are a popular technique among functional programmers for writing parsers. They allow the definition of parsers for string languages in a manner quite similar to BNF rules. In recent papers we have shown that the combinator approach is also beneficial for graph parsing. However, we have noted as well that certain graph languages are difficult to describe in a purely functional way.In this paper we demonstrate that functional-logic languages can be used to conveniently implement graph parsers. Therefore, we provide a direct mapping from hyperedge replacement grammars to graph parsers. As in the string setting, our combinators closely reflect the building blocks of this grammar formalism. Finally, we show by example that our framework is strictly more powerful than hyperedge replacement grammars.We make heavy use of key features of both the functional and the logic programming approach: Higher-order functions allow the treatment of parsers as first class citizens. Non-determinism and logical variables are beneficial for dealing with errors and incomplete information. Parsers can even be applied backwards and thus be used as generators or for graph completion.