Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Crafting a compiler
From regular expressions to deterministic automata
Theoretical Computer Science
Derivatives of Regular Expressions
Journal of the ACM (JACM)
Programming Techniques: Regular expression search algorithm
Communications of the ACM
Modern Compiler Implementation: In ML
Modern Compiler Implementation: In ML
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
The theory of parsing, translation, and compiling
The theory of parsing, translation, and compiling
DrScheme: a programming environment for Scheme
Journal of Functional Programming
DMS®: Program Transformations for Practical Scalable Software Evolution
Proceedings of the 26th International Conference on Software Engineering
A formalisation of the Myhill-Nerode theorem based on regular expressions (proof pearl)
ITP'11 Proceedings of the Second international conference on Interactive theorem proving
Temporal higher-order contracts
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Parsing with derivatives: a functional pearl
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
A decision procedure for regular expression equivalence in type theory
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
RockSalt: better, faster, stronger SFI for the x86
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Proof Pearl: Regular Expression Equivalence and Relation Algebra
Journal of Automated Reasoning
Regular expression sub-matching using partial derivatives
Proceedings of the 14th symposium on Principles and practice of declarative programming
An Improved Construction of Deterministic Omega-automaton Using Derivatives
Fundamenta Informaticae - Concurrency Specification and Programming (CS&P)
CIAA'12 Proceedings of the 17th international conference on Implementation and Application of Automata
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A pedagogical regular-expression engine
Journal of Computing Sciences in Colleges
FatTire: declarative fault tolerance for software-defined networks
Proceedings of the second ACM SIGCOMM workshop on Hot topics in software defined networking
Verified decision procedures for MSO on words based on derivatives of regular expressions
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Efficient dynamic access analysis using JavaScript proxies
Proceedings of the 9th symposium on Dynamic languages
Incomplete transition complexity of basic operations on finite languages
CIAA'13 Proceedings of the 18th international conference on Implementation and Application of Automata
A Formalisation of the Myhill-Nerode Theorem Based on Regular Expressions
Journal of Automated Reasoning
Hi-index | 0.00 |
Regular-expression derivatives are an old, but elegant, technique for compiling regular expressions to deterministic finite-state machines. It easily supports extending the regular-expression operators with boolean operations, such as intersection and complement. Unfortunately, this technique has been lost in the sands of time and few computer scientists are aware of it. In this paper, we reexamine regular-expression derivatives and report on our experiences in the context of two different functional-language implementations. The basic implementation is simple and we show how to extend it to handle large character sets (e.g., Unicode). We also show that the derivatives approach leads to smaller state machines than the traditional algorithm given by McNaughton and Yamada.