Compiling with continuations
An introduction to partial evaluation
ACM Computing Surveys (CSUR)
Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
Regular expression pattern matching for XML
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Functional programming in C++ using the FC++ library
ACM SIGPLAN Notices
Denotational Semantics: A Methodology for Language Development by Phil
Denotational Semantics: A Methodology for Language Development by Phil
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
C++ Templates
Functional programming with the FC++ library
Journal of Functional Programming
Hi-index | 0.01 |
Various techniques for the navigation and matching of data structures using path expressions have been the subject of extensive investigations. No matter whether such techniques are based on type information, indexing, automata, it is desirable to synthesize implementations automatically, starting from a high-level description of the path expressions to be traversed. In this paper we present a library of C++ templates for the representation of regular path expressions and their compilation into efficient backtracking algorithms. The resulting code can be used to implement visitors, pattern matchers, node collectors on regular paths over possibly heterogeneous, linked data structures. The point of the paper is on the path compilation technique, which was inspired by a continuation-passing, functional semantics of the path expressions. We rely on some peculiar aspects of C++ templates to create a compilation framework that closely follows the given semantics.