Theoretical Computer Science
Deciding equivalence of finite tree automata
SIAM Journal on Computing
Compiling pattern matching by term decomposition
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
A practical soft type system for Scheme
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Statically checkable pattern abstractions
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Type inference for queries on semistructured data
PODS '99 Proceedings of the eighteenth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Anytime, anywhere: modal logics for mobile ambients
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Typechecking for XML transformers
PODS '00 Proceedings of the nineteenth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
DTD inference for views of XML data
PODS '00 Proceedings of the nineteenth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Expressive and efficient pattern languages for tree-structured data (extended abstract)
PODS '00 Proceedings of the nineteenth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
DSD: A schema language for XML
FMSP '00 Proceedings of the third workshop on Formal methods in software practice
Regular expression types for XML
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Recursive subtyping revealed: (functional pearl)
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
The Definition of Standard ML
Transformation of Documents and Schemas by Patterns and Contextual Conditions
PODP '96 Proceedings of the Third International Workshop on Principles of Document Processing
Compilation of Non-Linear, Second Order Patterns on S-Expressions
PLILP '90 Proceedings of the 2nd International Workshop on Programming Language Implementation and Logic Programming
Using YAT to Build a Web Server
WebDB '98 Selected papers from the International Workshop on The World Wide Web and Databases
XDuce: A Typed XML Processing Language (Preliminary Report)
Selected papers from the Third International Workshop WebDB 2000 on The World Wide Web and Databases
Locating Matches of Tree Patterns in Forests
Proceedings of the 18th Conference on Foundations of Software Technology and Theoretical Computer Science
HOPE: An experimental applicative language
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Introduction to Automata Theory, Languages, and Computation (3rd Edition)
Introduction to Automata Theory, Languages, and Computation (3rd Edition)
XDuce: A statically typed XML processing language
ACM Transactions on Internet Technology (TOIT)
TLDI '05 Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation
Parametric polymorphism for XML
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An approach for pipelining nested collections in scientific workflows
ACM SIGMOD Record
Taxonomy of XML schema languages using formal language theory
ACM Transactions on Internet Technology (TOIT)
Type inference for unique pattern matching
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Regular expression filters for XML
Journal of Functional Programming
Journal of Computer and System Sciences
XPi: A typed process calculus for XML messaging
Science of Computer Programming
Adapting functional programs to higher order logic
Higher-Order and Symbolic Computation
A formal model of provenance in distributed systems
TAPP'09 First workshop on on Theory and practice of provenance
Compact Representation for Answer Sets of n-ary Regular Queries
CIAA '09 Proceedings of the 14th International Conference on Implementation and Application of Automata
Collaborative schema construction using regular sequence types
IRI'09 Proceedings of the 10th IEEE international conference on Information Reuse & Integration
Context Sequence Matching for XML
Electronic Notes in Theoretical Computer Science (ENTCS)
DynXML: safely programming the dynamic web
APLWACA '10 Proceedings of the 2010 Workshop on Analysis and Programming Languages for Web Applications and Cloud Applications
Compact representation for answer sets of n-ary regular queries
Theoretical Computer Science
Regular hedge language factorization revisited
DLT'10 Proceedings of the 14th international conference on Developments in language theory
Subtyping algorithm of regular tree grammars with disjoint production rules
ICTAC'10 Proceedings of the 7th International colloquium conference on Theoretical aspects of computing
Exact XML type checking in polynomial time
ICDT'07 Proceedings of the 11th international conference on Database Theory
XML type checking using high-level tree transducer
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
N-ary queries by tree automata
DBPL'05 Proceedings of the 10th international conference on Database Programming Languages
Matching with regular constraints
LPAR'05 Proceedings of the 12th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
The design space of type checkers for XML transformation languages
ICDT'05 Proceedings of the 10th international conference on Database Theory
XML goes native: run-time representations for XTATIC
CC'05 Proceedings of the 14th international conference on Compiler Construction
XPi: a typed process calculus for XML messaging
FMOODS'05 Proceedings of the 7th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
Learning n-ary node selecting tree transducers from completely annotated examples
ICGI'06 Proceedings of the 8th international conference on Grammatical Inference: algorithms and applications
A pushdown machine for recursive XML processing
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
Paisley: pattern matching à la carte
ICMT'12 Proceedings of the 5th international conference on Theory and Practice of Model Transformations
Hi-index | 0.00 |
We propose regular expression pattern matching as a core feature of programming languages for manipulating XML. We extend conventional pattern-matching facilities (as in ML) with regular expression operators such as repetition (*), alternation (|), etc., that can match arbitrarily long sequences of subtrees, allowing a compact pattern to extract data from the middle of a complex sequence. We then show how to check standard notions of exhaustiveness and redundancy for these patterns. Regular expression patterns are intended to be used in languages with type systems based on regular expression types. To avoid excessive type annotations, we develop a type inference scheme that propagates type constraints to pattern variables from the type of input values. The type inference algorithm translates types and patterns into regular tree automata, and then works in terms of standard closure operations (union, intersection, and difference) on tree automata. The main technical challenge is dealing with the interaction of repetition and alternation patterns with the first-match policy, which gives rise to subtleties concerning both the termination and precision of the analysis. We address these issues by introducing a data structure representing these closure operations lazily.