diff --git a/pattern_matching/README.md b/pattern_matching/README.md index 694b900..a661741 100644 --- a/pattern_matching/README.md +++ b/pattern_matching/README.md @@ -3,3 +3,4 @@ * :scroll: [Compiling Pattern Matching to good Decision Trees](../pattern_matching/compiling-pattern-matching-to-good-decision-trees.pdf) by Luc Maranget. Paper address the issue of compiling ML pattern matching to efficient decisions trees. * :scroll: [Extensible Pattern Matching in an Extensible Language](../pattern_matching/extensible-pattern-matching-extensible-language.pdf) by Sam Tobin-Hochstadt. Paper present a sophisticated pattern matcher for [Racket](http://racket-lang.org/), implemented as language extension using macros. * :scroll: [Warnings for pattern matching](../pattern_matching/warnings-for-pattern-matching.pdf) by Luc Maranget. Paper examine the ML pattern-matching anomalies of useless clauses and non-exhaustive matches. +* :scroll: [Efficient String Matching: An Aid to Bibliographic Search](../pattern_matching/aho-corasick-string-matching.pdf) by Alfred V. Aho and Margaret J. Corasick. A single-pass pattern matching algorithm used in early versions of fgrep and similar projects. [Aho–Corasick entry](http://xlinux.nist.gov/dads//HTML/ahoCorasick.html) in NIST's Dictionary of Algorithms and Data Structures. diff --git a/pattern_matching/aho-corasick-string-matching.pdf b/pattern_matching/aho-corasick-string-matching.pdf new file mode 100644 index 0000000..0beb503 Binary files /dev/null and b/pattern_matching/aho-corasick-string-matching.pdf differ