Matrix multiplication via arithmetic progressions
Journal of Symbolic Computation - Special issue on computational algebraic complexity
TXL: a rapid prototyping system for programming language dialects
Computer Languages
Regular expression types for XML
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Regular expression pattern matching for XML
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An efficient context-free parsing algorithm
Communications of the ACM
Fast context-free grammar parsing requires fast boolean matrix multiplication
Journal of the ACM (JACM)
The Definition of Standard ML
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
Packrat parsing:: simple, powerful, lazy, linear time, functional pearl
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
SPIRE '00 Proceedings of the Seventh International Symposium on String Processing Information Retrieval (SPIRE'00)
SableCC, an Object-Oriented Compiler Framework
TOOLS '98 Proceedings of the Technology of Object-Oriented Languages and Systems
CDuce: an XML-centric general-purpose language
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Parsing expression grammars: a recognition-based syntactic foundation
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
PADS: a domain-specific language for processing ad hoc data
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Compiling regular patterns to sequential machines
Proceedings of the 2005 ACM symposium on Applied computing
A metrics suite for grammar-based software: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice - Analyzing the Evolution of Large-Scale Software
Type inference for unique pattern matching
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Definitive ANTLR Reference: Building Domain-Specific Languages
The Definitive ANTLR Reference: Building Domain-Specific Languages
Ambiguity in Graphs and Expressions
IEEE Transactions on Computers
Analyzing ambiguity of context-free grammars
CIAA'07 Proceedings of the 12th international conference on Implementation and application of automata
Tom: piggybacking rewriting on java
RTA'07 Proceedings of the 18th international conference on Term rewriting and applications
Regular expression containment: coinductive axiomatization and computational interpretation
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Bit-coded regular expression parsing
LATA'11 Proceedings of the 5th international conference on Language and automata theory and applications
WebSelF: a web scraping framework
ICWE'12 Proceedings of the 12th international conference on Web Engineering
Hi-index | 0.00 |
We show how to achieve typed and unambiguous declarative pattern matching on strings using regular expressions extended with a simple recording operator. We give a characterization of ambiguity of regular expressions that leads to a sound and complete static analysis. The analysis is capable of pinpointing all ambiguities in terms of the structure of the regular expression and report shortest ambiguous strings. We also show how pattern matching can be integrated into statically typed programming languages for deconstructing strings and reproducing typed and structured values. We validate our approach by giving a full implementation of the approach presented in this paper. The resulting tool, reg-exp-rec, adds typed and unambiguous pattern matching to Java in a standalone and non-intrusive manner. We evaluate the approach using several realistic examples.