Valid HTML 4.0! Valid CSS!
%%% -*-BibTeX-*-
%%% ====================================================================
%%%  BibTeX-file{
%%%     author          = "Nelson H. F. Beebe",
%%%     version         = "1.198",
%%%     date            = "12 March 2024",
%%%     time            = "12:28:40 MST",
%%%     filename        = "string-matching.bib",
%%%     address         = "University of Utah
%%%                        Department of Mathematics, 110 LCB
%%%                        155 S 1400 E RM 233
%%%                        Salt Lake City, UT 84112-0090
%%%                        USA",
%%%     telephone       = "+1 801 581 5254",
%%%     FAX             = "+1 801 581 4148",
%%%     URL             = "https://www.math.utah.edu/~beebe",
%%%     checksum        = "64293 78881 363843 3790741",
%%%     email           = "beebe at math.utah.edu, beebe at acm.org,
%%%                        beebe at computer.org (Internet)",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "bibliography; BibTeX; pattern matching;
%%%                        regular expressions; string matching",
%%%     license         = "public domain",
%%%     supported       = "yes",
%%%     docstring       = "This is a bibliography of publications on
%%%                        the subjects of pattern matching, regular
%%%                        expressions, and string matching.
%%%
%%%                        At version 1.198, the year coverage looked
%%%                        like this:
%%%
%%%                             1956 (   2)    1979 (  18)    2002 (  64)
%%%                             1957 (   0)    1980 (  11)    2003 (  42)
%%%                             1958 (   2)    1981 (  18)    2004 (  36)
%%%                             1959 (   2)    1982 (  16)    2005 (  32)
%%%                             1960 (   1)    1983 (  21)    2006 (  49)
%%%                             1961 (   1)    1984 (  16)    2007 (  56)
%%%                             1962 (   2)    1985 (  28)    2008 (  69)
%%%                             1963 (   1)    1986 (  30)    2009 (  56)
%%%                             1964 (   3)    1987 (  29)    2010 (  51)
%%%                             1965 (   1)    1988 (  32)    2011 (  44)
%%%                             1966 (   0)    1989 (  46)    2012 (  80)
%%%                             1967 (   1)    1990 (  54)    2013 (  86)
%%%                             1968 (   2)    1991 (  49)    2014 (  61)
%%%                             1969 (   3)    1992 (  89)    2015 (  64)
%%%                             1970 (   3)    1993 (  89)    2016 (  50)
%%%                             1971 (   4)    1994 ( 108)    2017 (  68)
%%%                             1972 (   4)    1995 (  78)    2018 (  41)
%%%                             1973 (   4)    1996 (  69)    2019 (  42)
%%%                             1974 (   6)    1997 (  62)    2020 (  35)
%%%                             1975 (   5)    1998 (  51)    2021 (  35)
%%%                             1976 (   9)    1999 (  54)    2022 (  34)
%%%                             1977 (  19)    2000 (  41)    2023 (  38)
%%%                             1978 (   9)    2001 (  63)    2024 (   2)
%%%                             19xx (   2)
%%%                             20xx (   2)
%%%
%%%                             Article:       1863
%%%                             Book:            87
%%%                             InBook:           1
%%%                             InCollection:    11
%%%                             InProceedings:  150
%%%                             Manual:           1
%%%                             MastersThesis:    2
%%%                             Misc:            13
%%%                             PhdThesis:        3
%%%                             Proceedings:    122
%%%                             TechReport:      41
%%%                             Unpublished:      1
%%%
%%%                             Total entries: 2295
%%%
%%%                        The checksum field above contains a CRC-16
%%%                        checksum as the first value, followed by the
%%%                        equivalent of the standard UNIX wc (word
%%%                        count) utility output of lines, words, and
%%%                        characters.  This is produced by Robert
%%%                        Solovay's checksum utility.",
%%%  }
%%% ====================================================================
@Preamble{
    "\ifx \undefined \booktitle \def \booktitle #1{{{\em #1}}} \fi" #
    "\ifx \undefined \k         \let \k = \c \fi" #
    "\ifx \undefined \pkg       \def \pkg       #1{{{\tt #1}}} \fi" #
    "\ifx \undefined \polhk     \let \polhk = \k \fi" #
    "\ifx \undefined \soft      \def \soft{'} \fi"
}

%%% ====================================================================
%%% Acknowledgement abbreviations:
@String{ack-nhfb = "Nelson H. F. Beebe,
                    University of Utah,
                    Department of Mathematics, 110 LCB,
                    155 S 1400 E RM 233,
                    Salt Lake City, UT 84112-0090, USA,
                    Tel: +1 801 581 5254,
                    FAX: +1 801 581 4148,
                    e-mail: \path|beebe@math.utah.edu|,
                            \path|beebe@acm.org|,
                            \path|beebe@computer.org| (Internet),
                    URL: \path|https://www.math.utah.edu/~beebe/|"}

@String{ack-r-project = "R Project Team"}

%%% ====================================================================
%%% Institution abbreviations:
@String{inst-ATT-BELL           = "AT\&T Bell Laboratories"}
@String{inst-ATT-BELL:adr       = "Murray Hill, NJ, USA"}

@String{inst-CLSC               = "College of Science Computer, University of
                                  Utah"}
@String{inst-CLSC:adr           = "Salt Lake City, UT 84112, USA"}

@String{inst-CSRC               = "Computing Sciences Research Center, Bell
                                  Laboratories"}
@String{inst-CSRC:adr           = "Murray Hill, NJ, USA"}

@String{inst-MUPAD              = "MuPAD Research Group"}
@String{inst-MUPAD:adr          = "Universit{\"a}t Paderborn, Paderborn,
                                  Germany"}

@String{inst-SRC-IDA            = "Supercomputing Research Center: IDA"}
@String{inst-SRC-IDA:adr        = "Lanham, MD, USA"}

@String{inst-STAN-CS            = "Stanford University, Department of
                                  Computer Science"}
@String{inst-STAN-CS:adr        = "Stanford, CA, USA"}

@String{inst-UIUC-CSRD          = "University of Illinois at Urbana-Champaign,
                                  Center for Supercomputing Research and
                                  Development"}
@String{inst-UIUC-CSRD:adr      = "Urbana, IL 61801, USA"}

@String{inst-UTAH-MATH          = "University of Utah, Department of
                                  Mathematics"}
@String{inst-UTAH-MATH:adr      = "Salt Lake City, UT 84112-0090, USA"}

%%% ====================================================================
%%% Journal abbreviations:
@String{j-ACM-COMM-COMP-ALGEBRA = "ACM Communications in Computer Algebra"}

@String{j-ACM-J-EXP-ALGORITHMICS = "ACM Journal of Experimental Algorithmics"}

@String{j-ACTA-INFO             = "Acta Informatica"}

@String{j-ADV-APPL-PROB         = "Advances in Applied Probability"}

@String{j-ALGORITHMICA          = "Algorithmica"}

@String{j-ALGORITHMS-BASEL      = "Algorithms ({Basel})"}

@String{j-AMER-MATH-MONTHLY     = "American Mathematical Monthly"}

@String{j-ANN-APPL-PROBAB       = "Annals of Applied Probability"}

@String{j-ANN-INST-HENRI-POINCARE-PROBAB-STATIST = "Annales de l'Institut Henri
                                  Poincar{\'e}. Probabilit{\'e}s et
                                  Statistiques"}
@String{j-ANN-MATH-STUDIES      = "Annals of Mathematics Studies"}

@String{j-ANN-PROBAB            = "Annals of Probability"}

@String{j-APPL-MATH-COMP        = "Applied Mathematics and Computation"}

@String{j-ATT-TECH-J            = "AT\&T Technical Journal"}

@String{j-BELL-SYST-TECH-J      = "The Bell System Technical Journal"}

@String{j-BULL-MATH-BIOL        = "Bulletin of Mathematical Biology"}

@String{j-BYTE                  = "Byte Magazine"}

@String{j-CACM                  = "Communications of the Association for
                                  Computing Machinery"}

@String{j-CCCUJ                 = "C/C++ Users Journal"}

@String{j-CCPE                  = "Concurrency and Computation: Prac\-tice and
                                  Experience"}

@String{j-CELL-SYST             = "Cell Systems"}

@String{j-CGF                   = "Computer Graphics Forum"}

@String{j-COMBIN-PROBAB-COMPUT  = "Combinatorics, Probability and Computing"}

@String{j-COMP-ARCH-NEWS        = "ACM SIGARCH Computer Architecture News"}

@String{j-COMP-J                = "The Computer Journal"}

@String{j-COMP-LANG-MAG         = "Computer Language Magazine"}

@String{j-COMP-LANGS            = "Computer Languages"}

@String{j-COMP-NET-AMSTERDAM    = "Computer Networks (Amsterdam, Netherlands:
                                  1999)"}

@String{j-COMP-SURV             = "ACM Computing Surveys"}

@String{j-COMP-VIS-IMAGE-UNDERSTANDING = "Computer Vision and Image
                                  Understanding: CVIU"}

@String{j-COMPUT-MATH-APPL      = "Computers and Mathematics with
                                  Applications"}

@String{j-COMPUT-SECUR          = "Computers \& Security"}

@String{j-COMPUT-SYST-SCI-ENG   = "Computer Systems Science and Engineering"}

@String{j-COMPUTER              = "Computer"}

@String{j-COMPUTING             = "Computing: Archiv f{\"u}r informatik und
                                  numerik"}

@String{j-CONG-NUM              = "Congressus Numerantium"}

@String{j-CRYPTOLOGIA           = "Cryptologia"}

@String{j-CUJ                   = "C Users Journal"}

@String{j-CVGIP                 = "Computer Vision, Graphics, and Image
                                  Processing"}

@String{j-CVGIP-IU              = "Computer Vision, Graphics, and Image
                                  Processing. Image Understanding"}

@String{j-DDJ                   = "Dr. Dobb's Journal of Software Tools"}

@String{j-DEC-TECH-J            = "Digital Technical Journal of Digital
                                  Equipment Corporation"}

@String{j-DISCRETE-APPL-MATH    = "Discrete Applied Mathematics"}

@String{j-DTRAP                 = "Digital Threats: Research and Practice
                                  (DTRAP)"}

@String{j-EMPIR-SOFTWARE-ENG    = "Empirical Software Engineering"}

@String{j-EPODD                 = "Electronic Publishing---Origination,
                                  Dissemination, and Design"}

@String{j-FORM-ASP-COMPUT       = "Formal Aspects of Computing"}

@String{j-FORTH-DIMENSIONS      = "Forth Dimensions"}

@String{j-FRONTIERS-EDU-CONF    = "Frontiers in Education Conference"}

@String{j-FUND-INFO             = "Fundamenta Informaticae"}

@String{j-FUT-GEN-COMP-SYS      = "Future Generation Computer Systems"}

@String{j-FUTURE-INTERNET       = "Future Internet"}

@String{j-HIGHER-ORDER-SYMB-COMPUT = "Higher-Order and Symbolic Computation"}

@String{j-IBM-JRD               = "IBM Journal of Research and Development"}

@String{j-IBM-SYS-J             = "IBM Systems Journal"}

@String{j-IBM-TDB               = "IBM Technical Disclosure Bulletin"}

@String{j-IEEE-ACCESS           = "IEEE Access"}

@String{j-IEEE-COMPUT-ARCHIT-LETT = "IEEE Computer Architecture Letters"}

@String{j-IEEE-MICRO            = "IEEE Micro"}

@String{j-IEEE-SOFTWARE         = "IEEE Software"}

@String{j-IEEE-TRANS-BIG-DATA   = "IEEE Transactions on Big Data"}

@String{j-IEEE-TRANS-COMM       = "IEEE Transactions on Communications"}

@String{j-IEEE-TRANS-COMPUT     = "IEEE Transactions on Computers"}

@String{j-IEEE-TRANS-ELEC-COMPUT = "IEEE Transactions on Electronic Computers"}

@String{j-IEEE-TRANS-EMERG-TOP-COMPUT = "IEEE Transactions on Emerging Topics in
                                  Computing"}

@String{j-IEEE-TRANS-KNOWL-DATA-ENG = "IEEE Transactions on Knowledge and Data
                                  Engineering"}

@String{j-IEEE-TRANS-NETWORKING = "IEEE\slash ACM Transactions on Networking"}

@String{j-IEEE-TRANS-PAR-DIST-SYS = "IEEE Transactions on Parallel and
                                  Distributed Systems"}

@String{j-IEEE-TRANS-SOFTW-ENG  = "IEEE Transactions on Software Engineering"}

@String{j-IEEE-TRANS-VIS-COMPUT-GRAPH = "IEEE Transactions on Visualization
                                  and Computer Graphics"}

@String{j-INF-CONTROL           = "Information and Control"}

@String{j-INFO-PROC-LETT        = "Information Processing Letters"}

@String{j-INFO-SCI              = "Information Sciences"}

@String{j-INT-J-COMP-PROC-ORIENTAL-LANG = "International Journal of Computer
                                  Processing of Oriental Languages (IJCPOL)"}

@String{j-INT-J-COMPUT-INF-SCI  = "International Journal of Computer and
                                  Information Sciences"}

@String{j-INT-J-COMPUT-SYST-SCI-ENG = "International Journal of Computer
                                  Systems Science and Engineering"}

@String{j-INT-J-FOUND-COMP-SCI  = "International Journal of Foundations of
                                  Computer Science (IJFCS)"}

@String{j-INT-J-IMAGE-GRAPHICS  = "International Journal of Image and Graphics
                                  (IJIG)"}

@String{j-INT-J-INFO-SEC        = "International Journal of Information
                                  Security"}

@String{j-INT-J-INTELL-SYSTEMS  = "International Journal of Intelligent
                                  Systems"}

@String{j-INT-J-PAR-EMER-DIST-SYS = "International Journal of Parallel,
                                  Emergent and Distributed Systems: IJPEDS"}

@String{j-INT-J-PARALLEL-PROG   = "International Journal of Parallel
                                  Programming"}

@String{j-INT-J-SOFTW-TOOLS-TECHNOL-TRANSFER = "International Journal on
                                  Software Tools for Technology Transfer
                                  (STTT)"}

@String{j-IRE-TRANS-ELEC-COMPUT = "IRE Transactions on Electronic Computers"}

@String{j-ISIS                  = "Isis"}

@String{j-J-ACM                 = "Journal of the Association for Computing
                                  Machinery"}

@String{j-J-ALG                 = "Journal of Algorithms"}

@String{j-J-AM-SOC-INF-SCI      = "Journal of the American Society for
                                  Information Science"}

@String{j-J-AM-SOC-INF-SCI-TECHNOL = "Journal of the American Society for
                                  Information Science and Technology: JASIST"}

@String{j-J-APPL-STAT           = "Journal of Applied Statistics"}

@String{j-J-AUTOM-REASON        = "Journal of Automated Reasoning"}

@String{j-J-COMP-SECUR          = "Journal of Computer Security"}

@String{j-J-COMP-SYS-SCI        = "Journal of Computer and System Sciences"}

@String{j-J-COMPUT-APPL-MATH    = "Journal of Computational and Applied
                                  Mathematics"}

@String{j-J-COMPUT-BIOL         = "Journal of Computational Biology"}

@String{j-J-COMPUT-CHEM         = "Journal of Computational Chemistry"}

@String{j-J-CRYPTOLOGY          = "Journal of Cryptology"}

@String{j-J-DISCR-MATH-SCI-CRYPTO = "Journal of Discrete Mathematical Sciences
                                  and Cryptography"}

@String{j-J-FUNCT-PROGRAM       = "Journal of Functional Programming"}

@String{j-J-GRID-COMP           = "Journal of Grid Computing"}

@String{j-J-INFO-PROC-SOC-JAPAN = "Journal of the Information Processing
                                  Society of Japan = Joho Shori"}

@String{j-J-INFO-SEC-APPL =     "Journal of Information Security and
                                 Applications (JISA)"}

@String{j-J-MATH-BIOL           = "Journal of Mathematical Biology"}

@String{j-J-NETW-COMPUT-APPL    = "Journal of Network and Computer
                                  Applications"}

@String{j-J-OPEN-SOURCE-SOFT    = "Journal of Open Source Software"}

@String{j-J-PAR-DIST-COMP       = "Journal of Parallel and Distributed
                                  Computing"}

@String{j-J-SOFTW-EVOL-PROC     = "Journal of Software: Evolution and Process"}

@String{j-J-SOFTW-MAINT         = "Journal of Software Maintenance: Research
                                  and Practice"}

@String{j-J-SOFTW-MAINT-EVOL    = "Journal of Software Maintenance and
                                  Evolution: Research and Practice"}

@String{j-J-SOV-MATH            = "Journal of Soviet Mathematics"}

@String{j-J-STAT-PHYS           = "Journal of Statistical Physics"}

@String{j-J-SUPERCOMPUTING      = "The Journal of Supercomputing"}

@String{j-J-SYMBOLIC-COMP       = "Journal of Symbolic Computation"}

@String{j-J-SYST-SOFTW          = "The Journal of Systems and Software"}

@String{j-J-THEOR-BIOL          = "Journal of Theoretical Biology"}

@String{j-J-UCS                 = "J.UCS: Journal of Universal Computer
                                  Science"}

@String{j-JDIQ                  = "Journal of Data and Information Quality
                                  (JDIQ)"}

@String{j-JETC                  = "ACM Journal on Emerging Technologies in
                                  Computing Systems (JETC)"}

@String{j-JOCCH                 = "Journal on Computing and Cultural Heritage
                                  (JOCCH)"}

@String{j-LECT-NOTES-COMP-SCI   = "Lecture Notes in Computer Science"}

@String{j-LINUX-J               = "Linux Journal"}

@String{j-LOGIN                 = ";login:"}

@String{j-LOPLAS                = "ACM Letters on Programming Languages and
                                  Systems"}

@String{j-MACH-TRANSL           = "Machine Translation"}

@String{j-MARKUP-LANG           = "Markup languages: theory \& practice"}

@String{j-MATH-COMPUT           = "Mathematics of Computation"}

@String{j-MATH-COMPUT-SCI       = "Mathematics in Computer Science"}

@String{j-MATHEMATICA-J         = "Mathematica Journal"}

@String{j-NETWORK-SECURITY      = "Network Security"}

@String{j-NORDIC-J-COMPUT       = "Nordic Journal of Computing"}

@String{j-OPER-SYS-REV          = "Operating Systems Review"}

@String{j-PACMPL                = "Proceedings of the ACM on Programming
                                  Languages (PACMPL)"}

@String{j-PARALLEL-ALGORITHMS-APPL = "Parallel Algorithms and Applications"}

@String{j-PARALLEL-COMPUTING    = "Parallel Computing"}

@String{j-PARALLEL-PROCESS-LETT = "Parallel Processing Letters"}

@String{j-PATTERN-RECOGN        = "Pattern Recognition"}

@String{j-PROBAB-ENGRG-INFORM-SCI = "Probability in the Engineering and
                                  Informational Sciences"}

@String{j-PROC-VLDB-ENDOWMENT   = "Proceedings of the VLDB Endowment"}

@String{j-R-JOURNAL             = "The R Journal"}

@String{j-SCI-COMPUT-PROGRAM    = "Science of Computer Programming"}

@String{j-SCI-PROG              = "Scientific Programming"}

@String{j-SCPE                  = "Scalable Computing: Practice and
                                  Experience"}

@String{j-SIAM-J-APPL-MATH      = "SIAM Journal on Applied Mathematics"}

@String{j-SIAM-J-COMPUT         = "SIAM Journal on Computing"}

@String{j-SIAM-J-DISCR-MATH     = "SIAM Journal on Discrete Mathematics"}

@String{j-SIAM-J-SCI-STAT-COMP  = "SIAM Journal on Scientific and Statistical
                                  Computing"}

@String{j-SIAM-REVIEW           = "SIAM Review"}

@String{j-SIGACT                = "SIGACT News (ACM Special Interest Group on
                                  Automata and Computability Theory)"}

@String{j-SIGADA-LETTERS        = "ACM SIGADA Ada Letters"}

@String{j-SIGAPP                = "ACM SIGAPP Applied Computing Review"}

@String{j-SIGCSE                = "SIGCSE Bulletin (ACM Special Interest Group
                                  on Computer Science Education)"}

@String{j-SIGMETRICS            = "ACM SIGMETRICS Performance Evaluation
                                  Review"}

@String{j-SIGMICRO              = "ACM SIGMICRO Newsletter"}

@String{j-SIGMOD                = "SIGMOD Record (ACM Special Interest Group
                                  on Management of Data)"}

@String{j-SIGPLAN               = "ACM SIGPLAN Notices"}

@String{j-SIGSAM                = "SIGSAM Bulletin (ACM Special Interest Group
                                  on Symbolic and Algebraic Manipulation)"}

@String{j-SIGSOFT               = "ACM SIGSOFT Software Engineering Notes"}

@String{j-SOFTWAREX             = "SoftwareX"}

@String{j-SPE                   = "Software --- Practice and Experience"}

@String{j-STRUCTURED-PROGRAMMING = "Structured programming"}

@String{j-SUNEXPERT             = "SunExpert Magazine"}

@String{j-SUNWORLD-ONLINE       = "Sunworld Online"}

@String{j-SYS-ADMIN             = "Sys Admin: The Journal for UNIX Systems
                                  Administrators"}

@String{j-SYS-COMP-JAPAN        = "Systems and Computers in Japan"}

@String{j-TAAS                  = "ACM Transactions on Autonomous and Adaptive
                                  Systems (TAAS)"}

@String{j-TACO                  = "ACM Transactions on Architecture and Code
                                  Optimization"}

@String{j-TALG                  = "ACM Transactions on Algorithms"}

@String{j-TALIP                 = "ACM Transactions on Asian Language
                                  Information Processing"}

@String{j-TALLIP                = "ACM Transactions on Asian and Low-Resource
                                  Language Information Processing (TALLIP)"}

@String{j-TAP                   = "ACM Transactions on Applied Perception"}

@String{j-TCBB                  = "IEEE\slash ACM Transactions on
                                  Computational Biology and Bioinformatics"}

@String{j-TEAC                  = "ACM Transactions on Economics and
                                  Computation"}

@String{j-TECS                  = "ACM Transactions on Embedded Computing
                                  Systems"}

@String{j-THEOR-COMP-SCI        = "Theoretical Computer Science"}

@String{j-TISSEC                = "ACM Transactions on Information and System
                                  Security"}

@String{j-TIST                  = "ACM Transactions on Intelligent Systems and
                                  Technology (TIST)"}

@String{j-TKDD                  = "ACM Transactions on Knowledge Discovery
                                  from Data (TKDD)"}

@String{j-TOCHI                 = "ACM Transactions on Computer-Human
                                  Interaction"}

@String{j-TOCL                  = "ACM Transactions on Computational Logic"}

@String{j-TOCS                  = "ACM Transactions on Computer Systems"}

@String{j-TOCT                  = "ACM Transactions on Computation Theory"}

@String{j-TODAES                = "ACM Transactions on Design Automation of
                                  Electronic Systems (TODAES)"}

@String{j-TODS                  = "ACM Transactions on Database Systems"}

@String{j-TOG                   = "ACM Transactions on Graphics"}

@String{j-TOIS                  = "ACM Transactions on Information Systems"}

@String{j-TOIT                  = "ACM Transactions on Internet Technology
                                  (TOIT)"}

@String{j-TOMM                  = "ACM Transactions on Multimedia Computing,
                                  Communications, and Applications"}

@String{j-TOMS                  = "ACM Transactions on Mathematical Software"}

@String{j-TOPC                  = "ACM Transactions on Parallel Computing
                                  (TOPC)"}

@String{j-TOPLAS                = "ACM Transactions on Programming Languages
                                  and Systems"}

@String{j-TOS                   = "ACM Transactions on Storage"}

@String{j-TOSEM                 = "ACM Transactions on Software Engineering
                                  and Methodology"}

@String{j-TOSN                  = "ACM Transactions on Sensor Networks"}

@String{j-TQC                   = "ACM Transactions on Quantum Computing (TQC)"}

@String{j-TRANS-INFO-PROCESSING-SOC-JAPAN = "Transactions of the Information
                                  Processing Society of Japan"}

@String{j-TRETS                 = "ACM Transactions on Reconfigurable
                                  Technology and Systems"}

@String{j-TSAS                  = "ACM Transactions on Spatial Algorithms and
                                  Systems (TSAS)"}

@String{j-TUGboat               = "TUGboat"}

@String{j-TWEB                  = "ACM Transactions on the Web (TWEB)"}

@String{j-UNIX-REVIEW           = "UNIX Review"}

@String{j-UNIX-WORLD            = "UNIX\slash world"}

@String{j-VLDB-J                = "VLDB Journal: Very Large Data Bases"}

%%% ====================================================================
%%% Publishers and their addresses:
@String{pub-ACM                 = "ACM Press"}
@String{pub-ACM:adr             = "New York, NY 10036, USA"}

@String{pub-APRESS              = "Apress"}
@String{pub-APRESS:adr          = "Berkeley, CA, USA"}

@String{pub-ASME                = "American Society of Mechanical Engineers"}
@String{pub-ASME:adr            = "345 E. 47th St., New York, NY 10017, USA"}

@String{pub-AW                  = "Ad{\-d}i{\-s}on-Wes{\-l}ey"}
@String{pub-AW:adr              = "Reading, MA, USA"}

@String{pub-CAMBRIDGE           = "Cambridge University Press"}
@String{pub-CAMBRIDGE:adr       = "Cambridge, UK"}

@String{pub-CRC                 = "CRC Press"}
@String{pub-CRC:adr             = "Boca Raton, FL, USA"}

@String{pub-EUROPEN             = "EurOpen"}
@String{pub-EUROPEN:adr         = "Buntingford, Herts, UK"}

@String{pub-IBM                 = "IBM Corporation"}
@String{pub-IBM:adr             = "Armonk, NY, USA / Poughkeepsie, NY, USA / San
                                  Jose, CA, USA / Yorktown Heights, NY, USA"}

@String{pub-IEEE                = "IEEE Computer Society Press"}
@String{pub-IEEE:adr            = "1109 Spring Street, Suite 300, Silver
                                  Spring, MD 20910, USA"}

@String{pub-IEEE-STD            = "IEEE"}
@String{pub-IEEE-STD:adr        = "New York, NY, USA"}

@String{pub-MANNING             = "Manning Publications"}
@String{pub-MANNING:adr         = "Greenwich, CT, USA"}

@String{pub-MCGRAW-HILL         = "Mc{\-}Graw-Hill"}
@String{pub-MCGRAW-HILL:adr     = "New York, NY, USA"}

@String{pub-MIT                 = "MIT Press"}
@String{pub-MIT:adr             = "Cambridge, MA, USA"}

@String{pub-MORGAN-KAUFMANN     = "Morgan Kaufmann Publishers"}
@String{pub-MORGAN-KAUFMANN:adr = "San Francisco, CA, USA"}

@String{pub-NO-STARCH           = "No Starch Press"}
@String{pub-NO-STARCH:adr       = "San Francisco, CA, USA"}

@String{pub-NORTH-HOLLAND       = "North-Hol{\-}land"}
@String{pub-NORTH-HOLLAND:adr   = "Amsterdam, The Netherlands"}

@String{pub-ORA                 = "O'Reilly \& Associates"}
@String{pub-ORA:adr             = "Sebastopol, CA, USA, and Cambridge, MA, USA"}

@String{pub-ORA-MEDIA           = "O'Reilly Media"}
@String{pub-ORA-MEDIA:adr       = "Sebastopol, CA, USA"}

@String{pub-OXFORD              = "Oxford University Press"}
@String{pub-OXFORD:adr          = "Walton Street, Oxford OX2 6DP, UK"}

@String{pub-PACKT               = "Packt Publishing"}
@String{pub-PACKT:adr           = "Birmingham, UK"}

@String{pub-PH                  = "Pren{\-}tice-Hall"}
@String{pub-PH:adr              = "Upper Saddle River, NJ 07458, USA"}

@String{pub-PHPTR               = "Pren{\-}tice-Hall PTR"}
@String{pub-PHPTR:adr           = "Upper Saddle River, NJ 07458, USA"}

@String{pub-PRINCETON           = "Princeton University Press"}
@String{pub-PRINCETON:adr       = "Princeton, NJ, USA"}

@String{pub-SV                  = "Springer-Verlag"}
@String{pub-SV:adr              = "Berlin, Germany~/ Heidelberg, Germany~/
                                  London, UK~/ etc."}

@String{pub-UNICODE             = "The Unicode Consortium"}
@String{pub-UNICODE:adr         = "Mountain View, CA, USA"}
@String{pub-UNICODE-SAN-JOSE:adr = "San Jose, CA 95170-0519, USA"}

@String{pub-USENIX              = "USENIX"}
@String{pub-USENIX:adr          = "Berkeley, CA, USA"}

@String{pub-WILEY               = "John Wiley"}
@String{pub-WILEY:adr           = "New York, NY, USA"}

@String{pub-WORLD-SCI           = "World Scientific Publishing Co. Pte. Ltd."}
@String{pub-WORLD-SCI:adr       = "P. O. Box 128, Farrer Road, Singapore 9128"}

%%% ====================================================================
%%% Series abbreviations:
@String{ser-LNAI                = "Lecture Notes in Artificial Intelligence"}

@String{ser-LNCS                = "Lecture Notes in Computer Science"}

@String{ser-SIGPLAN               = "ACM SIG{\-}PLAN Notices"}

%%% ====================================================================
%%% Bibliography entries, sorted by year, and then by citation label,
%%% with `bibsort -byyear':
@InCollection{Kleene:1956:REN,
  author =       "Stephen C. Kleene",
  title =        "Realization of events in nerve nets and finite
                 automata",
  crossref =     "Shannon:1956:AS",
  pages =        "3--42",
  year =         "1956",
  bibdate =      "Wed Mar 13 09:42:30 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  remark =       "This may be the earliest known publication on regular
                 expressions.",
}

@Article{Chomsky:1958:FSL,
  author =       "Noam Chomsky and George A. Miller",
  title =        "Finite State Languages",
  journal =      j-INF-CONTROL,
  volume =       "1",
  number =       "2",
  pages =        "91--112",
  month =        may,
  year =         "1958",
  CODEN =        "IFCNA4",
  DOI =          "https://doi.org/10.1016/S0019-9958(58)90082-2",
  ISSN =         "0019-9958 (print), 1878-2981 (electronic)",
  ISSN-L =       "0019-9958",
  bibdate =      "Wed Mar 13 11:26:15 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "This paper show the equivalence of regular languages
                 and regular sets.",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0019995858900822",
  acknowledgement = ack-nhfb,
  fjournal =     "Information and Control",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00199958",
  keywords =     "formal language theory",
}

@Article{Copi:1958:REL,
  author =       "Irving M. Copi and Calvin C. Elgot and Jesse B.
                 Wright",
  title =        "Realization of Events by Logical Nets",
  journal =      j-J-ACM,
  volume =       "5",
  number =       "2",
  pages =        "181--196",
  month =        apr,
  year =         "1958",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Sat Dec 10 15:59:08 1994",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  keywords =     "regular expressions",
}

@Article{Rabin:1959:FAT,
  author =       "M. O. Rabin and D. Scott",
  title =        "Finite Automata and Their Decision Problems",
  journal =      j-IBM-JRD,
  volume =       "3",
  number =       "2",
  pages =        "114--125",
  month =        apr,
  year =         "1959",
  CODEN =        "IBMJAE",
  DOI =          "https://doi.org/10.1147/rd.32.0114",
  ISSN =         "0018-8646 (print), 2151-8556 (electronic)",
  ISSN-L =       "0018-8646",
  MRclass =      "93.00 (02.00)",
  MRnumber =     "21 \#2559",
  bibdate =      "Tue Sep 11 15:35:50 MDT 2012",
  bibsource =    "http://www.research.ibm.com/journal/;
                 https://www.math.utah.edu/pub/tex/bib/ibmjrd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "This paper shows the equivalence of deterministic and
                 nondeterministic finite automata.",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5392601",
  acknowledgement = ack-nhfb,
  book-URL =     "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5288520",
  fjournal =     "IBM Journal of Research and Development",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5288520",
  reviewer =     "J. McCarthy",
}

@Article{Shepherdson:1959:RTW,
  author =       "J. C. Shepherdson",
  title =        "The Reduction of Two-Way Automata to One-Way
                 Automata",
  journal =      j-IBM-JRD,
  volume =       "3",
  number =       "2",
  pages =        "198--200",
  month =        apr,
  year =         "1959",
  CODEN =        "IBMJAE",
  DOI =          "https://doi.org/10.1147/rd.32.0198",
  ISSN =         "0018-8646 (print), 2151-8556 (electronic)",
  ISSN-L =       "0018-8646",
  MRclass =      "93.00 (02.00)",
  MRnumber =     "21 \#2560",
  bibdate =      "Tue Sep 11 15:35:50 MDT 2012",
  bibsource =    "http://www.research.ibm.com/journal/;
                 https://www.math.utah.edu/pub/tex/bib/ibmjrd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5392614",
  acknowledgement = ack-nhfb,
  book-URL =     "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5288520",
  fjournal =     "IBM Journal of Research and Development",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5288520",
  reviewer =     "J. McCarthy",
}

@Article{McNaughton:1960:RES,
  author =       "R. McNaughton and H. Yamada",
  title =        "Regular Expressions and State Graphs for Automata",
  journal =      j-IRE-TRANS-ELEC-COMPUT,
  volume =       "EC-9",
  number =       "1",
  pages =        "39--47",
  month =        mar,
  year =         "1960",
  CODEN =        "IRELAO",
  DOI =          "https://doi.org/10.1109/TEC.1960.5221603",
  ISSN =         "0367-9950",
  bibdate =      "Thu Jul 14 15:34:11 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Reprinted in \cite[157--174]{}",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5221603",
  acknowledgement = ack-nhfb,
  fjournal =     "IRE Transactions on Electronic Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5407885",
}

@Article{Ott:1961:DSM,
  author =       "Gene Ott and Neil H. Feinstein",
  title =        "Design of Sequential Machines from Their Regular
                 Expressions",
  journal =      j-J-ACM,
  volume =       "8",
  number =       "4",
  pages =        "585--600",
  month =        oct,
  year =         "1961",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Mon Dec 05 20:11:21 1994",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
}

@Article{Brzozowski:1962:SRE,
  author =       "Janusz A. Brzozowski",
  title =        "A Survey of Regular Expressions and Their
                 Applications",
  journal =      j-IRE-TRANS-ELEC-COMPUT,
  volume =       "EC-11",
  number =       "3",
  pages =        "324--335",
  month =        jun,
  year =         "1962",
  CODEN =        "IRELAO",
  ISSN =         "0367-9950",
  bibdate =      "Sat Jul 16 20:52:08 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IRE Transactions on Electronic Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5407885",
}

@Article{Ghiron:1962:RMR,
  author =       "Hugo Ghiron",
  title =        "Rules to Manipulate Regular Expressions of Finite
                 Automata",
  journal =      j-IRE-TRANS-ELEC-COMPUT,
  volume =       "EC-11",
  number =       "4",
  pages =        "574--575",
  month =        aug,
  year =         "1962",
  CODEN =        "IRELAO",
  DOI =          "https://doi.org/10.1109/TEC.1962.5219404",
  ISSN =         "0367-9950",
  bibdate =      "Thu Jul 14 09:11:51 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5219404",
  acknowledgement = ack-nhfb,
  fjournal =     "IRE Transactions on Electronic Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5407885",
}

@Article{Brzozowski:1963:CSM,
  author =       "J. A. Brzozowski and J. F. Poage",
  title =        "On the Construction of Sequential Machines from
                 Regular Expressions",
  journal =      j-IEEE-TRANS-ELEC-COMPUT,
  volume =       "EC-12",
  number =       "4",
  pages =        "402--403",
  month =        aug,
  year =         "1963",
  CODEN =        "IEECA8",
  DOI =          "https://doi.org/10.1109/PGEC.1963.263474",
  ISSN =         "0367-7508",
  bibdate =      "Thu Jul 14 08:10:40 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4037916",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Electronic Computers",
}

@Article{Brzozowski:1964:DRE,
  author =       "Janusz A. Brzozowski",
  title =        "Derivatives of Regular Expressions",
  journal =      j-J-ACM,
  volume =       "11",
  number =       "4",
  pages =        "481--494",
  month =        oct,
  year =         "1964",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Thu Nov 03 22:53:10 1994",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
}

@Article{Brzozowski:1964:RES,
  author =       "J. A. Brzozowski",
  title =        "Regular Expressions from Sequential Circuits",
  journal =      j-IEEE-TRANS-ELEC-COMPUT,
  volume =       "EC-13",
  number =       "6",
  pages =        "741--744",
  month =        dec,
  year =         "1964",
  CODEN =        "IEECA8",
  DOI =          "https://doi.org/10.1109/PGEC.1964.263932",
  ISSN =         "0367-7508",
  bibdate =      "Thu Jul 14 06:57:05 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4038308",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Electronic Computers",
}

@Book{Moore:1964:SMS,
  author =       "Edward F. Moore",
  title =        "Sequential Machines: Selected Papers",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "v + 266",
  year =         "1964",
  LCCN =         "QA76.5 .M57",
  bibdate =      "Wed Mar 13 11:22:00 MDT 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 library.ox.ac.uk:210/ADVANCE",
  series =       "Addison-Wesley series in computer science and
                 information processing",
  acknowledgement = ack-nhfb,
  subject =      "Sequential machine theory",
}

@Article{Brzozowski:1965:REL,
  author =       "J. A. Brzozowski",
  title =        "Regular Expressions for Linear Sequential Circuits",
  journal =      j-IEEE-TRANS-ELEC-COMPUT,
  volume =       "EC-14",
  number =       "2",
  pages =        "148--156",
  month =        apr,
  year =         "1965",
  CODEN =        "IEECA8",
  DOI =          "https://doi.org/10.1109/PGEC.1965.263959",
  ISSN =         "0367-7508",
  bibdate =      "Thu Jul 14 06:26:21 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4038393",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Electronic Computers",
}

@Article{Ginzburg:1967:PCE,
  author =       "A. Ginzburg",
  title =        "A Procedure for Checking Equality of Regular
                 Expressions",
  journal =      j-J-ACM,
  volume =       "14",
  number =       "2",
  pages =        "355--362",
  month =        apr,
  year =         "1967",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Fri Nov 04 00:10:20 1994",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
}

@Article{Anonymous:1968:TCA,
  author =       "Anonymous",
  title =        "Two Complete Axiom Systems for the Extended Language
                 of Regular Expressions",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "C-17",
  number =       "7",
  pages =        "700--701",
  month =        jul,
  year =         "1968",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.1968.227424",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Wed Jul 13 17:40:49 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1687431",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Thompson:1968:PTR,
  author =       "Ken Thompson",
  title =        "Programming Techniques: {Regular} expression search
                 algorithm",
  journal =      j-CACM,
  volume =       "11",
  number =       "6",
  pages =        "419--422",
  month =        jun,
  year =         "1968",
  CODEN =        "CACMA2",
  DOI =          "https://doi.org/10.1145/363347.363387",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Fri Nov 25 18:20:20 MST 2005",
  bibsource =    "http://dblp.uni-trier.de/db/journals/cacm/cacm11.html#Thompson68;
                 http://www.acm.org/pubs/contents/journals/cacm/;
                 https://www.math.utah.edu/pub/tex/bib/cacm1960.bib;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib;
                 https://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
  note =         "See also
                 \cite{Kernighan:1999:REL,Cox:2007:REM,Cox:2009:REM,Cox:2010:REM,Cox:2012:REM}",
  URL =          "http://patft.uspto.gov/",
  abstract =     "A method for locating specific character strings
                 embedded in character text is described and an
                 implementation of this method in the form of a compiler
                 is discussed. The compiler accepts a regular expression
                 as source language and produces an IBM 7094 program as
                 object language. The object program then accepts the
                 text to be searched as input and produces a signal
                 every time an embedded string in the text matches the
                 given regular expression. Examples, problems, and
                 solutions are also presented.",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  keywords =     "match; regular expression; search",
  oldlabel =     "Thompson68",
  remark =       "The on-the-fly compilation of regular expressions to
                 IBM 7094 machine code is part of US Patent \#3568156,
                 awarded 9 August 1967 to Kenneth L. Thompson. This may
                 be the first instance of the use of regular-expression
                 pattern matching in text-editor software.",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/cacm/Thompson68",
}

@InProceedings{Johansen:1969:FGR,
  author =       "Peter Johansen",
  title =        "Free groups and regular expressions",
  crossref =     "ACM:1969:CRA",
  pages =        "113--128",
  year =         "1969",
  bibdate =      "Wed Feb 20 18:32:51 MST 2002",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Kaplan:1969:REE,
  author =       "Donald M. Kaplan",
  title =        "Regular expressions and the equivalence of programs",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "3",
  number =       "4",
  pages =        "361--386",
  month =        nov,
  year =         "1969",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1016/S0022-0000(69)80027-9",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:25:16 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000069800279",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Gill:1970:SAR,
  author =       "A. Gill",
  title =        "Symmetric and Antisymmetric Regular Expressions",
  journal =      j-SIAM-J-APPL-MATH,
  volume =       "18",
  number =       "3",
  pages =        "539--557",
  month =        may,
  year =         "1970",
  CODEN =        "SMJMAP",
  ISSN =         "0036-1399 (print), 1095-712X (electronic)",
  ISSN-L =       "0036-1399",
  bibdate =      "Thu Oct 15 18:16:06 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/siamjapplmath.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 JSTOR database",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Applied Mathematics",
  journal-URL =  "http://epubs.siam.org/siap",
}

@Article{Vere:1970:TE,
  author =       "Steven Vere",
  title =        "Translation equations",
  journal =      j-CACM,
  volume =       "13",
  number =       "2",
  pages =        "83--89",
  month =        feb,
  year =         "1970",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  MRclass =      "68A30",
  MRnumber =     "45 4925",
  MRreviewer =   "H. Maurer",
  bibdate =      "Tue Mar 25 13:26:09 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cacm1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See errata \cite{Vere:1970:TEE}.",
  abstract =     "Input limited transduction expressions, or translation
                 equations, are used to describe the syntax and
                 left-context sensitive semantics for context-free
                 languages. A formal procedure is given for deriving
                 from a set of translation equations the specifications
                 for a pushdown translator. The translator consists of
                 Mealy form finite-state automata interacting by means
                 of a pushdown stack. Within the framework described
                 string recognition and parsing may be treated as
                 special cases of the translation problem.",
  acknowledgement = ack-nhfb,
  classcodes =   "C4210 (Formal logic)",
  corpsource =   "Univ. California, Los Angeles, CA, USA",
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  keywords =     "automata; computational linguistics; context-free
                 languages; finite state automata; formal languages;
                 meta-compilers; parsing; pushdown transducer;
                 recognizers; regular expression; syntax directed
                 compilers; transduction expression; translation; Turing
                 machines",
}

@Article{Vere:1970:TEE,
  author =       "S. Vere",
  title =        "Translation Equations (Errata)",
  journal =      j-CACM,
  volume =       "13",
  number =       "5",
  pages =        "286--286",
  month =        may,
  year =         "1970",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Fri Jan 17 18:28:27 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cacm1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See \cite{Vere:1970:TE}.",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
}

@Article{Ferguson:1971:GAL,
  author =       "W. A. Ferguson and G. J. Lipovski",
  title =        "A generalized assembly language using regular
                 expressions",
  journal =      j-SIGPLAN,
  volume =       "6",
  number =       "2",
  pages =        "217--236",
  month =        feb,
  year =         "1971",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 25 06:40:58 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Harrison:1971:IST,
  author =       "Malcolm C. Harrison",
  title =        "Implementation of the Substring Test by Hashing",
  journal =      j-CACM,
  volume =       "14",
  number =       "12",
  pages =        "777--779",
  month =        dec,
  year =         "1971",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Mon Jan 22 06:48:43 MST 2001",
  bibsource =    "http://dblp.uni-trier.de/db/journals/cacm/cacm14.html#Harrison71;
                 https://www.math.utah.edu/pub/tex/bib/cacm1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See also \cite{Tharp:1982:PTS}.",
  acknowledgement = ack-nhfb,
  classcodes =   "C6130 (Data handling techniques)",
  corpsource =   "New York Univ., NY, USA",
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  keywords =     "compression; data handling; hashing; information;
                 information retrieval; programming; searching;
                 signature; subset; substring test",
  oldlabel =     "Harrison71",
  treatment =    "P Practical",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/cacm/Harrison71",
}

@InProceedings{Hearn:1971:CSA,
  author =       "Anthony C. Hearn",
  booktitle =    "Proceedings of the Second Colloquium on Advanced
                 Computing Methods in Theoretical Physics, {CNRS},
                 Marseilles",
  title =        "The Computer Solution of Algebraic Problems by Pattern
                 Matching",
  publisher =    "????",
  address =      "????",
  pages =        "I-45--I-57",
  year =         "1971",
  bibdate =      "Fri Sep 22 14:22:15 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/red-g-l.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This paper discusses computer techniques for the
                 solution of algebraic problems in theoretical physics
                 and related areas by pattern matching.",
}

@Article{Patel:1971:GRL,
  author =       "A. R. Patel",
  title =        "Generation of Right-Linear Grammars from Regular
                 Expressions",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "C-20",
  number =       "4",
  pages =        "472--473",
  month =        apr,
  year =         "1971",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/T-C.1971.223271",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Wed Jul 13 06:38:14 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1671864",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Book{Aho:1972:TPT,
  author =       "Alfred V. Aho and Jeffrey D. Ullman",
  title =        "The Theory of Parsing, Translation, and Compiling.
                 {I}: Parsing",
  volume =       "I",
  publisher =    pub-PH,
  address =      pub-PH:adr,
  pages =        "xviii + 542",
  year =         "1972",
  ISBN =         "0-13-914556-7",
  ISBN-13 =      "978-0-13-914556-8",
  LCCN =         "QA76.6 .A286 1972-73",
  bibdate =      "Wed Dec 15 15:01:28 1993",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@InProceedings{Cook:1972:LTS,
  author =       "Stephen A. Cook",
  title =        "Linear Time Simulation of Deterministic Two-Way
                 Pushdown Automata",
  crossref =     "Freiman:1972:IPP",
  pages =        "75--80",
  year =         "1972",
  bibdate =      "Mon Sep 4 06:55:37 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://books.google.com/books?id=PifeQwAACAAJ",
  acknowledgement = ack-nhfb,
  remark =       "This complicated theoretical paper led to the work in
                 \cite{Knuth:1977:FPM}. No machine readable copy, nor a
                 DOI, has yet been found.",
}

@Article{Smith:1972:GRE,
  author =       "L. W. Smith and S. S. Yau",
  title =        "Generation of regular expressions for automata by the
                 integral of regular expressions",
  journal =      j-COMP-J,
  volume =       "15",
  number =       "3",
  pages =        "222--228",
  month =        aug,
  year =         "1972",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/15.3.222",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Tue Dec 4 14:47:50 MST 2012",
  bibsource =    "http://comjnl.oxfordjournals.org/content/15/3.toc;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_15/Issue_03/;
                 https://www.math.utah.edu/pub/tex/bib/compj.bib;
                 https://www.math.utah.edu/pub/tex/bib/compj1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/15/3/222.full.pdf+html;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_15/Issue_03/150222.sgm.abs.html;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_15/Issue_03/tiff/222.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_15/Issue_03/tiff/223.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_15/Issue_03/tiff/224.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_15/Issue_03/tiff/225.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_15/Issue_03/tiff/226.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_15/Issue_03/tiff/227.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_15/Issue_03/tiff/228.tif",
  acknowledgement = ack-nhfb,
  classcodes =   "C4220 (Automata theory)",
  corpsource =   "Northwestern Univ., Evanston, IL, USA",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  keywords =     "algorithm; expressions; finite automata; generation or
                 regular expressions; integral of regular",
  treatment =    "T Theoretical or Mathematical",
}

@Book{Aho:1973:TPT,
  author =       "Alfred V. Aho and Jeffrey D. Ullman",
  title =        "The Theory of Parsing, Translation, and Compiling.
                 {II}. Compiling",
  volume =       "II",
  publisher =    pub-PH,
  address =      pub-PH:adr,
  pages =        "xiii + 460",
  year =         "1973",
  ISBN =         "0-13-914564-8",
  ISBN-13 =      "978-0-13-914564-3",
  LCCN =         "QA76.6 .A286 1972-73",
  bibdate =      "Wed Dec 15 15:01:25 1993",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Davison:1973:RSC,
  author =       "G. A. Davison",
  title =        "Rapidly Searching for Character String Matches Using
                 Hash Coding",
  journal =      j-IBM-TDB,
  volume =       "16",
  number =       "1",
  pages =        "??--??",
  month =        jun,
  year =         "1973",
  CODEN =        "IBMTAA",
  ISSN =         "0018-8689",
  bibdate =      "Sat Jan 25 17:38:12 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "723",
  fjournal =     "IBM Technical Disclosure Bulletin",
  journalabr =   "IBM Tech Disclosure Bull",
  keywords =     "computer programming",
}

@Article{Gimpel:1973:TDP,
  author =       "James F. Gimpel",
  title =        "A Theory of Discrete Patterns and Their Implementation
                 in {SNOBOL4}",
  journal =      j-CACM,
  volume =       "16",
  number =       "2",
  pages =        "91--100",
  month =        feb,
  year =         "1973",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  MRclass =      "68A15 (68A45)",
  MRnumber =     "52 7198",
  MRreviewer =   "John K. Debenham",
  bibdate =      "Mon Jan 22 06:44:26 MST 2001",
  bibsource =    "Compendex database;
                 http://dblp.uni-trier.de/db/journals/cacm/cacm16.html#Gimpel73;
                 https://www.math.utah.edu/pub/tex/bib/cacm1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The notion of a discrete pattern is formalized and
                 certain properties deduced. A pattern is shown to be a
                 generalization of a formal language. Algorithms for
                 implementing the kinds of patterns in SNOBOL4 are
                 given. The general approach is to create, in-so-far as
                 possible, a bottom-up parse from a top-down
                 specification.",
  acknowledgement = ack-nhfb,
  classcodes =   "C4210 (Formal logic); C6140 (Programming languages)",
  classification = "723",
  corpsource =   "Bell Telephone Labs., Holmdel, NJ, USA",
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  journalabr =   "Commun ACM",
  keywords =     "computer programming languages; data processing ---
                 Data Structures; discrete patterns; formal language;
                 formal languages; parsing; pattern implementation;
                 pattern matching; pattern recognition systems; pattern
                 theory; patterns; programming languages; SNOBOL4;
                 string processing",
  oldlabel =     "Gimpel73",
  treatment =    "T Theoretical or Mathematical",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/cacm/Gimpel73",
}

@Article{James:1973:ACP,
  author =       "E. B. James and Derek P. Partridge",
  title =        "Adaptive Correction of Program Statements",
  journal =      j-CACM,
  volume =       "16",
  number =       "1",
  pages =        "27--37",
  month =        jan,
  year =         "1973",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Mon Jan 22 06:52:38 MST 2001",
  bibsource =    "Compendex database;
                 http://dblp.uni-trier.de/db/journals/cacm/cacm16.html#JamesP73;
                 https://www.math.utah.edu/pub/tex/bib/cacm1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "A method of analyzing statements in a programming
                 language which can tolerate a considerable inaccuracy
                 in their specification is proposed. This method
                 involves principles at present mainly confined to
                 studies in the area of artificial intelligence such as
                 feature extraction, approximate tree matching, and
                 strategy improvement by feedback from the matching
                 process. A pilot program incorporating the principles
                 is described and preliminary operating results are
                 presented. A final section surveys further principles
                 which are currently being investigated.",
  acknowledgement = ack-nhfb,
  classcodes =   "C4240 (Programming and algorithm theory)",
  classification = "723",
  corpsource =   "Imperial Coll. Sci. and Technol., London, UK",
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  journalabr =   "Commun ACM",
  keywords =     "adaptive correction; artificial intelligence;
                 automatic parsing; compiler; computer metatheory;
                 computer programming languages; linguistic pattern
                 matching; program statements; programming; programming
                 languages; syntax analysis; theory",
  oldlabel =     "JamesP73",
  treatment =    "T Theoretical or Mathematical",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/cacm/JamesP73",
}

@Book{Aho:1974:DAC,
  author =       "Alfred V. Aho and John E. Hopcroft and Jeffrey D.
                 Ullman",
  title =        "The Design and Analysis of Computer Algorithms",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "x + 470",
  year =         "1974",
  ISBN =         "0-201-00029-6",
  ISBN-13 =      "978-0-201-00029-0",
  LCCN =         "QA76.6 .A284 1974",
  bibdate =      "Tue Dec 14 22:34:07 1993",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  tableofcontents = "1. Models of computation \\
                 2. Design of efficient algorithms \\
                 3. Sorting and order statistics \\
                 4. Data structures for set manipulation problems \\
                 5. Algorithms on graphs \\
                 6. Matrix multiplication and related operations \\
                 7. The Fast Fourier Transform and its applications \\
                 8. Integer and polynomial arithmetic \\
                 9. Pattern-matching algorithms \\
                 10. NP-complete problems \\
                 11. Some provably intractable problems \\
                 12. Lower bounds on numbers of arithmetic operations",
}

@Article{Earley:1974:HLO,
  author =       "J. Earley",
  title =        "High level operations in automatic programming",
  journal =      j-SIGPLAN,
  volume =       "9",
  number =       "4",
  pages =        "34--42",
  month =        apr,
  year =         "1974",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Apr 25 11:46:37 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C6140D (High level languages)",
  conflocation = "Santa Monica, CA, USA; 28-29 March 1974",
  conftitle =    "ACM SIGPLAN Symposium on Very High Level Languages",
  corpsource =   "Univ. California, Berkeley, CA, USA",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "automatic programming; constrained data structures;
                 high level operations; implicitly specified data
                 structures; iterators; nonprocedural languages; pattern
                 languages; pattern matching facilities; problem
                 oriented languages; programming language VERS2",
  sponsororg =   "ACM",
  treatment =    "A Application; T Theoretical or Mathematical",
}

@InProceedings{Ehrenfeucht:1974:CMR,
  author =       "Andrzej Ehrenfeucht and Paul Zeiger",
  title =        "Complexity measures for regular expressions",
  crossref =     "ACM:1974:CRS",
  pages =        "75--79",
  year =         "1974",
  bibdate =      "Wed Feb 20 18:33:29 MST 2002",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Wagner:1974:OCR,
  author =       "Robert A. Wagner",
  title =        "Order-$n$ Correction for Regular Languages",
  journal =      j-CACM,
  volume =       "17",
  number =       "5",
  pages =        "265--268",
  month =        may,
  year =         "1974",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Mon Jan 22 07:27:44 MST 2001",
  bibsource =    "Compendex database;
                 http://dblp.uni-trier.de/db/journals/cacm/cacm17.html#Wagner74;
                 https://www.math.utah.edu/pub/tex/bib/cacm1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/spell.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "A method is presented for calculating a string B,
                 belonging to a given regular language L, which is
                 ``nearest'' (in number of edit operations) to a given
                 input string $a$. {$B$} is viewed as a reasonable
                 ``correction'' for the possibly erroneous string $a$,
                 where a was originally intended to be a string of
                 {$L$}. \par

                 The calculation of {$B$} by the method presented
                 requires time proportional to $ |a| $, the number of
                 characters in $a$. The method should find applications
                 in information retrieval, artificial intelligence, and
                 spelling correction systems.",
  acknowledgement = ack-nhfb,
  classcodes =   "C4210 (Formal logic); C6130 (Data handling
                 techniques)",
  classification = "723",
  corpsource =   "Vanderbilt Univ., Nashville, TN, USA",
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  journalabr =   "Commun ACM",
  keywords =     "artificial intelligence; compiler error recovery;
                 computer programming languages; context free languages;
                 context-free languages; correction; corrector; edit
                 operations; error correction; error correction codes;
                 error correction, regular languages, regular events,
                 finite state automata, compiler error recovery,
                 spelling correction, string best match problem,
                 correction, corrector, errors, nondeterministic
                 finite-state automata; errors; finite state automata;
                 information; nondeterministic finite state automata;
                 nondeterministic finite-state automata; order $n$
                 correction; regular events; regular languages;
                 retrieval; spelling correction; string best match
                 problem",
  oldlabel =     "Wagner74",
  treatment =    "T Theoretical or Mathematical",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/cacm/Wagner74",
}

@Article{Aho:1975:ESM,
  author =       "Alfred V. Aho and Margaret J. Corasick",
  title =        "Efficient String Matching: an Aid to Bibliographic
                 Search",
  journal =      j-CACM,
  volume =       "18",
  number =       "6",
  pages =        "333--340",
  month =        jun,
  year =         "1975",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  MRclass =      "68A50",
  MRnumber =     "51 7393",
  MRreviewer =   "K. H. V. Booth",
  bibdate =      "Mon Jan 22 06:20:48 MST 2001",
  bibsource =    "Compendex database;
                 ftp://ftp.ira.uka.de/pub/bibliography/Misc/protein.pattern.bib;
                 ftp://ftp.ira.uka.de/pub/bibliography/Object/Nierstrasz.bib;
                 http://dblp.uni-trier.de/db/journals/cacm/cacm18.html#AhoC75;
                 https://www.math.utah.edu/pub/tex/bib/cacm1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This paper describes a simple, efficient algorithm to
                 locate all occurrences of any of a finite number of
                 keywords in a string of text. The algorithm consists of
                 constructing a finite state pattern matching machine
                 from the keywords and then using the pattern matching
                 machine to process the text string in a single pass.
                 Construction of the pattern matching machine takes time
                 proportional to the sum of the lengths of the keywords.
                 The number of state transitions made by the pattern
                 matching machine in processing the text string is
                 independent of the number of keywords. The algorithm
                 has been used to improve the speed of a library
                 bibliographic search program by a factor of 5 to 10.",
  acknowledgement = ack-nhfb,
  classcodes =   "C6120 (File organisation); C7250 (Information storage
                 and retrieval)",
  classification = "721; 723",
  corpsource =   "Bell Labs., Murray Hill, NJ, USA",
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  journalabr =   "Commun ACM",
  keywords =     "algorithm; automata theory --- Finite Automata;
                 bibliographic search; computational complexity.;
                 efficient; finite state machines; finite state pattern
                 matching; information retrieval; information retrieval
                 systems; keywords; keywords and phrases; patterns UNIX
                 searching; string matching; string pattern matching;
                 text; text editing; text-editing",
  oldlabel =     "AhoC75",
  treatment =    "P Practical",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/cacm/AhoC75",
}

@Article{Berkling:1975:CDH,
  author =       "K. Berkling and W. Kluge",
  title =        "Conceptual Design of a Hardwired Main Storage
                 Management Unit",
  journal =      j-COMP-J,
  volume =       "18",
  number =       "4",
  pages =        "360--365",
  month =        nov,
  year =         "1975",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/18.4.360",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Tue Dec 4 14:47:56 MST 2012",
  bibsource =    "Compendex database;
                 http://comjnl.oxfordjournals.org/content/18/4.toc;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_18/Issue_04/;
                 https://www.math.utah.edu/pub/tex/bib/compj.bib;
                 https://www.math.utah.edu/pub/tex/bib/compj1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/18/4/360.full.pdf+html;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_18/Issue_04/tiff/360.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_18/Issue_04/tiff/361.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_18/Issue_04/tiff/362.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_18/Issue_04/tiff/363.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_18/Issue_04/tiff/364.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_18/Issue_04/tiff/365.tif",
  acknowledgement = ack-nhfb,
  classcodes =   "C6120 (File organisation); C6150J (Operating
                 systems)",
  classification = "722; 723",
  corpsource =   "Gesellschaft Math. und Datenverarbeitung GmbH, Bonn,
                 West Germany",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  keywords =     "bit planes; computer operating systems; data storage,
                 digital; hardwired main storage management unit;
                 operating system; special processor; storage cells;
                 storage management; string search algorithm",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Galil:1975:CLA,
  author =       "Zvi Galil",
  title =        "On converting on-line algorithms into real-time and on
                 real-time algorithms for string-matching and palindrome
                 recognition",
  journal =      j-SIGACT,
  volume =       "7",
  number =       "4",
  pages =        "26--30",
  month =        nov,
  year =         "1975",
  CODEN =        "SIGNDM",
  DOI =          "https://doi.org/10.1145/990502.990505",
  ISSN =         "0163-5700 (print), 1943-5827 (electronic)",
  ISSN-L =       "0163-5700",
  bibdate =      "Wed Mar 21 06:52:58 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigact.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We give a sufficient condition when an on-line
                 algorithm can be transformed into a real-time
                 algorithm. We use this condition to construct real-time
                 algorithms for string-matching and palindrome
                 recognition problems by random access machines and by
                 Turing machines.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGACT News",
  journal-URL =  "http://dl.acm.org/citation.cfm?id=J697",
}

@Article{Manacher:1975:NLT,
  author =       "Glenn Manacher",
  title =        "A New Linear-Time {``On-Line''} Algorithm for Finding
                 the Smallest Initial Palindrome of a String",
  journal =      j-J-ACM,
  volume =       "22",
  number =       "3",
  pages =        "346--351",
  month =        jul,
  year =         "1975",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Wed Jan 15 18:12:53 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Despite significant advances in linear-time scanning
                 algorithms, particularly those based wholly or in part
                 on either Cook's linear-time simulation of two-way
                 deterministic pushdown automata or Weiner's algorithm,
                 the problem of recognizing the initial leftmost nonvoid
                 palindrome of a string in time proportional to the
                 length $N$ of the palindrome, examining no symbols
                 other than those in the palindrome, has remained open.
                 The algorithm presented solves this problem, assuming
                 that addition of two integers less than or equal to $N$
                 may be performed in a single operation. Like the
                 Knuth--Morris--Pratt algorithm, it runs in time
                 independent of the size of the input alphabet. The
                 algorithm as presented finds only even palindromes.
                 However, an extension allows one to recognize the
                 initial odd or even palindrome of length 2 or
                 greater.",
  acknowledgement = ack-nhfb,
  classification = "722; 723",
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  journalabr =   "J Assoc Comput Mach",
  keywords =     "computer programming; computer systems, digital --- On
                 Line Operation; linear-time algorithm; palindromes",
}

@Article{Salton:1975:VSM,
  author =       "Gerard Salton and A. Wong and C. S. Yang",
  title =        "A Vector Space Model for Automatic Indexing",
  journal =      j-CACM,
  volume =       "18",
  number =       "11",
  pages =        "613--620",
  month =        nov,
  year =         "1975",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Mon Jan 22 07:18:07 MST 2001",
  bibsource =    "Compendex database;
                 ftp://ftp.ira.uka.de/pub/bibliography/Database/Wiederhold.bib;
                 http://dblp.uni-trier.de/db/journals/cacm/cacm18.html#SaltonWY75;
                 https://www.math.utah.edu/pub/tex/bib/cacm1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "In a document retrieval, or other pattern matching
                 environment where stored entities (documents) are
                 compared with each other or with incoming patterns
                 (search requests), it appears that the best indexing
                 (property) space is one where each entity lies as far
                 away from the others as possible; in these
                 circumstances the value of an indexing system may be
                 expressible as a function of the density of the object
                 space; in particular, retrieval performance may
                 correlate inversely with space density. An approach
                 based on space density computations is used to choose
                 an optimum indexing vocabulary for a collection of
                 documents. Typical evaluation results are shown,
                 demonstrating the usefulness of the model.",
  acknowledgement = ack-nhfb,
  annote =       "Optimizing of relationship strength based data
                 access.",
  classcodes =   "C6130 (Data handling techniques); C7240 (Information
                 analysis and indexing)",
  classification = "723; 901",
  corpsource =   "Cornell Univ., Ithaca, NY, USA",
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  journalabr =   "Commun ACM",
  keywords =     "automatic indexing; content analysis; density;
                 document retrieval; incoming patterns; indexing;
                 information science; library mechanisation; pattern
                 matching environment; space; vector space model",
  oldlabel =     "SaltonWY75",
  treatment =    "A Application; P Practical",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/cacm/SaltonWY75",
}

@InBook{Dijkstra:1976:PMP,
  author =       "Edsger W. Dijkstra",
  booktitle =    "A Discipline of Programming",
  title =        "The pattern matching problem",
  chapter =      "18",
  publisher =    pub-PH,
  address =      pub-PH:adr,
  year =         "1976",
  bibdate =      "Mon Mar 16 08:14:00 2015",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/d/dijkstra-edsger-w.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  oldlabel =     "EWD:EWD459pub",
}

@Article{Ehrenfeucht:1976:CMR,
  author =       "Andrzej Ehrenfeucht and Paul Zeiger",
  title =        "Complexity measures for regular expressions",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "12",
  number =       "2",
  pages =        "134--146",
  month =        apr,
  year =         "1976",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1016/S0022-0000(76)80034-7",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:25:32 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000076800347",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Fosdick:1976:DFA,
  author =       "Lloyd D. Fosdick and Leon J. Osterweil",
  title =        "Data Flow Analysis in Software Reliability",
  journal =      j-COMP-SURV,
  volume =       "8",
  number =       "3",
  pages =        "305--330",
  month =        sep,
  year =         "1976",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/356674.356676",
  ISSN =         "0010-4892",
  ISSN-L =       "0360-0300",
  bibdate =      "Thu Jun 19 09:20:22 MDT 2008",
  bibsource =    "Compendex database;
                 http://www.acm.org/pubs/contents/journals/surveys/;
                 https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The ways that the methods of data flow analysis can be
                 applied to improve software reliability are described.
                 There is also a review of the basic terminology from
                 graph theory and from data flow analysis in global
                 program optimization. The notation of regular
                 expressions is used to describe actions on data for
                 sets of paths. These expressions provide the basis of a
                 classification scheme for data flow which represents
                 patterns of data flow along paths within subprograms
                 and along paths which cross subprogram boundaries. Fast
                 algorithms, originally introduced for global
                 optimization, are described and it is shown how they
                 can be used to implement the classification scheme. It
                 is then shown how these same algorithms can also be
                 used to detect the presence of data flow anomalies
                 which are symptomatic of programming errors. Finally,
                 some characteristics of and experience with DAVE, a
                 data flow analysis system embodying some of these
                 ideas, are described.",
  acknowledgement = ack-nhfb,
  classification = "723",
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
  keywords =     "computer programming; computer software reliability;
                 data flow analysis",
}

@InProceedings{Galil:1976:RTA,
  author =       "Zvi Galil",
  title =        "Real-time algorithms for string-matching and
                 palindrome recognition",
  crossref =     "ACM:1976:CRE",
  pages =        "161--173",
  year =         "1976",
  bibdate =      "Wed Feb 20 18:33:30 MST 2002",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Galil:1976:TFS,
  author =       "Zvi Galil",
  title =        "Two Fast Simulations Which Imply Some Fast String
                 Matching and Palindrome-Recognition Algorithms",
  journal =      j-INFO-PROC-LETT,
  volume =       "4",
  number =       "4",
  pages =        "85--87",
  day =          "??",
  month =        jan,
  year =         "1976",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Nov 17 10:49:43 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "721; C4220 (Automata theory)",
  corpsource =   "Dept. of Computer Sci., IBM T.J. Watson Res. Center,
                 Yorktown Heights, NY, USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "automata theory; deterministic multitape Turing
                 machine; fast string matching; palindrome recognition;
                 random access machine; simulations; Turing machines",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Manacher:1976:APM,
  author =       "G. K. Manacher",
  title =        "An application of pattern matching to a problem in
                 geometrical complexity",
  journal =      j-INFO-PROC-LETT,
  volume =       "5",
  number =       "1",
  pages =        "6--7",
  day =          "??",
  month =        may,
  year =         "1976",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Nov 17 10:49:43 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "B6140C (Optical information, image and video signal
                 processing); C1250 (Pattern recognition); C5530
                 (Pattern recognition and computer vision equipment)",
  corpsource =   "Dept. of Information Engng., Univ. of Illinois,
                 Chicago, IL, USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  keywords =     "combinatorial problems; geometrical complexity;
                 pattern matching; pattern recognition; polygons",
  treatment =    "P Practical",
}

@Article{McCreight:1976:SES,
  author =       "Edward M. McCreight",
  title =        "A Space-Economical Suffix Tree Construction
                 Algorithm",
  journal =      j-J-ACM,
  volume =       "23",
  number =       "2",
  pages =        "262--272",
  month =        apr,
  year =         "1976",
  CODEN =        "JACOAH",
  DOI =          "https://doi.org/10.1145/321941.321946",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Sat Jan 26 12:46:16 MST 2013",
  bibsource =    "Compendex database;
                 ftp://ftp.ira.uka.de/pub/bibliography/Misc/protein.pattern.bib;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "A new algorithm is presented for constructing
                 auxiliary digital search trees to aid in exact-match
                 substring searching. This algorithm has the same
                 asymptotic running time bound as previously published
                 algorithms, but is more economical in space. Some
                 implementation considerations are discussed, and new
                 work on the modification of these search trees in
                 response to incremental changes in the strings they
                 index (the update problem) is presented.",
  acknowledgement = ack-ds # " and " # ack-nhfb,
  classification = "723; 901",
  comment =      "Algorithms to build, use, and modify suffix tree are
                 presented. The advantage of this algorithm over other
                 linear time algorithms to perform similar tasks is that
                 this algorithm uses less space. This seems to the
                 primary reference for suffix trees.",
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  journalabr =   "J Assoc Comput Mach",
  keywords =     "computer programming; information science ---
                 Information Retrieval",
  rawdata =      "McCreight, E. M (1976) ``A Space Economical Suffix
                 Tree Construction Algorithm,'' {\it Journal of the
                 ACM}, {\bf32}(2):262--272, April.",
}

@TechReport{Sabsevitz:1976:REM,
  author =       "A. L. Sabsevitz",
  title =        "A Regular Expression Matcher For The {C} Language",
  type =         "Technical Memorandum",
  number =       "1101 (TM 76-9141-5)",
  institution =  inst-ATT-BELL,
  address =      inst-ATT-BELL:adr,
  pages =        "??",
  day =          "2",
  month =        jun,
  year =         "1976",
  bibdate =      "Tue Jun 06 08:07:45 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "This memorandum describes a primitive regular
                 expression matching facility written for language C.
                 Routines have been provided to compile regular
                 expressions and to apply such compiled expressions to
                 string subjects.",
  acknowledgement = ack-nhfb,
}

@Article{Abbott:1977:DIY,
  author =       "R. J. Abbott",
  title =        "A do-it-yourself instant compiler.kit",
  journal =      j-SIGCSE,
  volume =       "9",
  number =       "1",
  pages =        "53--58",
  month =        feb,
  year =         "1977",
  CODEN =        "SIGSD3",
  DOI =          "https://doi.org/10.1145/382063.803358",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sun Nov 18 08:53:56 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigcse1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Special issue for the Seventh Technical Symposium on
                 Computer Science Education.",
  abstract =     "The theory of compiler-compilers is well known. Here
                 we present a small collection of SNOBOL subroutines
                 which make the SNOBOL pattern matcher a
                 self-documenting instant compiler. All one need add are
                 the syntax productions (as simple SNOBOL patterns
                 mimicking BNF) and the associated (synthesizing)
                 semartic transformation in the form of arbitrarily
                 simple SNOBOL programs. The resulting compiler produces
                 a complete (or partial at the us{\'e}r's discretion)
                 trace of the parse showing how the syntax matches or
                 fails to match the input. After a match is achieved,
                 the semantic rules are executed on the resulting parse
                 tree. The execution of these rules too are optionally
                 traced so that one has a full picture of just which
                 transformations were performed at each node of the
                 tree. Finally the parse tree is printed.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Bird:1977:IPI,
  author =       "Richard S. Bird",
  title =        "Improving Programs by the Introduction of Recursion",
  journal =      j-CACM,
  volume =       "20",
  number =       "11",
  pages =        "856--863",
  month =        nov,
  year =         "1977",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  MRclass =      "68A05",
  MRnumber =     "56 17179",
  MRreviewer =   "V. Cazanescu",
  bibdate =      "Mon Jan 22 06:26:29 MST 2001",
  bibsource =    "Compendex database;
                 ftp://ftp.ira.uka.de/pub/bibliography/Misc/Functional.bib;
                 http://dblp.uni-trier.de/db/journals/cacm/cacm20.html#Bird77a;
                 https://www.math.utah.edu/pub/tex/bib/cacm1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "A new technique of program transformation, called
                 ``recursion introduction,'' is described and applied to
                 two algorithms which solve pattern matching problems.
                 By using a recursion introduction, algorithms which
                 manipulate a stack are first translated into recursive
                 algorithms in which no stack operations occur. These
                 algorithms are then subjected to a second
                 transformation, a method of recursion elimination
                 called ``tabulation,'' to produce programs with a very
                 efficient running time. In particular, it is shown how
                 the fast linear pattern matching algorithm of Knuth,
                 Morris, and Pratt can be derived in a few steps from a
                 simple nonlinear stack algorithm.",
  acknowledgement = ack-nhfb,
  classcodes =   "C4240 (Programming and algorithm theory)",
  classification = "723",
  corpsource =   "Univ. of Reading, Reading, UK",
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  journalabr =   "Commun ACM",
  keywords =     "computer programming; functional program
                 transformation optimization recursion elimination
                 pattern matching computational induction; program
                 transformation; programming theory; recursion
                 introduction; stack",
  oldlabel =     "Bird77a",
  treatment =    "T Theoretical or Mathematical",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/cacm/Bird77a",
}

@Article{Bird:1977:TDP,
  author =       "R. S. Bird",
  title =        "Two dimensional pattern matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "6",
  number =       "5",
  pages =        "168--170",
  day =          "??",
  month =        oct,
  year =         "1977",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Nov 17 10:49:43 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory); C6130
                 (Data handling techniques)",
  corpsource =   "Dept. of Computer Sci., Univ. of Reading, Reading,
                 UK",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  keywords =     "pattern matching; pattern recognition; string
                 matching; text editing; two dimensional",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Boyer:1977:FSS,
  author =       "Robert S. Boyer and J. Strother Moore",
  title =        "A Fast String Searching Algorithm",
  journal =      j-CACM,
  volume =       "20",
  number =       "10",
  pages =        "762--772",
  month =        oct,
  year =         "1977",
  CODEN =        "CACMA2",
  DOI =          "https://doi.org/10.1145/359842.359859",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Mon Jan 22 06:27:49 MST 2001",
  bibsource =    "Compendex database;
                 ftp://ftp.ira.uka.de/pub/bibliography/Misc/protein.pattern.bib;
                 http://dblp.uni-trier.de/db/journals/cacm/cacm20.html#BoyerM77;
                 https://www.math.utah.edu/pub/tex/bib/cacm1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/cacm1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See also
                 \cite{Knuth:1977:FPM,Sunday:1990:VFS,Baeza-Yates:1992:NAT}.",
  abstract =     "An algorithm is presented that searches for the
                 location, ``i,'' of the first occurrence of a character
                 string, ``pat,'' in another string, ``string.'' During
                 the search operation, the characters of pat are matched
                 starting with the last character of pat. The
                 information gained by starting the match at the end of
                 the pattern often allows the algorithm to proceed in
                 large jumps through the text being searched. Thus the
                 algorithm has the unusual property that, in most cases,
                 not all of the first i characters of string are
                 inspected. The number of characters actually inspected
                 (on the average) decreases as a function of the length
                 of pat. For a random English pattern of length 5, the
                 algorithm will typically inspect i/4 characters of
                 string before finding a match at i. Furthermore, the
                 algorithm has been implemented so that (on the average)
                 fewer than i plus patlen machine instructions are
                 executed. These conclusions are supported with
                 empirical evidence and a theoretical analysis of the
                 average behavior of the algorithm. The worst case
                 behavior of the algorithm is linear in i plus patlen,
                 assuming the availability of array space for tables
                 linear in patlen plus the size of the alphabet.",
  acknowledgement = ack-nhfb,
  classcodes =   "C4240 (Programming and algorithm theory); C6130 (Data
                 handling techniques)",
  classification = "723; 901",
  comment =      "The Boyer--Moore string matching algorithm is, in the
                 worst case, linear in the length of the text + length
                 of the pattern. The average case behavior is sublinear.
                 Practical efficient implementations of this algorithm
                 exist. By starting the comparisons at the right of the
                 pattern instead of the left of the pattern, large jumps
                 can be made in the text.",
  corpsource =   "Stanford Res. Inst., Stanford, CA, USA",
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  journalabr =   "Commun ACM",
  keywords =     "algorithm; Boyer--Moore; character string; computer
                 operating systems; computer programming; fast;
                 information science --- Information Retrieval; list
                 processing; pattern matching; string matching; string
                 searching; text; text editing",
  oldlabel =     "BoyerM77",
  received =     "June 1975",
  revised =      "April 1976",
  treatment =    "T Theoretical or Mathematical",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/cacm/BoyerM77",
}

@Article{Brownlee:1977:ABI,
  author =       "J. Nevil Brownlee",
  title =        "An {Algol}-based implementation of {SNOBOL 4}
                 patterns",
  journal =      j-CACM,
  volume =       "20",
  number =       "7",
  pages =        "527--529",
  month =        jul,
  year =         "1977",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Mon Jan 22 06:28:32 MST 2001",
  bibsource =    "Compendex database;
                 http://dblp.uni-trier.de/db/journals/cacm/cacm20.html#Brownlee77;
                 https://www.math.utah.edu/pub/tex/bib/cacm1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "When a string appears as the subject of a SNOBOL4
                 statement, it may be scanned to see whether or not it
                 contains a specified pattern. However, since the
                 scanner is fundamentally an interpreter (using pattern
                 graphs as its input code), pattern matching appears to
                 be a time-consuming process. This paper describes an
                 alternative approach in which SNOBOL4 patterns are
                 compiled into Algol functions, which can be combined
                 into larger (more complicated) patterns, and which are
                 directly executed. It was developed as part of the
                 implementation of ``Snobal\slash 67'', a Burroughs
                 B6700 compiler for a SNOBAL4-like language.",
  acknowledgement = ack-nhfb,
  classcodes =   "C6140D (High level languages)",
  classification = "723",
  corpsource =   "Univ. of Auckland, Private Bag, Auckland, New
                 Zealand",
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  journalabr =   "Commun ACM",
  keywords =     "ALGOL; compiled; computer operating systems ---
                 Program Compilers; computer programming languages;
                 implementation; pattern recognition systems; patterns;
                 procedure oriented languages; SNOBOL 4",
  oldlabel =     "Brownlee77",
  treatment =    "P Practical",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/cacm/Brownlee77",
}

@TechReport{Carr:1977:CSM,
  author =       "R. G. Carr",
  title =        "Character String Manipulation in the {C} Language",
  type =         "Technical Memorandum",
  number =       "1208",
  institution =  inst-ATT-BELL,
  address =      inst-ATT-BELL:adr,
  pages =        "??",
  day =          "31",
  month =        oct,
  year =         "1977",
  bibdate =      "Tue Jun 06 08:07:45 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "This document describes the C language features and
                 the available subroutines. It is intended to complement
                 the C tutorial UNPL(1001) with emphasis on strings.",
  acknowledgement = ack-nhfb,
}

@Article{Davis:1977:ARE,
  author =       "D. E. Davis and R. D. Moore and M. C. Williams and O.
                 C. Woodard",
  title =        "Automatic Registration in an Electron-Beam
                 Lithographic System",
  journal =      j-IBM-JRD,
  volume =       "21",
  number =       "6",
  pages =        "498--505",
  month =        nov,
  year =         "1977",
  CODEN =        "IBMJAE",
  ISSN =         "0018-8646 (print), 2151-8556 (electronic)",
  ISSN-L =       "0018-8646",
  bibdate =      "Tue Mar 25 14:26:59 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/ibmjrd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "A description is given of pattern registration, a
                 process by which the circuit patterns required at a
                 particular level of device fabrication are mapped to
                 those of the preceding level. The considerations taken
                 as basic in designing an accurate, high-speed
                 registration process for a production-type
                 electron-beam exposure system are discussed. This
                 automatic registration system operates in 150
                 milliseconds per integrated circuit chip, allowing the
                 system to achieve a throughput of 2000 5-mm chips per
                 hour with overlay error of less than 0.75 $ \mu $ m (3
                 sigma). The operation of this system, its performance
                 characteristics, and measurements of its
                 pattern-matching accuracy are presented.",
  acknowledgement = ack-nhfb,
  classcodes =   "B2220C (General integrated circuit fabrication
                 techniques); B2550G (Lithography); B2570 (Semiconductor
                 integrated circuits); C3355 (Control applications in
                 manufacturing processes)",
  classification = "713; 745; 932",
  corpsource =   "IBM Systems Products Div. Lab., East Fishkill,
                 Hopewell Junction, NY, USA",
  fjournal =     "IBM Journal of Research and Development",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5288520",
  journalabr =   "IBM J Res Dev",
  keywords =     "automatic registration system; circuit technology;
                 electron beam applications; electron beams ---
                 Applications; electron resists; integrated; integrated
                 circuit manufacture; lithography --- Applications;
                 manufacturing processes; pattern registration process;
                 photolithography",
  treatment =    "P Practical",
}

@Article{Dirilten:1977:PMU,
  author =       "H. Dirilten and T. G. Newman",
  title =        "Pattern Matching Under Affine Transformations",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "C-26",
  number =       "3",
  pages =        "314--317",
  month =        mar,
  year =         "1977",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.1977.1674832",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Mon Jul 11 21:56:53 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1674832",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Francez:1977:BRC,
  author =       "Nissim Francez and Boris Klebansky and Amir Pnueli",
  title =        "Backtracking in Recursive Computations",
  journal =      j-ACTA-INFO,
  volume =       "8",
  number =       "2",
  pages =        "125--144",
  day =          "24",
  month =        may,
  year =         "1977",
  CODEN =        "AINFA2",
  ISSN =         "0001-5903 (print), 1432-0525 (electronic)",
  ISSN-L =       "0001-5903",
  bibdate =      "Fri Sep 22 14:22:31 2023",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Compiler/bevan.bib;
                 ftp://ftp.ira.uka.de/pub/bibliography/Misc/allison.bib;
                 ftp://ftp.ira.uka.de/pub/bibliography/Misc/HBP/ACTAI.bib;
                 https://www.math.utah.edu/pub/tex/bib/actainfo.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "A mathematical (denotational) semantics is constructed
                 for a formalism of recursive equations with the {\em
                 Alternative} operator. This formalism enables the
                 combination of recursion and backtracking. The
                 semantics is defined by applying fixpoint theory to set
                 valued functions. We introduce the notion of strategy
                 to produce subset of the result. Two implementations
                 are suggested using an auxiliary stack. the concept of
                 a sub-fixpoint is introduced, and the implementations
                 are shown to be incomplete even w.r.t. sub-fixpoint
                 values. One special strategy, the leftmost strategy,
                 which stems from problems such as pattern matching and
                 parsing, is discussed.",
  annote =       "denotational semantics of recursive equations with the
                 alternative operator. Can use recursion and
                 backtracking. Uses set valued functions in semantics.",
  checked =      "19940503",
  fjournal =     "Acta Informatica",
  journal-URL =  "http://www.springerlink.com/content/0001-5903",
  keywords =     "alternative operator; backtracking; choice;
                 denotational semantics; fixpoint; nondeterministic;
                 recursion; semantics",
  refs =         "15",
}

@Article{Goto:1977:PHA,
  author =       "E. Goto and T. Ida and T. Gunji",
  key =          "Goto \& Ida",
  title =        "Parallel Hashing Algorithms",
  journal =      j-INFO-PROC-LETT,
  volume =       "6",
  number =       "1",
  pages =        "8--13",
  day =          "??",
  month =        feb,
  year =         "1977",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Nov 17 10:49:43 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory); C6120
                 (File organisation)",
  corpsource =   "Inst. for Phys. and Chem. Res., Wako-shi, Saitama,
                 Japan",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  keywords =     "fast pattern matching; memory accesses; parallel
                 hashing algorithms; retrieve; software systems; storage
                 management",
  treatment =    "T Theoretical or Mathematical",
}

@TechReport{Hoalst:1977:SMC,
  author =       "B. C. Hoalst",
  title =        "String Manipulation and Conversion for Switching
                 Control Center",
  type =         "Technical Memorandum",
  number =       "1211 (TM 77-5222-2)",
  institution =  inst-ATT-BELL,
  address =      inst-ATT-BELL:adr,
  pages =        "??",
  day =          "20",
  month =        oct,
  year =         "1977",
  bibdate =      "Tue Jun 06 08:07:45 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "This library provides a number of basic mechanisms for
                 implementation of complex string formatting tasks from
                 C programs.",
  acknowledgement = ack-nhfb,
}

@Article{Housden:1977:CSP,
  author =       "R. J. W. Housden and N. Kotarski",
  title =        "Character string pattern matching in {Algol 68}",
  journal =      j-SIGPLAN,
  volume =       "12",
  number =       "6",
  pages =        "144--152",
  month =        jun,
  year =         "1977",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:14:05 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C6140D (High level languages); C6150E (General
                 utility programs)",
  conflocation = "Glasgow, UK; 29-31 March 1977",
  conftitle =    "Proceedings of the Strathclyde ALGOL 68 Conference",
  corpsource =   "Univ. of East Anglia, Norwich, UK",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "ALGOL; ALGOL 68; character string pattern matching;
                 data handling; modes; operators; pattern recognition;
                 procedures; SNOBOL 4",
  sponsororg =   "ACM",
  treatment =    "P Practical",
}

@Article{Knuth:1977:FPM,
  author =       "Donald E. Knuth and James H. {Morris, Jr.} and Vaughan
                 R. Pratt",
  title =        "Fast Pattern Matching in Strings",
  journal =      j-SIAM-J-COMPUT,
  volume =       "6",
  number =       "2",
  pages =        "323--350",
  month =        jun,
  year =         "1977",
  CODEN =        "SMJCAT",
  DOI =          "https://doi.org/10.1137/0206024",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68A45",
  MRnumber =     "56 #10198",
  MRreviewer =   "B. Chandrasekaran",
  bibdate =      "Fri Mar 22 18:03:29 MST 2002",
  bibsource =    "Compiler/math.prog.construction.bib;
                 http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/6/2;
                 https://www.math.utah.edu/pub/tex/bib/cacm1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/cacm1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database; Misc/traces.bib",
  note =         "Errata, see \cite{Rytter:1980:CPA}. See also
                 \cite{Boyer:1977:FSS,Rytter:1980:CPA,Sunday:1990:VFS,Hume:1991:FSS,Baeza-Yates:1992:NAT}.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
  received =     "29 August 1974",
  remark =       "This paper builds on work in \cite{Cook:1972:LTS}.",
  revised =      "7 April 1976",
}

@TechReport{Luderer:1977:CPT,
  author =       "G. W. R. Luderer",
  title =        "Cut and Paste --- Two {UNIX} Word Processing Commands",
  type =         "Technical Memorandum",
  number =       "1205 (MF 77-8234-086)",
  institution =  inst-ATT-BELL,
  address =      inst-ATT-BELL:adr,
  pages =        "??",
  day =          "30",
  month =        sep,
  year =         "1977",
  bibdate =      "Tue Jun 06 08:07:45 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "{\tt Cut} and {\tt Paste} are two new UNIX word
                 processing commands that complement {\tt grep} and {\tt
                 cat}. {\tt Cut} dissects a file vertically, and {\tt
                 Paste} is the reverse operation of {\tt Cut}.",
  acknowledgement = ack-nhfb,
}

@TechReport{Reiser:1977:EDO,
  author =       "John F. Reiser",
  title =        "{EDTV} --- a Display-Oriented Text Editor For {UNIX}",
  type =         "Technical Memorandum",
  number =       "1177 (TM 77-1353-6)",
  institution =  inst-ATT-BELL,
  address =      inst-ATT-BELL:adr,
  pages =        "??",
  day =          "1",
  month =        aug,
  year =         "1977",
  bibdate =      "Tue Jun 06 08:07:45 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "This memorandum is a description of the features and
                 commands of {\tt edtv}, a display-oriented editor which
                 runs under the UNIX operating system. It allows the
                 regular expressions editing of {\tt ed}, the standard
                 UNIX editor.",
  acknowledgement = ack-nhfb,
}

@Article{Silverston:1977:NPM,
  author =       "Stefan M. Silverston",
  title =        "A note on pattern matching under {Quickscan} in
                 {SNOBOL4}",
  journal =      j-SIGPLAN,
  volume =       "12",
  number =       "10",
  pages =        "70--74",
  month =        oct,
  year =         "1977",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:14:10 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C6130 (Data handling techniques); C6140D (High level
                 languages)",
  corpsource =   "Computer Sci. Dept., Iowa State Univ., Ames, IA, USA",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "data handling; heuristics; pattern matching; procedure
                 oriented languages; Quickscan; SNOBOL4",
  treatment =    "P Practical",
}

@Article{Stockman:1977:EHC,
  author =       "G. C. Stockman and Ashok K. Agrawala",
  title =        "Equivalence of {Hough} curve detection to template
                 matching",
  journal =      j-CACM,
  volume =       "20",
  number =       "11",
  pages =        "820--822",
  month =        nov,
  year =         "1977",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Mon Jan 22 07:24:30 MST 2001",
  bibsource =    "http://dblp.uni-trier.de/db/journals/cacm/cacm20.html#StockmanA77;
                 https://www.math.utah.edu/pub/tex/bib/cacm1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "B6140C (Optical information, image and video signal
                 processing); C1250 (Pattern recognition)",
  corpsource =   "LNK Corp., Silver Spring, MD, USA",
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  keywords =     "Hough; Hough curve detection; pattern recognition;
                 template matching; transformation",
  oldlabel =     "StockmanA77",
  treatment =    "T Theoretical or Mathematical",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/cacm/StockmanA77",
}

@Article{Vineberg:1977:ICSa,
  author =       "Maniel Vineberg",
  title =        "Implementation of character string pattern matching on
                 a multiprocessor",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "6",
  number =       "2",
  pages =        "1--7",
  month =        may,
  year =         "1977",
  CODEN =        "CANED2",
  ISSN =         "0163-5964 (ACM), 0884-7495 (IEEE)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:45 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigarch.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@Article{Vineberg:1977:ICSb,
  author =       "Maniel Vineberg",
  title =        "Implementation of character string pattern matching on
                 a multiprocessor",
  journal =      j-SIGMOD,
  volume =       "9",
  number =       "2",
  pages =        "1--7",
  month =        may,
  year =         "1977",
  CODEN =        "SRECD8",
  DOI =          "https://doi.org/10.1145/965645.810246",
  ISSN =         "0163-5808 (print), 1943-5835 (electronic)",
  ISSN-L =       "0163-5808",
  bibdate =      "Tue Jun 17 17:07:14 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigmod.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "An algorithm to do pattern matching, a basic character
                 string operation, is presented. The Programmable
                 Algorithm Machine (PAM), a proposed special-purpose
                 computer which will feature multiple processing
                 elements and operate efficiently over a wide class of
                 applications, is described. It is shown that the
                 multiple processing elements of the PAM allow
                 concurrent execution of independent operations both in
                 a special case of the pattern matching algorithm, where
                 the string sizes (lengths) are known at compile time,
                 and in the general case, where the sizes are not
                 known.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGMOD Record (ACM Special Interest Group on
                 Management of Data)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J689",
}

@Article{Akl:1978:CGM,
  author =       "S. G. Akl",
  title =        "Comments on: {G. Manacher}, {``An application of
                 pattern matching to a problem in geometrical
                 complexity''}",
  journal =      j-INFO-PROC-LETT,
  volume =       "7",
  number =       "2",
  pages =        "86--??",
  day =          "28",
  month =        feb,
  year =         "1978",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Nov 17 10:49:43 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory)",
  corpsource =   "School of Computer Sci., McGill Univ., Montreal, Que.,
                 Canada",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  keywords =     "computational complexity; geometrical complexity;
                 pattern matching; polygon comparison",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Baker:1978:TER,
  author =       "Theodore P. Baker",
  title =        "A technique for extending rapid exact-match string
                 matching to arrays of more than one dimension",
  journal =      j-SIAM-J-COMPUT,
  volume =       "7",
  number =       "4",
  pages =        "533--541",
  month =        "????",
  year =         "1978",
  CODEN =        "SMJCAT",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68G10",
  MRnumber =     "81h:68085",
  bibdate =      "Mon Nov 29 10:58:52 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/7/4;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Choueka:1978:FAD,
  author =       "Yaacov Choueka",
  title =        "Finite automata, definable sets, and regular
                 expressions over $ \omega^n$-tapes",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "17",
  number =       "1",
  pages =        "81--97",
  month =        aug,
  year =         "1978",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1016/0022-0000(78)90036-3",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:25:38 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/0022000078900363",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Ditzel:1978:PMH,
  author =       "D. R. Ditzel",
  title =        "Pattern matching for high level languages",
  journal =      j-SIGPLAN,
  volume =       "13",
  number =       "5",
  pages =        "46--55",
  month =        may,
  year =         "1978",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:14:17 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C6130 (Data handling techniques); C6140D (High level
                 languages)",
  corpsource =   "Computer Sci. Dept., Iowa State Univ., Ames, IA, USA",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "characters; data handling; high level languages;
                 pattern matching; procedure oriented languages;
                 searching; string; text editor",
  treatment =    "T Theoretical or Mathematical",
}

@TechReport{Freeman:1978:PCL,
  author =       "R. B. Freeman",
  title =        "{Parse()} --- A {C} Language Routine to Parse a String
                 into Words",
  type =         "Technical Memorandum",
  number =       "1271",
  institution =  inst-ATT-BELL,
  address =      inst-ATT-BELL:adr,
  pages =        "??",
  day =          "15",
  month =        jun,
  year =         "1978",
  bibdate =      "Tue Jun 06 08:07:45 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "These notes document {\tt parse()}, a C language
                 routine that parses an input string and returns the
                 \ldots{} words and the number of words in the string.",
  acknowledgement = ack-nhfb,
}

@Article{Pagan:1978:FSS,
  author =       "F. G. Pagan",
  title =        "Formal Semantics of a {Snobol4} Subset",
  journal =      j-COMP-LANGS,
  volume =       "3",
  number =       "1",
  pages =        "13--30",
  month =        "????",
  year =         "1978",
  CODEN =        "COLADA",
  ISSN =         "0096-0551 (print), 1873-6742 (electronic)",
  ISSN-L =       "0096-0551",
  bibdate =      "Thu Apr 10 09:52:25 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/complngs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C4210 (Formal logic); C6140D (High level languages)",
  classification = "723",
  corpsource =   "Dept. of Math., Statistics and Computer Sci., Memorial
                 Univ. of Newfoundland, St. John's, Nfld., Canada",
  fjournal =     "Computer Languages",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00960551",
  journalabr =   "Comput Lang",
  keywords =     "abstract interpreter; abstract syntax; computer
                 programming languages; concrete syntax; formal
                 languages; function invocation; pattern matching;
                 programming languages; semantics; Snobol4; SNOBOL4
                 subset; statement sequencing; Vienna Definition
                 Language",
  treatment =    "G General Review",
}

@Article{Parker:1978:SCO,
  author =       "K. P. Parker and E. J. McCluskey",
  title =        "Sequential Circuit Output Probabilities From Regular
                 Expressions",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "C-27",
  number =       "3",
  pages =        "222--231",
  month =        mar,
  year =         "1978",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.1978.1675075",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Mon Jul 11 08:13:27 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1675075",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@InProceedings{Slissenko:1978:SMR,
  author =       "A. Slissenko",
  title =        "String-Matching in Real-Time: Some Properties of the
                 Data Structure",
  crossref =     "Winkowski:1978:MFC",
  pages =        "493--496",
  year =         "1978",
  bibdate =      "Sat Jul 3 07:43:10 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/s/slissenko-anatol.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
}

@Article{Beyer:1979:LAI,
  author =       "T. Beyer and W. Jones and S. Mitchell",
  title =        "Linear Algorithms for Isomorphism of Maximal
                 Outerplanar Graphs",
  journal =      j-J-ACM,
  volume =       "26",
  number =       "4",
  pages =        "603--610",
  month =        oct,
  year =         "1979",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Wed Jan 15 18:12:53 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Two linear algorithms are presented for solving the
                 isomorphism problem for maximal outerplanar graphs
                 (mops). These algorithms present improvements over
                 corresponding linear algorithms for planar graph
                 isomorphism when applied to mops. The algorithms are
                 based on a code for a mop {$G$} which is obtained from
                 a unique Hamiltonian cycle in {$G$}. The first involves
                 a string-matching automation and the second involves
                 the removal of vertices of degree two in layers until
                 either an edge or triangular face remains.",
  acknowledgement = ack-nhfb,
  classification = "723; 921",
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  journalabr =   "J Assoc Comput Mach",
  keywords =     "computer programming; mathematical techniques ---
                 Graph Theory",
}

@InProceedings{Cowan:1979:HKRa,
  author =       "Richard M. Cowan and Martin L. Griss",
  title =        "Hashing --- The Key to Rapid Pattern Matching",
  crossref =     "Ng:1979:SAC",
  volume =       "72",
  pages =        "266--278",
  year =         "1979",
  bibdate =      "Sun Jul 17 10:04:39 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@InProceedings{Cowan:1979:HKRb,
  author =       "Richard M. Cowan and Martin L. Griss",
  booktitle =    "Proc. {EUROSAM} 1979, Lecture Notes in Computer
                 Science",
  title =        "Hashing --- The Key to Rapid Pattern Matching",
  volume =       "72",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "266--278",
  year =         "1979",
  bibdate =      "Fri Sep 22 14:23:22 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/red-a-f.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Galil:1979:IWC,
  author =       "Zvi Galil",
  title =        "On Improving the Worse Case Running Time of the
                 {Boyer--Moore} String Matching Algorithm",
  journal =      j-CACM,
  volume =       "22",
  number =       "9",
  pages =        "505--508",
  month =        sep,
  year =         "1979",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  MRclass =      "68H05 (68C25)",
  MRnumber =     "80m:68083",
  MRreviewer =   "Andrew Yao",
  bibdate =      "Mon Jan 22 06:42:55 MST 2001",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Database/Wiederhold.bib;
                 http://dblp.uni-trier.de/db/journals/cacm/cacm22.html#Galil79;
                 https://www.math.utah.edu/pub/tex/bib/cacm1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  annote =       "It compares the pattern with the text from the right
                 end of the pattern. Whenever a mismatch occurs, it
                 shifts the pattern according to a precomputed table. In
                 the case that the text character positioned against the
                 last character in the pattern does not appear in the
                 pattern, we can immediately shift the pattern right a
                 distance equal to the size of the pattern. Thus, we
                 need to inspect only about $ n / m $ characters of the
                 text (where $n$ and $m$ are the sizes of the text
                 pattern).",
  classcodes =   "C4240 (Programming and algorithm theory); C6130 (Data
                 handling techniques)",
  corpsource =   "Tel-Aviv Univ., Tel-Aviv, Israel",
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  keywords =     "algorithm; computational complexity; data handling;
                 running time; string matching; worst case",
  oldlabel =     "Galil79",
  treatment =    "T Theoretical or Mathematical",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/cacm/Galil79",
}

@TechReport{Griss:1979:HKR,
  author =       "M. L. Griss",
  title =        "Hashing---the Key to Rapid Pattern Matching",
  number =       "UUCS-79-108",
  institution =  "Computer Science Department, University of Utah",
  pages =        "??",
  year =         "1979",
  bibdate =      "Thu Jul 21 09:35:11 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Harrington:1979:NSI,
  author =       "Steven J. Harrington",
  title =        "A New Symbolic Integration System in {REDUCE}",
  journal =      j-COMP-J,
  volume =       "22",
  number =       "2",
  pages =        "127--131",
  month =        may,
  year =         "1979",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/22.2.127",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Tue Dec 4 14:48:05 MST 2012",
  bibsource =    "Compendex database;
                 http://comjnl.oxfordjournals.org/content/22/2.toc;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_22/Issue_02/;
                 https://www.math.utah.edu/pub/tex/bib/compj.bib;
                 https://www.math.utah.edu/pub/tex/bib/compj1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 Theory/Comp.Alg.1.bib; Theory/reduce.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/22/2/127.full.pdf+html;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_22/Issue_02/tiff/127.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_22/Issue_02/tiff/128.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_22/Issue_02/tiff/129.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_22/Issue_02/tiff/130.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_22/Issue_02/tiff/131.tif",
  abstract =     "A new integration system, employing both algorithmic
                 and pattern match integration schemes is presented. The
                 organization of the system differs from that of earlier
                 programs in its emphasis on the algorithmic approach to
                 integration, its modularity, and its ease of revision.
                 The new {Norman-Risch} algorithm and its implementation
                 at the University of Cambridge are employed,
                 supplemented by a powerful collection of simplification
                 and transformation rules. The facility for user defined
                 integrals and functions is also included. The program
                 is both fast and powerful, and can be easily modified
                 to incorporate anticipated developments in symbolic
                 integration.",
  acknowledgement = ack-nhfb,
  annote =       "A new integration system, employing both algorithmic
                 and pattern match integration schemes is presented. The
                 organization of the system differs from that of earlier
                 programs in its emphasis on the algorithmic approach to
                 integration, its modularity, and its ease of revision.
                 The new Norman-Risch algorithm and its implementation
                 at the University of Cambridge are employed,
                 supplemented by a powerful collection of simplification
                 and transformation rules. The facility for user defined
                 integrals and functions is also included. The program
                 is both fast and powerful, and can be easily modified
                 to incorporate anticipated developments in symbolic
                 integration.",
  classcodes =   "C4160 (Numerical integration and differentiation)",
  classification = "723",
  corpsource =   "Univ. of Utah, Salt Lake City, UT, USA",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  keywords =     "algorithmic integration schemes; computer programming;
                 integration; integration schemes; Norman Risch
                 algorithm; pattern match; Reduce; reduce; rules;
                 simplification rules; symbolic integration system;
                 transformation",
  remark =       "A new integration system, employing both algorithmic
                 and pattern match integration schemes is presented. The
                 organization of the system differs from that of earlier
                 programs in its emphasis on the algorithmic approach to
                 integration, its modularity, and its ease of revision.
                 The new Norman-Risch algorithm and its implementation
                 at the University of Cambridge are employed,
                 supplemented by a powerful collection of simplification
                 and transformation rules. The facility for user defined
                 integrals and functions is also included. The program
                 is both fast and powerful, and can be easily modified
                 to incorporate anticipated developments in symbolic
                 integration.",
  treatment =    "G General Review; N New Development",
}

@Book{Hopcroft:1979:IAT,
  author =       "John E. Hopcroft and Jeffrey D. Ullman",
  title =        "Introduction to Automata Theory, Languages, and
                 Computation",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "418",
  year =         "1979",
  ISBN =         "0-201-02988-X",
  ISBN-13 =      "978-0-201-02988-8",
  LCCN =         "QA267 .H56",
  bibdate =      "Wed Sep 9 09:30:16 MDT 2020",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       "Addison-Wesley Series in Computer Science",
  acknowledgement = ack-nhfb,
  tableofcontents = "Preliminaries \\
                 Finite automata and regular expressions \\
                 Properties of regular sets \\
                 Context-free grammars \\
                 Pushdown automata \\
                 Properties of context-free languages \\
                 Turing machines \\
                 Undecidability \\
                 The Chomsky hierarchy \\
                 Deterministic context-free languages \\
                 Closure properties of families of languages \\
                 Computational complexity theory \\
                 Intractable problems \\
                 Highlights of other important language classes",
}

@Article{Hunt:1979:OCR,
  author =       "H. B. Hunt",
  title =        "Observations on the complexity of regular expression
                 problems",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "19",
  number =       "3",
  pages =        "222--236",
  month =        dec,
  year =         "1979",
  CODEN =        "JCSSBM",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:25:41 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/0022000079900023",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@TechReport{Kessler:1979:PPM,
  author =       "R. Kessler",
  title =        "{PMETA} --- Pattern Matching {META}/{REDUCE}",
  type =         "Report",
  number =       "USCG Op. Note No. 40",
  institution =  "Univ. of Utah, CS Dept.",
  address =      "Salt Lake City, UT, USA",
  month =        jan,
  year =         "1979",
  bibdate =      "Fri Sep 22 14:23:22 2023",
  bibsource =    "Ai/lisp.bib;
                 https://www.math.utah.edu/pub/tex/bib/redextra.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  keywords =     "LISP",
}

@Article{Kodratoff:1979:CFS,
  author =       "Yves Kodratoff",
  title =        "A class of functions synthesized from a finite number
                 of examples and a {LISP} program scheme",
  journal =      j-INT-J-COMPUT-INF-SCI,
  volume =       "8",
  number =       "6",
  pages =        "489--521",
  month =        dec,
  year =         "1979",
  CODEN =        "IJCIAH",
  ISSN =         "0091-7036",
  MRclass =      "68G10 (68B10)",
  MRnumber =     "80i:68074",
  bibdate =      "Sat Apr 26 14:03:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory)",
  corpsource =   "Inst. de Programmation, CNRS, Paris, France",
  fjournal =     "International Journal of Computer and Information
                 Sciences",
  journal-URL =  "http://link.springer.com/journal/10766",
  keywords =     "finite number of examples; functions; LISP program
                 scheme; pattern matching; programming theory",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Lesk:1979:DTD,
  author =       "Arthur M. Lesk",
  title =        "Detection of Three-Dimensional Patterns of Atoms in
                 Chemical Structures",
  journal =      j-CACM,
  volume =       "22",
  number =       "4",
  pages =        "219--224",
  month =        apr,
  year =         "1979",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Mon Jan 22 06:58:32 MST 2001",
  bibsource =    "Compendex database;
                 http://dblp.uni-trier.de/db/journals/cacm/cacm22.html#Lesk79;
                 https://www.math.utah.edu/pub/tex/bib/cacm1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "An algorithm for detecting occurrences of a
                 three-dimensional pattern of objects within a larger
                 structure is presented. The search technique presented
                 used the geometric structure of the pattern to define
                 characteristics demanded of candidates for matching.
                 This is useful in cases where the properties of each
                 atom, considered individually, do not adequately limit
                 the number of sets of possible matchings. Several
                 applications of this technique in the field of
                 chemistry are: (1) in pharmacology: Searching for a
                 common constellation of atoms in molecules possessing
                 similar biological activities; (2) in X-ray
                 crystallography: fitting a structure or a structural
                 fragment to a set of peaks in the electron-density
                 distribution of a Fourier map; (3) in chemical
                 documentation: retrieving from a file the structures
                 containing specified substructures.",
  acknowledgement = ack-nhfb,
  classcodes =   "C7320 (Physics and chemistry computing)",
  classification = "462; 482; 501; 723; 804; 901",
  corpsource =   "Fairleigh Dickinson Univ., Teaneck, NJ, USA",
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  journalabr =   "Commun ACM",
  keywords =     "atoms; chemical documentation; chemical structures;
                 chemistry computing; crystallography; crystallography
                 --- X-Ray Analysis; drug products; information science
                 --- Information Retrieval; pattern recognition; pattern
                 recognition systems; pharmacology; search; three
                 dimensional; X-ray",
  oldlabel =     "Lesk79",
  treatment =    "A Application",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/cacm/Lesk79",
}

@TechReport{Lesk:1979:LLAa,
  author =       "Michael E. Lesk and E. Schmidt",
  title =        "{Lex} --- A Lexical Analyzer Generator",
  type =         "Technical Memorandum",
  number =       "1061",
  institution =  inst-ATT-BELL,
  address =      inst-ATT-BELL:adr,
  pages =        "13??",
  month =        jan,
  year =         "1979",
  bibdate =      "Tue Jun 06 08:07:45 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "Lex helps write programs whose control flow is
                 directed by instances of regular expressions in the
                 input stream. It is well suited for editor-script type
                 transformations and for segmenting input in preparation
                 for a parsing routine.\par

                 Lex source is a table of regular expressions and
                 corresponding program fragments. The table is
                 translated to a program which reads an input stream,
                 copying it to an output stream and partitioning the
                 input into strings which match the given expressions.
                 As each such string is recognized the corresponding
                 program fragment is executed. The recognition of the
                 expressions is performed by a deterministic finite
                 automaton generated by Lex. The program fragments
                 written by the user are executed in the order in which
                 the corresponding regular expressions occur in the
                 input stream.\par

                 The lexical analysis programs written with Lex accept
                 ambiguous specifications and choose the longest match
                 possible at each input point. If necessary. substantial
                 lookahead is performed on the input, but the input
                 stream will be backed up to the end of the current
                 partition, so that the user has general freedom to
                 manipulate it.\par

                 Lex can be used to generate analyzers in either C or
                 Ratfor, a language which can be translated
                 automatically to portable Fortran. It is available on
                 the PDP-11 UNIX. Honeywell GCOS. and IBM OS systems.
                 Lex is designed to simplify interfacing with Yacc, for
                 those with access to this compiler-compiler system.",
  abstract-2 =   "Lex helps write programs whose control flow is
                 directed by instances of regular expressions \ldots{}
                 input stream.",
  acknowledgement = ack-nhfb,
  remark =       "Available in PDF file of \cite[pp.
                 439--451]{Dolotta:1977:DPU}.",
  tableofcontents = "1. Introduction / 1 \\
                 2. Lex Source / 3 \\
                 3. Lex Regular Expressions / 3 \\
                 4. Lex Actions / 5 \\
                 5. Ambiguous Source Rules / 7 \\
                 6. Lex Source Definitions / 8 \\
                 7. Usage / 8 \\
                 8. Lex and Yacc / 9 \\
                 9. Examples / 10 \\
                 10. Left Context Sensitivity / 11 \\
                 11. Character Set / 12 \\
                 12. Summary of Source Format / 12 \\
                 13. Caveats and Bugs / 13 \\
                 14. Acknowledgments / 13 \\
                 15. References / 13",
}

@Article{Reuhkala:1979:RHA,
  author =       "Erkki Reuhkala and Matti Jalanko and Teuvo Kohonen",
  title =        "Redundant Hash Addressing Method Adapted for the
                 Postprocessing and Error-Correction of
                 Computer-Recognized Speech",
  journal =      "Record --- IEEE International Conference on Acoustics,
                 Speech \& Signal Processing",
  volume =       "??",
  number =       "??",
  pages =        "591--594",
  month =        "????",
  year =         "1979",
  CODEN =        "RIIPDR",
  bibdate =      "Sat Jan 25 17:38:12 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "In the recognition of spoken words, a frequently
                 applied method is to first convert the acoustic
                 waveforms into phonemic strings which are then compared
                 with prototype strings stored in a dictionary, using
                 some metric. A standard method is to use dynamic
                 programming for comparison of strings with variable
                 length. This procedure, however, is rather slow. A
                 recently introduced principle of string comparison is
                 based on redundant hash addressing, and it is
                 computationally at least an order of magnitude lighter.
                 This method is here applied, using multiple prototypes
                 of phonemic strings for each word in the dictionary.
                 The matching criterion thereby applied in fact
                 corresponds to a distance-weighted k-nearest-neighbor
                 classifier which allows length variations in strings.",
  acknowledgement = ack-nhfb,
  classification = "751",
  conference =   "Rec IEEE Int Conf Acoust Speech Signal Process 4th
                 (ICASSP '79)",
  keywords =     "speech",
  meetingaddress = "Washington, DC, USA",
  meetingdate =  "Apr 2--4 1979",
  meetingdate2 = "04/02--04/79",
}

@Article{Richards:1979:CFR,
  author =       "Martin Richards",
  title =        "A Compact Function for Regular Expression Pattern
                 Matching",
  journal =      j-SPE,
  volume =       "9",
  number =       "7",
  pages =        "527--534",
  month =        jul,
  year =         "1979",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Tue Mar 13 05:17:46 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  annote =       "A pattern matcher based on this algorithm is included
                 in Joerg Schilling's star (fast tar) utility, available
                 at
                 ftp://ftp.fokus.gmd.de/pub/unix/star/star-1.2.tar.gz.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@Article{Robson:1979:ECP,
  author =       "J. M. Robson",
  title =        "The emptiness of complement problem for semi extended
                 regular expressions requires $ c^n $ space",
  journal =      j-INFO-PROC-LETT,
  volume =       "9",
  number =       "5",
  pages =        "220--222",
  day =          "16",
  month =        dec,
  year =         "1979",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Nov 17 10:49:43 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C4210 (Formal logic)",
  corpsource =   "Dept. of Computer Sci., Australian Nat. Univ.,
                 Canberra, ACT, Australia",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  keywords =     "complement problem; emptiness; formal logic; semi
                 extended regular expressions; set intersection",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Sassa:1979:PMM,
  author =       "Masataka Sassa",
  title =        "A pattern matching macro processor",
  journal =      j-SPE,
  volume =       "9",
  number =       "6",
  pages =        "439--456",
  month =        jun,
  year =         "1979",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380090604",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Wed Sep 10 12:36:39 MDT 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "27 Oct 2006",
}

@Article{Yao:1979:CPM,
  author =       "Andrew Chi Chih Yao",
  title =        "The complexity of pattern matching for a random
                 string",
  journal =      j-SIAM-J-COMPUT,
  volume =       "8",
  number =       "3",
  pages =        "368--387",
  month =        "????",
  year =         "1979",
  CODEN =        "SMJCAT",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68C25",
  MRnumber =     "80g:68064",
  bibdate =      "Mon Nov 29 10:59:03 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/8/3;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Bailey:1980:FSS,
  author =       "T. A. Bailey and R. G. Dromey",
  title =        "Fast string searching by finding subkeys in subtext",
  journal =      j-INFO-PROC-LETT,
  volume =       "11",
  number =       "3",
  pages =        "130--133",
  day =          "18",
  month =        nov,
  year =         "1980",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C6130 (Data handling techniques)",
  corpsource =   "Dept. of Computing Sci., Univ. of Wollongong,
                 Wollongong, NSW, Australia",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190/",
  keywords =     "characters; data handling; sequences; string search;
                 subkeys; subtext",
  treatment =    "A Application; T Theoretical or Mathematical",
}

@Article{Booth:1980:LLC,
  author =       "Kellogg S. Booth",
  title =        "Lexicographically least circular substrings",
  journal =      j-INFO-PROC-LETT,
  volume =       "10",
  number =       "4--5",
  pages =        "240--242",
  day =          "5",
  month =        jul,
  year =         "1980",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68E99",
  MRnumber =     "81g:68100",
  bibdate =      "Tue Nov 17 10:49:43 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory)",
  corpsource =   "Dept. of Computer Sci., Univ. of Waterloo, Waterloo,
                 Ont., Canada",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  keywords =     "algorithm theory; canonical form; graph isomorphism
                 algorithms; Knuth Morris Pratt algorithm; least
                 circular substrings; lexicographically least circular
                 shift; linear time pattern matching algorithm",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Galil:1980:SSF,
  author =       "Zvi Galil and Joel Seiferas",
  title =        "Saving Space in Fast String-Matching",
  journal =      j-SIAM-J-COMPUT,
  volume =       "9",
  number =       "2",
  pages =        "417--438",
  month =        "????",
  year =         "1980",
  CODEN =        "SMJCAT",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68C20 (68C25)",
  MRnumber =     "81i:68052",
  MRreviewer =   "Stanley H. Benton, Jr.",
  bibdate =      "Mon Nov 29 10:59:14 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/9/2;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Guibas:1980:NPL,
  author =       "Leo J. Guibas and Andrew M. Odlyzko",
  title =        "A new proof of the linearity of the {Boyer--Moore}
                 string searching algorithm",
  journal =      j-SIAM-J-COMPUT,
  volume =       "9",
  number =       "4",
  pages =        "672--682",
  month =        "????",
  year =         "1980",
  CODEN =        "SMJCAT",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68C05 (68C25 68E99)",
  MRnumber =     "82d:68024",
  MRreviewer =   "Armin Cremers",
  bibdate =      "Mon Nov 29 10:59:19 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/9/4;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Hall:1980:ASM,
  author =       "Patrick A. V. Hall and Geoff R. Dowling",
  title =        "Approximate String Matching",
  journal =      j-COMP-SURV,
  volume =       "12",
  number =       "4",
  pages =        "381--402",
  month =        dec,
  year =         "1980",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/356827.356830",
  ISSN =         "0010-4892",
  ISSN-L =       "0360-0300",
  bibdate =      "Thu Jun 19 09:28:11 MDT 2008",
  bibsource =    "http://www.acm.org/pubs/contents/journals/surveys/;
                 https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
}

@Article{Horspool:1980:PFS,
  author =       "R. Nigel Horspool",
  title =        "Practical Fast Searching in Strings",
  journal =      j-SPE,
  volume =       "10",
  number =       "6",
  pages =        "501--506",
  month =        jun,
  year =         "1980",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380100608",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "Boyer--Moore; Knuth--Morris--Pratt; string matrix",
  onlinedate =   "27 Oct 2006",
}

@Article{Iyengar:1980:SSA,
  author =       "S. Sitharama Iyengar and Vincent Alia",
  title =        "A string searching algorithm",
  journal =      j-APPL-MATH-COMP,
  volume =       "6",
  number =       "2",
  pages =        "123--131",
  month =        mar,
  year =         "1980",
  CODEN =        "AMHCBQ",
  DOI =          "https://doi.org/10.1016/0096-3003(80)90037-5",
  ISSN =         "0096-3003 (print), 1873-5649 (electronic)",
  ISSN-L =       "0096-3003",
  bibdate =      "Tue Nov 20 21:00:45 MST 2012",
  bibsource =    "http://www.elsevier.com/locate/issn/00963003;
                 https://www.math.utah.edu/pub/tex/bib/applmathcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/applmathcomput1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/0096300380900375",
  acknowledgement = ack-nhfb,
  fjournal =     "Applied Mathematics and Computation",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00963003/",
}

@Article{Leiss:1980:CFA,
  author =       "Ernst Leiss",
  title =        "Constructing a finite automaton for a given regular
                 expression",
  journal =      j-SIGACT,
  volume =       "12",
  number =       "3",
  pages =        "81--87",
  month =        "Fall",
  year =         "1980",
  CODEN =        "SIGNDM",
  DOI =          "https://doi.org/10.1145/1008861.1008870",
  ISSN =         "0163-5700 (print), 1943-5827 (electronic)",
  ISSN-L =       "0163-5700",
  bibdate =      "Wed Mar 21 08:21:20 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigact.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGACT News",
  journal-URL =  "http://dl.acm.org/citation.cfm?id=J697",
}

@Article{Rytter:1980:CPA,
  author =       "Wojciech Rytter",
  title =        "A correct preprocessing algorithm for {Boyer--Moore}
                 string-searching",
  journal =      j-SIAM-J-COMPUT,
  volume =       "9",
  number =       "3",
  pages =        "509--512",
  month =        "????",
  year =         "1980",
  CODEN =        "SMJCAT",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68H05 (68C05)",
  MRnumber =     "81g:68129",
  bibdate =      "Mon Nov 29 10:59:17 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/9/3;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Salter:1980:CLC,
  author =       "Richard M. Salter and Terence J. Brennan and Daniel P.
                 Friedman",
  title =        "{Concur}: a Language for Continuous, Concurrent
                 Processes",
  journal =      j-COMP-LANGS,
  volume =       "5",
  number =       "3-4",
  pages =        "163--189",
  month =        "????",
  year =         "1980",
  CODEN =        "COLADA",
  ISSN =         "0096-0551 (print), 1873-6742 (electronic)",
  ISSN-L =       "0096-0551",
  bibdate =      "Tue Mar 25 14:04:06 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/complngs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6140D (High level languages)",
  classification = "723",
  corpsource =   "Drexel Univ., Philadelphia, PA, USA",
  fjournal =     "Computer Languages",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00960551",
  journalabr =   "Comput Lang",
  keywords =     "computer programming languages; CONCUR; continuous,
                 concurrent processes; data-driven mode; generalized
                 pattern-matcher; Hendrix's robot; high level languages;
                 industrial robots --- Computer Applications; LISP;
                 modeling system; simulation method",
  treatment =    "P Practical",
}

@Article{Zvegintzov:1980:PMR,
  author =       "N. Zvegintzov",
  title =        "Partial-Match Retrieval in an Index Sequential
                 Directory",
  journal =      j-COMP-J,
  volume =       "23",
  number =       "1",
  pages =        "37--40",
  month =        feb,
  year =         "1980",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/23.1.37",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  MRclass =      "68H05 (68C05)",
  MRnumber =     "80m:68084",
  bibdate =      "Tue Dec 4 14:48:07 MST 2012",
  bibsource =    "Compendex database;
                 http://comjnl.oxfordjournals.org/content/23/1.toc;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_23/Issue_01/;
                 https://www.math.utah.edu/pub/tex/bib/compj1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/23/1/37.full.pdf+html;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_23/Issue_01/tiff/37.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_23/Issue_01/tiff/38.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_23/Issue_01/tiff/39.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_23/Issue_01/tiff/40.tif",
  acknowledgement = ack-nhfb,
  classcodes =   "C6120 (File organisation)",
  classification = "723; 901",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  keywords =     "file organisation; fixed length strings; index
                 sequential directory; information retrieval systems;
                 partial match retrieval; partially specified templates;
                 table lookup",
  treatment =    "P Practical",
}

@Article{Barth:1981:AIK,
  author =       "Gerhard Barth",
  title =        "An Alternative for the Implementation of the
                 {Knuth--Morris--Pratt} Algorithm",
  journal =      j-INFO-PROC-LETT,
  volume =       "13",
  number =       "4--5",
  pages =        "134--137",
  day =          "??",
  month =        "End",
  year =         "1981",
  CODEN =        "IFPLAT",
  DOI =          "https://doi.org/10.1016/0020-0190(81)90042-9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  annote =       "This issue was labelled End 1981, instead of Day Month
                 1981.",
  classification = "C6120 (File organisation); C7250L (Non-bibliographic
                 retrieval systems)",
  corpsource =   "Computer Sci. Dept., Pennsylvania State Univ.,
                 University Park, PA, USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  keywords =     "information retrieval; Knuth--Morris--Pratt algorithm;
                 PASCAL; string matching",
  treatment =    "P Practical",
}

@TechReport{Beebe:1981:IPM,
  author =       "Nelson H. F. Beebe",
  title =        "Ideas for Pattern Matching Software",
  institution =  inst-CLSC,
  address =      inst-CLSC:adr,
  pages =        "3",
  day =          "12",
  month =        may,
  year =         "1981",
  bibdate =      "Thu Sep 07 06:04:40 2006",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/b/beebe-nelson-h-f.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Galil:1981:LTS,
  author =       "Z. Galil and J. Seireras",
  title =        "Linear-time string-matching using only a fixed number
                 of local storage locations",
  journal =      j-THEOR-COMP-SCI,
  volume =       "13",
  number =       "3",
  pages =        "331--336",
  month =        mar,
  year =         "1981",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:36:07 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1980.bib",
  acknowledgement = ack-nhfb,
  classification = "C4220 (Automata theory); C4240 (Programming and
                 algorithm theory)",
  corpsource =   "Dept. of Math. Sci., Tel-Aviv Univ., Tel-Aviv,
                 Israel",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "automata-theoretic terms; dynamic storage allocation;
                 finite automata; FORTRAN; linear-time string-matching
                 algorithm; local storage locations; programming theory;
                 random-access machine; restricted writing alphabet;
                 writing multihead finite automaton",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Galil:1981:SMR,
  author =       "Z. Galil",
  title =        "String Matching in Real Time",
  journal =      j-J-ACM,
  volume =       "28",
  number =       "1",
  pages =        "134--149",
  month =        jan,
  year =         "1981",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Tue Oct 25 22:10:20 1994",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Database/Graefe.bib;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "A sufficient condition for an on-line algorithm to be
                 transformed into a real-time algorithm is given. This
                 condition is used to construct real-time algorithms for
                 various string-matching problems by random access
                 machines and by Turing machines.",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
}

@InProceedings{Galil:1981:TSO,
  author =       "Zvi Galil and Joel Seiferas",
  title =        "Time-space-optimal string matching (Preliminary
                 Report)",
  crossref =     "ACM:1981:CPT",
  pages =        "106--113",
  year =         "1981",
  bibdate =      "Wed Feb 20 18:33:45 MST 2002",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@TechReport{Karp:1981:ERPa,
  author =       "R. M. Karp and M. O. Rabin",
  title =        "Efficient Randomized Pattern-Matching Algorithms",
  type =         "Technical report",
  number =       "TR-31-81",
  institution =  "Harvard University",
  address =      "Cambridge, MA, USA",
  pages =        "??",
  month =        "??",
  year =         "1981",
  bibdate =      "Sun May 02 07:50:09 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cacm1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/cacm1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/cacm1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "An incremental hash function is described for
                 application to the string search problem. See
                 \cite{Baeza-Yates:1992:NAT}.",
  acknowledgement = ack-nhfb,
}

@TechReport{Karp:1981:ERPb,
  author =       "R. M. Karp and M. O. Rabin",
  title =        "Efficient Randomized Pattern-Matching Algorithms",
  number =       "TR-31-81",
  institution =  "Harvard University",
  address =      "Cambridge, MA, USA",
  year =         "1981",
  bibdate =      "Sun May 02 07:50:09 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See \cite{Baeza-Yates:1992:NAT}.",
  acknowledgement = ack-nhfb,
}

@Article{Leiss:1981:CRR,
  author =       "Ernst Leiss",
  title =        "The complexity of restricted regular expressions and
                 the synthesis problem for finite automata",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "23",
  number =       "3",
  pages =        "348--354",
  month =        dec,
  year =         "1981",
  CODEN =        "JCSSBM",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:25:46 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/0022000081900702",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Liu:1981:SPM,
  author =       "Ken Chih Liu",
  title =        "On string pattern matching: a new model with a
                 polynomial time algorithm",
  journal =      j-SIAM-J-COMPUT,
  volume =       "10",
  number =       "1",
  pages =        "118--140",
  month =        "????",
  year =         "1981",
  CODEN =        "SMJCAT",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68C25 (68G10)",
  MRnumber =     "83c:68050",
  bibdate =      "Mon Nov 29 10:59:25 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/10/1;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Magel:1981:REP,
  author =       "Kenneth Magel",
  title =        "Regular expressions in a program complexity metric",
  journal =      j-SIGPLAN,
  volume =       "16",
  number =       "7",
  pages =        "61--65",
  month =        jul,
  year =         "1981",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Oct 28 16:17:00 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory)",
  corpsource =   "Computer Sci. Dept., Univ. of Missouri, Rolla, MO,
                 USA",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "computational complexity; execution sequences; program
                 complexity metric; program control flow complexity;
                 regular expressions",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Reid:1981:ABB,
  author =       "Brian K. Reid and David Hanson",
  title =        "An annotated bibliography of background material on
                 text manipulation",
  journal =      j-SIGPLAN,
  volume =       "16",
  number =       "6",
  pages =        "157--160",
  month =        jun,
  year =         "1981",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:14:34 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C0310 (EDP management); C6130 (Data handling
                 techniques)",
  conflocation = "Portland, OR, USA; 8-10 June 1981",
  conftitle =    "Proceedings of the ACM SIGPLAN SIGOA Symposium on Text
                 Manipulation",
  corpsource =   "Stanford Univ., Stanford, CA, USA",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "document formatting; graphic communication; pattern
                 matching; string communication; string matching; text
                 editing; text manipulation; typography; writing style",
  treatment =    "G General Review",
}

@Article{Rodeh:1981:LAD,
  author =       "Michael Rodeh and Vaughan R. Pratt and Shimon Even",
  title =        "Linear Algorithm for Data Compression via String
                 Matching",
  journal =      j-J-ACM,
  volume =       "28",
  number =       "1",
  pages =        "16--24",
  month =        jan,
  year =         "1981",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Sat Jan 26 12:46:16 MST 2013",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Database/Graefe.bib;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-ds # " and " # ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  rawdata =      "Rodeh, Michael, Vaughan R. Pratt and Shimon Even
                 (1981) ``Linear Algorithm for Data Compression via
                 String Matching,'' Journal of the ACM,
                 {\bf28}(1):16--24, January.",
}

@Article{Schilit:1981:SGB,
  author =       "Bill N. Schilit",
  title =        "A solution to the great big substitution problem:
                 subject modification during pattern matching in
                 {SNOBOL4}",
  journal =      j-SIGPLAN,
  volume =       "16",
  number =       "8",
  pages =        "41--49",
  month =        aug,
  year =         "1981",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Oct 28 16:17:00 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C6140D (High level languages)",
  corpsource =   "Center for Computing Activities, Columbia Univ., New
                 York, NY, USA",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "data handling; high level languages; pattern matching;
                 programming language; SNOBOL4; substitution problem;
                 substrings",
  treatment =    "P Practical",
}

@Article{Talcott:1981:BRC,
  author =       "Carolyn Talcott",
  title =        "Book Review: {{\booktitle{A Computational Logic}}
                 (Robert S. Boyer and J. Strother Moore)}",
  journal =      j-SIAM-REVIEW,
  volume =       "23",
  number =       "2",
  pages =        "264--266",
  month =        "????",
  year =         "1981",
  CODEN =        "SIREAD",
  DOI =          "https://doi.org/10.1137/1023053",
  ISSN =         "0036-1445 (print), 1095-7200 (electronic)",
  ISSN-L =       "0036-1445",
  bibdate =      "Sat Mar 29 09:53:18 MDT 2014",
  bibsource =    "http://epubs.siam.org/toc/siread/23/2;
                 https://www.math.utah.edu/pub/tex/bib/siamreview.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Review",
  journal-URL =  "http://epubs.siam.org/sirev",
  onlinedate =   "April 1981",
}

@Article{Tarjan:1981:FAS,
  author =       "Robert Endre Tarjan",
  title =        "Fast Algorithms for Solving Path Problems",
  journal =      j-J-ACM,
  volume =       "28",
  number =       "3",
  pages =        "594--614",
  month =        jul,
  year =         "1981",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Wed Jan 15 18:12:53 MST 1997",
  bibsource =    "Compendex database;
                 ftp://ftp.ira.uka.de/pub/bibliography/Compiler/Compiler.Lins.bib;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Let {$ G = (V, E) $} be a directed graph with a
                 distinguished source vertex $s$. The single-source path
                 expression problem is to find, for each vertex $v$, a
                 regular expression {$ P(s, v) $} which represents the
                 set of all paths in {$G$} from $s$ to $v$. A solution
                 to this problem can be used to solve shortest path
                 problems, solve sparse systems of linear equations, and
                 carry out global flow analysis. A method is described
                 for computing path expressions by dividing {$G$} into
                 components, computing path expressions on the
                 components by Gaussian elimination, and combining the
                 solutions. This method requires {$ O(m \alpha (m, n))
                 $} time on a reducible flow graph, where $n$ is the
                 number of vertices in {$G$}, $m$ is the number of edges
                 in {$G$}, and $ \alpha $ is a functional inverse of
                 Ackermann's function. The method makes use of an
                 algorithm for evaluating functions defined on paths in
                 trees. A simplified version of the algorithm, which
                 runs in {$ O(m \log n) $} time on reducible flow
                 graphs, is quite easy to implement and efficient in
                 practice.",
  acknowledgement = ack-nhfb,
  classification = "723; 921",
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  journalabr =   "J Assoc Comput Mach",
  keywords =     "computer programming; mathematical techniques ---
                 Graph Theory",
}

@Article{Tarjan:1981:UAP,
  author =       "Robert Endre Tarjan",
  title =        "A Unified Approach to Path Problems",
  journal =      j-J-ACM,
  volume =       "28",
  number =       "3",
  pages =        "577--593",
  month =        jul,
  year =         "1981",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Wed Jan 15 18:12:53 MST 1997",
  bibsource =    "Compendex database;
                 ftp://ftp.ira.uka.de/pub/bibliography/Compiler/Compiler.Lins.bib;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "A general method is described for solving path
                 problems on directed graphs. Such path problems include
                 finding shortest paths, solving sparse systems of
                 linear equations, and carrying out global flow analysis
                 of computer programs. The method consists of two steps.
                 First, a collection of regular expressions representing
                 sets of paths in the graph is constructed. This can be
                 done by using any standard algorithm, such as Gaussian
                 or Gauss--Jordan elimination. Next, a natural mapping
                 from regular expressions into the given problem domain
                 is applied. The mappings required to find shortest
                 paths are exhibited, sparse systems of linear equations
                 are solved, and global flow analysis is carried out.
                 The results provide a general-purpose algorithm for
                 solving any path problem and show that the problem of
                 constructing path expressions is in some sense the most
                 general path problem.",
  acknowledgement = ack-nhfb,
  classification = "723; 921",
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  journalabr =   "J Assoc Comput Mach",
  keywords =     "computer programming; mathematical techniques",
}

@Article{Thomas:1981:RSH,
  author =       "W. Thomas",
  title =        "Remark on the star-height-problem",
  journal =      j-THEOR-COMP-SCI,
  volume =       "13",
  number =       "2",
  pages =        "231--237",
  month =        feb,
  year =         "1981",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:36:07 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1980.bib",
  acknowledgement = ack-nhfb,
  classification = "C4220 (Automata theory)",
  corpsource =   "Math. Inst., Freiburg, West Germany",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "automata theory; general regular expressions; regular
                 events; star height problem",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Allen:1982:FID,
  author =       "F. W. Allen",
  title =        "A file index for document storage and retrieval
                 utilizing descriptor fragments",
  journal =      j-COMP-J,
  volume =       "25",
  number =       "1",
  pages =        "2--6",
  month =        feb,
  year =         "1982",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/25.1.2",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Tue Dec 4 14:48:12 MST 2012",
  bibsource =    "Compendex database;
                 http://comjnl.oxfordjournals.org/content/25/1.toc;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_25/Issue_01/;
                 https://www.math.utah.edu/pub/tex/bib/compj.bib;
                 https://www.math.utah.edu/pub/tex/bib/compj1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/25/1/2.full.pdf+html;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_25/Issue_01/tiff/2.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_25/Issue_01/tiff/3.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_25/Issue_01/tiff/4.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_25/Issue_01/tiff/5.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_25/Issue_01/tiff/6.tif",
  acknowledgement = ack-nhfb,
  classcodes =   "C7240 (Information analysis and indexing); C7250C
                 (Bibliographic retrieval systems)",
  classification = "723; 901",
  corpsource =   "Dept. of Management Information Systems, Univ. of
                 Arizona, Tucson, AZ, USA",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  keywords =     "algorithm; author names; bit index; character
                 substrings; descriptor; document retrieval; document
                 storage; document texts; file index; file subset
                 addresses; fragments; indexing; information retrieval;
                 information science; information storage; keywords;
                 mapping; partial match; probabilities; queries; search
                 strategy; titles; word fragments",
  treatment =    "P Practical",
}

@Article{Burkowski:1982:HHS,
  author =       "Forbes J. Burkowski",
  title =        "A hardware hashing scheme in the design of a multiterm
                 string comparator",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "C-31",
  number =       "9",
  pages =        "825--834",
  month =        sep,
  year =         "1982",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.1982.1676098",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Sun Jul 10 10:33:15 MDT 2011",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/ieeetranscomput1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See correction \cite{Burkowski:1984:CHH}.",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1676098",
  abstract =     "A discussion is provided of the off-the-shelf'' design
                 of a term detection unit which may be used in the
                 scanning of text emanating from a serial source such as
                 disk or bubble memory. The main objective of this
                 design is the implementation of a high performance unit
                 which can detect any one of many terms (e. g., 1024
                 terms) while accepting source text at disk transfer
                 rates. The unit incorporates off-the-shelf''
                 off-the-shelf'' currently available chips. The design
                 involves a hardware-based hashing scheme that allows
                 incoming text to be compared to selected terms in a RAM
                 which contains all of the strings to be detected. The
                 organization of data in the RAM of the term detector is
                 dependent on a graph-theoretic algorithm which computes
                 maximal matchings on bipartite graphs. The capability
                 of the unit depends on various parameters in the
                 design, and this dependence is demonstrated by means of
                 various tables that report on the results of various
                 simulation studies.",
  acknowledgement = ack-nhfb,
  classification = "722; 723; 901",
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
  journalabr =   "IEEE Trans Comput",
  keywords =     "information retrieval systems",
}

@Article{Davies:1982:SST,
  author =       "D. Julian M. Davies",
  title =        "String Searching in Text Editors",
  journal =      j-SPE,
  volume =       "12",
  number =       "8",
  pages =        "709--717",
  month =        aug,
  year =         "1982",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380120803",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "algorithms",
  onlinedate =   "27 Oct 2006",
  review =       "ACM CR 40357",
  subject =      "F.2.2 Theory of Computation, ANALYSIS OF ALGORITHMS
                 AND PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Sorting and searching \\ I.7 Computing
                 Methodologies, TEXT PROCESSING, Text Editing",
}

@Article{deVSmit:1982:CTS,
  author =       "G. {de V. Smit}",
  title =        "A Comparison of Three String Matching Algorithms",
  journal =      j-SPE,
  volume =       "12",
  number =       "1",
  pages =        "57--66",
  month =        jan,
  year =         "1982",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380120106",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "27 Oct 2006",
  subject =      "F.2.2 Theory of Computation, ANALYSIS OF ALGORITHMS
                 AND PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Pattern matching \\ F.2.2 Theory of
                 Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
                 COMPLEXITY, Nonnumerical Algorithms and Problems,
                 Sorting and searching",
  xxauthor =     "G. D. V. Smith",
}

@Article{Duff:1982:CBS,
  author =       "Steven G. Duff",
  title =        "The case for {BUFFERS} in {SNOBOL4}",
  journal =      j-SIGPLAN,
  volume =       "17",
  number =       "11",
  pages =        "24--30",
  month =        nov,
  year =         "1982",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/988152.988157",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 16:16:35 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Two articles have appeared recently in SIGPLAN Notices
                 describing the 'Great Big Substitution Problem' of
                 SNOBOL4 pattern matching [BLAT80, SCHI81]. Although the
                 proposals in these papers are different, they both
                 suggest the addition of new operators to the language
                 to solve the problem. The purpose of this paper is to
                 show that the Great Big Substitution Problem is
                 embedded in a problem of a more pervasive nature, and
                 to suggest a correspondingly more general solution.",
  acknowledgement = ack-nhfb,
  classification = "C6140D (High level languages)",
  corpsource =   "Dept. of Computer Sci., California State Univ.,
                 Fullerton, CA, USA",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "BUFFERS; high level languages; pattern matching;
                 SNOBOL4; Substitution Problem",
  treatment =    "P Practical",
}

@Article{Floyd:1982:CRE,
  author =       "Robert W. Floyd and Jeffrey D. Ullman",
  title =        "The Compilation of Regular Expressions into Integrated
                 Circuits",
  journal =      j-J-ACM,
  volume =       "29",
  number =       "3",
  pages =        "603--622",
  month =        jul,
  year =         "1982",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Wed Jan 15 18:12:53 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The design of integrated circuits to implement
                 arbitrary regular expressions is considered. In
                 general, a regular expression with $n$ operands may be
                 converted into a nondeterministic finite automaton with
                 at most $n$ states and $n$ transitions. Instead of
                 converting the nondeterministic device to a
                 deterministic one, two ways of implementing the
                 nondeterministic device directly are proposed. One
                 approach is to produce a PLA (programmable logic array)
                 of approximate dimensions $n$ rows and $ 2 n $ columns
                 by representing the states of the nondeterministic
                 finite automaton directly by columns. Another approach
                 is to use the hierarchical structure of the automaton
                 produced from the regular expression by the
                 McNaughton--Yamada algorithm to guide a hierarchical
                 layout of the circuit. The advantages of each approach
                 are discussed.",
  acknowledgement = ack-nhfb,
  classification = "713; 723",
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  journalabr =   "J Assoc Comput Mach",
  keywords =     "automatic layout; integrated circuits",
}

@Article{Ganapathi:1982:RCC,
  author =       "Mahadevan Ganapathi and Charles N. Fischer and John L.
                 Hennessy",
  key =          "Ganapathi et al.",
  title =        "Retargetable Compiler Code Generation",
  journal =      j-COMP-SURV,
  volume =       "14",
  number =       "4",
  pages =        "573--592",
  month =        dec,
  year =         "1982",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/356893.356897",
  ISSN =         "0010-4892",
  ISSN-L =       "0360-0300",
  bibdate =      "Thu Jun 19 09:31:39 MDT 2008",
  bibsource =    "Compendex database;
                 http://www.acm.org/pubs/contents/journals/surveys/;
                 https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
  note =         "See also
                 \cite{Wulf:1983:SFR,Ganapathi:1983:SFRa,Fraser:1983:SFR,Ganapathi:1983:SFRb}.",
  abstract =     "A classification of automated retargetable code
                 generation techniques and a survey of the work on these
                 techniques is presented. Retargetable code generation
                 research is classified into three categories:
                 interpretive code generation, pattern-matched code
                 generation, and table-driven code generation.
                 Interpretive code generation approaches generate code
                 for a virtual machine and then expand into real target
                 code. Pattern-matched code generation approaches
                 separate the machine description from the code
                 generation algorithm. Table-driven code generation
                 approaches employ a formal machine description and use
                 a code-generator generator to produce code generators
                 automatically. An analysis of these techniques and a
                 critique of automatic code generation algorithms are
                 presented.",
  acknowledgement = ack-nhfb,
  classification = "723",
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
  keywords =     "Code-generator generator; compiler compiler; computer
                 programming languages; intermediate representation;
                 machine description; machine-dependent optimization",
  owner =        "manning",
}

@Article{Graham:1982:ETD,
  author =       "Susan L. Graham and Robert R. Henry and Robert A.
                 Schulman",
  title =        "An experiment in table driven code generation",
  journal =      j-SIGPLAN,
  volume =       "17",
  number =       "6",
  pages =        "32--43",
  month =        jun,
  year =         "1982",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:14:38 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  acknowledgement = ack-nhfb,
  classification = "C6150C (Compilers, interpreters and other
                 processors)",
  conflocation = "Boston, MA, USA; 23-25 June 1982",
  conftitle =    "Proceedings of the SIGPLAN '82 Symposium on Compiler
                 Construction",
  corpsource =   "Computer Sci. Div., Dept. of Electrical Engng. and
                 Computer Sci., Univ. of California, Berkeley, CA, USA",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "grammar; grammars; local code generator; machine
                 description; OS; parser-like instruction pattern
                 matcher; program compilers; table driven code
                 generation; UNIX Portable 'C' compiler; VAX- 11",
  sponsororg =   "ACM",
  treatment =    "P Practical",
}

@TechReport{Guoan:1982:USM,
  author =       "Gu Guoan and John Hobby",
  title =        "Using String Matching to Compress {Chinese}
                 Characters",
  type =         "Report",
  number =       "STAN-CS-82-914",
  institution =  inst-STAN-CS,
  address =      inst-STAN-CS:adr,
  year =         "1982",
  bibdate =      "Tue Mar 1 12:50:20 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/texbook3.bib",
  acknowledgement = ack-hk,
}

@Article{Hoffmann:1982:PMT,
  author =       "Christoph M. Hoffmann and Michael J. O'Donnell",
  title =        "Pattern Matching in Trees",
  journal =      j-J-ACM,
  volume =       "29",
  number =       "1",
  pages =        "68--95",
  month =        jan,
  year =         "1982",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Wed Jan 15 18:12:53 MST 1997",
  bibsource =    "Compendex database;
                 ftp://ftp.ira.uka.de/pub/bibliography/Theory/algebraic.spec.1.bib;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Five new techniques for tree pattern matching are
                 presented, analyzed for time and space complexity, and
                 compared with previously known methods. Particularly
                 important are applications where the same patterns are
                 matched against many subjects and where a subject may
                 be modified incrementally. Therefore, methods which
                 spend some time preprocessing patterns in order to
                 improve the actual matching time are included.",
  acknowledgement = ack-nhfb,
  classification = "723; 921",
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  journalabr =   "J Assoc Comput Mach",
  keywords =     "computer programming; functional; mathematical
                 techniques --- Trees; pattern matching",
}

@Article{Karpinski:1982:DSM,
  author =       "M. Karpinski",
  title =        "Decidability of `{Skolem} matrix emptiness problem'
                 entails constructability of exact regular expression",
  journal =      j-THEOR-COMP-SCI,
  volume =       "17",
  number =       "1",
  pages =        "99--102",
  month =        jan,
  year =         "1982",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:36:07 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1980.bib",
  acknowledgement = ack-nhfb,
  classification = "B0290B (Error analysis in numerical methods); C4220
                 (Automata theory)",
  corpsource =   "Math. Sci. Dept., IBM Thomas J. Watson Res. Center,
                 Yorktown Heights, NY, USA",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "algorithm; constructability; finite automata; finite
                 state machine; Kleene regular expression; matrix
                 algebra; matrix equivalence; Skolem matrix emptiness",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Lee:1982:EAF,
  author =       "Edward T. Lee",
  title =        "An efficient algorithm for finding {Kleene} closure of
                 regular expression matrices",
  journal =      j-INT-J-COMPUT-INF-SCI,
  volume =       "11",
  number =       "6",
  pages =        "409--415",
  month =        dec,
  year =         "1982",
  CODEN =        "IJCIAH",
  ISSN =         "0091-7036",
  MRclass =      "68F10",
  MRnumber =     "84i:68140",
  bibdate =      "Sat Apr 26 14:03:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "B6140C (Optical information, image and video signal
                 processing); C1110 (Algebra); C1250 (Pattern
                 recognition); C4220 (Automata theory)",
  corpsource =   "Dept. of Math. Sci., Memphis State Univ., Memphis, TN,
                 USA",
  fjournal =     "International Journal of Computer and Information
                 Sciences",
  journal-URL =  "http://link.springer.com/journal/10766",
  keywords =     "automata theory; efficient algorithm; fuzzy regular
                 expression matrices; Kleene closure; matrix algebra;
                 pattern recognition; pictorial information systems;
                 regular expression matrices",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Morgan:1982:AEI,
  author =       "Thomas M. Morgan and Lawrence A. Rowe",
  title =        "Analyzing exotic instructions for a retargetable code
                 generator",
  journal =      j-SIGPLAN,
  volume =       "17",
  number =       "6",
  pages =        "197--204",
  month =        jun,
  year =         "1982",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:14:38 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C6150C (Compilers, interpreters and other
                 processors)",
  conflocation = "Boston, MA, USA; 23-25 June 1982",
  conftitle =    "Proceedings of the SIGPLAN '82 Symposium on Compiler
                 Construction",
  corpsource =   "Dept. of Electrical Engng. and Computer Sci., Univ. of
                 California, Berkeley, CA, USA",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "block move; compilers; exotic instructions; high-level
                 language operators; instruction set analysis systems;
                 program compilers; retargetable code generator;
                 source-to-source transformations; string edit; string
                 search",
  sponsororg =   "ACM",
  treatment =    "P Practical",
}

@Article{Sommerville:1982:PMS,
  author =       "Ian Sommerville",
  title =        "A Pattern Matching System",
  journal =      j-SPE,
  volume =       "12",
  number =       "6",
  pages =        "517--530",
  month =        jun,
  year =         "1982",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "design; theory",
  subject =      "F.2.2 Theory of Computation, ANALYSIS OF ALGORITHMS
                 AND PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Pattern matching \\ F.4.2 Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Grammars and Other Rewriting Systems, Grammar types",
}

@Article{Tharp:1982:PTS,
  author =       "Alan L. Tharp and Kuo-Chung Tai",
  title =        "The Practicality of Text Signatures for Accelerating
                 String Searching",
  journal =      j-SPE,
  volume =       "12",
  number =       "1",
  pages =        "35--44",
  month =        jan,
  year =         "1982",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Expands Harrison's work \cite{Harrison:1971:IST}.",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "design; experimentation",
  review =       "ACM CR 39738",
  subject =      "D.1 Software, PROGRAMMING TECHNIQUES, Miscellaneous
                 \\
                 E.2 Data, DATA STORAGE REPRESENTATIONS, Hash-table
                 representations \\ F.2.2 Theory of Computation,
                 ANALYSIS OF ALGORITHMS AND PROBLEM COMPLEXITY,
                 Nonnumerical Algorithms and Problems, Pattern matching
                 \\ I.7 Computing Methodologies, TEXT PROCESSING, Text
                 Editing",
}

@Article{Wong:1982:DAS,
  author =       "K. Y. Wong and R. G. Casey and F. M. Wahl",
  title =        "{Document Analysis System}",
  journal =      j-IBM-JRD,
  volume =       "26",
  number =       "6",
  pages =        "647--656",
  month =        nov,
  year =         "1982",
  CODEN =        "IBMJAE",
  ISSN =         "0018-8646 (print), 2151-8556 (electronic)",
  ISSN-L =       "0018-8646",
  bibdate =      "Tue Mar 25 14:26:59 MST 1997",
  bibsource =    "http://www.research.ibm.com/journal/;
                 https://www.math.utah.edu/pub/tex/bib/ibmjrd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C7240 (Information analysis and indexing)",
  fjournal =     "IBM Journal of Research and Development",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5288520",
  keywords =     "classification; clustering; computer; Document
                 Analysis System; encoding; font sizes; front styles;
                 information analysis; linear adaptive classification
                 scheme; pattern-matching method; processing;
                 run-length; segmentation; smoothing algorithm",
  treatment =    "P Practical",
}

@Article{Barrero:1983:RLT,
  author =       "A. Barrero and M. G. Thomason and R. C. Gonzalez",
  title =        "Regular-like tree expressions",
  journal =      j-INT-J-COMPUT-INF-SCI,
  volume =       "12",
  number =       "1",
  pages =        "1--11",
  month =        feb,
  year =         "1983",
  CODEN =        "IJCIAH",
  DOI =          "https://doi.org/10.1007/BF00996800",
  ISSN =         "0091-7036",
  ISSN-L =       "0091-7036",
  bibdate =      "Sat Apr 26 12:20:22 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C4210 (Formal
                 logic)",
  corpsource =   "Dept. of Electrical Engng., Univ. of Tennessee,
                 Knoxville, TN, USA",
  fjournal =     "International Journal of Computer and Information
                 Sciences",
  journal-URL =  "http://link.springer.com/journal/10766",
  keywords =     "chemistry grammars; context-free languages; expansive
                 tree grammar; expansive tree languages; one-to-one
                 correspondence; regular-like tree;
                 regularity-preserving transformations; trees
                 (mathematics)",
  treatment =    "P Practical",
}

@Article{Fraser:1983:SFR,
  author =       "Christopher W. Fraser",
  title =        "Surveyor's Forum: {Retargetable} Code Generators",
  journal =      j-COMP-SURV,
  volume =       "15",
  number =       "3",
  pages =        "281--283",
  month =        sep,
  year =         "1983",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/356914.356922",
  ISSN =         "0360-0300 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  bibdate =      "Thu Jun 19 09:32:37 MDT 2008",
  bibsource =    "http://www.acm.org/pubs/contents/journals/surveys/;
                 https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See
                 \cite{Ganapathi:1982:RCC,Wulf:1983:SFR,Ganapathi:1983:SFRa,Ganapathi:1983:SFRb}.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
}

@Article{Galil:1983:TSO,
  author =       "Zvi Galil and Joel Seiferas",
  title =        "Time-space-optimal string matching",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "26",
  number =       "3",
  pages =        "280--294",
  month =        jun,
  year =         "1983",
  CODEN =        "JCSSBM",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:25:49 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/0022000083900028",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Ganapathi:1983:SFRa,
  author =       "M. Ganapathi and J. L. Hennessy and C. N. Fischer",
  title =        "Surveyor's Forum: {Retargetable} Code Generators",
  journal =      j-COMP-SURV,
  volume =       "15",
  number =       "3",
  pages =        "280--281",
  month =        sep,
  year =         "1983",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/356914.356921",
  ISSN =         "0360-0300 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  bibdate =      "Thu Jun 19 09:32:37 MDT 2008",
  bibsource =    "http://www.acm.org/pubs/contents/journals/surveys/;
                 https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See
                 \cite{Ganapathi:1982:RCC,Wulf:1983:SFR,Fraser:1983:SFR,Ganapathi:1983:SFRb}.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
}

@Article{Ganapathi:1983:SFRb,
  author =       "M. Ganapathi and J. L. Hennessy and C. N. Fischer",
  title =        "Surveyor's Forum: {Retargetable} Code Generators",
  journal =      j-COMP-SURV,
  volume =       "15",
  number =       "3",
  pages =        "283--284",
  month =        sep,
  year =         "1983",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/356914.356923",
  ISSN =         "0360-0300 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  bibdate =      "Thu Jun 19 09:32:37 MDT 2008",
  bibsource =    "http://www.acm.org/pubs/contents/journals/surveys/;
                 https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See
                 \cite{Ganapathi:1982:RCC,Wulf:1983:SFR,Ganapathi:1983:SFRa,Fraser:1983:SFR}.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
}

@InProceedings{Gonnet:1983:UDB,
  author =       "Gaston H. Gonnet",
  title =        "Unstructured Data Bases or Very Efficient Text
                 Searching",
  crossref =     "ACM:1983:PSA",
  pages =        "117--124",
  year =         "1983",
  bibdate =      "Sat Jan 25 17:38:12 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/spell.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM (order n 475830). Baltimore, MD, USA.",
  abstract =     "Several algorithms are presented for searching data
                 bases that consist of text. The algorithms apply mostly
                 to very large data bases that are difficult to
                 structure. Algorithms are described which search the
                 original data base without transformation and hence
                 could be used as general text searching algorithms.
                 Also described are algorithms requiring pre-processing,
                 the best of them achieving a logarithmic behaviour.
                 These efficient algorithms solve the `plagiarism'
                 problem among n papers. The problem of misspellings,
                 ambiguous spellings, simple errors, endings, positional
                 information, etc. is treated using signature
                 functions.",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Univ of Waterloo, Dep of Computer Science,
                 Waterloo, Ont, Can",
  classification = "722; 723; 901",
  conference =   "Proceedings of the Second ACM SIGACT-SIGMOD Symposium
                 on Principles of Database Systems.",
  keywords =     "computer programming --- Algorithms; computer systems,
                 digital --- On Line Operation; data processing --- Data
                 Handling; database systems; Design; full text search;
                 hashing; information retrieval systems --- Online
                 Searching; pattern matching; string searching; text
                 searching algorithms; unstructured data bases",
  meetingaddress = "Atlanta, GA, USA",
  sponsor =      "ACM, Special Interest Group for Automata \&
                 Computability Theory, New York, NY, USA; ACM, Special
                 Interest Group for the Management of Data, New York,
                 NY, USA",
}

@Article{Griswold:1983:ISP,
  author =       "Ralph E. Griswold",
  title =        "Implementing {Snobol4} Pattern Matching in {Icon}",
  journal =      j-COMP-LANGS,
  volume =       "8",
  number =       "2",
  pages =        "77--92",
  month =        "????",
  year =         "1983",
  CODEN =        "COLADA",
  ISSN =         "0096-0551 (print), 1873-6742 (electronic)",
  ISSN-L =       "0096-0551",
  bibdate =      "Tue Mar 25 14:04:06 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/complngs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6130 (Data handling techniques)",
  classification = "723",
  corpsource =   "Dept. of Computer Sci., Univ. of Arizona, Tucson, AZ,
                 USA",
  fjournal =     "Computer Languages",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00960551",
  journalabr =   "Comput Lang",
  keywords =     "computer software; cursor model; data handling; Icon;
                 pattern matching; pattern recognition; SNOBOL4 pattern
                 matching; string; substring model",
  treatment =    "P Practical",
}

@Article{Haskin:1983:OCH,
  author =       "Roger L. Haskin and Lee A. Hollaar",
  title =        "Operational Characteristics of a Hardware-Based
                 Pattern Matcher",
  journal =      j-TODS,
  volume =       "8",
  number =       "1",
  pages =        "15--40",
  month =        mar,
  year =         "1983",
  CODEN =        "ATDSD3",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Sat Apr 14 10:34:48 MDT 2001",
  bibsource =    "Compendex database; Database/Graefe.bib;
                 http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  URL =          "http://www.acm.org/pubs/articles/journals/tods/1983-8-1/p15-haskin/p15-haskin.pdf;
                 http://www.acm.org/pubs/citations/journals/tods/1983-8-1/p15-haskin/",
  abstract =     "The design and operation of a new class of
                 hardware-based pattern matchers, such as would be used
                 in a backended database processor in a full-text or
                 other retrieval system, is presented. This recognizer
                 is based on a unique implementation technique for
                 finite state automata consisting of partitioning the
                 state table among a number of simple digital machines.
                 It avoids the problems generally associated with
                 implementing finite state machines, such as large state
                 table memories, complex control mechanisms, and state
                 encodings. Because it consists primarily of memory,
                 with its high regularity and density, needs only
                 limited static interconnections, and operates at a
                 relatively low speed, it can be easily constructed
                 using integrated circuit techniques.\par

                 After a brief discussion of other pattern-matching
                 hardware, the structure and operation of the
                 partitioned finite state automaton is given, along with
                 a simplified discussion of how the state tables are
                 partitioned. The expected performance of the resulting
                 system and the state table partitioning programs is
                 then discussed.",
  acknowledgement = ack-nhfb,
  classification = "723; 901",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
  keywords =     "backend processors; computer system architecture;
                 database systems; finite state automata; full text
                 retrieval systems; information science; text
                 searching",
  subject =      "Hardware --- Logic Design --- Design Styles (B.6.1):
                 {\bf Cellular arrays and automata}; Hardware ---
                 Integrated Circuits --- Types and Design Styles
                 (B.7.1): {\bf Algorithms implemented in hardware};
                 Information Systems --- Database Management ---
                 Database Machines (H.2.6); Information Systems ---
                 Information Storage and Retrieval --- Information
                 Search and Retrieval (H.3.3): {\bf Search process}",
}

@Article{Ito:1983:HFO,
  author =       "Tetsuro Ito and Makoto Kizawa",
  title =        "Hierarchical File Organization and its Application to
                 Similar-String Matching",
  journal =      j-TODS,
  volume =       "8",
  number =       "3",
  pages =        "410--433",
  month =        sep,
  year =         "1983",
  CODEN =        "ATDSD3",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Sat Apr 14 10:34:48 MDT 2001",
  bibsource =    "Compendex database; Database/Graefe.bib;
                 Database/Wiederhold.bib; http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/spell.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  URL =          "http://www.acm.org/pubs/articles/journals/tods/1983-8-3/p410-ito/p410-ito.pdf;
                 http://www.acm.org/pubs/citations/journals/tods/1983-8-3/p410-ito/",
  abstract =     "The automatic correction of misspelled inputs is
                 discussed from a viewpoint of similar-string matching.
                 First a hierarchical file organization based on a
                 linear ordering of records is presented for retrieving
                 records highly similar to any input query. Then the
                 spelling problem is attacked by constructing a
                 hierarchical file for a set of strings in a dictionary
                 of English words. The spelling correction steps proceed
                 as follows: (1) find one of the best-match strings
                 which are most similar to a query, (2) expand the
                 search area for obtaining the good-match strings, and
                 (3) interrupt the file search as soon as the required
                 string is displayed. Computational experiments verify
                 the performance of the proposed methods for
                 similar-string matching under the UNIX time-sharing
                 system.",
  acknowledgement = ack-nhfb,
  annote =       "A spelling checker to provide possible correct
                 spellings for all possible words. Results are quite
                 sketchy",
  classification = "723",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
  keywords =     "best match; data processing, algorithms;
                 experimentation; file organization; good match;
                 hierarchical clustering; linear ordering; measurement;
                 office automation; performance; similar-string;
                 similarity; spelling correction; text editor; theory;
                 verification",
  review =       "ACM CR 8408-0665",
  subject =      "I.2 Computing Methodologies, ARTIFICIAL INTELLIGENCE,
                 Natural Language Processing \\ I.5.4 Computing
                 Methodologies, PATTERN RECOGNITION, Applications, Text
                 processing \\ E.5 Data, FILES, Organization/structure
                 \\ H.3.2 Information Systems, INFORMATION STORAGE AND
                 RETRIEVAL, Information Storage, File organization \\
                 H.3.3 Information Systems, INFORMATION STORAGE AND
                 RETRIEVAL, Information Search and Retrieval, Search
                 process \\ H.3.3 Information Systems, INFORMATION
                 STORAGE AND RETRIEVAL, Information Search and
                 Retrieval, Selection process \\ H.4 Information
                 Systems, INFORMATION SYSTEMS APPLICATIONS, Office
                 Automation",
}

@Article{Johnsen:1983:CTL,
  author =       "O. Johnsen and J. Segen and G. L. Cash",
  title =        "Coding of Two-Level Pictures by Pattern Matching and
                 Substitution",
  journal =      j-BELL-SYST-TECH-J,
  volume =       "62",
  number =       "8",
  pages =        "2513--2545",
  month =        oct,
  year =         "1983",
  CODEN =        "BSTJAN",
  ISSN =         "0005-8580",
  bibdate =      "Tue Nov 9 11:15:56 MST 2010",
  bibsource =    "http://bstj.bell-labs.com/oldfiles/year.1983/BSTJ.1983.6208.html;
                 http://www.alcatel-lucent.com/bstj/vol62-1983/bstj-vol62-issue08.html;
                 https://www.math.utah.edu/pub/tex/bib/bstj1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://bstj.bell-labs.com/BSTJ/images/Vol62/bstj62-8-2513.pdf;
                 http://www.alcatel-lucent.com/bstj/vol62-1983/articles/bstj62-8-2513.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "The Bell System Technical Journal",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1538-7305/issues/",
}

@Article{Kashyap:1983:NSM,
  author =       "R. L. Kashyap and B. J. Oommen",
  title =        "The Noisy Substring Matching Problem",
  journal =      j-IEEE-TRANS-SOFTW-ENG,
  volume =       "SE-9",
  number =       "3",
  pages =        "365--370",
  month =        may # "\slash " # jun,
  year =         "1983",
  CODEN =        "IESEDJ",
  DOI =          "https://doi.org/10.1109/TSE.1983.237018",
  ISSN =         "0098-5589 (print), 1939-3520 (electronic)",
  ISSN-L =       "0098-5589",
  bibdate =      "Thu Feb 1 08:07:37 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranssoftweng1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=1703065",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Software Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32",
}

@Article{Kornman:1983:PMP,
  author =       "Brent D. Kornman",
  title =        "Pattern Matching and Pattern-Directed Invocation in
                 Systems Programming Languages",
  journal =      j-J-SYST-SOFTW,
  volume =       "3",
  number =       "1",
  pages =        "95--102",
  month =        mar,
  year =         "1983",
  CODEN =        "JSSODM",
  ISSN =         "0164-1212 (print), 1873-1228 (electronic)",
  ISSN-L =       "0164-1212",
  bibdate =      "Wed Dec 16 15:40:53 MST 1998",
  bibsource =    "Compendex database;
                 http://www.sciencedirect.com/science/journal/01641212;
                 https://www.math.utah.edu/pub/tex/bib/jsystsoftw.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "PAR Technology Corp, New Hartford, NY, USA",
  classification = "723; 912",
  fjournal =     "The Journal of systems and software",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01641212",
  journalabr =   "J Syst Software",
  keywords =     "computer programming languages; pattern matching;
                 pattern recognition; pattern-directed invocation;
                 systems science and cybernetics --- Artificial
                 Intelligence",
}

@Article{Moran:1983:CDO,
  author =       "Shlomo Moran",
  title =        "On the Complexity of Designing Optimal Partial-Match
                 Retrieval Systems",
  journal =      j-TODS,
  volume =       "8",
  number =       "4",
  pages =        "543--551",
  month =        dec,
  year =         "1983",
  CODEN =        "ATDSD3",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  MRclass =      "68P20 (68P10)",
  MRnumber =     "86j:68024",
  bibdate =      "Sat Apr 14 10:34:48 MDT 2001",
  bibsource =    "Compendex database; Database/Graefe.bib;
                 Database/Wiederhold.bib; Graphics/siggraph/83.bib;
                 http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  URL =          "http://www.acm.org/pubs/articles/journals/tods/1983-8-4/p543-moran/p543-moran.pdf;
                 http://www.acm.org/pubs/citations/journals/tods/1983-8-4/p543-moran/",
  abstract =     "We consider the problem of designing an information
                 retrieval system on which partial match queries have to
                 be answered. Each record in the system consists of a
                 list of {\em attributes}, and a partial match query
                 specifies the values of some of the attributes. The
                 records are stored in {\em buckets\/} in a secondary
                 memory, and in order to answer a partial match query
                 all the buckets that may contain a record satisfying
                 the specifications of that query must be retrieved. The
                 bucket in which a given record is stored is found by a
                 multiple key hashing function, which maps each
                 attribute to a string of a fixed number of bits. The
                 address of that bucket is then represented by the
                 string obtained by concatenating the strings on which
                 the various attributes were mapped. A partial match
                 query may specify only part of the bits in the string
                 representing the address, and the larger the number of
                 bits specified, the smaller the number of buckets that
                 have to be retrieved in order to answer the query.
                 \par

                 The optimization problem considered in this paper is
                 that of deciding to how many bits each attribute should
                 be mapped by the bashing function above, so that the
                 expected number of buckets retrieved per query is
                 minimized. Efficient solutions for special cases of
                 this problem have been obtained in [1], [12], and [14].
                 It is shown that in general the problem is NP-hard, and
                 that if {$P$} NP, it is also not fully approximable.
                 Two heuristic algorithms for the problem are also given
                 and compared.",
  acknowledgement = ack-nhfb,
  annote =       "Optimal variable bit lengths of hashstrings, it is
                 NP-hard.",
  classification = "723; 901; 922",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
  keywords =     "approximation algorithms; computer programming ---
                 algorithms; file organization; hashing; information
                 science; NP-hard problems; optimization, TODS hashing,
                 searching; partial match retrieval; searching",
  oldlabel =     "geom-947",
  review =       "ACM CR 8411-0954",
  subject =      "Theory of Computation --- Analysis of Algorithms and
                 Problem Complexity --- Nonnumerical Algorithms and
                 Problems (F.2.2); Information Systems --- Information
                 Storage and Retrieval --- Information Search and
                 Retrieval (H.3.3)",
}

@Book{Sedgewick:1983:A,
  author =       "Robert Sedgewick",
  title =        "Algorithms",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "viii + 551",
  year =         "1983",
  ISBN =         "0-201-06672-6",
  ISBN-13 =      "978-0-201-06672-2",
  LCCN =         "QA76.6 .S435 1983",
  bibdate =      "Wed Dec 15 18:23:21 1993",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  tableofcontents = "Introduction \\
                 1. Preview \\
                 Mathematical Algorithms \\
                 2. Arithmetic \\
                 3. Random numbers \\
                 4. Polynomials \\
                 5. Gaussian Elimination \\
                 6. Curve fitting \\
                 7. Integration \\
                 Sorting \\
                 8. Elementary sorting methods \\
                 9. Quicksort \\
                 10. Radix sorting \\
                 11. Priority Queues \\
                 12. Selection and merging \\
                 13. External sorting \\
                 Searching \\
                 14. Elementary searching methods \\
                 15. Balanced trees \\
                 16. Hashing \\
                 17. Radix searching \\
                 18. External searching \\
                 String Processing \\
                 19. String searching \\
                 20. Pattern matching \\
                 21. Parsing \\
                 22. File compression \\
                 23. Cryptology \\
                 Geometric Algorithms \\
                 24. Elementary geometric methods \\
                 25. Finding the convex hull \\
                 26. Range searching \\
                 27. Geometric intersection \\
                 28. Closest point problems \\
                 Graph Algorithms \\
                 29. Elementary graph algorithms \\
                 30. Connectivity \\
                 31. Weighted graphs \\
                 32. Directed graphs \\
                 33. Network flow \\
                 34. Matching \\
                 Advanced Topics \\
                 35. Algorithm machines \\
                 36. The Fast Fourier Transform \\
                 37. Dynamic programming \\
                 38. Linear programming \\
                 39. Exhaustive search \\
                 40. NP-complete problems",
}

@Article{Simon:1983:PMT,
  author =       "Hans-Ulrich U. Simon",
  title =        "Pattern Matching in Trees and Nets",
  journal =      j-ACTA-INFO,
  volume =       "20",
  number =       "3",
  institution =  "U Saarlandes",
  pages =        "227--248",
  month =        dec,
  year =         "1983",
  CODEN =        "AINFA2",
  ISSN =         "0001-5903 (print), 1432-0525 (electronic)",
  ISSN-L =       "0001-5903",
  MRclass =      "68Q45",
  MRnumber =     "85a:68096",
  bibdate =      "Sat Oct 9 09:56:22 MDT 1999",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Graphics/rosenfeld/1984.bib;
                 ftp://ftp.ira.uka.de/pub/bibliography/Misc/HBP/ACTAI.bib;
                 https://www.math.utah.edu/pub/tex/bib/actainfo.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  acknowledgement = ack-nhfb,
  fjournal =     "Acta Informatica",
  journal-URL =  "http://www.springerlink.com/content/0001-5903",
  keywords =     "image multiplicity comparison",
}

@Article{Slissenko:1983:DPS,
  author =       "A. Slissenko",
  title =        "Detection of Periodicities and String-Matching in Real
                 Time",
  journal =      j-J-SOV-MATH,
  volume =       "22",
  number =       "3",
  pages =        "1316--1386",
  year =         "1983",
  CODEN =        "JSOMAR",
  ISSN =         "0090-4104 (print), 2376-5798 (electronic)",
  ISSN-L =       "0090-4104",
  bibdate =      "Fri Sep 22 14:23:22 2023",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/s/slissenko-anatol.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Russian original in: {\em Zapiski Nauchnykh Seminarov
                 LOMI}, 105:62--173, 1981.",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Soviet Mathematics",
  journal-URL =  "http://link.springer.com/journal/10958",
}

@Article{Toda:1983:TDP,
  author =       "M. Toda and K. Inoue and I. Takanami",
  title =        "Two-dimensional pattern matching by two-dimensional
                 on-line tessellation acceptors",
  journal =      j-THEOR-COMP-SCI,
  volume =       "24",
  number =       "2",
  pages =        "179--194",
  month =        jul,
  year =         "1983",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:36:07 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1980.bib",
  acknowledgement = ack-nhfb,
  classification = "C4220 (Automata theory)",
  corpsource =   "Dept. of Electronics, Yamaguchi Univ., Ube, Japan",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "array matching problem; finite automata; finite state
                 pattern matching machines; finite state string matching
                 machines; online detection; string matching algorithms;
                 string matching problem; two-dimensional online
                 tessellation acceptor; two-dimensional pattern
                 matching",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Weiser:1983:RSB,
  author =       "Mark Weiser",
  title =        "Reconstructing Sequential Behavior from Parallel
                 Behavior Projections",
  journal =      j-INFO-PROC-LETT,
  volume =       "17",
  number =       "3",
  pages =        "129--135",
  day =          "5",
  month =        oct,
  year =         "1983",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "722; 723; C4240 (Programming and algorithm theory)",
  corpsource =   "Computer Sci. Dept., Univ. of Maryland, College Park,
                 MD, USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "computer programming; computer systems, digital ---
                 Parallel Processing; data flow; data flow slices;
                 formal languages; parallel processing; parallelism;
                 regular expressions; slicing; vectorization",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Weste:1983:DTW,
  author =       "N. Weste and D. J. Burr and B. D. Ackland",
  title =        "Dynamic Time {Warp} Pattern Matching Using an
                 Integrated Multiprocessing Array",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "C-32",
  number =       "8",
  pages =        "731--744",
  month =        aug,
  year =         "1983",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.1983.1676311",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Sun Jul 10 10:01:11 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1676311",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Wulf:1983:SFR,
  author =       "William A. Wulf and Joe Newcomer and Bruce Leverett
                 and Rick Cattell and Paul Knueven",
  title =        "Surveyor's Forum: {Retargetable} Code Generators",
  journal =      j-COMP-SURV,
  volume =       "15",
  number =       "3",
  pages =        "279--280",
  month =        sep,
  year =         "1983",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/356914.356920",
  ISSN =         "0360-0300 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  bibdate =      "Thu Jun 19 09:32:37 MDT 2008",
  bibsource =    "http://www.acm.org/pubs/contents/journals/surveys/;
                 https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See
                 \cite{Ganapathi:1982:RCC,Ganapathi:1983:SFRa,Fraser:1983:SFR,Ganapathi:1983:SFRb}.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
}

@Article{Aoe:1984:MIS,
  author =       "J. Aoe and Y. Yamamoto and R. Shimada",
  title =        "A Method for Improving String Pattern Matching
                 Machines",
  journal =      j-IEEE-TRANS-SOFTW-ENG,
  volume =       "SE-10",
  number =       "1",
  pages =        "116--120",
  month =        jan # "\slash " # feb,
  year =         "1984",
  CODEN =        "IESEDJ",
  DOI =          "https://doi.org/10.1109/TSE.1984.5010205",
  ISSN =         "0098-5589 (print), 1939-3520 (electronic)",
  ISSN-L =       "0098-5589",
  bibdate =      "Thu Feb 1 08:07:37 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranssoftweng1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=5010205",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Software Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32",
}

@Article{Apostolico:1984:PMM,
  author =       "A. Apostolico and R. Giancarlo",
  title =        "Pattern matching machine implementation of a fast test
                 for unique decipherability",
  journal =      j-INFO-PROC-LETT,
  volume =       "18",
  number =       "3",
  pages =        "155--158",
  day =          "30",
  month =        mar,
  year =         "1984",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cryptography.bib;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "B6140C (Optical information, image and video signal
                 processing); C1160 (Combinatorial mathematics); C1250
                 (Pattern recognition); C1260 (Information theory)",
  corpsource =   "ISI, Univ. of Salerno, Salerno, Italy",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  keywords =     "codes; fast implementation; graph theory; pattern
                 matching machine; pattern recognition; Sardinas-
                 Patterson-Even test; unique decipherability",
  treatment =    "N New Development; T Theoretical or Mathematical",
}

@Article{Barth:1984:ACT,
  author =       "Gerhard Barth",
  title =        "An analytical comparison of two string searching
                 algorithms",
  journal =      j-INFO-PROC-LETT,
  volume =       "18",
  number =       "5",
  pages =        "249--256",
  day =          "18",
  month =        jun,
  year =         "1984",
  CODEN =        "IFPLAT",
  DOI =          "https://doi.org/10.1016/0020-0190(84)90003-6",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q25",
  MRnumber =     "85m:68012",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "723; C4240 (Programming and algorithm theory)",
  corpsource =   "Fachbereich Informatik, Univ. Kaiserslautern,
                 Kaiserslautern, West Germany",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "algorithm theory; average case analysis; average case
                 complexities; combinatorial algorithms; comparisons;
                 complexity; computer programming; heuristics; KMP
                 algorithm; Knuth--Morris--Pratt algorithm; Markov chain
                 theory; pattern matching algorithms; string searching
                 algorithms; trial-and-error",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Barton:1984:SSF,
  author =       "Paul C. Barton",
  title =        "String search function in {C} [letter]",
  journal =      j-DDJ,
  volume =       "9",
  number =       "8",
  pages =        "8--??",
  month =        aug,
  year =         "1984",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Mon Sep 2 09:09:39 MDT 1996",
  bibsource =    "http://www.ddj.com/index/author/index.htm;
                 https://www.math.utah.edu/pub/tex/bib/dr-dobbs-1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Burkowski:1984:CHH,
  author =       "F. J. Burkowski",
  title =        "Correction to {``A Hardware Hashing Scheme in the
                 Design of a Multiterm String Comparator''}",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "C-33",
  number =       "4",
  pages =        "375--375",
  month =        apr,
  year =         "1984",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.1984.1676447",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Sun Jul 10 09:22:51 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See \cite{Burkowski:1982:HHS}.",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1676447",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Cleary:1984:DCU,
  author =       "John G. Cleary and I. H. Witten",
  title =        "Data Compression Using Adaptive Coding and Partial
                 String Matching",
  journal =      j-IEEE-TRANS-COMM,
  volume =       "COM-32",
  number =       "4",
  pages =        "396--402",
  month =        apr,
  year =         "1984",
  CODEN =        "IECMBT",
  ISSN =         "0090-6778 (print), 1558-0857 (electronic)",
  ISSN-L =       "0090-6778",
  bibdate =      "Sat Jan 26 12:46:16 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-ds,
  fjournal =     "IEEE Transactions on Communications",
  rawdata-1 =    "Cleary, John G., and I. H. Witten (1984) ``Data
                 Compression Using Adaptive Coding and Partial String
                 Matching,'' {\it IEEE Transactions on Communications},
                 {\bf COM-32}(4):396--402, April.",
  rawdata-2 =    "Cleary, J. G., and I. H. Witten (1984) ``Data
                 Compression Using Adaptive Coding and Partial String
                 Matching,'' {\it IEEE Transactions on Communications}
                 COM-32(4):396--402, April.",
}

@InProceedings{Galil:1984:OPA,
  author =       "Zvi Galil",
  title =        "Optimal parallel algorithms for string matching",
  crossref =     "ACM:1984:PSA",
  pages =        "240--248",
  year =         "1984",
  bibdate =      "Thu Feb 21 06:51:34 MST 2002",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Holub:1984:GCU,
  author =       "Allen I. Holub",
  title =        "{Grep C} --- a {Unix}-Like, Generalized, Regular
                 Expression Parser in {C}",
  journal =      j-DDJ,
  volume =       "9",
  number =       "10",
  pages =        "50--??",
  month =        oct,
  year =         "1984",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Thu Jan 9 09:35:43 MST 1997",
  bibsource =    "Compendex database;
                 http://www.ddj.com/index/author/index.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "723",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  journalabr =   "Dr Dobb's J",
  keywords =     "C language; computer programming languages; computer
                 programs; parser; pattern recognition; regular
                 expressions; text pattern finder; UNIX",
  pagecount =    "29p between p 50 and 83",
}

@Article{Hurson:1984:VDP,
  author =       "A. R. Hurson",
  title =        "A {VLSI} design for the parallel finite state
                 automaton and its performance evaluation as a hardware
                 scanner",
  journal =      j-INT-J-COMPUT-INF-SCI,
  volume =       "13",
  number =       "6",
  pages =        "491--508",
  month =        dec,
  year =         "1984",
  CODEN =        "IJCIAH",
  ISSN =         "0091-7036",
  MRclass =      "68Q35",
  MRnumber =     "792 724",
  bibdate =      "Sat Apr 26 14:03:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C4220 (Automata theory); C5220 (Computer
                 architecture)",
  corpsource =   "Sch. of Electr. Eng. and Comptu. Sci., Oklahoma Univ.,
                 Norman, OK, USA",
  fjournal =     "International Journal of Computer and Information
                 Sciences",
  journal-URL =  "http://link.springer.com/journal/10766",
  keywords =     "computer architecture; computerised pattern
                 recognition; finite automata; hardware architecture;
                 hardware scanner; parallel finite state automaton;
                 pattern matching; performance evaluation; text
                 retrieval; VLSI; VLSI design",
  treatment =    "T Theoretical or Mathematical",
}

@InProceedings{Kowalski:1984:NMT,
  author =       "G. Kowalski and A. Meltzer",
  editor =       "{IEEE}",
  booktitle =    "First International Conference on Computer
                 Applications ({June 20--22, 1984})",
  title =        "New multi-term high speed text search algorithms",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "514--522",
  year =         "1984",
  bibdate =      "Sat Sep 02 14:37:42 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  remark =       "Not found in IEEE Xplore database.",
}

@PhdThesis{Liang:1984:WHP,
  author =       "Franklin Mark Liang",
  title =        "Word Hy-phen-a-tion by Com-pu-ter",
  type =         "{Ph.D.} dissertation",
  school =       "Computer Science Department, Stanford University",
  address =      "Stanford, CA, USA",
  pages =        "92",
  month =        mar,
  year =         "1984",
  bibdate =      "Fri Jul 08 14:48:58 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/texbook3.bib",
  URL =          "http://www.tug.org/docs/liang/;
                 http://wwwlib.umi.com/dissertations/fullcit/8329742",
  abstract =     "This thesis describes research leading to an improved
                 word hyphenation algorithm for the T(,E)X82 typesetting
                 system. Hyphenation is viewed primarily as a data
                 compression problem, where we are given a dictionary of
                 words with allowable division points, and try to devise
                 methods that take advantage of the large amount of
                 redundancy present. The new hyphenation algorithm is
                 based on the idea of hyphenating and inhibiting
                 patterns. These are simply strings of letters that,
                 when they match in a word, give us information about
                 hyphenation at some point in the pattern. For example,
                 `-tion' and `c-c' are good hyphenating patterns. An
                 important feature of this method is that a suitable set
                 of patterns can be extracted automatically from the
                 dictionary. In order to represent the set of patterns
                 in a compact form that is also reasonably efficient for
                 searching, the author has developed a new data
                 structure called a packed trie. This data structure
                 allows the very fast search times characteristic of
                 indexed tries, but in many cases it entirely eliminates
                 the wasted space for null links usually present in such
                 tries. We demonstrate the versatility and practical
                 advantages of this data structure by using a variant of
                 it as the critical component of the program that
                 generates the patterns from the dictionary. The
                 resulting hyphenation algorithm uses about 4500
                 patterns that compile into a packed trie occupying 25K
                 bytes of storage. These patterns find 89\% of the
                 hyphens in a pocket dictionary word list, with
                 essentially no error. By comparison, the uncompressed
                 dictionary occupies over 500K bytes.",
  acknowledgement = ack-nhfb,
}

@Article{Moller-Nielsen:1984:EFS,
  author =       "Peter Moller-Nielsen and Jorgen Staunstrup",
  title =        "Experiments with a Fast String Searching Algorithm",
  journal =      j-INFO-PROC-LETT,
  volume =       "18",
  number =       "3",
  pages =        "129--135",
  day =          "30",
  month =        mar,
  year =         "1984",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "723; C4240 (Programming and algorithm theory)",
  corpsource =   "Computer Sci. Dept., Aarhus Univ., Aarhus, Denmark",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190/",
  journalabr =   "Inf Process Lett",
  keywords =     "algorithm theory; computer programming; fast string
                 searching algorithm; MultiMaren multiprocessor;
                 multiprocessing systems; multiprocessor; string
                 searching",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Sellers:1984:PRG,
  author =       "Peter H. Sellers",
  title =        "Pattern recognition in genetic sequences by mismatch
                 density",
  journal =      j-BULL-MATH-BIOL,
  volume =       "46",
  number =       "4",
  pages =        "501--514",
  month =        jul,
  year =         "1984",
  CODEN =        "BMTBAP",
  DOI =          "https://doi.org/10.1007/BF02459499",
  ISSN =         "0092-8240 (print), 1522-9602 (electronic)",
  ISSN-L =       "0092-8240",
  bibdate =      "Wed Jun 28 16:16:02 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/bullmathbiol.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/BF02459499",
  acknowledgement = ack-nhfb,
  fjournal =     "Bulletin of Mathematical Biology",
  journal-URL =  "http://link.springer.com/journal/11538",
}

@Article{Weiner:1984:LRK,
  author =       "J. L. Weiner",
  title =        "The Logical Record Keeper: {PROLOG} On The {IBM}",
  journal =      j-BYTE,
  volume =       "9",
  number =       "9",
  pages =        "125--31",
  month =        sep,
  year =         "1984",
  CODEN =        "BYTEDJ",
  ISSN =         "0360-5280 (print), 1082-7838 (electronic)",
  ISSN-L =       "0360-5280",
  bibdate =      "Fri Sep 22 14:23:22 2023",
  bibsource =    "/usr/local/src/bib/bibliography/Ai/log.prog.85.bib;
                 https://www.math.utah.edu/pub/tex/bib/byte1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "QA76.5B98",
  abstract =     "This very high-level language makes it easy to program
                 knowledge-intensive tasks. Owners of a personal
                 computer need a language such as PROLOG that allows
                 them to solve common but interesting problems without
                 having to devote an inordinate amount of time to
                 programming. One might think that a language like LISP,
                 which is widely used in the artificial intelligence
                 community, might be as effective as PROLOG for common
                 real-world problems, but that's not the case. LISP is a
                 much lower-level language. The main advantage that
                 PROLOG has over LISP is the fact that patterns and
                 pattern matching are so fundamental to PROLOG. The
                 problem of representing knowledge in LISP is casting
                 that knowledge into lists that LISP can process.",
  acknowledgement = ack-nhfb,
  fjournal =     "BYTE Magazine",
  keywords =     "high level languages",
}

@Article{You:1984:PES,
  author =       "Zhisheng You and Anil K. Jain",
  title =        "Performance Evaluation of Shape Matching Via Chord
                 Length Distribution",
  journal =      j-CVGIP,
  volume =       "28",
  number =       "2",
  pages =        "185--198",
  month =        nov,
  year =         "1984",
  CODEN =        "CVGPDB",
  ISSN =         "0734-189x (print), 1557-895x (electronic)",
  ISSN-L =       "0734-189X",
  bibdate =      "Thu Feb 6 18:44:11 MST 1997",
  bibsource =    "Compendex database; Graphics/rosenfeld/1984.bib;
                 https://www.math.utah.edu/pub/tex/bib/cvgip.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Sichuan U/Mich St U",
  classification = "723",
  fjournal =     "Computer Vision, Graphics, and Image Processing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/0734189X",
  journalabr =   "Comput Vision Graphics Image Process",
  keywords =     "chord length distribution; image part form; image
                 processing; pattern recognition; shape matching",
}

@Article{Abdali:1985:TCR,
  author =       "S. K. Abdali and B. D. Saunders",
  title =        "Transitive closure and related semiring properties via
                 eliminants",
  journal =      j-THEOR-COMP-SCI,
  volume =       "40",
  number =       "2-3",
  pages =        "257--274",
  month =        "????",
  year =         "1985",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:29:49 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1985.bib",
  acknowledgement = ack-nhfb,
  classification = "C4220 (Automata theory)",
  corpsource =   "Dept. of Comput. Sci. and Eng., Univ. of Pet. and
                 Min., Dhahran, Saudi Arabia",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "algebraic structures; axiomatic formulation; closed
                 semirings; closure algorithms; computer science;
                 correctness; eliminants; finite automata;
                 graph-theoretical path problems; linear equations;
                 matrix closure; operations research; regular
                 expressions; semiring properties; transitive closure",
  pubcountry =   "Netherlands A11",
  treatment =    "T Theoretical or Mathematical",
}

@TechReport{Aho:1985:APS,
  author =       "Alfred V. Aho and Brian W. Kernighan and Peter J.
                 Weinberger",
  title =        "Awk --- A Pattern Scanning and Processing Language
                 Programmer's Manual",
  type =         "Computing Science Technical Report",
  number =       "118",
  institution =  inst-ATT-BELL,
  address =      inst-ATT-BELL:adr,
  pages =        "ii ++ 38",
  day =          "5",
  month =        jun,
  year =         "1985",
  bibdate =      "Fri Aug 25 15:53:20 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "Awk is a programming language that allows many tasks
                 of information retrieval, data processing, and report
                 generation to be specified simply. An awk program is a
                 sequence of pattern--action statements that searches a
                 set of files for lines matching any of the specified
                 patterns and executes the action associated with each
                 matching pattern. For example, the pattern \par

                 \$1 == {"name"} \par

                 is a complete {\em awk\/} program that prints all input
                 lines whose first field is the string name; the action
                 \par

                 \{ print \$1, \$2 \} \par

                 is a complete program that prints the first and second
                 fields of each input line; and the pattern--action
                 statement \par

                 \$1 == {"address"} { print \$2, \$3 }\par

                 is a complete program that prints the second and third
                 fields of each. input line whose first field is {\tt
                 address}.\par

                 Awk patterns may include arbitrary combinations of
                 regular expressions and comparison operations on
                 strings, numbers, fields, variables, and array
                 elements. Actions may include the same pattern-matching
                 constructions as in patterns as well as arithmetic and
                 string expressions; assignments; {\tt if-else}, {\tt
                 while} and {\ff for} statements; function calls; and
                 multiple input and output streams. This manual
                 describes the version of awk released in June, 1985.",
  acknowledgement = ack-nhfb,
}

@Article{Ashdown:1985:PPM,
  author =       "Ian E. Ashdown",
  title =        "Parallel Pattern Matching and {Fgrep}",
  journal =      j-DDJ,
  volume =       "10",
  number =       "9",
  pages =        "46--??",
  month =        sep,
  year =         "1985",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Thu Jan 9 09:35:43 MST 1997",
  bibsource =    "Compendex database;
                 http://www.ddj.com/index/author/index.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "byHeart Software, North Vancouver, BC, Can",
  affiliationaddress = "byHeart Software, North Vancouver, BC, Can",
  classification = "723",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  journalabr =   "Dr Dobb's J",
  keywords =     "Aho--Corasick algorithm; computer operating systems;
                 computer programming --- Algorithms; data processing
                 --- File Organization; fgrep algorithm; file-search
                 utility; parallel pattern; pattern recognition; UNIX
                 operating system",
  pagecount =    "19p between p 46 and 67",
}

@Book{Berkovich:1985:MSP,
  author =       "Simon Y. Berkovich and Abd El Fatah A. Hegazy",
  title =        "Matching String Patterns in Large Textual Files",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "122--127",
  year =         "1985",
  ISBN =         "0-8186-0639-8",
  ISBN-13 =      "978-0-8186-0639-7",
  LCCN =         "QA75.5 .I6351 1985",
  bibdate =      "Tue May 12 09:47:27 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE Service Cent. Piscataway, NJ, USA.",
  abstract =     "The authors present a general approach that could be
                 efficient when searching large textual files for
                 near-matching of a set of patterns. The approach is
                 based on a mapping of string segments into key-number
                 values. To apply the terms of query against text
                 strings in a single pass simultaneously, the input set
                 of patterns is arranged in a hash table. The tolerance
                 property of hash collisions and pattern representation
                 by segment extraction can be used to detect different
                 classes of string variations.",
  acknowledgement = ack-nhfb,
  affiliationaddress = "George Washington Univ, Washington, DC, USA",
  classification = "723",
  conference =   "International Symposium on New Directions in
                 Computing.",
  keywords =     "data processing --- File Organization; database
                 searching; database systems; hash tables; large textual
                 files; string pattern matching",
  meetingaddress = "Trondheim, Norw",
  sponsor =      "IEEE Computer Soc, Los Alamitos, CA, USA; Norwegian
                 Inst of Technology, Trondheim, Norw; Kongsberg
                 Vaepenfabrikk, Norw",
}

@InProceedings{Cheng:1985:APF,
  author =       "H. D. Cheng and K. S. Fu",
  title =        "Algorithm Partition for a Fixed-Size {VLSI}
                 Architecture Using Space-Time Domain Expansion",
  crossref =     "Hwang:1985:PSC",
  pages =        "126--132",
  year =         "1985",
  bibdate =      "Fri Nov 16 08:47:34 2007",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fparith.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acsel-lab.com/arithmetic/arith7/papers/ARITH7_Cheng_Fu.pdf",
  abstract =     "The space-time domain expansion method has recently
                 been used to transform a computational task with a
                 recursive formula into a VLSI architecture. In addition
                 to its simplicity and completeness, an important
                 advantage of this method is that it can easily solve
                 the problem of partitioning an algorithm to fit a fixed
                 size VLSI architecture. We propose a computational
                 model and a partition rule which can be easily used to
                 partition any recursive computation problem suited to
                 the space-time domain expansion method so it can be
                 solved on fixed-size VLSI architectures. Several
                 examples, such as partitioned vector inner product,
                 partitioned comparators in relational database
                 management, partitioned matrix multiplications. and
                 partitioned transitive closure computation, parallel
                 recognition of general context-free languages, string
                 matching and dynamic time-warp pattern-matching are
                 used to illustrate the proposed method.",
  acknowledgement = ack-nhfb,
  keywords =     "algorithm partition; ARITH-7; multiprocessing;
                 pipelining; recursive task; space-time domain
                 expansion; very large scale integration (VLSI)",
}

@Article{Faloutsos:1985:AMT,
  author =       "Christos Faloutsos",
  title =        "Access Methods for Text",
  journal =      j-COMP-SURV,
  volume =       "17",
  number =       "1",
  pages =        "49--74",
  month =        mar,
  year =         "1985",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/4078.4080",
  ISSN =         "0360-0300 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  bibdate =      "Thu Jun 19 09:34:46 MDT 2008",
  bibsource =    "Compendex database;
                 http://www.acm.org/pubs/contents/journals/surveys/;
                 https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Also published in/as: ``{Multiattribute} Hashing Using
                 Gray Codes'', ACM SIGMOD, 1986.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0360-0300/4080.html",
  abstract =     "This paper compares text retrieval methods intended
                 for office systems. The operational requirements of the
                 office environment are discussed, and retrieval methods
                 from database systems and from information retrieval
                 systems are examined. We classify these methods and
                 examine the most interesting representatives of each
                 class. Attempts to speed up retrieval with special
                 purpose hardware are also presented, and issues such as
                 approximate string matching and compression are
                 discussed. A qualitative comparison of the examined
                 methods is presented. The signature file method is
                 discussed in more detail.",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Toronto, Computer Systems Research Inst,
                 Toronto, Ont, Can",
  affiliationaddress = "Univ of Toronto, Computer Systems Research Inst,
                 Toronto, Ont, Can",
  annote =       "Signature files.",
  classification = "723; 901",
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
  keywords =     "database systems; design, information science;
                 document retrieval; Information Retrieval; office
                 automation; text retrieval",
  review =       "ACM CR 8601-0058",
  subject =      "{\bf H.3.3}: Information Systems, INFORMATION STORAGE
                 AND RETRIEVAL, Information Search and Retrieval. {\bf
                 H.2.2}: Information Systems, DATABASE MANAGEMENT,
                 Physical Design, Access methods. {\bf H.3.6}:
                 Information Systems, INFORMATION STORAGE AND RETRIEVAL,
                 Library Automation. {\bf H.4.1}: Information Systems,
                 INFORMATION SYSTEMS APPLICATIONS, Office Automation.
                 {\bf I.7.m}: Computing Methodologies, TEXT PROCESSING,
                 Miscellaneous.",
}

@Article{Gillogly:1985:FPM,
  author =       "James J. Gillogly",
  title =        "Fast Pattern Matching for Word Lists",
  journal =      j-CRYPTOLOGIA,
  volume =       "9",
  number =       "1",
  pages =        "55--62",
  month =        jan,
  year =         "1985",
  CODEN =        "CRYPE6",
  DOI =          "https://doi.org/10.1080/0161-118591859762",
  ISSN =         "0161-1194 (print), 1558-1586 (electronic)",
  ISSN-L =       "0161-1194",
  bibdate =      "Mon Jun 30 15:38:43 MDT 2008",
  bibsource =    "http://www.dean.usma.edu/math/pubs/cryptologia/;
                 https://www.math.utah.edu/pub/tex/bib/cryptologia.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.informaworld.com/smpp/content~content=a741902694~db=all~order=page",
  acknowledgement = ack-nhfb,
  fjournal =     "Cryptologia",
  journal-URL =  "http://www.tandfonline.com/loi/ucry20",
  romanvolume =  "IX",
}

@Article{GonzalezSmith:1985:PAD,
  author =       "M. E. {Gonzalez Smith} and J. A. Storer",
  title =        "Parallel Algorithms for Data Compression",
  journal =      j-J-ACM,
  volume =       "32",
  number =       "2",
  pages =        "344--373",
  month =        apr,
  year =         "1985",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Wed Jan 15 18:12:53 MST 1997",
  bibsource =    "Compendex database;
                 ftp://ftp.ira.uka.de/pub/bibliography/Database/Graefe.bib;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0004-5411/3152.html",
  abstract =     "Parallel algorithms for data compression by textual
                 substitution that are suitable for VLSI implementation
                 are studied. Both `static' and `dynamic' dictionary
                 schemes are considered.",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Brandeis Univ, Waltham, MA, USA",
  classification = "723",
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  journalabr =   "J Assoc Comput Mach",
  keywords =     "Algorithms; algorithms; computer programming; computer
                 systems, digital --- Parallel Processing; data
                 compression; image information; parallel algorithms;
                 statistics; theory; verification; VLSI",
  subject =      "{\bf E.4}: Data, CODING AND INFORMATION THEORY, Data
                 compaction and compression. {\bf B.7.1}: Hardware,
                 INTEGRATED CIRCUITS, Types and Design Styles, VLSI
                 (very large scale integration). {\bf F.2.2}: Theory of
                 Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
                 COMPLEXITY, Nonnumerical Algorithms and Problems. {\bf
                 G.1.0}: Mathematics of Computing, NUMERICAL ANALYSIS,
                 General, Parallel algorithms. {\bf F.2.2}: Theory of
                 Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
                 COMPLEXITY, Nonnumerical Algorithms and Problems,
                 Computations on discrete structures. {\bf F.2.2}:
                 Theory of Computation, ANALYSIS OF ALGORITHMS AND
                 PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Pattern matching. {\bf F.2.2}: Theory of
                 Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
                 COMPLEXITY, Nonnumerical Algorithms and Problems,
                 Routing and layout.",
}

@Article{Griswold:1985:RSI,
  author =       "Ralph E. Griswold",
  title =        "{Rebus} --- a {SNOBOL4\slash Icon} hybrid",
  journal =      j-SIGPLAN,
  volume =       "20",
  number =       "2",
  pages =        "7--16",
  month =        feb,
  year =         "1985",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/988304.988306",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 16:20:20 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C6140D (High level languages)",
  corpsource =   "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ,
                 USA",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "control structures; high level languages; Icon;
                 pattern matching; programming language; Rebus; semantic
                 framework; SNOBOL4; syntax",
  treatment =    "P Practical",
}

@Article{Hoffman:1985:IIA,
  author =       "C. M. Hoffman and M. J. O'Donnell and R. I. Strandh",
  title =        "Implementation of an interpreter for abstract
                 equations",
  journal =      j-SPE,
  volume =       "15",
  number =       "12",
  pages =        "1204--1185",
  month =        dec,
  year =         "1985",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Wed Aug 24 12:18:38 MDT 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "languages; theory",
  subject =      "F.2.2 Theory of Computation, ANALYSIS OF ALGORITHMS
                 AND PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Pattern matching \\ F.4.1 Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Mathematical Logic, Logic programming \\ F.1.3 Theory
                 of Computation, COMPUTATION BY ABSTRACT DEVICES,
                 Complexity Classes, Reducibility and completeness \\
                 F.3 Theory of Computation, LOGICS AND MEANINGS OF
                 PROGRAMS, Semantics of Programming Languages \\ D.3.4
                 Software, PROGRAMMING LANGUAGES, Processors,
                 Interpreters \\ F.4.2 Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Grammars and
                 Other Rewriting Systems, Parsing",
}

@Article{Hoffmann:1985:IIA,
  author =       "Christoph M. Hoffmann and Michael J. O'Donnell and
                 Robert I. Strandh",
  title =        "Implementation of an Interpreter for Abstract
                 Equations",
  journal =      j-SPE,
  volume =       "15",
  number =       "12",
  pages =        "1185--1204",
  month =        dec,
  year =         "1985",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "algorithms; languages; theory",
  review =       "ACM CR 8607-0605",
  subject =      "D.3.4 Software, PROGRAMMING LANGUAGES, Processors,
                 Interpreters \\ F.4.1 Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Mathematical
                 Logic, Logic programming \\ F.3.2 Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS, Semantics
                 of Programming Languages \\ F.4.2 Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Grammars and Other Rewriting Systems, Parsing \\ F.2.2
                 Theory of Computation, ANALYSIS OF ALGORITHMS AND
                 PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Pattern matching \\ D.3.1 Software,
                 PROGRAMMING LANGUAGES, Formal Definitions and Theory",
  xxauthor =     "Christoph M. Hoffman and Michael J. O'Donnell and
                 Robert I. Strandh",
}

@Article{Jantzen:1985:ERE,
  author =       "M. Jantzen",
  title =        "Extending regular expressions with iterated shuffle",
  journal =      j-THEOR-COMP-SCI,
  volume =       "38",
  number =       "2-3",
  pages =        "223--247",
  month =        jun,
  year =         "1985",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:29:49 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1985.bib",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory)",
  corpsource =   "Fachbereich Informat., Hamburg Univ., West Germany",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "algebraic language theory; finite expression; iterated
                 shuffle; Kleene star; multicounter machine; NSPACE;
                 product; programming theory; regular expressions
                 extending; union",
  pubcountry =   "Netherlands A05",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Ju:1985:CSF,
  author =       "M. S. Ju and J. M. Mansour",
  title =        "Comparative Studies of Formulating the Dynamics of
                 Rigid-Body Systems Using {Macsyma} --- a Case Study",
  journal =      "Developments in Mechanics",
  volume =       "13",
  pages =        "185--186",
  year =         "1985",
  CODEN =        "DEMEAX",
  ISSN =         "0419-0262",
  bibdate =      "Wed Jan 15 15:35:13 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/macsyma.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Case Western Reserve Univ, Cleveland, OH, USA",
  classification = "461; 601; 921; 931",
  conference =   "Proceedings of the 19th Midwestern Mechanics
                 Conference.",
  journalabr =   "Developments in Mechanics",
  keywords =     "biomechanics; computational efficiency; equations of
                 motion; mathematical techniques; mechanisms; pattern
                 matching algorithm; rigid-body systems",
  meetingaddress = "Columbus, OH, USA",
  sponsor =      "Ohio State Univ, Dep of Engineering Mechanics,
                 Columbus, OH, USA",
}

@Article{Kapur:1985:ATC,
  author =       "D. Kapur and M. S. Krishnamoorthy and R. McNaughton
                 and Narendran and P.",
  title =        "An {$ O(\bmod {T} \bmod^3) $} algorithm for testing
                 the {Church--Rosser} property of {Thue} systems",
  journal =      j-THEOR-COMP-SCI,
  volume =       "35",
  number =       "1",
  pages =        "109--114",
  month =        jan,
  year =         "1985",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:29:49 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1985.bib",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory)",
  corpsource =   "General Electric Co., Res. and Dev. Center,
                 Schenectady, NY, USA",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "Church--Rosser property; computational complexity;
                 linear string-matching algorithm; reduction algorithm;
                 Thue systems; trees (mathematics)",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
  xxnote =       "Check math in title??",
}

@Article{Kristensen:1985:APF,
  author =       "Bent Bruun Kristensen and Ole Lehrmann Madsen and
                 Birger M{\o}ller-Pedersen and Kristen Nygaard",
  title =        "An algebra for program fragments",
  journal =      j-SIGPLAN,
  volume =       "20",
  number =       "7",
  pages =        "161--170",
  month =        jul,
  year =         "1985",
  CODEN =        "SINODQ",
  ISBN =         "0-89791-165-2",
  ISBN-13 =      "978-0-89791-165-8",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:14:50 MST 2003",
  bibsource =    "Compendex database; http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Program fragments are described either by strings in
                 the concrete syntax or by constructor applications in
                 the abstract syntax. By defining conversions between
                 these forms, both may be intermixed. Program fragments
                 are constructed by terminal and nonterminal symbols
                 from the grammar and by variables having program
                 fragments as values. Basic operations such as value
                 transfer, composition and decomposition are defined for
                 program fragments allowing more complicated operations
                 to be implemented. Usual operations such as testing for
                 equality are defined, and in addition more specialized
                 operations such as testing that a program fragment is
                 derivable from another and converting program fragments
                 in concrete form to abstract form are defined. By
                 introducing regular expressions in the grammar these
                 may be used in program fragments in concrete form. By
                 defining constructors for regular expressions these may
                 also be used in program fragments in abstract form.",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Univ of California, Santa Barbara, CA, USA",
  classification = "721; C4210 (Formal logic); C6115 (Programming
                 support)",
  conference =   "Proceedings of the ACM SIGPLAN 85 Symposium on
                 Language Issues in Programming Environments.",
  conflocation = "Seattle, WA, USA; 25-28 June 1985",
  conftitle =    "Proceedings of the ACM SIGPLAN 85 Symposium on
                 Language Issues in Programming Environments",
  corpsource =   "Dept. of Comput. Sci., California Univ., Santa
                 Barbara, CA, USA",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  journalabr =   "SIGPLAN Notices (ACM Special Interest Group on
                 Programming Languages)",
  keywords =     "abstract syntax; automata theory; composition;
                 computer metatheory --- Programming Theory; computer
                 programming; concrete syntax; constructor applications;
                 decomposition; grammar; Grammars; grammars; languages;
                 program fragments; programming environments; regular
                 expression; regular expressions; strings; theory; value
                 transfer",
  meetingaddress = "Seattle, WA, USA",
  pubcountry =   "USA A17",
  sponsor =      "ACM, Special Interest Group on Programming Languages,
                 New York, NY, USA; ACM, Special Interest Group on
                 Software Engineering, New York, NY, USA",
  sponsororg =   "ACM",
  subject =      "D.2.3 Software, SOFTWARE ENGINEERING, Coding, Program
                 editors \\ D.2 Software, SOFTWARE ENGINEERING,
                 Miscellaneous \\ D.3.3 Software, PROGRAMMING LANGUAGES,
                 Language Constructs \\ D.2.6 Software, SOFTWARE
                 ENGINEERING, Programming Environments",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Leiss:1985:CTU,
  author =       "E. Leiss",
  title =        "On classes of tractable unrestricted regular
                 expressions",
  journal =      j-THEOR-COMP-SCI,
  volume =       "35",
  number =       "2-3",
  pages =        "313--327",
  month =        feb,
  year =         "1985",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:29:49 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1985.bib",
  acknowledgement = ack-nhfb,
  classification = "C4210 (Formal logic); C4220 (Automata theory); C4240
                 (Programming and algorithm theory)",
  corpsource =   "Dept. of Comput. Sci., Houston Univ., TX, USA",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "Boolean automata; Boolean functions; closure;
                 computational complexity; context-free languages;
                 equivalence classes; equivalence problem; finite
                 automata; intractable complexity; nontrivial
                 subclasses; reduced automaton; tractable complexity;
                 tractable unrestricted regular expressions",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{McIsaac:1985:PMA,
  author =       "Kevin McIsaac",
  title =        "Pattern matching algebraic identities",
  journal =      j-SIGSAM,
  volume =       "19",
  number =       "2",
  pages =        "4--13",
  month =        may,
  year =         "1985",
  CODEN =        "SIGSBZ",
  ISSN =         "0163-5824 (print), 1557-9492 (electronic)",
  ISSN-L =       "0163-5824",
  bibdate =      "Wed Oct 5 08:31:59 MDT 2005",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigsam.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C4240 (Programming and algorithm theory); C6140
                 (Programming languages)",
  corpsource =   "Western Australia Univ., Crawley, WA, Australia",
  fjournal =     "SIGSAM Bulletin (ACM Special Interest Group on
                 Symbolic and Algebraic Manipulation)",
  issue =        "74",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1000",
  keywords =     "algebraic identities; algorithmic languages;
                 algorithms; function; identity; matching process;
                 notational extension; pattern matching; programming
                 theory; scaling behaviour; theory",
  subject =      "F.2.2 Theory of Computation, ANALYSIS OF ALGORITHMS
                 AND PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Pattern matching \\ I.5.1 Computing
                 Methodologies, PATTERN RECOGNITION, Models,
                 Deterministic \\ D.3.3 Software, PROGRAMMING LANGUAGES,
                 Language Constructs, Coroutines",
  treatment =    "P Practical",
}

@Article{McIsaac:85,
  author =       "Kevin McIsaac",
  title =        "Pattern Matching Algebraic Identities",
  journal =      "{SIGSAM} Bulletin",
  volume =       "19",
  number =       "2",
  pages =        "4--13",
  month =        may,
  year =         "1985",
  bibdate =      "Fri Sep 22 14:23:22 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/red-m-z.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Meyer:1985:ISM,
  author =       "Bertrand Meyer",
  title =        "Incremental String Matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "21",
  number =       "5",
  pages =        "219--227",
  day =          "18",
  month =        nov,
  year =         "1985",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Univ of California, Dep of Computer Science,
                 Santa Barbara, CA, USA",
  classification = "723; 903; C6120 (File organisation); C6130 (Data
                 handling techniques); C7250 (Information storage and
                 retrieval)",
  corpsource =   "Dept. of Comput. Sci., California Univ., Santa
                 Barbara, CA, USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "analysis of algorithms; bibliographic search; computer
                 programming --- Algorithms; data handling; data
                 processing --- Word Processing; data structures; finite
                 automaton; incremental diagram construction;
                 incremental string matching; Information Retrieval;
                 information retrieval; information science; program
                 correctness; string matching; transition diagram",
  pubcountry =   "Netherlands A01",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Parigot:1985:LAP,
  author =       "M. Parigot and E. Pelz",
  title =        "A logical approach of {Petri} net languages",
  journal =      j-THEOR-COMP-SCI,
  volume =       "39",
  number =       "2-3",
  pages =        "155--169",
  month =        aug,
  year =         "1985",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:29:49 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1985.bib",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C4210 (Formal
                 logic); C4220 (Automata theory)",
  corpsource =   "UER de Math. et Inf., Paris VII Univ., France",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "Buchi-like theorem; deadlock languages; directed
                 graphs; finite automata; formal languages; logical
                 approach; logical formulas; Petri net languages;
                 regular expressions",
  pubcountry =   "Netherlands A05",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Pramanik:1985:HPM,
  author =       "Sakti Pramanik and Chung-Ta King",
  title =        "A Hardware Pattern Matching Algorithm on a Dataflow",
  journal =      j-COMP-J,
  volume =       "28",
  number =       "3",
  pages =        "264--269",
  month =        jul,
  year =         "1985",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/28.3.264",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Tue Dec 4 14:48:18 MST 2012",
  bibsource =    "Compendex database;
                 http://comjnl.oxfordjournals.org/content/28/3.toc;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_28/Issue_03/;
                 https://www.math.utah.edu/pub/tex/bib/compj.bib;
                 https://www.math.utah.edu/pub/tex/bib/compj1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 Misc/protein.pattern.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/28/3/264.full.pdf+html;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_28/Issue_03/tiff/264.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_28/Issue_03/tiff/265.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_28/Issue_03/tiff/266.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_28/Issue_03/tiff/267.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_28/Issue_03/tiff/268.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_28/Issue_03/tiff/269.tif",
  acknowledgement = ack-nhfb,
  affiliation =  "Michigan State Univ, Computer Science Dep, East
                 Lansing, MI, USA",
  affiliationaddress = "Michigan State Univ, Computer Science Dep, East
                 Lansing, MI, USA",
  classcodes =   "C4250 (Database theory); C6160 (Database management
                 systems (DBMS)); C7250 (Information storage and
                 retrieval)",
  classification = "722; 723",
  comment =      "``A hardware pattern matcher is presented, which
                 searches for patterns on a data flow, such as
                 characters read from a disk. The backing up on the data
                 flow, for a general pattern matching, is avoided by
                 means of a set of cells running in parallel.''",
  corpsource =   "Dept. of Computer Sci., Michigan State Univ., East
                 Lansing, MI, USA",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  keywords =     "Algorithms; computer programming; data flow; data-flow
                 patterns; database systems; database theory; dataflow;
                 disc storage; hardware; hardware pattern matching
                 algorithm; independent pattern searching; information
                 retrieval system; information retrieval systems;
                 magnetic; marking technique; pattern matching
                 algorithm; priority lines; search",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Russinoff:1985:EBM,
  author =       "David M. Russinoff",
  title =        "An experiment with the {Boyer--Moore} theorem prover:
                 A proof of {Wilson}'s theorem",
  journal =      j-J-AUTOM-REASON,
  volume =       "1",
  number =       "2",
  pages =        "121--139",
  month =        jun,
  year =         "1985",
  CODEN =        "JAREEW",
  DOI =          "https://doi.org/10.1007/BF00244993",
  ISSN =         "0168-7433 (print), 1573-0670 (electronic)",
  ISSN-L =       "0168-7433",
  bibdate =      "Sat Apr 2 10:48:29 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jautomreason.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/BF00244993",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Autom. Reason.",
  fjournal =     "Journal of Automated Reasoning",
  journal-URL =  "http://link.springer.com/journal/10817",
}

@Misc{Spencer:1985:REP,
  author =       "Henry Spencer",
  title =        "Regular expression pattern matching software",
  howpublished = "Usenet \path|mod.sources| and \path|net.sources|
                 archives",
  month =        nov,
  year =         "1985",
  bibdate =      "Fri Sep 22 14:23:22 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Misc{Spencer:regexp,
  author =       "Henry Spencer",
  title =        "Regular expression pattern matching software",
  howpublished = "Usenet \path|mod.sources| and \path|net.sources|
                 archives",
  month =        nov,
  year =         "1985",
  bibdate =      "Fri Sep 22 14:23:22 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Stearns:1985:ECP,
  author =       "R. E. Stearns and H. B. {Hunt, III}",
  title =        "On the equivalence and containment problems for
                 unambiguous regular expressions, regular grammars and
                 finite automata",
  journal =      j-SIAM-J-COMPUT,
  volume =       "14",
  number =       "3",
  pages =        "598--611",
  month =        "????",
  year =         "1985",
  CODEN =        "SMJCAT",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68Q45 (68Q20)",
  MRnumber =     "87f:68052",
  MRreviewer =   "Peter R. J. Asveld",
  bibdate =      "Mon Nov 29 11:00:24 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/14/3;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Symes:1985:POC,
  author =       "D. Michael Symes",
  title =        "Procedural Operators Considered as Fundamental
                 Programming Devices",
  journal =      j-COMP-LANGS,
  volume =       "10",
  number =       "2",
  pages =        "75--89",
  month =        "????",
  year =         "1985",
  CODEN =        "COLADA",
  ISSN =         "0096-0551 (print), 1873-6742 (electronic)",
  ISSN-L =       "0096-0551",
  bibdate =      "Thu Apr 10 09:54:16 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/complngs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "I. P. Sharp Associates Ltd, Toronto, Ont, Can",
  classcodes =   "C4240 (Programming and algorithm theory)",
  classification = "723",
  corpsource =   "I. P. Sharp Associates Ltd., Toronto, Ont., Canada",
  fjournal =     "Computer Languages",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00960551",
  journalabr =   "Comput Lang",
  keywords =     "Algorithms; backtracking; backtracking primitives;
                 computer programming; computer programming languages;
                 control structure; functional; imperative; matching
                 primitives; nested interaction; nested iteration;
                 operator; pattern-; pattern-matching; procedural
                 operator; programming device; programming theory;
                 recursion; searching",
  treatment =    "P Practical",
}

@Article{Zaki:1985:PSA,
  author =       "Mohamed Zaki and S. A. Gamal-Eldin",
  title =        "A portable syntax analyzer for microcomputers",
  journal =      j-COMP-LANGS,
  volume =       "10",
  number =       "2",
  pages =        "127--146",
  month =        "????",
  year =         "1985",
  CODEN =        "COLADA",
  ISSN =         "0096-0551 (print), 1873-6742 (electronic)",
  ISSN-L =       "0096-0551",
  bibdate =      "Tue Mar 25 14:04:06 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/complngs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Al-Azhar Univ, Dep of Computers \& Systems
                 Engineering, Cairo, Egypt",
  classcodes =   "C4210 (Formal logic); C4220 (Automata theory); C6150C
                 (Compilers, interpreters and other processors)",
  classification = "722; 723",
  corpsource =   "Dept. of Comput. and Syst. Eng., Al Azhar Univ.,
                 Cairo, Egypt",
  fjournal =     "Computer Languages",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00960551",
  journalabr =   "Comput Lang",
  keywords =     "code; compatibility; compiler; computer operating
                 systems --- Program Compilers; computers,
                 microprocessor; finite automata; finite state automata;
                 generation phase; grammars; high-level; inherited
                 attributes; interfacing; L-attributed grammar;
                 l-attributed grammar; language analysis; lexical
                 analysis; LL(1) parsing; machine independent analyzer;
                 microcomputer applications; microcomputers; modular
                 design; modules; parser; portability; portable syntax
                 analyzer; program compilers; regular expressions;
                 scanner; software portability; storage minimization;
                 symbol table; syntactic structures; syntax analysis;
                 synthesized attributes; system maintainability; system
                 reliability; table-based; tokens",
  treatment =    "P Practical",
}

@Article{Ackenhusen:1986:SBG,
  author =       "John G. Ackenhusen and Syed S. Ali and David Bishop
                 and Louis F. Rosa and Reed Thorkildsen",
  title =        "Single-board general-purpose speech recognition
                 system",
  journal =      j-ATT-TECH-J,
  volume =       "65",
  number =       "5",
  pages =        "48--59",
  month =        sep,
  year =         "1986",
  CODEN =        "ATJOEM",
  ISSN =         "2376-676X (print), 8756-2324 (electronic)",
  ISSN-L =       "8756-2324",
  bibdate =      "Fri Nov 12 13:09:16 2010",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/bstj1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This paper describes a single-board implementation of
                 an isolated word recognizer based on the principles of
                 linear predictive coding (LPC) and dynamic time warping
                 (DTW). The recognizer requires only a serial (RS-232)
                 terminal, power supply, and microphone for operation,
                 and may be used to add speech input capability to any
                 serial terminal connected to a host computer. Key
                 elements of the recognizer include a custom integrated
                 circuit for DTW-based pattern matching, a single-chip
                 implementation of real-time LPC feature measurement,
                 and a 16-bit microprocessor for control, communication,
                 and decision functions. As a result of the custom
                 integrated circuit and multiple processor architecture,
                 pattern matching speed is increased by a factor of 50
                 over an earlier design with no custom integrated
                 circuits and without pipeline processing capabilities,
                 and proceeds on one word while LPC measurement on the
                 next is in progress, increasing speech throughput.",
  acknowledgement = ack-nhfb,
  fjournal =     "AT\&T Technical Journal",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1538-7305/issues/",
  keywords =     "computers, microcomputer",
  subject =      "dynamic time warping (DTW); isolated word recognizer;
                 linear predictive coding (LPC); multiple processor
                 architecture; system architecture",
  topic =        "speech",
}

@Article{Apostolico:1986:BMG,
  author =       "Alberto Apostolico and Raffaele Giancarlo",
  title =        "The {Boyer--Moore--Galil} string searching strategies
                 revisited",
  journal =      j-SIAM-J-COMPUT,
  volume =       "15",
  number =       "1",
  pages =        "98--105",
  month =        "????",
  year =         "1986",
  CODEN =        "SMJCAT",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68Q20",
  MRnumber =     "87b:68045",
  bibdate =      "Mon Nov 29 11:00:32 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/15/1;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Book{Bentley:1986:PP,
  author =       "Jon Louis Bentley",
  title =        "Programming Pearls",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "viii + 195",
  year =         "1986",
  ISBN =         "0-201-10331-1 (paperback)",
  ISBN-13 =      "978-0-201-10331-1 (paperback)",
  LCCN =         "QA76.6.B453 1986",
  bibdate =      "Wed Dec 15 08:16:02 1993",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/subjects/acc-stab-num-alg.bib;
                 https://www.math.utah.edu/pub/bibnet/subjects/han-wri-mat-sci-2ed.bib;
                 https://www.math.utah.edu/pub/tex/bib/css.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/spell.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  note =         "Reprinted with corrections.",
  acknowledgement = ack-nhfb,
  remark =       "Chapter 13, A Spelling Checker, discusses the design
                 and implementation of Unix spell, and notes that
                 ``Steve Johnson wrote the first version of {\tt spell}
                 in an afternoon in 1975.''.",
  shorttableofcontents = "1: Cracking the oyster \\
                 2: Aha! algorithms \\
                 3: Data structures programs \\
                 4: Writing correct programs \\
                 5: Perspective on performance \\
                 6: Back of the envelope \\
                 7: Algorithm design techniques \\
                 8: Code tuning \\
                 9: Squeezing space \\
                 10: Sorting \\
                 11: Searching \\
                 12: Heaps \\
                 13: Spelling checker",
  tableofcontents = "Part I: Preliminaries / 1 \\
                 Column 1: Cracking the Oyster / 3 \\
                 A Friendly Conversation \\
                 Precise Problem Statement \\
                 Program Design \\
                 Implementation Sketch \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Column 2: Aha! Algorithms / 11 \\
                 Three Problems \\
                 Ubiquitous Binary Search \\
                 The Power of Primitives \\
                 Getting It Together: Sorting \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Implementing an Anagram Program \\
                 Column 3: Data Structures Programs / 23 \\
                 A Survey Program \\
                 Form Letters \\
                 An Array of Examples \\
                 A Big Program \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Column 4: Writing Correct Programs / 35 \\
                 The Challenge of Binary Search \\
                 Writing the Program \\
                 Understanding the Program \\
                 Implementing the Program \\
                 Principles \\
                 The Roles of Program Verification \\
                 Problems \\
                 Further Reading \\
                 Industrial-Strength Program Verification \\
                 Part II: Performance / 49 \\
                 Column 5: Perspective on Performance / 51 \\
                 A Case Study \\
                 Design Levels \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Column 6: The Back of the Envelope / 59 \\
                 Basic Skills \\
                 Quick Calculations in Computing \\
                 Safety Factors \\
                 A Case Study \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Quick Calculations in Everyday Life \\
                 Column 7: Algorithm Design Techniques / 69 \\
                 The Problem and a Simple Algorithm \\
                 Two Quadratic Algorithms \\
                 A Divide-and-Conquer Algorithm \\
                 A Scanning Algorithm \\
                 What Does It Matter? \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 The Impact of Algorithms \\
                 Column 8: Code Tuning / 81 \\
                 A Typical Story \\
                 A First Aid Quiz \\
                 Major Surgery --- Binary Search \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Tuning the Federal Government's COBOL Code \\
                 Column 9: Squeezing Space / 93 \\
                 The Key --- Simplicity \\
                 Data Space \\
                 Code Space \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Two Big Squeezes \\
                 Part III: The Product / 105 \\
                 Column 10: Sorting / 107 \\
                 Insertion Sort --- An $O(N^2)$ Algorithm \\
                 Quicksort --- An $O(N \log N)$ Algorithm \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Column 11: Searching / 117 \\
                 The Problem \\
                 One Solution \\
                 The Design Space \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Column 12: Heaps / 125 \\
                 The Data Structure \\
                 Two Critical Routines \\
                 Priority Queues \\
                 A Sorting Algorithm \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Column 13: A Spelling Checker / 139 \\
                 A Simple Program \\
                 The Design Space \\
                 A Subtle Program \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Why Spelling is Hard \\
                 Epilog / 151 \\
                 Appendix: Catalog of Algorithms / 155 \\
                 Hints for Selected Problems / 159 \\
                 Solutions to Selected Problems / 163 \\
                 Index / 189",
}

@Article{Berry:1986:RED,
  author =       "G. Berry and R. Sethi",
  title =        "From regular expressions to deterministic automata",
  journal =      j-THEOR-COMP-SCI,
  volume =       "48",
  number =       "1",
  pages =        "117--126",
  month =        "????",
  year =         "1986",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:29:49 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1985.bib",
  acknowledgement = ack-nhfb,
  classification = "C4220 (Automata theory)",
  corpsource =   "Ecole Nat. Sup{\'e}rieure des Mines de Paris, Centre
                 de Math. Appliqu{\'e}es, Valbonne, France",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "deterministic automata; elegant algorithm; finite
                 automata; finite automaton; regular expressions; state
                 transitions",
  pubcountry =   "Netherlands A09",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Brazma:1986:GRE,
  author =       "A. Brazma and E. Kinber",
  title =        "Generalized regular expressions --- a language for
                 synthesis of programs with branching in loops",
  journal =      j-THEOR-COMP-SCI,
  volume =       "46",
  number =       "2-3",
  pages =        "175--195",
  month =        "????",
  year =         "1986",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:29:49 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1985.bib",
  acknowledgement = ack-nhfb,
  classification = "C4210 (Formal logic); C4220 (Automata theory);
                 C6150G (Diagnostic, testing, debugging and evaluating
                 systems)",
  corpsource =   "Comput. Centre, Latvian State Univ., Riga, Latvian
                 SSR, USSR",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "automata; automata theory; branching; equivalence
                 problem; finite alphabet; formal languages; generalised
                 regular expressions; inductive synthesis; loops;
                 natural numbers; program testing; programs synthesis
                 language; set-theoretic properties",
  pubcountry =   "Netherlands A04",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Cisneros:1986:IPL,
  author =       "G. Cisneros and H. V. McIntosh",
  title =        "Introduction to the programming language {Convert}",
  journal =      j-SIGPLAN,
  volume =       "21",
  number =       "4",
  pages =        "48--57",
  month =        apr,
  year =         "1986",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:14:57 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C6140D (High level languages)",
  corpsource =   "Escuela Superior de Ingenieria Mecanica y Electr.,
                 Inst. Politecnico Nacional, Mexico City, Mexico",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "algorithms; high level languages; languages;
                 programming language Convert; symbol manipulation;
                 transformation rules",
  pubcountry =   "USA A03 A03",
  subject =      "D.3.2 Software, PROGRAMMING LANGUAGES, Language
                 Classifications \\ F.2.2 Theory of Computation,
                 ANALYSIS OF ALGORITHMS AND PROBLEM COMPLEXITY,
                 Nonnumerical Algorithms and Problems, Pattern
                 matching",
  treatment =    "G General Review; P Practical",
}

@InProceedings{Cooperman:1986:SMC,
  author =       "Gene Cooperman",
  title =        "A semantic matcher for computer algebra",
  crossref =     "Char:1986:PSS",
  pages =        "132--134",
  year =         "1986",
  bibdate =      "Thu Mar 12 07:38:29 MST 1998",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/issac.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/issac/32439/p132-cooperman/",
  acknowledgement = ack-nhfb,
  keywords =     "experimentation; human factors; languages",
  subject =      "{\bf I.1.3} Computing Methodologies, SYMBOLIC AND
                 ALGEBRAIC MANIPULATION, Languages and Systems,
                 Special-purpose algebraic systems. {\bf F.4.1} Theory
                 of Computation, MATHEMATICAL LOGIC AND FORMAL
                 LANGUAGES, Mathematical Logic. {\bf I.1.3} Computing
                 Methodologies, SYMBOLIC AND ALGEBRAIC MANIPULATION,
                 Languages and Systems, Evaluation strategies. {\bf
                 F.2.2} Theory of Computation, ANALYSIS OF ALGORITHMS
                 AND PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Pattern matching. {\bf I.1.1} Computing
                 Methodologies, SYMBOLIC AND ALGEBRAIC MANIPULATION,
                 Expressions and Their Representation, Representations
                 (general and polynomial). {\bf I.1.3} Computing
                 Methodologies, SYMBOLIC AND ALGEBRAIC MANIPULATION,
                 Languages and Systems, MACSYMA.",
}

@Article{Crochemore:1986:TR,
  author =       "M. Crochemore",
  title =        "Transducers and repetitions",
  journal =      j-THEOR-COMP-SCI,
  volume =       "45",
  number =       "1",
  pages =        "63--86",
  month =        "????",
  year =         "1986",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:29:49 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1985.bib",
  acknowledgement = ack-nhfb,
  classification = "C4220 (Automata theory); C4240 (Programming and
                 algorithm theory)",
  corpsource =   "Centre Sci. et Polytech., Univ. de Paris-Nord,
                 Villetaneuse, France",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "automata theory; factor transducer; factors; optimal
                 bounds; programming theory; repetition searching;
                 string-matching problem; subsequent suffix transducers;
                 subwords; word",
  pubcountry =   "Netherlands A02",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Davies:1986:APM,
  author =       "G. Davies and S. Bowsher",
  title =        "Algorithms for Pattern Matching",
  journal =      j-SPE,
  volume =       "16",
  number =       "6",
  pages =        "575--601",
  month =        jun,
  year =         "1986",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@Article{Galil:1986:ISM,
  author =       "Z. Galil and R. Giancarlo",
  title =        "Improved string matching with {$k$} mismatches",
  journal =      j-SIGACT,
  volume =       "17",
  number =       "4",
  pages =        "52--54",
  month =        "Spring",
  year =         "1986",
  CODEN =        "SIGNDM",
  DOI =          "https://doi.org/10.1145/8307.8309",
  ISSN =         "0163-5700 (print), 1943-5827 (electronic)",
  ISSN-L =       "0163-5700",
  bibdate =      "Wed Mar 21 08:21:23 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/mirrors/ftp.ira.uka.de/bibliography/Misc/att.bib;
                 https://www.math.utah.edu/pub/mirrors/ftp.ira.uka.de/bibliography/Theory/tq.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigact.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGACT News",
  journal-URL =  "http://dl.acm.org/citation.cfm?id=J697",
}

@Article{Grigoriadis:1986:LBC,
  author =       "M. D. Grigoriadis and B. Kalantari",
  title =        "A Lower Bound to the Complexity of {Euclidean} and
                 Rectilinear Matching Algorithms",
  journal =      j-INFO-PROC-LETT,
  volume =       "22",
  number =       "2",
  pages =        "73--76",
  day =          "18",
  month =        jan,
  year =         "1986",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q25 (68P10)",
  MRnumber =     "87d:68040",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Rutgers Univ, New Brunswick, NJ, USA",
  classification = "723; 921; C1160 (Combinatorial mathematics); C4240
                 (Programming and algorithm theory)",
  corpsource =   "Dept. of Comput. Sci., Rutgers Univ., New Brunswick,
                 NJ, USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; algorithms; complexity; computational
                 complexity; computer programming; Euclidean matching;
                 Euclidean matching algorithms; graph theory; graphs;
                 heuristic algorithm; lower bound; lower bounds;
                 mathematical techniques --- Graph Theory; performance;
                 rectilinear matching; rectilinear matching algorithms;
                 spanning trees; time complexity; undirected graphs;
                 verification",
  pubcountry =   "Netherlands A04",
  review =       "ACM CR 8611-1025",
  subject =      "G.2.2 Mathematics of Computing, DISCRETE MATHEMATICS,
                 Graph Theory, Graph algorithms \\ F.2.2 Theory of
                 Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
                 COMPLEXITY, Nonnumerical Algorithms and Problems,
                 Pattern matching \\ I.2.8 Computing Methodologies,
                 ARTIFICIAL INTELLIGENCE, Problem Solving, Control
                 Methods, and Search, Heuristic methods",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Grosky:1986:IIU,
  author =       "William I. Grosky and Yi Lu",
  title =        "Iconic Indexing Using Generalized Pattern Matching
                 Techniques",
  journal =      j-CVGIP,
  volume =       "35",
  number =       "3",
  pages =        "383--403",
  month =        sep,
  year =         "1986",
  CODEN =        "CVGPDB",
  ISSN =         "0734-189x (print), 1557-895x (electronic)",
  ISSN-L =       "0734-189X",
  bibdate =      "Thu Feb 6 18:44:11 MST 1997",
  bibsource =    "Compendex database; Graphics/rosenfeld/1986.bib;
                 https://www.math.utah.edu/pub/tex/bib/cvgip.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "WSU/U Mich",
  affiliationaddress = "Wayne State Univ, Detroit, MI, USA",
  classification = "723",
  fjournal =     "Computer Vision, Graphics, and Image Processing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/0734189X",
  journalabr =   "Comput Vision Graphics Image Process",
  keywords =     "computer programming --- Algorithms; database systems;
                 image multiplicity comparison; image processing; ionic
                 indexing; longest common sequency; pattern matching",
}

@Article{Highnam:1986:OAF,
  author =       "P. T. Highnam",
  title =        "Optimal Algorithms for Finding the Symmetries of a
                 Planar Point Set",
  journal =      j-INFO-PROC-LETT,
  volume =       "22",
  number =       "5",
  pages =        "219--222",
  day =          "??",
  month =        apr,
  year =         "1986",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68U05",
  MRnumber =     "87h:68144",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Carnegie-Mellon Univ, Pittsburgh, PA, USA",
  classification = "723; C4190 (Other numerical methods)",
  corpsource =   "Dept. of Comput. Sci., Carnegie-Mellon Univ.,
                 Pittsburgh, PA, USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; algorithms; asymptotically optimal
                 algorithm; computational geometry; computer
                 programming; linear pattern-matching; mirror symmetry;
                 optimal algorithms; planar point set; rotational
                 symmetries; string matching; symmetry; theory;
                 verification",
  pubcountry =   "Netherlands A01",
  subject =      "G.2.m Mathematics of Computing, DISCRETE MATHEMATICS,
                 Miscellaneous \\ F.2.2 Theory of Computation, ANALYSIS
                 OF ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Geometrical problems and
                 computations",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Israeli:1986:FSR,
  author =       "Amos Israeli and A. Itai",
  title =        "A fast and simple randomized parallel algorithm for
                 maximal matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "22",
  number =       "2",
  pages =        "77--80",
  day =          "18",
  month =        jan,
  year =         "1986",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q25",
  MRnumber =     "87d:68041",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Technion-Israel Inst of Technology, Haifa, Isr",
  classification = "723; 921; C1160 (Combinatorial mathematics); C4240
                 (Programming and algorithm theory)",
  corpsource =   "Dept. of Comput. Sci., Technion-Israel Inst. of
                 Technol., Haifa, Israel",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; algorithms; computational complexity;
                 computer programming; CRCW-PRAM; graph theory; graphs;
                 input graph; mathematical techniques --- Graph Theory;
                 maximal matching; parallel algorithm; parallel
                 processing; parallel randomized algorithm; randomized
                 parallel algorithm; undirected graphs; verification",
  pubcountry =   "Netherlands A05",
  subject =      "G.1.0 Mathematics of Computing, NUMERICAL ANALYSIS,
                 General, Parallel algorithms \\ G.2.2 Mathematics of
                 Computing, DISCRETE MATHEMATICS, Graph Theory, Graph
                 algorithms \\ F.2.2 Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Pattern matching",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Israeli:1986:IPA,
  author =       "Amos Israeli and Y. Shiloach",
  title =        "An Improved Parallel Algorithm for Maximal Matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "22",
  number =       "2",
  pages =        "57--60",
  day =          "18",
  month =        jan,
  year =         "1986",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q25 (68R10)",
  MRnumber =     "87g:68023",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Technion-Israel Inst of Technology, Haifa, Isr",
  classification = "722; 723; 921; C1160 (Combinatorial mathematics);
                 C4240 (Programming and algorithm theory)",
  corpsource =   "Dept. of Comput. Sci., Technion-Israel Inst. of
                 Technol., Haifa, Israel",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; algorithms; computational complexity;
                 computer programming; computer systems, digital ---
                 Parallel Processing; CRCW-PRAM; graph matching; graph
                 theory; graphs; mathematical techniques --- Graph
                 Theory; maximal matching; parallel algorithm;
                 performance; undirected graphs; verification",
  pubcountry =   "Netherlands A02",
  subject =      "G.2.2 Mathematics of Computing, DISCRETE MATHEMATICS,
                 Graph Theory, Graph algorithms \\ G.1.0 Mathematics of
                 Computing, NUMERICAL ANALYSIS, General, Parallel
                 algorithms \\ F.2.2 Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Pattern matching",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Landau:1986:ESM,
  author =       "G. M. Landau and U. Vishkin",
  title =        "Efficient string matching with k mismatches",
  journal =      j-THEOR-COMP-SCI,
  volume =       "43",
  number =       "2-3",
  pages =        "239--249",
  month =        "????",
  year =         "1986",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:29:49 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1985.bib",
  acknowledgement = ack-nhfb,
  classification = "C1250 (Pattern recognition); C4240 (Programming and
                 algorithm theory)",
  corpsource =   "Dept. of Comput. Sci., Tel Aviv Univ., Israel",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "computational complexity; pattern matching; pattern
                 recognition; string matching",
  pubcountry =   "Netherlands A07",
  treatment =    "T Theoretical or Mathematical",
}

@InProceedings{Landau:1986:IEP,
  author =       "G. M. Landau and U. Vishkin",
  title =        "Introducing efficient parallelism into approximate
                 string matching and a new serial algorithm",
  crossref =     "ACM:1986:PEA",
  pages =        "220--230",
  year =         "1986",
  bibdate =      "Wed Feb 20 18:33:46 MST 2002",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/stoc/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/stoc/12130/p220-landau/p220-landau.pdf;
                 http://www.acm.org/pubs/citations/proceedings/stoc/12130/p220-landau/",
  acknowledgement = ack-nhfb,
}

@Article{Li:1986:SMC,
  author =       "Ming Li and Yaacov Yesha",
  editor =       "G. R. Andrews",
  title =        "String-Matching Cannot Be Done by a Two-Head One-Way
                 Deterministic Finite Automaton",
  journal =      j-INFO-PROC-LETT,
  volume =       "22",
  number =       "5",
  pages =        "231--235",
  day =          "??",
  month =        apr,
  year =         "1986",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q20",
  MRnumber =     "87h:68058",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       "22",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Cornell Univ, Ithaca, NY, USA",
  classification = "721; C4220 (Automata theory)",
  corpsource =   "Dept. of Comput. Sci., Cornell Univ., Ithaca, NY,
                 USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "automata theory; finite automata; k-head finite
                 automata; Kolmogorov complexity; lower bounds;
                 string-matching; theory; Turning machine; two-head
                 one-way deterministic finite automaton; verification",
  pubcountry =   "Netherlands A03",
  subject =      "F.1.1 Theory of Computation, COMPUTATION BY ABSTRACT
                 DEVICES, Models of Computation, Automata \\ F.2.2
                 Theory of Computation, ANALYSIS OF ALGORITHMS AND
                 PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Sorting and searching",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Liu:1986:SPM,
  author =       "Ken-Chih Liu",
  title =        "A String Pattern Matching Extension to {Pascal} and
                 Some Comparisons with {SNOBOL4}",
  journal =      j-SPE,
  volume =       "16",
  number =       "6",
  pages =        "541--548",
  month =        jun,
  year =         "1986",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@Article{Manolopoulos:1986:BSI,
  author =       "Yannis Manolopoulos",
  title =        "Batched Search of Index Sequential Files",
  journal =      j-INFO-PROC-LETT,
  volume =       "22",
  number =       "5",
  pages =        "267--272",
  day =          "??",
  month =        apr,
  year =         "1986",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Univ of Thessaloniki, Thessaloniki, Greece",
  classification = "723; 903; C6160 (Database management systems
                 (DBMS))",
  corpsource =   "Dept. of Electr. Eng., Thessaloniki Univ., Greece",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "batched search; database management systems; database
                 systems; index sequential files; information retrieval
                 systems --- Online Searching; on-line search;
                 Performance; performance; query; theory; verification",
  pubcountry =   "Netherlands A09",
  subject =      "H.2.m Information Systems, DATABASE MANAGEMENT,
                 Miscellaneous \\ H.3.3 Information Systems, INFORMATION
                 STORAGE AND RETRIEVAL, Information Search and
                 Retrieval, Search process \\ F.2.2 Theory of
                 Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
                 COMPLEXITY, Nonnumerical Algorithms and Problems,
                 Pattern matching",
  treatment =    "P Practical",
}

@Article{Suzuki:1986:SVD,
  author =       "I. Suzuki and Y. Motohashi and K. Taniguchi and T.
                 Kasami and T. Okamoto",
  title =        "Specification and verification of decentralized daisy
                 chain arbiters with omega-extended regular
                 expressions",
  journal =      j-THEOR-COMP-SCI,
  volume =       "43",
  number =       "2-3",
  pages =        "277--291",
  month =        "????",
  year =         "1986",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:29:49 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1985.bib",
  acknowledgement = ack-nhfb,
  classification = "C4210 (Formal logic); C4230 (Switching theory);
                 C4240 (Programming and algorithm theory)",
  corpsource =   "Dept. of Electr. Eng., Texas Tech Univ., Lubbock, TX,
                 USA",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "computer interfaces; concurrent processes; containment
                 problem; decentralized daisy chain arbiters;
                 distributed processing; eventuality; finite event
                 sequences; formal logic; infinite event sequences;
                 liveness; logical circuits; omega-extended regular
                 expressions; programming theory; property proving;
                 property specification; property verification;
                 switching networks; temporal logic",
  pubcountry =   "Netherlands A10",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Takahashi:1986:NSS,
  author =       "K. Takahashi and H. Yamada and H. Nagai and K.
                 Matsumi",
  title =        "A new string search hardware architecture for {VLSI}",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "14",
  number =       "2",
  pages =        "20--27",
  month =        jun,
  year =         "1986",
  CODEN =        "CANED2",
  ISSN =         "0163-5964 (ACM), 0884-7495 (IEEE)",
  bibdate =      "Fri May 12 09:40:43 MDT 2006",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigarch.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@Article{Takaoka:1986:LPM,
  author =       "Tadao Takaoka",
  title =        "An On-Line Pattern Matching Algorithm",
  journal =      j-INFO-PROC-LETT,
  volume =       "22",
  number =       "6",
  pages =        "329--330",
  day =          "30",
  month =        may,
  year =         "1986",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Univ of Ibaraki, Hitachi, Jpn",
  classification = "723; C6130 (Data handling techniques)",
  corpsource =   "Dept. of Inf. Sci., Ibaraki Univ., Japan",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; algorithms; computer programming; data
                 handling; on-line editor; on-line pattern matching
                 algorithm; pattern input; pattern matching algorithm;
                 reading input symbols; response time; text editor; text
                 editors; theory",
  pubcountry =   "Netherlands A11",
  subject =      "I.7.1 Computing Methodologies, TEXT PROCESSING, Text
                 Editing \\ I.5.4 Computing Methodologies, PATTERN
                 RECOGNITION, Applications, Computer vision",
  treatment =    "G General Review",
}

@Article{Takaoka:1986:OPM,
  author =       "Tadao Takaoka",
  title =        "An On-Line Pattern Matching Algorithm",
  journal =      j-INFO-PROC-LETT,
  volume =       "22",
  number =       "6",
  pages =        "329--330",
  day =          "30",
  month =        may,
  year =         "1986",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Univ of Ibaraki, Hitachi, Jpn",
  classification = "723; C6130 (Data handling techniques)",
  corpsource =   "Dept. of Inf. Sci., Ibaraki Univ., Japan",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190/",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; algorithms; computer programming; data
                 handling; on-line editor; on-line pattern matching
                 algorithm; pattern input; pattern matching algorithm;
                 reading input symbols; response time; text editor; text
                 editors; theory",
  pubcountry =   "Netherlands A11",
  subject =      "I.7.1 Computing Methodologies, TEXT PROCESSING, Text
                 Editing \\ I.5.4 Computing Methodologies, PATTERN
                 RECOGNITION, Applications, Computer vision",
  treatment =    "G General Review",
}

@Article{Turner:1986:OM,
  author =       "D. Turner",
  title =        "An overview of {Miranda}",
  journal =      j-SIGPLAN,
  volume =       "21",
  number =       "12",
  pages =        "158--166",
  month =        dec,
  year =         "1986",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:15:06 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  acknowledgement = ack-nhfb,
  classification = "C6115 (Programming support); C6120 (File
                 organisation); C6140D (High level languages)",
  corpsource =   "Comput. Lab., Kent Univ., Canterbury, UK",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "abstract data types; advanced functional programming
                 system; block structure; currying; data structures;
                 guarded equations; high level languages; higher order
                 functions; infinite lists; languages; lazy evaluation;
                 linking; Miranda; Miranda programming environment;
                 pattern matching; polymorphic strong typing;
                 programming environments; separate compilation; type
                 synonyms; UNIX operating system; user defined types; ZF
                 expressions",
  pubcountry =   "USA A11",
  subject =      "D.3.2 Software, PROGRAMMING LANGUAGES, Language
                 Classifications \\ D.4.0 Software, OPERATING SYSTEMS,
                 General, UNIX",
  treatment =    "P Practical; R Product Review",
}

@InProceedings{Wolberg:1986:SOF,
  author =       "George Wolberg",
  title =        "A Syntactic Omni-Font Character Recognition System",
  crossref =     "IEEE:1986:PCI",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "168--173",
  year =         "1986",
  ISBN =         "0-8186-0721-1",
  ISBN-13 =      "978-0-8186-0721-9",
  LCCN =         "TA1632 .I36 1986",
  bibdate =      "Mon May 11 18:31:33 1998",
  bibsource =    "Compendex database; Graphics/rosenfeld/1986.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/typeset.bib",
  note =         "IEEE Service Cent. Piscataway, NJ, USA.",
  abstract =     "The author introduces a syntactic omni-font character
                 recognition system that recognizes a wide range of
                 fonts, including handprinted characters. A structural
                 pattern-matching approach is used. Essentially, a set
                 of loosely constrained rules specify pattern components
                 and their interrelationships. The robustness of the
                 system is derived from the orthogonal set of pattern
                 descriptors, location functions, and the manner in
                 which they are combined to exploit the topological
                 structure of characters. By virtue of the new pattern
                 description language, PDL, the user may easily write
                 rules to define new patterns for the system to
                 recognize. The system also features scale-invariance
                 and user-definable sensitivity to tilt orientation. The
                 system has achieved a 95. 2\% recognition rate.",
  acknowledgement = ack-nhfb,
  affiliation =  "Columbia Univ, New York, NY, USA",
  affiliationaddress = "Columbia Univ, New York, NY, USA",
  classification = "723",
  conference =   "Proceedings --- CVPR '86: IEEE Computer Society
                 Conference on Computer Vision and Pattern
                 Recognition.",
  keywords =     "character recognition; computer programming languages;
                 image; pattern description language (PDL); robustness;
                 structural pattern matching; symbol; syntactic omnifont
                 character recognition",
  meetingaddress = "Miami Beach, FL, USA",
  sponsor =      "IEEE Computer Soc, Los Alamitos, CA, USA",
}

@Misc{Woods:1986:MPB,
  author =       "J. A. Woods",
  title =        "More pep for {Boyer--Moore} {\tt grep}",
  howpublished = "Usenet netnews group {\tt net.unix}",
  day =          "18",
  month =        mar,
  year =         "1986",
  bibdate =      "Sat Sep 02 14:34:18 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  remark =       "See also \cite{Woods:1986:MPB}.",
}

@Article{Abrahamson:1987:GSM,
  author =       "Karl Abrahamson",
  title =        "Generalized String Matching",
  journal =      j-SIAM-J-COMPUT,
  volume =       "16",
  number =       "6",
  pages =        "1039--1051",
  month =        dec,
  year =         "1987",
  CODEN =        "SMJCAT",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68Q25",
  MRnumber =     "90a:68034",
  MRreviewer =   "Jaroslav Ne{\v{s}}et{\v{r}}il",
  bibdate =      "Mon Nov 29 11:00:58 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/16/6;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Blumer:1987:CIF,
  author =       "A. Blumer and J. Blumer and D. Haussler and R.
                 McConnell and A. Ehrenfeucht",
  title =        "Complete Inverted Files for Efficient Text Retrieval
                 and Analysis",
  journal =      j-J-ACM,
  volume =       "34",
  number =       "3",
  pages =        "578--595",
  month =        jul,
  year =         "1987",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Wed Jan 15 18:12:53 MST 1997",
  bibsource =    "Compendex database;
                 ftp://ftp.ira.uka.de/pub/bibliography/Misc/IMMD_IV.bib;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0004-5411/28873.html",
  abstract =     "Given a finite set of texts {$S$} equals $ \{ w_1,
                 \ldots {}, w_k \} $ over some fixed finite alphabet {$
                 \Sigma $}, a complete inverted file for {$S$} is an
                 abstract data type that provides the functions {\tt
                 find}($w$ ), which returns the longest prefix of $w$
                 that occurs (as a subword of a word) in {$S$}; {\tt
                 freq}($w$ ), which returns the number of times $w$
                 occurs in {$S$}; and {\tt locations}($w$ ), which
                 returns the set of positions where $w$ occurs in {$S$}.
                 A data structure that implements a complete inverted
                 file for {$S$} that occupies linear space and can be
                 built in linear time, using the uniform-cost RAM model,
                 is given. Using this data structure, the time for each
                 of the above query functions is optimal. To accomplish
                 this, techniques from the theory of finite automata and
                 the work on suffix trees are used to build a
                 deterministic finite automation that recognizes the set
                 of all subwords of the set {$S$}. This automation is
                 then annotated with additional information and
                 compacted to facilitate the desired query functions.
                 The result is a data structure that is smaller and more
                 flexible than the suffix tree.",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Univ of Denver, Denver, CO, USA",
  annote =       "Data structure is a compact directed acyclic word
                 graph. Searches for arbitrary strings are allowed.
                 Suggest searching DNA sequences. Linear times for
                 finding the longest prefix of a keyword.",
  classification = "721; 723; 903",
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  journalabr =   "J Assoc Comput Mach",
  keywords =     "algorithms; automata theory --- Finite Automata;
                 complete inverted files; data processing; Data
                 Structures; information science --- Information
                 Retrieval; mathematical techniques --- Trees; suffix
                 trees; text retrieval and analysis; theory",
  subject =      "{\bf E.1}: Data, DATA STRUCTURES, Graphs. {\bf F.2.2}:
                 Theory of Computation, ANALYSIS OF ALGORITHMS AND
                 PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Pattern matching. {\bf H.3.1}: Information
                 Systems, INFORMATION STORAGE AND RETRIEVAL, Content
                 Analysis and Indexing, Indexing methods.",
}

@Article{Bowman:1987:PMU,
  author =       "Charles F. Bowman",
  title =        "Pattern Matching Using Finite State Machines",
  journal =      j-DDJ,
  volume =       "12",
  number =       "10",
  pages =        "46--??",
  month =        oct,
  year =         "1987",
  CODEN =        "DDJOEB",
  ISSN =         "0888-3076",
  bibdate =      "Thu Jan 9 09:35:43 MST 1997",
  bibsource =    "Compendex database;
                 http://www.ddj.com/index/author/index.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "721; 723",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  journalabr =   "Dr Dobb's J Software Tools",
  keywords =     "automata theory --- Finite Automata; command finding
                 code; computer programs; computer software ---
                 Portability; finite state machines; pattern matching;
                 pattern recognition; source code",
  pagecount =    "14p between p 46 and 108",
}

@Article{Carpenter:1987:MPA,
  author =       "Gail A. Carpenter and Stephen Grossberg",
  title =        "A Massively Parallel Architecture for a
                 Self-Organizing Neural Pattern Recognition Machine",
  journal =      j-CVGIP,
  volume =       "37",
  number =       "1",
  pages =        "54--115",
  month =        jan,
  year =         "1987",
  CODEN =        "CVGPDB",
  ISSN =         "0734-189x (print), 1557-895x (electronic)",
  ISSN-L =       "0734-189X",
  bibdate =      "Fri Feb 7 17:18:02 1997",
  bibsource =    "Ai/adapt.sys.bib; Ai/Speech.bib; Compendex database;
                 Graphics/rosenfeld/1987.bib;
                 https://www.math.utah.edu/pub/tex/bib/cvgip.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 Math/kbmath.bib; Misc/misc.1.bib;
                 Neural/hildebrandt.bib; Neural/Intro.theory.neural.bib;
                 Neural/neural.1.bib; Neural/neural.5.bib",
  note =         "CARPENTER87",
  abstract =     "A neural network architecture for the learning of
                 recognition categories is derived. Real-time network
                 dynamics are completely characterized through
                 mathematical analysis and computer simulations. The
                 architecture self-organizes and self-stabilizes its
                 recognition codes in response to arbitrary orderings of
                 arbitrarily many and arbitrarily complex binary input
                 patterns. Top-down attentional and matching mechanisms
                 are critical in self-stabilizing the code learning
                 process. The architecture embodies a parallel search
                 scheme which updates itself adaptively as the learning
                 process unfolds. After learning self-stabilizes, the
                 search process is automatically disengaged. Thereafter
                 input patterns directly access their recognition codes
                 without any search. Thus recognition time does not grow
                 as a function of code complexity. A novel input pattern
                 can directly access a category if it shares invariant
                 properties with the set of familiar exemplars of that
                 category. These invariant properties emerge in the form
                 of learned critical feature patterns, or prototypes.
                 The architecture possesses a context-sensitive
                 self-scaling property which enables its emergent
                 critical feature patterns to form. They detect and
                 remember statistically predictive configurations of
                 featural elements which are derived from the set of all
                 input patterns that are ever experienced. Four types of
                 attentional process --- priming, gain control,
                 vigilance, and intermodal competition --- are
                 mechanistically characterized. Top-down priming and
                 gain control are needed for code matching and
                 self-stabilization. Attentional vigilance determines
                 how fine the learned categories will be. If vigilance
                 increases due to an environmental disconfirmation, then
                 the system automatically searches for and learns finer
                 recognition categories. A new nonlinear matching law
                 (the $ \frac {2}{3} $ Rule) and new nonlinear
                 associative laws (the Weber Law Rule, the Associative
                 Decay Rule, and the Template Learning Rule) are needed
                 to achieve these properties. All the rules describe
                 emergent properties of parallel network interactions.
                 The architecture circumvents the noise, saturation,
                 capacity, orthogonality, and linear predictability
                 constraints that limit the codes which can be stably
                 learned by alternative recognition models.",
  acknowledgement = ack-nhfb,
  affiliation =  "NEU/Boston U",
  affiliationaddress = "Northeastern Univ, Boston, MA, USA",
  annote =       "A monograph describing the function and implementation
                 of the ART model along with the equations governing its
                 dynamics and several theorems concerning the nature of
                 the patterns learned, and the stability of the learning
                 model. The model consists of two layers of cells with
                 an asymmetric network of weighted interconnections. The
                 first layer of cells implements matching between the
                 input signal and stored patterns. The second layer
                 implements competition among the possible encodings for
                 the input. It also implements a search mechanism,
                 whereby an insufficient match with the template
                 recalled by the initial winner of the competition
                 causes that code to be disabled for the rest of the
                 trial. The closeness of the required match is
                 determined by the vigilance parameter, which is coded
                 as a proportion of the magnitude of the input. The
                 authors suggest that the vigilance parameter may be
                 increased automatically in response to negative
                 environmental feedback, but this process lies outside
                 the scope of the model being described. The model is
                 capable of learning stable ``critical feature''
                 patterns, which consist of the intersection of the
                 (binary) feature patterns assigned to a class. The
                 number of classes created for a given set of training
                 patterns is controlled by the vigilance parameter (a
                 larger vigilance parameter causes more classes to be
                 created).",
  classification = "723; 921",
  conference =   "Third Workshop on Hum and Mach Vision",
  equations =    "168",
  figures =      "14",
  fjournal =     "Computer Vision, Graphics, and Image Processing",
  index =        "ART",
  journal-URL =  "http://www.sciencedirect.com/science/journal/0734189X",
  journalabr =   "Comput Vision Graphics Image Process",
  keywords =     "(image multiplicity comparison); computer simulation;
                 interacting memory systems; massively parallel
                 architecture; mathematical techniques --- Differential
                 Equations; pattern recognition; perception; recognition
                 codes; self-organizing neural pattern recognition
                 machine",
  meetingaddress = "Boston, MA, USA",
  meetingdate =  "Nov 19--21 1985",
  meetingdate2 = "11/19--21/85",
  ref =          "J18",
  refs =         "40",
}

@InProceedings{Chase:1987:IBT,
  author =       "D. R. Chase",
  title =        "An improvement to bottom-up tree pattern matching",
  crossref =     "ACM:1987:PFA",
  pages =        "168--177",
  year =         "1987",
  bibdate =      "Mon May 3 12:39:13 MDT 1999",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/plan/41625/p168-chase/",
  acknowledgement = ack-nhfb,
  keywords =     "algorithms; languages; theory",
  subject =      "{\bf E.1} Data, DATA STRUCTURES, Trees. {\bf E.4}
                 Data, CODING AND INFORMATION THEORY. {\bf F.2.2} Theory
                 of Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
                 COMPLEXITY, Nonnumerical Algorithms and Problems,
                 Pattern matching.",
}

@Article{Chrobak:1987:RSM,
  author =       "Marek Chrobak and Wojciech Rytter",
  title =        "Remarks on string-matching and one-way multihead
                 automata",
  journal =      j-INFO-PROC-LETT,
  volume =       "24",
  number =       "5",
  pages =        "325--329",
  day =          "16",
  month =        mar,
  year =         "1987",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q20 (68Q05 68Q25)",
  MRnumber =     "88f:68043",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Warsaw Univ, Warsaw, Pol",
  classification = "721; 723; C4220 (Automata theory); C4240
                 (Programming and algorithm theory)",
  corpsource =   "Inst. of Inf., Warsaw Univ., Poland",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "automata theory; complexity; computational complexity;
                 computer metatheory; multihead automata; one-way
                 multihead automata; string-matching; theory;
                 verification",
  pubcountry =   "Netherlands A09",
  subject =      "F.1.1 Theory of Computation, COMPUTATION BY ABSTRACT
                 DEVICES, Models of Computation, Automata \\ F.1.3
                 Theory of Computation, COMPUTATION BY ABSTRACT DEVICES,
                 Complexity Classes \\ F.2.2 Theory of Computation,
                 ANALYSIS OF ALGORITHMS AND PROBLEM COMPLEXITY,
                 Nonnumerical Algorithms and Problems, Pattern
                 matching",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Coulson:1987:PNA,
  author =       "A. F. W. Coulson and J. F. Collins and A. Lyall",
  title =        "Protein and Nucleic Acid Sequence Database Searching:
                 a Suitable Case for Parallel Processing",
  journal =      j-COMP-J,
  volume =       "30",
  number =       "5",
  pages =        "420--424",
  month =        oct,
  year =         "1987",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/30.5.420",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Tue Dec 4 14:48:23 MST 2012",
  bibsource =    "Compendex database;
                 http://comjnl.oxfordjournals.org/content/30/5.toc;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_30/Issue_05/;
                 https://www.math.utah.edu/pub/tex/bib/compj.bib;
                 https://www.math.utah.edu/pub/tex/bib/compj1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/30/5/420.full.pdf+html;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_30/Issue_05/tiff/420.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_30/Issue_05/tiff/421.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_30/Issue_05/tiff/422.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_30/Issue_05/tiff/423.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_30/Issue_05/tiff/424.tif",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Edinburgh, Edinburgh, Scotl",
  affiliationaddress = "Univ of Edinburgh, Edinburgh, Scotl",
  classcodes =   "A3620E (Constitution (chains and sequences)); A8715B
                 (Structure, configuration, conformation, and active
                 sites at the biomolecular level); C7250L
                 (Non-bibliographic systems); C7320 (Physics and
                 Chemistry); C7330 (Biology and medicine)",
  classification = "461; 722; 723; 815",
  corpsource =   "Dept. of Molecular Biol., Edinburgh Univ., UK",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  keywords =     "biology computing; biopolymers --- Database Systems;
                 computer programming --- Algorithms; computer systems,
                 digital; configurations; cystic fibrosis antigen;
                 cystic fibrosis associated antigen; DAP; database
                 systems --- Medical Applications; distributed array
                 processor (DAP) implementation; Drosophila
                 vitellogenins; information retrieval; macromolecular;
                 macromolecules; molecular biophysics; nucleic acid
                 databases; Parallel Processing; parallel processing;
                 pattern direction and searching; physics computing;
                 processor-array machines; protein and nucleic acid
                 sequence database searching; protein databases; protein
                 sequence data; proteins; searching; sequence database;
                 string-matching algorithms",
  treatment =    "P Practical",
}

@InProceedings{Cruz:1987:GQL,
  author =       "Isabel F. Cruz and Alberto O. Mendelzon and Peter T.
                 Wood",
  title =        "A graphical query language supporting recursion",
  crossref =     "Dayal:1987:PAC",
  pages =        "323--330",
  year =         "1987",
  bibdate =      "Wed Oct 25 12:40:13 MDT 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/mod/38713/p323-cruz/p323-cruz.pdf;
                 http://www.acm.org/pubs/citations/proceedings/mod/38713/p323-cruz/",
  abstract =     "We define a language G for querying data represented
                 as a labeled graph {\em G}. By considering {$G$} as a
                 relation, this graphical query language can be viewed
                 as a relational query language, and its expressive
                 power can be compared to that of other relational query
                 languages. We do not propose G as an alternative to
                 general purpose relational query languages, but rather
                 as a complementary language in which recursive queries
                 are simple to formulate. The user is aided in this
                 formulation by means of a graphical interface. The
                 provision of regular expressions in G allows recursive
                 queries more general than transitive closure to be
                 posed, although the language is not as powerful as
                 those based on function-free Horn clauses. However, we
                 hope to be able to exploit well-known graph algorithms
                 in evaluating recursive queries efficiently, a topic
                 which has received widespread attention recently.",
  acknowledgement = ack-nhfb,
  generalterms = "Languages; Theory",
  subject =      "Information Systems --- Database Management ---
                 Languages (H.2.3); Information Systems --- Database
                 Management --- Logical Design (H.2.1): {\bf Data
                 models}; Mathematics of Computing --- Discrete
                 Mathematics --- Graph Theory (G.2.2): {\bf Path and
                 circuit problems}; Theory of Computation ---
                 Mathematical Logic and Formal Languages ---
                 Mathematical Logic (F.4.1): {\bf Recursive function
                 theory}",
}

@Article{Galil:1987:PSM,
  author =       "Z. Galil and R. Giancarlo",
  title =        "Parallel string matching with k mismatches",
  journal =      j-THEOR-COMP-SCI,
  volume =       "51",
  number =       "3",
  pages =        "341--348",
  month =        "????",
  year =         "1987",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:29:49 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1985.bib",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory)",
  corpsource =   "Dept. of Comput. Sci., Columbia Univ., New York, NY,
                 USA",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "computational complexity; fast integer multiplication
                 algorithms; k mismatches; parallel algorithms; string
                 matching",
  pubcountry =   "Netherlands A08",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Gueriguian:1987:BRB,
  author =       "John L. Gueriguian",
  title =        "Book Review: {{\booktitle{Bark' Galianosi: The
                 Greek-Armenian Dictionary to Galen}} by John A. C.
                 Greppin}",
  journal =      j-ISIS,
  volume =       "78",
  number =       "2",
  pages =        "300--301",
  month =        jun,
  year =         "1987",
  CODEN =        "ISISA4",
  ISSN =         "0021-1753 (print), 1545-6994 (electronic)",
  ISSN-L =       "0021-1753",
  bibdate =      "Tue Jul 30 21:23:27 MDT 2013",
  bibsource =    "http://www.jstor.org/action/showPublication?journalCode=isis;
                 http://www.jstor.org/stable/i211183;
                 https://www.math.utah.edu/pub/tex/bib/isis1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.jstor.org/stable/231579",
  acknowledgement = ack-nhfb,
  fjournal =     "Isis",
  journal-URL =  "http://www.jstor.org/journal/isis",
}

@Article{Held:1987:MNH,
  author =       "James P. Held and John V. Carlis",
  title =        "{MATCH}: a new high-level relational operator for
                 pattern matching",
  journal =      j-CACM,
  volume =       "30",
  number =       "1",
  pages =        "62--75",
  month =        jan,
  year =         "1987",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Sat Apr 06 08:06:22 1996",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Database/Wiederhold.bib;
                 http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/cacm1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0001-0782/7889.html",
  acknowledgement = ack-nhfb,
  annote =       "MATCH is used to do pattern matching for complex
                 stored patterns. This is a high level language
                 expansion of HAS, which is Carlis' extension of the
                 DIVIDE operator. MATCH requires a change in the data on
                 which it operates, in that it incorporates the
                 operators of relational algebra into the relations.",
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  keywords =     "algorithms; design; languages; theory",
  review =       "ACM CR 8707-0595",
  subject =      "{\bf H.2.1}: Information Systems, DATABASE MANAGEMENT,
                 Logical Design, Data models. {\bf H.2.3}: Information
                 Systems, DATABASE MANAGEMENT, Languages, MATCH. {\bf
                 I.5.m}: Computing Methodologies, PATTERN RECOGNITION,
                 Miscellaneous. {\bf I.2.5}: Computing Methodologies,
                 ARTIFICIAL INTELLIGENCE, Programming Languages and
                 Software. {\bf I.2.1}: Computing Methodologies,
                 ARTIFICIAL INTELLIGENCE, Applications and Expert
                 Systems. {\bf H.3.3}: Information Systems, INFORMATION
                 STORAGE AND RETRIEVAL, Information Search and
                 Retrieval.",
}

@Article{Jpolhkedrzejowicz:1987:NSC,
  author =       "Joanna J{\polhk{e}}drzejowicz",
  title =        "Nesting of shuffle closure is important",
  journal =      j-INFO-PROC-LETT,
  volume =       "25",
  number =       "6",
  pages =        "363--367",
  day =          "26",
  month =        jul,
  year =         "1987",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q45 (68Q90)",
  MRnumber =     "88j:68086",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "721; C4210 (Formal logic)",
  corpsource =   "Inst. of Math., Gdansk Univ., Poland",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "automata theory; extended regular languages; formal
                 languages; languages; shuffle closure; shuffle
                 expressions; shuffle language; shuffle languages;
                 shuffle operator; subexpression properties; theory;
                 verification",
  pubcountry =   "Netherlands A02",
  subject =      "F.4.3 Theory of Computation, MATHEMATICAL LOGIC AND
                 FORMAL LANGUAGES, Formal Languages, Classes defined by
                 grammars or automata \\ F.4.3 Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Formal
                 Languages, Algebraic language theory",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Karlin:1987:ACR,
  author =       "Anna R. Karlin and Howard W. Trickey and Jeffrey D.
                 Ullman",
  title =        "Algorithms for the Compilation of Regular Expressions
                 into {PLAs}",
  journal =      j-ALGORITHMICA,
  volume =       "2",
  number =       "3",
  pages =        "283--314",
  year =         "1987",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68Q50 (68Q35)",
  MRnumber =     "MR911953",
  bibdate =      "Mon Jan 22 05:30:30 MST 2001",
  bibsource =    "dblp-journals-algorithmica.bib;
                 http://dblp.uni-trier.de/db/journals/algorithmica/algorithmica2.html#KarlinTU87;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
  oldlabel =     "KarlinTU87",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/algorithmica/KarlinTU87",
}

@Article{Karp:1987:ERP,
  author =       "Richard M. Karp and Michael O. Rabin",
  title =        "Efficient Randomized Pattern-Matching Algorithms",
  journal =      j-IBM-JRD,
  volume =       "31",
  number =       "2",
  pages =        "249--260",
  month =        mar,
  year =         "1987",
  CODEN =        "IBMJAE",
  ISSN =         "0018-8646 (print), 2151-8556 (electronic)",
  ISSN-L =       "0018-8646",
  MRclass =      "68Q20",
  MRnumber =     "89g:68021",
  bibdate =      "Mon Feb 12 09:58:53 MST 2001",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/ibmjrd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  ZMnumber =     "653.68054",
  abstract =     "We present randomized algorithms to solve the
                 following string-matching problem and some of its
                 generalizations: Given a string X of length n (the
                 pattern) and a string Y (the text), find the first
                 occurrence of X as a consecutive block within Y. The
                 algorithms represent strings of length n by much
                 shorter strings called fingerprints, and achieve their
                 efficiency by manipulating fingerprints instead of
                 longer strings. The algorithms require a constant
                 number of storage locations, and essentially run in
                 real time. They are conceptually simple and easy to
                 implement. The method readily generalizes to
                 higher-dimensional pattern-matching problems.",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of California, Berkeley, CA, USA",
  affiliationaddress = "Univ of California, Berkeley, CA, USA",
  classcodes =   "C6130D (Document processing techniques)",
  classification = "723; 921",
  conference =   "Math and Comput",
  corpsource =   "California Univ., Berkeley, CA, USA",
  fjournal =     "IBM Journal of Research and Development",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5288520",
  journalabr =   "IBM J Res Dev",
  keywords =     "Algorithms; computer programming; computerised pattern
                 recognition; consecutive block; fingerprint functions;
                 fingerprints; mathematical techniques --- Algorithms;
                 pattern recognition; pattern-matching; problem;
                 randomized pattern-matching algorithms; storage
                 locations; string-matching; word processing",
  meetingaddress = "Yorktown Heights, NY, USA",
  meetingdate =  "Dec 1985",
  meetingdate2 = "12/85",
  treatment =    "P Practical",
}

@Article{Kovaleski:1987:AIS,
  author =       "A. Kovaleski and S. Ratheal and F. Lombardi",
  title =        "An architecture and an interconnection scheme for
                 time-sliced buses",
  journal =      j-J-PAR-DIST-COMP,
  volume =       "4",
  number =       "2",
  pages =        "209--229",
  month =        apr,
  year =         "1987",
  CODEN =        "JPDCER",
  ISSN =         "0743-7315 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Sat Apr 12 19:06:31 MDT 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/jpardistcomp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "722; 723; C5220 (Computer architecture); C5470
                 (Performance evaluation and testing); C7430 (Computer
                 engineering)",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  journalabr =   "J Parallel Distrib Comput",
  keywords =     "architecture; bandwidths; bus network; communication
                 patterns; computer architecture; computer systems,
                 digital; evaluation; image processing; interbus links;
                 interbus links of matching; interconnection scheme;
                 local communications; machine simulation; matching
                 bandwidths; multiprocessor interconnection; networks;
                 Performance; performance; performance evaluation;
                 sliced buses; time-; time-sliced buses; virtual
                 machines",
  treatment =    "P Practical; X Experimental",
}

@Article{Krishnapuram:1987:HST,
  author =       "Raghuram Krishnapuram and David Casasent",
  title =        "{Hough} Space Transformations for Discrimination and
                 Distortion Estimation",
  journal =      j-CVGIP,
  volume =       "38",
  number =       "3",
  pages =        "299--316",
  month =        jun,
  year =         "1987",
  CODEN =        "CVGPDB",
  ISSN =         "0734-189x (print), 1557-895x (electronic)",
  ISSN-L =       "0734-189X",
  bibdate =      "Thu Feb 6 18:44:11 MST 1997",
  bibsource =    "Compendex database; Graphics/rosenfeld/1987.bib;
                 https://www.math.utah.edu/pub/tex/bib/cvgip.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "CMU",
  affiliationaddress = "Carnegie-Mellon Univ, Pittsburgh, PA, USA",
  classification = "723",
  fjournal =     "Computer Vision, Graphics, and Image Processing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/0734189X",
  journalabr =   "Comput Vision Graphics Image Process",
  keywords =     "(image transformation, mathematics); aircraft imagery;
                 data processing --- Algorithms; discrimination;
                 distortion estimation; Hough space transformations;
                 image processing; mathematical transformations; pattern
                 recognition --- Applications; template matching",
}

@Article{Landau:1987:ESM,
  author =       "Gad M. Landau and Uzi Vishkin and Ruth Nussinov",
  title =        "An efficient string matching algorithm with {$K$}
                 substitutions for nucleotide and amino acid sequences",
  journal =      j-J-THEOR-BIOL,
  volume =       "126",
  number =       "4",
  pages =        "483--490",
  day =          "21",
  month =        jun,
  year =         "1987",
  CODEN =        "JTBIAP",
  DOI =          "https://doi.org/10.1016/S0022-5193(87)80153-4",
  ISSN =         "0022-5193 (print), 1095-8541 (electronic)",
  ISSN-L =       "0022-5193",
  bibdate =      "Sat Jun 1 15:22:16 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jtheorbiol1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022519387801534",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Theoretical Biology",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00225193",
}

@Article{Peleg:1987:CPS,
  author =       "D. Peleg",
  title =        "Concurrent program schemes and their logics",
  journal =      j-THEOR-COMP-SCI,
  volume =       "55",
  number =       "1",
  pages =        "1--45",
  month =        nov,
  year =         "1987",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:29:49 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1985.bib",
  acknowledgement = ack-nhfb,
  classification = "C4210 (Formal logic); C6150J (Operating systems)",
  corpsource =   "Dept. of Appl. Math., Weizmann Inst. of Sci., Rehovot,
                 Israel",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "axiomatization; Boolean-variable; concurrent program
                 schemes; decidability; formal languages; formal logic;
                 goto schemes; grammars; logics; multiprocessing
                 programs; propositional levels; regular expressions;
                 structured schemes; trees",
  pubcountry =   "Netherlands A01",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Pike:1987:TES,
  author =       "Rob Pike",
  title =        "The Text Editor {\tt sam}",
  journal =      j-SPE,
  volume =       "17",
  number =       "11",
  pages =        "813--845",
  month =        nov,
  year =         "1987",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380171105",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "30 Oct 2006",
}

@Article{Robison:1987:IFP,
  author =       "A. D. Robison",
  title =        "The {Illinois} functional programming interpreter",
  journal =      j-SIGPLAN,
  volume =       "22",
  number =       "7",
  pages =        "64--73",
  month =        jul,
  year =         "1987",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/960114.29657",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 16:23:52 MDT 2008",
  bibsource =    "http://portal.acm.org/; http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-SIGPLAN,
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/plan/29650/p64-robison/",
  abstract =     "The Illinois Functional Programming (IFP) language is
                 a modified version of Backus' FP\1. IFP has the same
                 side-effect free combinator style of Backus FP, while
                 introducing an ALGOL-like syntax and structure. While
                 IFP superficially appears to be an inefficient language
                 to execute, its simplicity makes it quick to interpret.
                 Functions are always monadic and there are no variable
                 or parameter names. Furthermore, combinator-style
                 languages allow common housekeeping operations to be
                 condensed into efficient machine-language primitives.
                 By reference-counting, the interpreter can often
                 convert call-by-value to destructive call-by-reference
                 while preserving referential transparency. The
                 interpreter has an expression cache which can improve
                 the asymptotic time of some combinatorial functions.
                 IFP function definitions are stored as UNIX files, so
                 much of UNIX's functionality is immediately borrowed
                 into the IFP environment, e.g. ls, more, and grep.
                 Benchmarks indicate that IFP is an order of magnitude
                 faster than Berkeley FP[2], and is competitive with
                 interpreted von-Neumann languages such as BASIC. The
                 interpreter can parallel process on shared-memory
                 multiprocessors, e.g. the Encore Multimax. IFP
                 currently runs on machines as varied as the IBM PC,
                 VAX, and CRAY-XMP.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "design; languages",
  subject =      "{\bf D.3.4} Software, PROGRAMMING LANGUAGES,
                 Processors, Interpreters. {\bf D.3.2} Software,
                 PROGRAMMING LANGUAGES, Language Classifications, FP.
                 {\bf D.3.3} Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Data types and structures.",
}

@Article{Sykora:1987:TCA,
  author =       "O. S{\'y}kora and I. V{\v{r}}{\soft{t}}o",
  title =        "Tight chip area lower bounds for string matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "26",
  number =       "3",
  pages =        "117--119",
  day =          "23",
  month =        nov,
  year =         "1987",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q35",
  MRnumber =     "89k:68079",
  MRreviewer =   "Christoph Meinel",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Slovak Acad of Sciences, Bratislava, Czech",
  classification = "714; 721; 723; 921; B0250 (Combinatorial
                 mathematics); B2570 (Semiconductor integrated
                 circuits); C4240 (Programming and algorithm theory)",
  corpsource =   "Inst. of Tech. Cybern., Slovak Acad. of Sci.,
                 Bratislava, Czechoslovakia",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Boolean functions; chip area; communication graph;
                 computational complexity; computer metatheory ---
                 Boolean Functions; graph theory; integrated circuits,
                 VLSI; logic circuits --- Theory; mathematical
                 techniques --- Graph Theory; string matching; Theory;
                 theory; tight lower bounds; verification; VLSI; VLSI
                 circuit",
  pubcountry =   "Netherlands A02",
  subject =      "F.2.2 Theory of Computation, ANALYSIS OF ALGORITHMS
                 AND PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Pattern matching \\ B.7.1 Hardware,
                 INTEGRATED CIRCUITS, Types and Design Styles, VLSI
                 (very large scale integration)",
  treatment =    "T Theoretical or Mathematical",
}

@Article{VanBiljon:1987:RAP,
  author =       "W. R. {Van Biljon} and D. A. Sewry and M. A. Mulders",
  title =        "Register Allocation in a Pattern Matching Code
                 Generator",
  journal =      j-SPE,
  volume =       "17",
  number =       "8",
  pages =        "521--531",
  month =        aug,
  year =         "1987",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "algorithms; performance",
  review =       "ACM CR 8808-0608",
  subject =      "D.3.4 Software, PROGRAMMING LANGUAGES, Processors,
                 Compilers \\ F.2.2 Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Pattern matching \\ D.4.2
                 Software, OPERATING SYSTEMS, Storage Management,
                 Allocation/deallocation strategies \\ B.5.1 Hardware,
                 REGISTER-TRANSFER-LEVEL IMPLEMENTATION, Design",
}

@InProceedings{Wadler:1987:VWP,
  author =       "P. Wadler",
  title =        "{Views}: a way for pattern matching to cohabit with
                 data abstraction",
  crossref =     "ACM:1987:PFA",
  pages =        "307--313",
  year =         "1987",
  bibdate =      "Mon May 3 12:39:13 MDT 1999",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/plan/41625/p307-wadler/",
  acknowledgement = ack-nhfb,
  keywords =     "algorithms; languages; theory",
  subject =      "{\bf F.2.2} Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Pattern matching. {\bf F.3.3}
                 Theory of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Studies of Program Constructs, Type structure. {\bf
                 E.2} Data, DATA STORAGE REPRESENTATIONS. {\bf D.3.2}
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Applicative (functional) languages.
                 {\bf D.3.3} Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Abstract data types.",
}

@Misc{Woods:1987:E,
  author =       "J. A. Woods",
  title =        "{\tt egrep}",
  howpublished = "Usenet netnews group {\tt net.unix}",
  month =        mar,
  year =         "1987",
  bibdate =      "Sat Sep 02 14:34:18 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  remark =       "See also \cite{Woods:1986:MPB}.",
}

@Article{Zaki:1987:FDA,
  author =       "M. Zaki and Al. H. Albarhamtoshy",
  title =        "Formal Design of an {Arabic} Text Formatter for
                 Microcomputers",
  journal =      j-COMP-LANGS,
  volume =       "12",
  number =       "2",
  pages =        "123--143",
  month =        "????",
  year =         "1987",
  CODEN =        "COLADA",
  ISSN =         "0096-0551 (print), 1873-6742 (electronic)",
  ISSN-L =       "0096-0551",
  bibdate =      "Tue Mar 25 14:04:06 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/complngs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/typeset.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Al-Azhar Univ, Cairo, Egypt",
  classcodes =   "C4220 (Automata theory); C4240 (Programming and
                 algorithm theory); C6130D (Document processing
                 techniques)",
  classification = "723",
  corpsource =   "Dept. of Comput. and Syst. Eng., Al-Azhar Univ.,
                 Cairo, Egypt",
  fjournal =     "Computer Languages",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00960551",
  journalabr =   "Comput Lang",
  keywords =     "Arabic characters; Arabic letter; Arabic text; Arabic
                 text formatter; automata; character generator;
                 character sets; computer software; data processing;
                 deterministic automata; deterministic finite; finite
                 automata; keyboard; nondeterministic finite automata;
                 regular expressions; states minimization; symbol
                 format; text editing; text formatter; transition rules;
                 Word Processing; word processing; Word Processing",
  treatment =    "P Practical",
}

@Article{Carroll:1988:RBP,
  author =       "David M. Carroll and Christine A. Pogue and Peter
                 Willett",
  title =        "Research: Bibliographic pattern matching using the
                 {ICL Distributed Array Processor}",
  journal =      j-J-AM-SOC-INF-SCI,
  volume =       "39",
  number =       "6",
  pages =        "390--399",
  month =        nov,
  year =         "1988",
  CODEN =        "AISJB6",
  DOI =          "https://doi.org/10.1002/(SICI)1097-4571(198811)39:6<390::AID-ASI2>3.0.CO%3B2-N",
  ISSN =         "0002-8231 (print), 1097-4571 (electronic)",
  ISSN-L =       "0002-8231",
  bibdate =      "Fri Sep 11 09:03:34 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jasis.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the American Society for Information
                 Science",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)2330-1643",
  onlinedate =   "26 May 2007",
}

@Article{Casanova:1988:SPM,
  author =       "Marco A. Casanova and Antonio L. Furtado",
  title =        "String pattern-matching in {Prolog}",
  journal =      j-COMP-LANGS,
  volume =       "13",
  number =       "3-4",
  pages =        "149--170",
  month =        "????",
  year =         "1988",
  CODEN =        "COLADA",
  ISSN =         "0096-0551 (print), 1873-6742 (electronic)",
  ISSN-L =       "0096-0551",
  bibdate =      "Tue Mar 25 14:04:06 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/complngs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Rio de Janeiro, Braz",
  classcodes =   "C6110 (Systems analysis and programming); C6130 (Data
                 handling techniques); C4210 (Formal logic)",
  classification = "721; 723",
  corpsource =   "Rio Sci. Center-IBM Brasil, Rio de Janeiro, Brazil",
  fjournal =     "Computer Languages",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00960551",
  journalabr =   "Comput Lang",
  keywords =     "Automata Theory--Grammars; Computer
                 Metatheory--Programming Theory; Computer Programming
                 Languages; data handling; grammars; handling; logic
                 programming; Logic Programming; pattern-matching;
                 Prolog; PROLOG; Prolog Programs; SNOBOL 4; string;
                 String Pattern Matching; String Processing; Two Level
                 Grammars; two-level grammars",
  treatment =    "P Practical",
}

@Article{Edmiston:1988:PPB,
  author =       "Elizabeth W. Edmiston and Nolan G. Core and Joel H.
                 Saltz and Roger M. Smith",
  title =        "Parallel processing of biological sequence comparison
                 algorithms",
  journal =      j-INT-J-PARALLEL-PROG,
  volume =       "17",
  number =       "3",
  pages =        "259--275",
  month =        jun,
  year =         "1988",
  CODEN =        "IJPPE5",
  ISSN =         "0885-7458 (print), 1573-7640 (electronic)",
  ISSN-L =       "0885-7458",
  MRclass =      "92A12",
  MRnumber =     "999 309",
  bibdate =      "Sat Apr 26 13:44:09 MDT 1997",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0885-7458&volume=17&issue=3;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory); C5440
                 (Multiprocessor systems and techniques); C5470
                 (Performance evaluation and testing); C7330 (Biology
                 and medicine)",
  corpsource =   "Dept. of Comput. Sci., Duke Univ., Durham, NC, USA",
  fjournal =     "International Journal of Parallel Programming",
  journal-URL =  "http://link.springer.com/journal/10766",
  keywords =     "biological sequence comparison algorithms; biology
                 computing; CM-I; Connection Machine; DNA; homology;
                 Intel iPSC/1 hypercube; molecular structure; parallel
                 algorithms; parallel machines; parallel processing;
                 performance evaluation; protein; string matching",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Ehrenfeucht:1988:NDM,
  author =       "A. Ehrenfeucht and D. Haussler",
  title =        "A new distance metric on strings computable in linear
                 time",
  journal =      j-DISCRETE-APPL-MATH,
  volume =       "20",
  number =       "3",
  pages =        "191--203",
  month =        jul,
  year =         "1988",
  CODEN =        "DAMADU",
  ISSN =         "0166-218X (print), 1872-6771 (electronic)",
  ISSN-L =       "0166-218X",
  bibdate =      "Mon Feb 05 13:32:27 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spell.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Discrete Applied Mathematics",
  journal-URL =  "http://www.sciencedirect.com/science/journal/0166218X",
  keywords =     "documentation; languages; measurement; theory;
                 verification",
  subject =      "F.2.2 Theory of Computation, ANALYSIS OF ALGORITHMS
                 AND PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Pattern matching \\ I.7.1 Computing
                 Methodologies, TEXT PROCESSING, Text Editing, Spelling
                 \\ G.2.m Mathematics of Computing, DISCRETE
                 MATHEMATICS, Miscellaneous",
}

@Article{Eilam-Tzoreff:1988:MPS,
  author =       "Tali Eilam-Tzoreff and Uzi Vishkin",
  title =        "Matching patterns in strings subject to multi-linear
                 transformations",
  journal =      j-THEOR-COMP-SCI,
  volume =       "60",
  number =       "3",
  pages =        "231--254",
  month =        dec,
  year =         "1988",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:29:49 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1985.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Tel Aviv Univ",
  affiliationaddress = "Tel Aviv, Isr",
  classification = "723; C4200 (Computer theory)",
  corpsource =   "Dept. of Comput. Sci., Sch. of Math. Sci., Tel Aviv
                 Univ., Israel",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  journalabr =   "Theor Comput Sci",
  keywords =     "Algorithms; computation theory; Computer Metatheory;
                 Computer Programming; Minimum Distance Problems;
                 multi-linear transformations; Multilinear
                 Transformations; pattern matching; Pattern Matching;
                 pattern recognition; strings; Strings of Real Numbers",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Flaherty:1988:STM,
  author =       "Terry Flaherty",
  title =        "A simple technique to motivate structured
                 programming",
  journal =      j-SIGCSE,
  volume =       "20",
  number =       "1",
  pages =        "153--155",
  month =        feb,
  year =         "1988",
  CODEN =        "SIGSD3",
  DOI =          "https://doi.org/10.1145/52965.53002",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 18:57:05 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigcse1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Programs with only sequence, selection, and iteration
                 control structures (structured programs) are more
                 understandable and changeable than programs with
                 unrestricted control structures (flowchart programs).
                 However, flowcharts are intuitive, simple, and easy to
                 follow step by step. The transition from teaching
                 general flowcharts to structured ones is usually made
                 by postulating the standard structured flowchart
                 patterns without much justification. The present method
                 establishes the correspondence between flowcharts and
                 structured programs via sets of computations. The
                 student examines a set of computations of a flowchart
                 program and describes the general structure with a
                 regular expression. A structured program that
                 corresponds to this regular expression is constructed.
                 In this way, the student is led to (1) see the
                 difference between program and computation, (2) see how
                 ``structure'' arises, (3) see that a structured program
                 is one whose textual structure is identical to the
                 structural description of its computations, (4)
                 appreciate the cognitive simplicity of structure
                 descriptions versus flowcharts.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Greenwood:1988:VSR,
  author =       "S. R. Greenwood",
  title =        "{VAX SCAN}: rule-based text processing software",
  journal =      j-DEC-TECH-J,
  volume =       "1",
  number =       "6",
  pages =        "40--50",
  month =        feb,
  year =         "1988",
  CODEN =        "DTJOEL",
  ISSN =         "0898-901X",
  bibdate =      "Thu Mar 20 18:15:43 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6115 (Programming support); C6130D (Document
                 processing techniques)",
  corpsource =   "Digital Equipment Corp., Hudson, MA, USA",
  fjournal =     "Digital Technical Journal",
  keywords =     "character recognition; DEC; DEC computers; editing;
                 pattern-matching; procedural language; rule-based
                 software; software productivity; software tools; text;
                 text patterns; text processing; text recognition; VAX
                 SCAN; word processing",
  treatment =    "P Practical",
}

@Article{Hamilton:1988:LPE,
  author =       "Eric Hamilton",
  title =        "Literate Programming\emdash{}Expanding Generalized
                 Regular Expressions",
  journal =      j-CACM,
  volume =       "31",
  number =       "12",
  pages =        "1376--1385",
  month =        dec,
  year =         "1988",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Wed Jan 17 11:48:56 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/litprog.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
}

@InProceedings{Hume:1988:GW,
  author =       "Andrew Hume",
  editor =       "????",
  booktitle =    "1988 Spring (London) {EUUG} Conference Proceedings",
  title =        "{{\tt Grep}} wars",
  publisher =    "????",
  address =      "????",
  pages =        "237--245",
  year =         "1988",
  bibdate =      "Sat Sep 02 14:50:57 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Hume:1988:TTG,
  author =       "Andrew Hume",
  title =        "A Tale of Two Greps",
  journal =      j-SPE,
  volume =       "18",
  number =       "11",
  pages =        "1063--1072",
  month =        nov,
  year =         "1988",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380181105",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "30 Oct 2006",
  received =     "11 January 1988",
  remark =       "The first paragraph describes important history: ``In
                 the beginning, Ken Thompson wrote the searching tool
                 {\tt grep}. It took a regular expression and file names
                 as arguments and printed from those files lines that
                 matched the regular expression. In 1975, just after the
                 release of the Sixth Edition of the UNIX system, Al Aho
                 decided to put theory about finite state automata into
                 practice and wrote {\tt egrep} over a weekend. {\tt
                 Egrep} supported full regular expressions (including
                 alternation and grouping, which were missing from {\tt
                 grep}) and used a deterministic finite automaton rather
                 than {\tt grep}'s nondeterministic finite automaton.
                 {\tt Egrep} was about twice as fast as {\tt grep} for
                 simple character searches but was slower for complex
                 search patterns due to the high cost of building the
                 state machine that recognized the patterns. {\tt
                 Fgrep}, specialized for the case of many alternate
                 literal strings, was written in the same weekend.''",
  revised =      "26 May 1988",
}

@Article{Itano:1988:IPM,
  author =       "Kozo Itano and Yutaka Sato and Hidemi Hirai and
                 Tomoyoshi Yamagata",
  title =        "An incremental pattern matching algorithm for the
                 pipelined lexical scanner",
  journal =      j-INFO-PROC-LETT,
  volume =       "27",
  number =       "5",
  pages =        "253--258",
  day =          "28",
  month =        apr,
  year =         "1988",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Univ of Tsukuba, Sakura-mura, Jpn",
  classification = "723; C6120 (File organisation); C6150C (Compilers,
                 interpreters and other processors)",
  corpsource =   "Inst. of Inf. Sci. and Electron., Tsukuba Univ.,
                 Ibaraki, Japan",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; algorithms; assemblers; C programs;
                 compact binary form; compilers; computer programming;
                 computer programming languages --- Pascal; computer
                 systems, digital --- Parallel Processing; file
                 organisation; hashing; incremental pattern matching
                 algorithm; interpreters; language processors;
                 languages; lexical scanning algorithm; measurement;
                 Pascal programs; performance; pipeline processing;
                 pipelined lexical scanner; program assemblers; program
                 compilers; program interpreters; string compaction;
                 theory; variable-length character strings",
  pubcountry =   "Netherlands A06",
  subject =      "D.3.4 Software, PROGRAMMING LANGUAGES, Processors \\
                 F.2.2 Theory of Computation, ANALYSIS OF ALGORITHMS AND
                 PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Pattern matching",
  treatment =    "P Practical",
}

@Article{Landau:1988:FSM,
  author =       "Gad M. Landau and Uzi Vishkin",
  title =        "Fast string matching with $k$ differences",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "37",
  number =       "1",
  pages =        "63--78",
  month =        aug,
  year =         "1988",
  CODEN =        "JCSSBM",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:26:09 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/0022000088900451",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@InProceedings{Lee:1988:HSC,
  author =       "Peizong Lee and Z. M. Kedem",
  title =        "On high-speed computing with a programmable linear
                 array",
  crossref =     "IEEE:1988:PSN",
  volume =       "1",
  pages =        "425--432",
  year =         "1988",
  bibdate =      "Thu Apr 16 07:55:03 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "B1265B (Logic circuits); C5120 (Logic and switching
                 circuits)C4290 (Other computer theory)",
  corpsource =   "Courant Inst. of Math. Sci., New York Univ., NY, USA",
  keywords =     "algebraic computations; arbitrary depth; cellular
                 arrays; database operations; high-speed computing;
                 image processing; logic arrays; matrix arithmetic;
                 nested FOT- loops; parallel algorithms; pattern
                 matching; programmable linear array; sequential
                 algorithms; signal processing; sorting; systolic array;
                 transitive closure",
  sponsororg =   "IEEE; ACM",
  treatment =    "P Practical",
}

@Article{Liu:1988:SPM,
  author =       "Ken-Chih Liu",
  title =        "On String Pattern Matching: a Quantitative Analysis
                 and a Proposal",
  journal =      j-COMP-LANGS,
  volume =       "13",
  number =       "1",
  pages =        "23--29",
  month =        "????",
  year =         "1988",
  CODEN =        "COLADA",
  ISSN =         "0096-0551 (print), 1873-6742 (electronic)",
  ISSN-L =       "0096-0551",
  bibdate =      "Tue Mar 25 14:04:06 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/complngs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Iowa State Univ, Ames, IA, USA",
  classcodes =   "C4240 (Programming and algorithm theory); C6110
                 (Systems analysis and programming); C6130 (Data
                 handling techniques); C6140D (High level languages)",
  classification = "723",
  corpsource =   "Dept. of Comput. Sci., Iowa State Univ., Ames, IA,
                 USA",
  fjournal =     "Computer Languages",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00960551",
  journalabr =   "Comput Lang",
  keywords =     "Algorithms; computer programming; computer programming
                 languages; data handling; Gimpel's model; high level
                 languages; pattern matching; programming; programming
                 theory; Snobol4 pattern; SNOBOL4 pattern matching
                 algorithm; special case processing; string pattern
                 matching; string processing languages design; time
                 complexity",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Mitchell:1988:OHS,
  author =       "Joan L. Mitchell and William B. Pennebaker",
  title =        "Optimal hardware and software arithmetic coding
                 procedures for the {Q-Coder}",
  journal =      j-IBM-JRD,
  volume =       "32",
  number =       "6",
  pages =        "727--736",
  month =        nov,
  year =         "1988",
  CODEN =        "IBMJAE",
  ISSN =         "0018-8646 (print), 2151-8556 (electronic)",
  ISSN-L =       "0018-8646",
  bibdate =      "Tue Mar 25 14:26:59 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/ibmjrd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The Q-Coder is an important new development in
                 arithmetic coding. It combines a simple but efficient
                 arithmetic approximation for the multiply operation, a
                 new formalism which yields optimally efficient hardware
                 and software implementations, and a new form of
                 probability estimation. This paper describes the
                 concepts which allow different, yet compatible, optimal
                 software and hardware implementations. In prior binary
                 arithmetic coding algorithms, efficient hardware
                 implementations favored ordering the more probable
                 symbol (MPS) above the less probable symbol (LPS) in
                 the current probability interval. Efficient software
                 implementation required the inverse ordering
                 convention. It is shown that optimal hardware and
                 software encoders and decoders can be achieved with
                 either symbol ordering. Although optimal implementation
                 for a given symbol ordering requires the hardware and
                 software code strings to point to opposite ends of the
                 probability interval, either code string can be
                 converted to match the other exactly. A code string
                 generated using one symbol-ordering convention can be
                 inverted so that it exactly matches the code string
                 generated with the inverse convention. Even where bit
                 stuffing is used to block carry propagation, the code
                 strings can be kept identical.",
  acknowledgement = ack-nhfb,
  affiliation =  "IBM Res. Div., Thomas J. Watson Res. Center",
  affiliationaddress = "Yorktown Heights, NY, USA",
  classcodes =   "B6120B (Codes); B6110 (Information theory); C5230
                 (Digital arithmetic methods); C1260 (Information
                 theory); C4220 (Automata theory)",
  classification = "722; 723; 921; 922; B6110 (Information theory);
                 B6120B (Codes); C1260 (Information theory); C4220
                 (Automata theory); C5230 (Digital arithmetic methods)",
  corpsource =   "IBM Res. Div., Thomas J. Watson Res. Center, Yorktown
                 Heights, NY, USA",
  fjournal =     "IBM Journal of Research and Development",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5288520",
  journalabr =   "IBM J Res Dev",
  keywords =     "approximation; arithmetic; Arithmetic approximation;
                 arithmetic coding; Arithmetic coding; Arithmetic
                 Coding; Codes, Symbolic; Coding Algorithms; Computer
                 Hardware; Computer Software; Decoders; decoders;
                 digital arithmetic; encoding; estimation; finite
                 automata; Formalism; formalism; Hardware coding;
                 hardware coding; hardware implementations; Hardware
                 implementations; information; inverse; Inverse ordering
                 convention; Less probable symbol; less probable symbol;
                 Mathematical Techniques; more probable symbol; More
                 probable symbol; Multiply operation; multiply
                 operation; Multiply Operation; ordering convention;
                 Performance; probability; Probability; Probability
                 estimation; Probability Interval; Q-Coder; Q-coder;
                 software implementation; Software implementation;
                 Symbol Ordering; theory",
  thesaurus =    "Digital arithmetic; Encoding; Finite automata;
                 Information theory; Probability",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Owolabi:1988:FAS,
  author =       "O. Owolabi and D. R. McGregor",
  title =        "Fast Approximate String Matching",
  journal =      j-SPE,
  volume =       "18",
  number =       "4",
  pages =        "387--393",
  month =        apr,
  year =         "1988",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@Article{Purushothaman:1988:RAS,
  author =       "S. Purushothaman and P. A. Subrahmanyam",
  title =        "Reasoning about systolic algorithms",
  journal =      j-J-PAR-DIST-COMP,
  volume =       "5",
  number =       "6",
  pages =        "669--699",
  month =        dec,
  year =         "1988",
  CODEN =        "JPDCER",
  ISSN =         "0743-7315 (print), 1096-0848 (electronic)",
  bibdate =      "Sat Apr 12 19:06:31 MDT 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/jpardistcomp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "University Park, PA, USA",
  classification = "713; 714; 721; 722; 723; 921; C4240 (Programming and
                 algorithm theory)",
  corpsource =   "Dept. of Comput. Sci., Pennsylvania State Univ.,
                 University Park, PA, USA",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315/",
  journalabr =   "J Parallel Distrib Comput",
  keywords =     "algorithm theory; Algorithms; Automata Theory;
                 Boyer--Moore Theorem Prover; Boyer--Moore theorem
                 prover; Computer Architecture; Computer Programming;
                 correctness; Correctness Proof; equations; Integrated
                 Circuits, VLSI; Mathematical Techniques; mechanical
                 correctness proof; parallel algorithms; Recursive
                 Equations; recursive equations; recursive functions;
                 Systolic Algorithms; systolic algorithms; theorem
                 proving; Uniform; uniform recurrence",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Ratcliff:1988:PMG,
  author =       "John W. Ratcliff and David E. Metzener",
  title =        "Pattern Matching: The Gestalt Approach",
  journal =      j-DDJ,
  volume =       "13",
  number =       "7",
  pages =        "46, 47, 59--51, 68--72",
  month =        jul,
  year =         "1988",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Tue Sep 03 09:18:35 1996",
  bibsource =    "http://www.ddj.com/index/author/index.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Robertson:1988:TTW,
  author =       "Edmund F. Robertson",
  title =        "{Tietze} Transformations with Weighted Substring
                 Search",
  journal =      j-J-SYMBOLIC-COMP,
  volume =       "6",
  number =       "1",
  pages =        "59--64",
  month =        aug,
  year =         "1988",
  CODEN =        "JSYCEH",
  ISSN =         "0747-7171 (print), 1095-855X (electronic)",
  ISSN-L =       "0747-7171",
  MRclass =      "68Q40 (20F05)",
  MRnumber =     "89h:68076",
  bibdate =      "Sat May 10 15:54:09 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsymcomp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "B0250 (Combinatorial mathematics); C1160
                 (Combinatorial mathematics)",
  corpsource =   "Math. Inst., St. Andrews, UK",
  fjournal =     "Journal of Symbolic Computation",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07477171/",
  keywords =     "computer program; elimination; group; group theory;
                 Groups; length function; presentation; routing; Tietze
                 transformations; weighted substring search",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Rus:1988:PLP,
  author =       "T. Rus",
  title =        "Parsing languages by pattern matching",
  journal =      j-IEEE-TRANS-SOFTW-ENG,
  volume =       "14",
  number =       "4",
  pages =        "498--511",
  month =        apr,
  year =         "1988",
  CODEN =        "IESEDJ",
  DOI =          "https://doi.org/10.1109/32.4672",
  ISSN =         "0098-5589 (print), 1939-3520 (electronic)",
  ISSN-L =       "0098-5589",
  bibdate =      "Thu Feb 1 08:07:37 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranssoftweng1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=4672",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Software Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32",
}

@Article{Schaback:1988:ESB,
  author =       "R. Schaback",
  title =        "On the expected sublinearity of the {Boyer--Moore}
                 algorithm",
  journal =      j-SIAM-J-COMPUT,
  volume =       "17",
  number =       "4",
  pages =        "648--658",
  month =        aug,
  year =         "1988",
  CODEN =        "SMJCAT",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68Q25 (68P10 68T10)",
  MRnumber =     "89h:68070",
  MRreviewer =   "Dominique Gouyou-Beauchamps",
  bibdate =      "Mon Nov 29 11:01:07 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/17/4;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Schnoebelen:1988:RCP,
  author =       "Ph. Schnoebelen",
  title =        "Refined compilation of pattern-matching for functional
                 languages",
  journal =      j-SCI-COMPUT-PROGRAM,
  volume =       "11",
  number =       "2",
  pages =        "133--159",
  month =        dec,
  year =         "1988",
  CODEN =        "SCPGD4",
  ISSN =         "0167-6423 (print), 1872-7964 (electronic)",
  ISSN-L =       "0167-6423",
  MRclass =      "68N15 (68N20 68Q50)",
  MRnumber =     "89k:68011",
  bibdate =      "Sun Oct 10 09:12:09 MDT 1999",
  bibsource =    "Compendex database;
                 http://www.sciencedirect.com/science/journal/01676423;
                 https://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  acknowledgement = ack-nhfb,
  affiliation =  "Lab d'Informatique Fondamentale et d'Intelligence
                 Artificielle",
  affiliationaddress = "Grenoble, Fr",
  classification = "723",
  fjournal =     "Science of Computer Programming",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01676423",
  journalabr =   "Sci Comput Program",
  keywords =     "Compilation Algorithm; Compiling Functions; Computer
                 Metatheory; Computer Operating Systems --- Program
                 Compilers; Computer Programming; Computer Programming
                 Languages; Functional Languages; Pattern Matching",
}

@Article{Shankar:1988:MPC,
  author =       "N. Shankar",
  title =        "A Mechanical Proof of the {Church--Rosser} Theorem",
  journal =      j-J-ACM,
  volume =       "35",
  number =       "3",
  pages =        "475--522",
  month =        jul,
  year =         "1988",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Wed Jan 15 18:12:53 MST 1997",
  bibsource =    "Compendex database;
                 ftp://ftp.ira.uka.de/pub/bibliography/Misc/IMMD_IV.bib;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0004-5411/44484.html",
  abstract =     "We describe a formalization and proof of the
                 Church--Rosser theorem that was carried out with the
                 Boyer--Moore theorem prover. The mechanical proof
                 illustrates the effective use of the Boyer--Moore
                 theorem prover in proof checking difficult
                 metamathematical proofs.",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Stanford Univ, Stanford, CA, USA",
  classification = "723",
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  journalabr =   "J Assoc Comput Mach",
  keywords =     "artificial intelligence; Boyer--Moore theorem prover;
                 Church--Rosser theorem; computer metatheory;
                 experimentation; lambda calculus; theory;
                 verification",
  subject =      "{\bf F.4.1}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Mathematical Logic, Mechanical
                 theorem proving. {\bf F.4.1}: Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Mathematical
                 Logic, Computational logic. {\bf F.4.1}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Mathematical Logic, Lambda calculus and related
                 systems. {\bf I.2.3}: Computing Methodologies,
                 ARTIFICIAL INTELLIGENCE, Deduction and Theorem Proving,
                 Mathematical induction.",
}

@Article{Sharpe:1988:ARE,
  author =       "Daniel Sharpe",
  title =        "Adding regular expressions to {Pascal}",
  journal =      j-SIGPLAN,
  volume =       "23",
  number =       "12",
  pages =        "125--133",
  month =        dec,
  year =         "1988",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:15:33 MST 2003",
  bibsource =    "Compendex database; http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "One generally praiseworthy characteristics of Pascal
                 is that it allows the programmer to define new data
                 types. However, not all operations that can be
                 performed on indigenous types can also be performed on
                 programmer-defined types. I/O is an example. This paper
                 proposes an extension to Pascal that allows generalized
                 input of enumerated types. Syntax is defined which lets
                 the programmer use regular expressions to exercise
                 considerable control over the translation of strings of
                 input characters into the internal representation used
                 for enumerated types.",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Carrollton, GA, USA",
  classification = "723",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  journalabr =   "SIGPLAN Not",
  keywords =     "Computer Operating Systems--Program Compilers;
                 Computer Programming; Computer Programming Languages;
                 Data Processing--Data Structures; Data Types; design;
                 Internal Representation; languages; Lexical Analysis;
                 pascal; Pascal Enumerated Types; Programming Language
                 Pascal",
  subject =      "D.3.2 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Pascal \\ D.3.3 Software, PROGRAMMING
                 LANGUAGES, Language Constructs, Data types and
                 structures \\ I.1.1 Computing Methodologies, ALGEBRAIC
                 MANIPULATION, Expressions and Their Representation,
                 Representations (General and Polynomial)",
}

@TechReport{Smith:1988:ILL,
  author =       "W. W. Smith and R. H. Campbell",
  title =        "Introduction to Leif language descriptions",
  number =       "UIUCDCS-R-88-1444",
  institution =  "University of Illinois at Urbana-Champaign",
  address =      "Urbana-Champaign, IL, USA",
  pages =        "78",
  month =        jul,
  year =         "1988",
  bibdate =      "Wed Oct 30 06:19:01 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Explains how to create and compile new language
                 description files for Leif. Leif performs syntax
                 checking and provides language oriented editing
                 features for a text editor. The User Manual for Leif
                 with GNU Emacs and the GNU Emacs Manual describe how to
                 use Leif with its front-end, GNU Emacs. Leif uses
                 languages specified with a regular expression lexical
                 analyzer and an LALR(1) parse table. Each language
                 description has three user specified components that
                 are combined into a single, compiled language
                 description file. The authors describe the utility that
                 combines each of these three components into a
                 completed language description file. They then describe
                 the three components of a language description: parse
                 tables, lexical analyser tables, and supplementary
                 information. They describe the utilities used to
                 process the specifications of these three parts of a
                 language description file, Leif editing commands that
                 may be used to help debug new languages, and two
                 additional utilities supplied with Leif. They show how
                 Leif locates the language description files required to
                 edit a program. The text of a small example language is
                 given. Appendices describe the utilities used to build
                 a language description.",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. Sci., Illinois Univ., Urbana, IL, USA
                 description manual, and installation guide",
  classification = "C6130D (Document processing techniques); C6140D
                 (High level languages); C6150C (Compilers, interpreters
                 and other processors)",
  issuedby =     "Univ. Illinois at Urbana-Champaign, IL, USA",
  keywords =     "Compiled language; Debugging; Editing commands;
                 Front-end; GNU Emacs; LALR(1) parse table; Language
                 description files; Language oriented editing features;
                 Leif; Lexical analyser tables; Parse tables; Regular
                 expression lexical analyzer; Specifications;
                 Supplementary information; Syntax checking; Text
                 editor; User specified components; Utilities",
  pubcountry =   "USA",
  thesaurus =    "Program compilers; Specification languages; Text
                 editing",
}

@Article{Sridhar:1988:CBG,
  author =       "M. A. Sridhar",
  title =        "On the connectivity of the {De Bruijn} graph",
  journal =      j-INFO-PROC-LETT,
  volume =       "27",
  number =       "6",
  pages =        "315--318",
  day =          "13",
  month =        may,
  year =         "1988",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68R05 (05C40)",
  MRnumber =     "89h:68117",
  MRreviewer =   "Bernd Graw",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Univ of South Carolina, Columbia, SC, USA",
  classification = "723; 921; C1160 (Combinatorial mathematics); C4210
                 (Formal logic)",
  corpsource =   "Dept. of Comput. Sci., South Carolina Univ., SC, USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "connectivity; data processing; Data Structures; de
                 Bruijn graph; De Bruijn graph; formal languages; graph
                 theory; labeled directed graphs; mathematical
                 techniques --- Graph Theory; periods; self-loops;
                 string matching; strings; theory; verification",
  pubcountry =   "Netherlands A07",
  subject =      "G.2.2 Mathematics of Computing, DISCRETE MATHEMATICS,
                 Graph Theory \\ F.2.2 Theory of Computation, ANALYSIS
                 OF ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Pattern matching",
  treatment =    "T Theoretical or Mathematical",
}

@Book{Tanenbaum:1988:MAS,
  author =       "Andrew S. Tanenbaum and Johan W. Stevenson and Jost
                 Muller",
  title =        "{MINIX} for the {ATARI ST} and {MINIX} manual for the
                 {ATARI ST}",
  publisher =    pub-PH,
  address =      pub-PH:adr,
  edition =      "Version 1.1.",
  year =         "1988",
  ISBN =         "0-13-584392-8 (disks), 0-13-584434-7 (manual)",
  ISBN-13 =      "978-0-13-584392-5 (disks), 978-0-13-584434-2
                 (manual)",
  LCCN =         "QA76.76.O63",
  bibdate =      "Mon Sep 30 17:55:16 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/minix.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "9 computer disks.",
  abstract =     "MINIX is a new operating system that is similar to
                 Version 7 of the UNIX operating system. MINIX is widely
                 used on the IBM PC, and has now been ported to the
                 Atari ST and Mega ST. Unlike the UNIX system itself,
                 MINIX comes complete with all the source code. MINIX
                 features: a system call compatible with V7 UNIX (except
                 for a few very minor calls); a Kernighan and Ritchie
                 compatible C compiler; a shell that is functionally
                 identical to the Bourne shell; full multiprogramming
                 (fork+exec; background jobs in shell: cc file.c \&); a
                 full screen editor inspired by emacs (modeless,
                 autoinsert, etc.); over 60 popular utilities (cat, cp,
                 grep, ls, make, mount, sort, etc.); and over 100
                 library procedures (atoi, fork, malloc, stdio, strcmp,
                 etc.) It works with floppy-only systems or with hard
                 disk systems. A full operating system source code is
                 included, and the source code for all utilities (except
                 the C compiler) is also included.",
  acknowledgement = ack-nhfb,
  annote =       "Title from disk label. An operating system for small
                 computer systems, inspired by V7 of the UNIX operating
                 system. It has a hierarchical file system, supports
                 full multitasking, and has a command interpreter,
                 called the shell, similar to the Bourne shell on UNIX.
                 Comes with 100 utility programs, nearly all of which
                 are similar to UNIX programs. System requirements:
                 Amiga ST; 512K RAM; TOS. Atari ST",
  classification = "C6150J (Operating systems)",
  keywords =     "Atari ST; Bourne shell; Emacs; Floppy disk systems;
                 Full screen editor; Hard disk systems; Kernighan and
                 Ritchie compatible C compiler; Library procedures; Mega
                 ST; MINIX; Multiprogramming; Operating system;
                 Operating systems (Computers) --- Software.; Source
                 code; System call; UNIX; Utilities",
  pubcountry =   "USA",
  thesaurus =    "Atari computers; Microcomputer applications; Unix;
                 User manuals",
}

@Article{Tarhio:1988:GAA,
  author =       "Jorma Tarhio and Esko Ukkonen",
  title =        "A greedy approximation algorithm for constructing
                 shortest common superstrings",
  journal =      j-THEOR-COMP-SCI,
  volume =       "57",
  number =       "1",
  pages =        "131--145",
  month =        apr,
  year =         "1988",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:29:49 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1985.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Helsinki",
  affiliationaddress = "Helsinki, Finl",
  classification = "723; 921; B0290F (Interpolation and function
                 approximation); B6140 (Signal processing and
                 detection); C1260 (Information theory)C4130
                 (Interpolation and function approximation)",
  conference =   "International Symposium on Mathematical Foundations of
                 Computer Science, MFCS '86",
  conflocation = "Bratislava, Czechoslovakia; 25-29 Aug. 1986",
  conftitle =    "International Symposium on Mathematical Foundations of
                 Computer Science",
  corpsource =   "Dept. of Comput. Sci., Helsinki Univ., Finland",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  journalabr =   "Theor Comput Sci",
  keywords =     "Algorithms; approximation theory; Computer
                 Programming; data compression; Greedy Approximation
                 Algorithm; greedy approximation algorithm; greedy
                 heuristics; Hamiltonian paths; Knuth--Morris--Pratt
                 string-matching procedure; Longest Hamiltonian Paths;
                 Mathematical Techniques --- Graph Theory; Optimization;
                 Shortest Common Superstrings; shortest common
                 superstrings; String Compression; String-Matching;
                 Weighted Graphs; weighted graphs",
  meetingaddress = "Bratislava, Czech",
  meetingdate =  "Aug 25--29 1986",
  meetingdate2 = "08/25--29/86",
  pubcountry =   "Netherlands A07",
  treatment =    "T Theoretical or Mathematical",
}

@Article{VanWyk:1988:LPE,
  author =       "Christopher J. {Van Wyk} and Eric Hamilton and Don
                 Colner",
  title =        "Literate Programming: Expanding Generalized Regular
                 Expressions",
  journal =      j-CACM,
  volume =       "31",
  number =       "12",
  pages =        "1376--1385",
  month =        dec,
  year =         "1988",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Mon Jan 22 07:31:02 MST 2001",
  bibsource =    "http://dblp.uni-trier.de/db/journals/cacm/cacm31.html#WykHC88;
                 https://www.math.utah.edu/pub/tex/bib/cacm1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/litprog.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  oldlabel =     "WykHC88",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/cacm/WykHC88",
}

@Article{Walther:1988:MSU,
  author =       "Christoph Walther",
  title =        "Many-Sorted Unification",
  journal =      j-J-ACM,
  volume =       "35",
  number =       "1",
  pages =        "1--17",
  month =        jan,
  year =         "1988",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Wed Jan 15 18:12:53 MST 1997",
  bibsource =    "Compendex database;
                 ftp://ftp.ira.uka.de/pub/bibliography/Ai/hybrid.bib;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0004-5411/45071.html",
  abstract =     "Many-sorted unification is considered; that is,
                 unification in the many-sorted free algebras of terms,
                 where variables, as well as the domains and ranges of
                 functions, are restricted to certain subsets of the
                 universe, given as a potentially infinite hierarchy of
                 sorts. It is shown that complete and minimal sets of
                 unifiers may not always exist for many-sorted
                 unification. Conditions for sort hierarchies that are
                 equivalent for the existence of these sets with one,
                 finitely many, or infinitely many elements are
                 presented. It is also proved that being a
                 forest-structured sort hierarchy is a necessary and
                 sufficient criterion for the Robinson Unification
                 Theorem to hold for many-sorted unification. An
                 algorithm for many-sorted unification is given.",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Univ Karlsruhe, West Ger",
  classification = "723; 921",
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  journalabr =   "J Assoc Comput Mach",
  keywords =     "algorithms; artificial intelligence; computer
                 metatheory --- Formal Logic; computer programming ---
                 Algorithms; many-sorted logic; many-sorted unification;
                 mathematical techniques --- Algebra; Robinson
                 unification theorem; theory; verification",
  subject =      "{\bf F.4.1}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Mathematical Logic, Mechanical
                 theorem proving. {\bf F.2.2}: Theory of Computation,
                 ANALYSIS OF ALGORITHMS AND PROBLEM COMPLEXITY,
                 Nonnumerical Algorithms and Problems, Pattern matching.
                 {\bf I.1.3}: Computing Methodologies, ALGEBRAIC
                 MANIPULATION, Languages and Systems, Substitution
                 mechanisms. {\bf I.2.3}: Computing Methodologies,
                 ARTIFICIAL INTELLIGENCE, Deduction and Theorem Proving,
                 Resolution.",
}

@Article{Wood:1988:IFS,
  author =       "David P. Wood and David Turcaso",
  title =        "Implementing a faster string search algorithm in
                 {Ada}",
  journal =      j-SIGADA-LETTERS,
  volume =       "8",
  number =       "3",
  pages =        "87--97",
  month =        may # "\slash " # jun,
  year =         "1988",
  CODEN =        "AALEE5",
  ISSN =         "1094-3641 (print), 1557-9476 (electronic)",
  ISSN-L =       "1094-3641",
  bibdate =      "Sat Aug 9 09:05:29 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigada.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6130 (Data handling techniques)",
  corpsource =   "Softech Inc., Alexandria, VA, USA",
  countrypub =   "USA A02",
  fjournal =     "ACM SIGAda Ada Letters",
  journal-URL =  "https://dl.acm.org/loi/sigada",
  keywords =     "Ada; Ada implementation; Ada listings; algorithms;
                 character-by-character search; data handling;
                 languages; string search algorithm; theory",
  subject =      "D.3.2 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Ada \\ D.3.3 Software, PROGRAMMING
                 LANGUAGES, Language Constructs, Data types and
                 structures \\ F.2.2 Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Sorting and searching",
  treatment =    "P Practical",
}

@Article{Aho:1989:CGU,
  author =       "Alfred V. Aho and Mahadevan Ganapathi and Steven W. K.
                 Tjiang",
  title =        "Code Generation Using Tree Matching and Dynamic
                 Programming",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "4",
  pages =        "491--516",
  month =        oct,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Sep 22 14:23:22 2023",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 Database/Graefe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/75700.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; comparison of alternative covers of
                 original expression; design; experimentation;
                 languages; matching multiple trees using finite state
                 automata; reduction rules: complex expression
                 $\rightarrow$ single instruction cost; theory",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, twig. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Code generation. {\bf D.3.2}:
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Nonprocedural languages. {\bf F.2.2}:
                 Theory of Computation, ANALYSIS OF ALGORITHMS AND
                 PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Pattern matching. {\bf F.4.2}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Grammars and Other Rewriting Systems, Parallel
                 rewriting systems. {\bf I.2.8}: Computing
                 Methodologies, ARTIFICIAL INTELLIGENCE, Problem
                 Solving, Control Methods, and Search, Dynamic
                 programming.",
}

@TechReport{Albert:1989:CMA,
  author =       "Luc Albert",
  title =        "Complexit{\'e} en moyenne de l'algorithme de
                 multi-pattern matching {RETE} sur des ensembles de
                 patterns et d'objets de profondeur un. ({French})
                 [{Mean} complexity of the multi-pattern matching
                 algorithm {RETE} on sets of patterns and objects of
                 depth one]",
  volume =       "1009",
  institution =  "Institut National de Recherche en Informatique et en
                 Automatique",
  address =      "Le Chesnay, France",
  pages =        "34",
  year =         "1989",
  LCCN =         "????",
  bibdate =      "Wed Mar 13 13:43:08 MDT 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       "Rapports de recherche (Institut National de Recherche
                 en Informatique et en Automatique (France))",
  acknowledgement = ack-nhfb,
  language =     "French",
  subject =      "Algorithmes; Syst{\`e}mes experts (informatique);
                 Bases de donn{\'e}es relationnelles; Algorithms;
                 Matching theory; Expert systems (Computer science)",
}

@Article{Allan:1989:POT,
  author =       "V. H. Allan",
  title =        "Peephole optimization as a targeting and coupling
                 tool",
  journal =      j-SIGMICRO,
  volume =       "20",
  number =       "3",
  pages =        "112--121",
  month =        aug,
  year =         "1989",
  CODEN =        "SIGMDJ",
  DOI =          "https://doi.org/10.1145/75395.75407",
  ISSN =         "0163-5751, 1050-916X",
  ISSN-L =       "0163-5751",
  bibdate =      "Fri Apr 16 10:27:41 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigmicro.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/75395.75407",
  abstract =     "The term peephole optimization is used to mean the
                 pattern matching and conditional replacement performed
                 on small sections of the intermediate form. The
                 circular dependence between the code generation phases
                 implies that local optimals are rarely global
                 \ldots{}",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGMICRO Newsletter",
  journal-URL =  "https://dl.acm.org/loi/sigmicro",
}

@Article{Aoe:1989:EIS,
  author =       "J. I. Aoe",
  title =        "An efficient implementation of static string pattern
                 matching machines",
  journal =      j-IEEE-TRANS-SOFTW-ENG,
  volume =       "15",
  number =       "8",
  pages =        "1010--1016",
  month =        aug,
  year =         "1989",
  CODEN =        "IESEDJ",
  DOI =          "https://doi.org/10.1109/32.31357",
  ISSN =         "0098-5589 (print), 1939-3520 (electronic)",
  ISSN-L =       "0098-5589",
  bibdate =      "Thu Feb 1 08:07:37 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranssoftweng1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=31357",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Software Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32",
}

@Article{Arratia:1989:ERS,
  author =       "R. Arratia and M. S. Waterman",
  title =        "The {Erd{\H{o}}s--Renyi} {Strong Law} for Pattern
                 Matching with a Given Proportion of Mismatches",
  journal =      j-ANN-PROBAB,
  volume =       "17",
  number =       "3",
  pages =        "1152--1169",
  month =        jul,
  year =         "1989",
  CODEN =        "APBYAE",
  ISSN =         "0091-1798 (print), 2168-894X (electronic)",
  ISSN-L =       "0091-1798",
  bibdate =      "Sun Apr 20 10:44:17 MDT 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/annprobab1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://projecteuclid.org/euclid.aop/1176991262",
  acknowledgement = ack-nhfb,
  fjournal =     "Annals of Probability",
  journal-URL =  "http://projecteuclid.org/all/euclid.aop",
}

@InProceedings{Auernheimer:1989:NNM,
  author =       "Brent Auernheimer and Alison Butler",
  title =        "Neural net model of the neuropsychology of spelling
                 processes",
  crossref =     "ACM:1989:SAA",
  pages =        "430--??",
  year =         "1989",
  bibdate =      "Wed Jan 15 12:19:41 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/spell.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The neural network (or `brain-style') approach to
                 computing is useful for developing systems to perform
                 tasks humans traditionally do well and that computers
                 do not. Neural network systems are particularly suited
                 for pattern matching and categorization applications
                 such as recognizing visual or auditory data. This
                 research is concerned with representing the human
                 spelling processes. Because spoken language is our
                 primary mode of communication, neuropsychologists have
                 for the most part overlooked the spelling and writing
                 processes. Recently, interest in orthographic processes
                 has grown. This research is an attempt to translate a
                 theory of the cognitive processes of spelling into a
                 neural network. An initial goal of this research is to
                 test the model's learning and performance against
                 normal subjects' spelling. After the model is validated
                 for normal subjects, the neural network will be
                 `lesioned', and the results compared to the performance
                 of brain-damaged patients.",
  acknowledgement = ack-nhfb,
  affiliation =  "California State Univ",
  affiliationaddress = "Fresno, CA, USA",
  classification = "461; 723",
  conference =   "Seventeenth Annual ACM Computer Science Conference",
  conferenceyear = "1989",
  keywords =     "Cognitive Processes; Human Engineering--Research;
                 Neural Nets; Neuropsychology; Spelling; Summary Only;
                 Systems Science and Cybernetics",
  meetingabr =   "Seventeenth Annu ACM Comput Sci Conf",
  meetingaddress = "Louisville, KY, USA",
  meetingdate =  "Feb 21--23 1989",
  meetingdate2 = "02/21--23/89",
}

@Article{Augustsson:1989:CLM,
  author =       "L. Augustsson and T. Johnsson",
  title =        "The {Chalmers Lazy-ML} Compiler",
  journal =      j-COMP-J,
  volume =       "32",
  number =       "2",
  pages =        "127--141",
  month =        apr,
  year =         "1989",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/32.2.127",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Tue Dec 4 14:48:26 MST 2012",
  bibsource =    "Compendex database;
                 http://comjnl.oxfordjournals.org/content/32/2.toc;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/;
                 https://www.math.utah.edu/pub/tex/bib/compj1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 Misc/Functional.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/32/2/127.full.pdf+html;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/127.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/128.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/129.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/130.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/131.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/132.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/133.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/134.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/135.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/136.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/137.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/138.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/139.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/140.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/141.tif",
  abstract =     "The authors present the principles and pragmatics of a
                 compiler for Lazy ML, a lazy and purely functional
                 variant of ML. The aim has been to develop an
                 implementation that enables efficient execution on
                 today's computers.",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. Sci., Chalmers Univ. of Technol.",
  affiliationaddress = "Goteborg, Swed",
  classcodes =   "C6150C (Compilers, interpreters and other processors);
                 C6140D (High level languages)",
  classification = "723; C6140D (High level languages); C6150C
                 (Compilers, interpreters and other processors)",
  corpsource =   "Dept. of Comput. Sci., Chalmers Univ. of Technol.,
                 Goteborg, Sweden",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  keywords =     "abstract machine; Abstract machine; Chalmers;
                 compilers; Computer Operating Systems; Computer
                 Programming; Computer Programming Languages; functional
                 programming; functional variant; Functional variant;
                 G-machine; high level languages; input/output;
                 Input/output; language; Lazy Functional Languages; Lazy
                 ML; Lazy ML language; Lazy ml Language; Lazy-ML
                 compiler; modules; Modules; pattern matching; Pattern
                 matching; Pattern Matching, Chalmers; program; Program
                 Compilers; program transformation phases; Program
                 transformation phases; separate compilation; Separate
                 compilation",
  thesaurus =    "Functional programming; High level languages; Program
                 compilers",
  treatment =    "P Practical",
}

@Article{Baeza-Yates:1989:ISS,
  author =       "Ricardo A. Baeza-Yates",
  title =        "Improved String Searching",
  journal =      j-SPE,
  volume =       "19",
  number =       "3",
  pages =        "257--271",
  month =        mar,
  year =         "1989",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380190305",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "30 Oct 2006",
}

@Article{Bird:1989:FDP,
  author =       "R. S. Bird and J. Gibbons and G. Jones",
  title =        "Formal derivation of a pattern matching algorithm",
  journal =      j-SCI-COMPUT-PROGRAM,
  volume =       "12",
  number =       "2",
  pages =        "93--104",
  month =        jul,
  year =         "1989",
  CODEN =        "SCPGD4",
  ISSN =         "0167-6423 (print), 1872-7964 (electronic)",
  ISSN-L =       "0167-6423",
  MRclass =      "68Q20",
  MRnumber =     "90k:68055",
  bibdate =      "Sun Oct 10 09:12:09 MDT 1999",
  bibsource =    "Compendex database;
                 http://www.sciencedirect.com/science/journal/01676423;
                 https://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  acknowledgement = ack-nhfb,
  affiliation =  "Oxford Univ",
  affiliationaddress = "Engl",
  classification = "723",
  fjournal =     "Science of Computer Programming",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01676423",
  journalabr =   "Sci Comput Program",
  keywords =     "Computer Metatheory --- Programming Theory; Computer
                 Programming --- Algorithms; Knuth--Morris--Pratt
                 Algorithm; Pattern Matching Algorithms; Pattern
                 Recognition",
}

@Article{Burton:1989:FPQ,
  author =       "F. Warren Burton and John G. Kollias",
  title =        "Functional programming with quadtrees",
  journal =      j-IEEE-SOFTWARE,
  volume =       "6",
  number =       "1",
  pages =        "90--97",
  month =        jan,
  year =         "1989",
  CODEN =        "IESOEG",
  ISSN =         "0740-7459 (print), 0740-7459 (electronic)",
  ISSN-L =       "0740-7459",
  bibdate =      "Sat Jan 25 07:35:26 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/ieeesoft.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "723",
  fjournal =     "IEEE Software",
  journal-URL =  "http://www.computer.org/portal/web/csdl/magazines/software",
  journalabr =   "IEEE Software",
  keywords =     "Computer Programming; Computer Programming Languages;
                 Data Processing --- Data Structures; Data Types;
                 Function Programming; Functional Languages; Pattern
                 Matching; Quadtrees",
}

@Article{Cieslak:1989:PNP,
  author =       "R. Cieslak and A. Fawaz and S. Sachs and P. Varaiya
                 and J. Walrand and A. Li",
  title =        "The Programmable Network Prototyping System",
  journal =      j-COMPUTER,
  volume =       "22",
  number =       "5",
  pages =        "67--76",
  month =        may,
  year =         "1989",
  CODEN =        "CPTRB4",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Sat Feb 01 14:21:35 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computer1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Electr. Eng and Comput. Sci., California
                 Univ., Berkeley, CA, USA",
  classification = "B6210L (Computer communications); C0310F (Software
                 development management); C5620 (Computer networks and
                 techniques); C6110B (Software engineering techniques);
                 C6115 (Programming support); C6155 (Computer
                 communications software); C7420 (Control engineering)",
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
  keywords =     "Communication network emulation; Component
                 specifications; Control system; Generic communications
                 functions; Interacting components; Library; Load
                 conditions; Pattern matching; PNPS; Programmable
                 network prototyping system; Prototyping environment;
                 Reception; Reusable hardware modules; Signal
                 propagation; Software tools; Transmission",
  thesaurus =    "Computer communications software; Computer networks;
                 Computerised control; Programming; Programming
                 environments",
}

@Article{Consel:1989:PEP,
  author =       "Charles Consel and Olivier Danvy",
  title =        "Partial evaluation of pattern matching in strings",
  journal =      j-INFO-PROC-LETT,
  volume =       "30",
  number =       "2",
  pages =        "79--86",
  day =          "30",
  month =        jan,
  year =         "1989",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Paris, Fr",
  classification = "721; 723; C4220 (Automata theory); C4240
                 (Programming and algorithm theory); C6130 (Data
                 handling techniques); C6150C (Compilers, interpreters
                 and other processors)",
  corpsource =   "Paris VI Univ., France",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; algorithms; Automata Theory--Finite
                 Automata; compilers; Computer Programming; data
                 handling; deterministic automata; Deterministic Finite
                 Automata; deterministic finite automaton; finite
                 automata; Knuth--Morris--Pratt Algorithm; languages;
                 Partial Evaluation; partial evaluation; pattern
                 matcher; Pattern Matching; pattern matching; program
                 compilers; programming theory; strings; theory",
  subject =      "F.2.2 Theory of Computation, ANALYSIS OF ALGORITHMS
                 AND PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Pattern matching \\ D.3.3 Software,
                 PROGRAMMING LANGUAGES, Language Constructs, Data types
                 and structures",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Cooper:1989:FHO,
  author =       "M. C. Cooper",
  title =        "Formal hierarchical object models for fast template
                 matching",
  journal =      j-COMP-J,
  volume =       "32",
  number =       "4",
  pages =        "351--361",
  month =        aug,
  year =         "1989",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/32.4.351",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Tue Dec 4 14:48:27 MST 2012",
  bibsource =    "Compendex database;
                 http://comjnl.oxfordjournals.org/content/32/4.toc;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_04/;
                 https://www.math.utah.edu/pub/tex/bib/compj.bib;
                 https://www.math.utah.edu/pub/tex/bib/compj1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/32/4/351.full.pdf+html;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_04/tiff/351.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_04/tiff/352.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_04/tiff/353.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_04/tiff/354.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_04/tiff/355.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_04/tiff/356.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_04/tiff/357.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_04/tiff/358.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_04/tiff/359.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_04/tiff/360.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_04/tiff/361.tif",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. Sci., Hull Univ.",
  affiliationaddress = "Hull, Engl",
  classcodes =   "C6120 (File organisation)",
  classification = "713; 723; 741; C6120 (File organisation)",
  corpsource =   "Dept. of Comput. Sci., Hull Univ., UK",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  keywords =     "Applications; data structures; edge-detection;
                 Edge-detection operators; formal hierarchical object
                 models; Formal hierarchical object models; Hierarchical
                 Object Models; Image Processing; inspection;
                 Inspection; Mathematical Transformations--Fourier
                 Transforms; Object-Oriented Programming; operators;
                 Pattern Matching; pictures; Pictures, Pattern
                 Recognition; printed circuit boards; Printed circuit
                 boards; Printed Circuits--Inspection; repeated
                 sub-objects; Repeated sub-objects; repetitive
                 structure; Repetitive structure; repnets; Repnets;
                 template matching; Template matching",
  thesaurus =    "Data structures",
  treatment =    "P Practical",
}

@Article{Delcambre:1989:PMR,
  author =       "L. M. L. Delcambre and J. Waramahaputi and J. N.
                 Etheredge",
  title =        "Pattern match reduction for {Relational Production
                 Language} in the {USL MMDBS}",
  journal =      j-SIGMOD,
  volume =       "18",
  number =       "3",
  pages =        "59--67",
  month =        sep,
  year =         "1989",
  CODEN =        "SRECD8",
  ISSN =         "0163-5808 (print), 1943-5835 (electronic)",
  ISSN-L =       "0163-5808",
  bibdate =      "Mon Jan 12 08:45:32 MST 2004",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigmod.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Center for Adv. Comput. Studies, Southwestern
                 Louisiana Univ., Lafayette, LA, USA",
  classification = "C6160D (Relational DBMS); C6160Z (Other DBMS); C6170
                 (Expert systems)",
  fjournal =     "SIGMOD Record (ACM Special Interest Group on
                 Management of Data)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J689",
  keywords =     "Expert database systems; Pattern Match Reduction;
                 Performance characteristics; Query processing;
                 Relational Production Language; Relational rules;
                 Relational view; RPL; RPL interpreter",
  thesaurus =    "Computerised pattern recognition; Expert systems;
                 Relational databases",
  xxtitle =      "Pattern match reduction for the relational production
                 language in the {USL MMDBS}",
}

@Article{Eckel:1989:TSI,
  author =       "Bruce Eckel",
  title =        "{TAWK}: a simple interpreter in {C++}",
  journal =      j-DDJ,
  volume =       "14",
  number =       "5",
  pages =        "50--60, 98, 100--102",
  month =        may,
  year =         "1989",
  CODEN =        "DDJOEB",
  ISSN =         "0888-3076",
  bibdate =      "Tue Sep 10 09:30:19 MDT 1996",
  bibsource =    "http://www.ddj.com/index/author/index.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Eisys Consulting, Seattle, WA, USA",
  classification = "C6150C (Compilers, interpreters and other
                 processors); C6160 (Database management systems
                 (DBMS))",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  keywords =     "'Report'; 'Scripting language'; 'Tiny awk'; C++;
                 Common-separated ASCII file; Data-encapsulation;
                 Database files; Interpreter; Language execution;
                 Language parsing; Long fields; Long records; Pattern
                 matching language; Record reading; Recursive descent
                 technique; TAWK",
  thesaurus =    "C listings; Microcomputer applications; Program
                 interpreters; Report generators",
}

@Article{Emmelmann:1989:BGE,
  author =       "Helmut Emmelmann and Friedrich-Wilhelm Schr{\"o}er and
                 Rudolf Landwehr",
  title =        "{BEG}: a generator for efficient back ends",
  journal =      j-SIGPLAN,
  volume =       "24",
  number =       "7",
  pages =        "227--237",
  month =        jul,
  year =         "1989",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:15:41 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/pldi/73141/index.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/pldi/73141/p227-emmelmann/",
  abstract =     "This paper describes a system that generates compiler
                 back ends from a strictly declarative specification of
                 the code generation process. The generated back ends
                 use tree pattern matching for code selection. Two
                 methods for register allocation supporting a wide range
                 of target architectures are provided. A general
                 bottom-up pattern matching method avoids problems that
                 occurred with previous systems using LR-parsing. The
                 performance of compilers using generated back ends is
                 comparable to very fast production compilers. Some
                 figures are given about the results of using the system
                 to generate the back end of a Modula-2 compiler.",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Karlsruhe, West Ger",
  annote =       "Published as part of the Proceedings of PLDI'89.",
  classification = "723",
  conference =   "Proceedings of the SIGPLAN '89 Conference on
                 Programming Language Design and Implementation",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  journalabr =   "SIGPLAN Not",
  keywords =     "algorithms; Compiler Generation; Computer Operating
                 Systems; Computer Programming; languages; Optimizing
                 Compilers; performance; Program Compilers",
  meetingaddress = "Portland, OR, USA",
  meetingdate =  "Jun 21--23 1989",
  meetingdate2 = "06/21--23/89",
  sponsor =      "ACM, Special Interest Group on Programming Languages,
                 New York; SS NY, USA",
  subject =      "{\bf F.4.2} Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Grammars and Other Rewriting
                 Systems, Parsing. {\bf D.3.4} Software, PROGRAMMING
                 LANGUAGES, Processors, Code generation. {\bf D.3.2}
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Modula-2. {\bf D.3.4} Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers. {\bf
                 D.3.4} Software, PROGRAMMING LANGUAGES, Processors,
                 Optimization.",
}

@Article{Fiala:1989:DCF,
  author =       "E. R. Fiala and D. H. Greene",
  title =        "Data Compression with Finite {Windows}",
  journal =      j-CACM,
  volume =       "32",
  number =       "4",
  pages =        "490--505",
  month =        apr,
  year =         "1989",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Sat Jan 26 12:46:16 MST 2013",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/cacm1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0001-0782/63341.html",
  acknowledgement = ack-ds # " and " # ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  keywords =     "algorithms; design; experimentation; theory",
  rawdata =      "Fiala, E. R., and D. H. Greene (1989), ``Data
                 Compression with Finite Windows,'' {\it Communications
                 of the ACM}, {\bf32}(4):490--505.",
  review =       "ACM CR 8910-0733",
  subject =      "{\bf E.4}: Data, CODING AND INFORMATION THEORY, Data
                 compaction and compression. {\bf E.1}: Data, DATA
                 STRUCTURES. {\bf F.2.2}: Theory of Computation,
                 ANALYSIS OF ALGORITHMS AND PROBLEM COMPLEXITY,
                 Nonnumerical Algorithms and Problems, Computations on
                 discrete structures. {\bf F.2.2}: Theory of
                 Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
                 COMPLEXITY, Nonnumerical Algorithms and Problems,
                 Pattern matching.",
}

@Article{Foster:1989:ALF,
  author =       "M. J. Foster",
  title =        "Avoiding latch formation in regular expression
                 recognizers",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "38",
  number =       "5",
  pages =        "754--756",
  month =        may,
  year =         "1989",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/12.24279",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Fri Jul 8 19:00:39 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=24279",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Ganapathi:1989:PBR,
  author =       "Mahadevan Ganapathi",
  title =        "{Prolog} based retargetable code generation",
  journal =      j-COMP-LANGS,
  volume =       "14",
  number =       "3",
  pages =        "193--204",
  month =        "????",
  year =         "1989",
  CODEN =        "COLADA",
  ISSN =         "0096-0551 (print), 1873-6742 (electronic)",
  ISSN-L =       "0096-0551",
  bibdate =      "Tue Mar 25 14:04:06 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/complngs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Stanford Univ",
  affiliationaddress = "Stanford, CA, USA",
  classcodes =   "C6150C (Compilers, interpreters and other processors);
                 C1180 (Optimisation techniques)",
  classification = "722; 723",
  corpsource =   "Comput. Sci. Lab., Stanford Univ., CA, USA",
  fjournal =     "Computer Languages",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00960551",
  journalabr =   "Comput Lang",
  keywords =     "back-end language; Code Generator Generators; code
                 optimization; Code Optimization; compiler back end;
                 Computer Operating Systems--Program Compilers; Computer
                 Programming; formal specification; high quality code;
                 implementation; optimisation; optimizing code
                 generators; pattern matching; peephole optimization;
                 program compilers; program processors; PROLOG; Prolog
                 based retargetable code generation; Prolog Based
                 Retargetable Code Generation; specification",
  treatment =    "P Practical",
}

@Article{Ganapathi:1989:SPP,
  author =       "Mahadevan Ganapathi",
  title =        "Semantic predicates in parser generators",
  journal =      j-COMP-LANGS,
  volume =       "14",
  number =       "1",
  pages =        "25--33",
  month =        "????",
  year =         "1989",
  CODEN =        "COLADA",
  ISSN =         "0096-0551 (print), 1873-6742 (electronic)",
  ISSN-L =       "0096-0551",
  bibdate =      "Tue Mar 25 14:04:06 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/complngs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Stanford, CA, USA",
  classcodes =   "C6150C (Compilers, interpreters and other
                 processors)",
  classification = "721; 723",
  corpsource =   "Comput. Syst. Lab., Stanford Univ., CA, USA",
  fjournal =     "Computer Languages",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00960551",
  journalabr =   "Comput Lang",
  keywords =     "analysis; Attributed Parsing; Automata
                 Theory--Grammars; compiler implementors;
                 compiler-compilers; Computer Operating Systems;
                 Conflict Resolution; decision making; Disambiguating
                 Predicates; epsilon productions; grammars; parser
                 generators; Parser Generators; parsers; pattern
                 matching; Program Compilers; program compilers;
                 Semantic Predicates; syntactic; vanilla parser",
  treatment =    "P Practical",
}

@Article{Grossi:1989:SES,
  author =       "R. Grossi and F. Luccio",
  title =        "Simple and efficient string matching with $k$
                 mismatches",
  journal =      j-INFO-PROC-LETT,
  volume =       "33",
  number =       "3",
  pages =        "113--120",
  day =          "30",
  month =        nov,
  year =         "1989",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q25",
  MRnumber =     "90m:68057",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ di Pisa",
  affiliationaddress = "Pisa, Italy",
  classification = "723; 921; C4240 (Programming and algorithm theory)",
  corpsource =   "Dipartimento di Inf., Pisa Univ., Italy",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithm Design; algorithm theory; Algorithms;
                 computational complexity; Computer Programming;
                 Mathematical Techniques--Trees; mismatches;
                 permutations; String Matching; string matching; suffix
                 tree; Suffix Trees",
  treatment =    "T Theoretical or Mathematical",
}

@Misc{Haertel:1989:GG,
  author =       "M. Haertel",
  title =        "{GNU} {\tt e?grep}",
  volume =       "17",
  howpublished = "Usenet archive {\tt comp.sources.unix}",
  month =        feb,
  year =         "1989",
  bibdate =      "Sat Sep 02 14:45:09 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Hudak:1989:CEA,
  author =       "Paul Hudak",
  title =        "Conception, Evolution, and Application of Functional
                 Programming Languages",
  journal =      j-COMP-SURV,
  volume =       "21",
  number =       "3",
  pages =        "359--411",
  month =        sep,
  year =         "1989",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/72551.72554",
  ISSN =         "0360-0300 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  bibdate =      "Thu Jun 19 09:38:19 MDT 2008",
  bibsource =    "ACM Computing Archive; Compendex database;
                 ftp://ftp.ira.uka.de/pub/bibliography/Parallel/par.misc.bib;
                 http://www.acm.org/pubs/contents/journals/surveys/;
                 https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0360-0300/72554.html",
  abstract =     "The foundations of functional programming languages
                 are examined from both historical and technical
                 perspectives. Their evolution is traced through several
                 critical periods: early work on lambda calculus and
                 combinatory calculus, Lisp, Iswim, FP, ML, and modern
                 functional languages such as Miranda and Haskell. The
                 fundamental premises on which the functional
                 programming methodology stands are critically analyzed
                 with respect to philosophical, theoretical, and
                 pragmatic concerns. Particular attention is paid to the
                 main features that characterize modern functional
                 languages: higher-order functions, lazy evaluation,
                 equations and pattern matching, strong static typing
                 and type inference, and data abstraction. In addition,
                 current research areas --- such as parallelism,
                 nondeterminism, input\slash output, and state-oriented
                 computations --- are examined with the goal of
                 predicting the future development and application of
                 functional languages.",
  acknowledgement = ack-nhfb,
  affiliation =  "Yale Univ",
  affiliationaddress = "New Haven, CT, USA",
  annote =       "This is the second paper in the special issue which
                 has a section on non-determinism [along with Bal, et
                 al] which begins with a statement which would sound
                 bizarre to non-programmers or those not familiar with
                 the issues of determinacy.",
  classification = "723",
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
  keywords =     "ag; APL; Categories and Subject Descriptors: D.1.1
                 [Programming Techniques]: Applicative (Functional)
                 Programming; Computer Programming Languages; D.3.2
                 [Programming Languages]: Language classifications -
                 applicative languages; Data Abstraction; data-flow
                 languages; denotative [declarative] language; F.4.1
                 [Mathematical Logic and Formal Languages]: Mathematical
                 Logic - lambda calculus and related systems; FL; FP;
                 Functional Programming Languages; grecommended91;
                 Haskell; higher-order functions; Hope; Iswim; K.2
                 [History of Computing]: software General Terms:
                 Languages; KRC; Lambda Calculus; Lambda Calculus,
                 Additional Key Words and Phrases: Data abstraction;
                 languages; lazy evaluation; Lisp; Miranda; ML;
                 non-procedural languages; referential transparency;
                 SASL; special issue on programming language paradigms;
                 types; very-high-level languages",
  review =       "ACM CR 9006-0486",
  subject =      "{\bf D.1.1}: Software, PROGRAMMING TECHNIQUES,
                 Applicative (Functional) Programming. {\bf F.4.1}:
                 Theory of Computation, MATHEMATICAL LOGIC AND FORMAL
                 LANGUAGES, Mathematical Logic, Lambda calculus and
                 related systems. {\bf F.1.2}: Theory of Computation,
                 COMPUTATION BY ABSTRACT DEVICES, Modes of Computation,
                 Parallelism and concurrency. {\bf D.3.2}: Software,
                 PROGRAMMING LANGUAGES, Language Classifications,
                 Applicative languages.",
}

@Article{Jouvelot:1989:RPM,
  author =       "P. Jouvelot and B. Dehbonei",
  title =        "Recursive {Pattern Matching} on concrete data types",
  journal =      j-SIGPLAN,
  volume =       "24",
  number =       "11",
  pages =        "84--93",
  month =        nov,
  year =         "1989",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:15:47 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "algorithms; languages; theory",
  subject =      "D.1.1 Software, PROGRAMMING TECHNIQUES, Applicative
                 (Functional) Programming \\ D.3.3 Software, PROGRAMMING
                 LANGUAGES, Language Constructs, Data types and
                 structures \\ F.3.3 Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Studies of Program Constructs,
                 Functional constructs \\ F.3.3 Theory of Computation,
                 LOGICS AND MEANINGS OF PROGRAMS, Studies of Program
                 Constructs, Program and recursion schemes \\ F.4.3
                 Theory of Computation, MATHEMATICAL LOGIC AND FORMAL
                 LANGUAGES, Formal Languages, Classes defined by
                 grammars or automata",
}

@Article{Katajainen:1989:AAS,
  author =       "J. Katajainen and T. Raita",
  title =        "An approximation algorithm for space-optimal encoding
                 of a text",
  journal =      j-COMP-J,
  volume =       "32",
  number =       "3",
  pages =        "228--237",
  month =        jun,
  year =         "1989",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/32.3.228",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Tue Dec 4 14:48:26 MST 2012",
  bibsource =    "http://comjnl.oxfordjournals.org/content/32/3.toc;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_03/;
                 https://www.math.utah.edu/pub/tex/bib/compj.bib;
                 https://www.math.utah.edu/pub/tex/bib/compj1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/32/3/228.full.pdf+html;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_03/tiff/228.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_03/tiff/229.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_03/tiff/230.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_03/tiff/231.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_03/tiff/232.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_03/tiff/233.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_03/tiff/234.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_03/tiff/235.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_03/tiff/236.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_03/tiff/237.tif",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. Sci., Turku Univ., Finland",
  classcodes =   "C6130D (Document processing techniques); C6120 (File
                 organisation); C7250 (Information storage and
                 retrieval); C1260 (Information theory)",
  classification = "C1260 (Information theory); C6120 (File
                 organisation); C6130D (Document processing techniques);
                 C7250 (Information storage and retrieval)",
  corpsource =   "Dept. of Comput. Sci., Turku Univ., Finland",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  keywords =     "acyclic bandwidth limited network; Acyclic bandwidth
                 limited network; approximation algorithm; Approximation
                 algorithm; code book; Code book; compression; data
                 compression; encoding; fixed dictionary; Fixed
                 dictionary; fixed internal memory; Fixed internal
                 memory; heuristic; information storage; linear working;
                 Linear working storage; longest match; Longest match
                 heuristic; often-occurring; Often-occurring substrings;
                 optimisation; performance; Performance; running time;
                 Running time; shortest path; Shortest path;
                 space-optimal encoding; Space-optimal encoding;
                 storage; storage management; storage space; Storage
                 space; string matching algorithm; String matching
                 algorithm; substrings; text; Text compression; vertex
                 pair; Vertex pair",
  thesaurus =    "Data compression; Encoding; Information storage;
                 Optimisation; Storage management",
  treatment =    "P Practical",
}

@Article{King:1989:UNN,
  author =       "Todd King",
  title =        "Using neural networks for pattern recognition",
  journal =      j-DDJ,
  volume =       "14",
  number =       "1",
  pages =        "14--28, 90--95",
  month =        jan,
  year =         "1989",
  CODEN =        "DDJOEB",
  ISSN =         "0888-3076",
  bibdate =      "Tue Sep 10 09:30:19 MDT 1996",
  bibsource =    "http://www.ddj.com/index/author/index.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 Neural/adapt.sys.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "California Univ., Berkeley, CA, USA",
  classification = "C1230 (Artificial intelligence); C1240 (Adaptive
                 system theory); C1250 (Pattern recognition); C7430
                 (Computer engineering)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  keywords =     "C program; Called variation; Classification paradigm;
                 Close approximations; Memorized patterns; Neural
                 networks; Pattern associator; Pattern learning; Pattern
                 matching; Pattern recognition",
  thesaurus =    "C listings; Computerised pattern recognition;
                 Microcomputer applications; Neural nets",
}

@Article{Knight:1989:UMS,
  author =       "Kevin Knight",
  title =        "Unification: a Multidisciplinary Survey",
  journal =      j-COMP-SURV,
  volume =       "21",
  number =       "1",
  pages =        "93--124",
  month =        mar,
  year =         "1989",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/62029.62030",
  ISSN =         "0360-0300 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  MRclass =      "68T15 (03B35 03B70 68N17)",
  MRnumber =     "91g:68142",
  bibdate =      "Thu Jun 19 09:37:55 MDT 2008",
  bibsource =    "Compendex database;
                 http://www.acm.org/pubs/contents/journals/surveys/;
                 https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0360-0300/62030.html",
  abstract =     "The unification problem and several variants are
                 presented. Various algorithms and data structures are
                 discussed. Research on unification arising in several
                 areas of computer science is surveyed; these areas
                 include theorem proving, logic programming, and natural
                 language processing. Sections of the paper include
                 examples that highlight particular uses of unification
                 and the special problems encountered. Other topics
                 covered are resolution, higher order logic, the occur
                 check, infinite terms, feature structures, equational
                 theories, inheritance, parallel algorithms,
                 generalization, lattices, and other applications of
                 unification. The paper is intended for readers with a
                 general computer science background --- no specific
                 knowledge of any of the above topics is assumed.",
  acknowledgement = ack-nhfb,
  affiliation =  "Carnegie-Mellon Univ",
  affiliationaddress = "Pittsburgh, PA, USA",
  classification = "721; 723",
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
  keywords =     "algorithms; Artificial Intelligence; Computational
                 Complexity; Computer Metatheory; Equational Theories;
                 Feature Structures; Higher Order Logic; languages,
                 Automata Theory; Logic Programming; Natural Language
                 Processing; Theorem Proving",
  review =       "ACM CR 9005-0423",
  subject =      "{\bf I.2.3}: Computing Methodologies, ARTIFICIAL
                 INTELLIGENCE, Deduction and Theorem Proving. {\bf
                 I.1.3}: Computing Methodologies, ALGEBRAIC
                 MANIPULATION, Languages and Systems, Substitution
                 mechanisms. {\bf E.1}: Data, DATA STRUCTURES, Graphs.
                 {\bf F.2.2}: Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Pattern matching. {\bf I.2.7}:
                 Computing Methodologies, ARTIFICIAL INTELLIGENCE,
                 Natural Language Processing.",
}

@InProceedings{Kosaraju:1989:ETP,
  author =       "S. R. Kosaraju",
  title =        "Efficient tree pattern matching",
  crossref =     "IEEE:1989:ASF",
  pages =        "178--183",
  year =         "1989",
  bibdate =      "Thu Apr 5 06:13:40 MDT 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Landau:1989:FPS,
  author =       "Gad M. Landau and Uzi Vishkin",
  title =        "Fast parallel and serial approximate string matching",
  journal =      j-J-ALG,
  volume =       "10",
  number =       "2",
  pages =        "157--169",
  month =        jun,
  year =         "1989",
  CODEN =        "JOALDV",
  DOI =          "https://doi.org/10.1016/0196-6774(89)90010-2",
  ISSN =         "0196-6774 (print), 1090-2678 (electronic)",
  ISSN-L =       "0196-6774",
  bibdate =      "Tue Dec 11 09:14:52 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jalg.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/0196677489900102",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Algorithms",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01966774",
}

@Article{Makinen:1989:SIP,
  author =       "Erkki M{\"a}kinen",
  title =        "On the subtree isomorphism problem for ordered trees",
  journal =      j-INFO-PROC-LETT,
  volume =       "32",
  number =       "5",
  pages =        "271--273",
  day =          "22",
  month =        sep,
  year =         "1989",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68R10 (05C05 68P05 68Q25)",
  MRnumber =     "90k:68139",
  MRreviewer =   "Fabrizio Luccio",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See also comments \cite{Grossi:1991:FCS}.",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Tampere",
  affiliationaddress = "Tampere, Finl",
  classification = "723; 921; C1160 (Combinatorial mathematics); C4240
                 (Programming and algorithm theory)",
  corpsource =   "Dept. of Comput. Sci., Tampere Univ., Finland",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "algorithm theory; algorithms; Combinatorial
                 Mathematics; Mathematical Techniques; Ordered Trees;
                 ordered trees; Pattern Recognition; String Pattern
                 Matching; string pattern matching; subtree isomorphism
                 problem; theory; tree encoding; Tree Isomorphism; trees
                 (mathematics); verification; Zaks Sequence",
  subject =      "G.2.2 Mathematics of Computing, DISCRETE MATHEMATICS,
                 Graph Theory, Trees \\ F.2.2 Theory of Computation,
                 ANALYSIS OF ALGORITHMS AND PROBLEM COMPLEXITY,
                 Nonnumerical Algorithms and Problems, Pattern
                 matching",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Marola:1989:USD,
  author =       "Giovanni Marola",
  title =        "Using symmetry for detecting and locating objects in a
                 picture",
  journal =      j-CVGIP,
  volume =       "46",
  number =       "2",
  pages =        "179--195",
  month =        may,
  year =         "1989",
  CODEN =        "CVGPDB",
  ISSN =         "0734-189x (print), 1557-895x (electronic)",
  ISSN-L =       "0734-189X",
  bibdate =      "Thu Feb 6 18:44:11 MST 1997",
  bibsource =    "Compendex database; Graphics/rosenfeld/1989.bib;
                 https://www.math.utah.edu/pub/tex/bib/cvgip.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Istituto di Elettronica e Telecomunicazioni, Pisa
                 Univ., Italy",
  affiliationaddress = "Pisa, Italy",
  classification = "723; B6140C (Optical information and image
                 processing); C1250 (Pattern recognition); C5260B
                 (Computer vision and picture processing)",
  fjournal =     "Computer Vision, Graphics, and Image Processing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/0734189X",
  journalabr =   "Comput Vision Graphics Image Process",
  keywords =     "Algorithm; Image Processing; Local symmetry; Noise
                 insensitive, image part form; Object Detection; Object
                 detection; Object Detection; Object Location; Object
                 location; Object Location; Object Recognition;
                 Overlapping Objects; Overlapping objects; Overlapping
                 Objects; Pattern Recognition; Picture; Planar images;
                 Symmetry detection; Template matching procedure;
                 Unscaled intensity images",
  thesaurus =    "Computerised pattern recognition; Computerised picture
                 processing",
}

@Article{Menico:1989:FSS,
  author =       "Costas Menico",
  title =        "Faster string searches ({Boyer--Moore} algorithm)",
  journal =      j-DDJ,
  volume =       "14",
  number =       "7",
  pages =        "74--75, 98--99",
  month =        jul,
  year =         "1989",
  CODEN =        "DDJOEB",
  ISSN =         "0888-3076",
  bibdate =      "Tue Sep 10 09:30:19 MDT 1996",
  bibsource =    "http://www.ddj.com/index/author/index.htm;
                 https://www.math.utah.edu/pub/tex/bib/dr-dobbs-1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Software Bottling Co., Maspeth, NY, USA",
  classification = "C6130D (Document processing techniques)",
  keywords =     "Boyer--Moore algorithm; Brute force method; Hybrid
                 algorithm; Pattern analysis; String searches",
  thesaurus =    "Assembly language listings; Computerised pattern
                 recognition; Pascal listings; Search problems",
}

@Article{Mischel:1989:WAE,
  author =       "James Mischel",
  title =        "Writing {AWK}-like extensions to {C}",
  journal =      j-DDJ,
  volume =       "14",
  number =       "6",
  pages =        "64--66, 68, 70, 94, 96, 98, 103--104",
  month =        jun,
  year =         "1989",
  CODEN =        "DDJOEB",
  ISSN =         "0888-3076",
  bibdate =      "Tue Sep 10 09:30:19 MDT 1996",
  bibsource =    "http://www.ddj.com/index/author/index.htm;
                 https://www.math.utah.edu/pub/tex/bib/dr-dobbs-1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110 (Systems analysis and programming); C6140D
                 (High level languages)",
  keywords =     "AWK programming language; AWK-like extensions; AWKLIB
                 get-line() function; C; Fields; Global variables;
                 Implicit processing loop; Match; Program status;
                 Regular expression; String search functions;
                 Substrings",
  thesaurus =    "C listings; Complete computer programs; High level
                 languages; Programming",
}

@Article{Mischel:1989:WAL,
  author =       "James Mischel",
  title =        "Writing {AWK}-like extensions to {C}",
  journal =      j-DDJ,
  volume =       "14",
  number =       "6",
  pages =        "64--66, 68, 70, 94, 96, 98, 103--104",
  month =        jun,
  year =         "1989",
  CODEN =        "DDJOEB",
  ISSN =         "0888-3076",
  bibdate =      "Tue Sep 10 09:30:19 MDT 1996",
  bibsource =    "http://www.ddj.com/index/author/index.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110 (Systems analysis and programming); C6140D
                 (High level languages)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  keywords =     "AWK programming language; AWK-like extensions; AWKLIB
                 get-line() function; C; Fields; Global variables;
                 Implicit processing loop; Match; Program status;
                 Regular expression; String search functions;
                 Substrings",
  thesaurus =    "C listings; Complete computer programs; High level
                 languages; Programming",
}

@Article{Myers:1989:AMR,
  author =       "Eugene W. Myers and Webb Miller",
  title =        "Approximate matching of regular expressions",
  journal =      j-BULL-MATH-BIOL,
  volume =       "51",
  number =       "1",
  pages =        "5--37",
  month =        jan,
  year =         "1989",
  CODEN =        "BMTBAP",
  DOI =          "https://doi.org/10.1007/BF02458834",
  ISSN =         "0092-8240 (print), 1522-9602 (electronic)",
  ISSN-L =       "0092-8240",
  bibdate =      "Wed Jun 28 16:16:14 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/bullmathbiol.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/BF02458834",
  acknowledgement = ack-nhfb,
  fjournal =     "Bulletin of Mathematical Biology",
  journal-URL =  "http://link.springer.com/journal/11538",
}

@Article{Ophel:1989:IMR,
  author =       "John Ophel",
  title =        "An improved mixture rule for pattern matching",
  journal =      j-SIGPLAN,
  volume =       "24",
  number =       "6",
  pages =        "91--96",
  month =        jun,
  year =         "1989",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:15:40 MST 2003",
  bibsource =    "Compendex database; http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "An improved mixture rule for compiling the pattern
                 matching mechanism used in function definitions for ML,
                 Miranda and Hope is presented. The new rule produces
                 better code for patterns with mixed constructors and
                 variables in multiple columns.",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Canberra, Aust",
  classification = "723",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  journalabr =   "SIGPLAN Not",
  keywords =     "Computer Operating Systems; Computer Programming
                 Languages; design; Hope Language; languages; Miranda
                 Language; ML Language; Pattern Matching; Pattern
                 Recognition; Program Compilers; standardization",
  subject =      "D.3.3 Software, PROGRAMMING LANGUAGES, Language
                 Constructs, Procedures, functions, and subroutines \\
                 D.3.4 Software, PROGRAMMING LANGUAGES, Processors,
                 Compilers",
}

@Article{Padberg:1989:CMB,
  author =       "Manfred Padberg and Antonio Sassano",
  title =        "The complexity of matching with bonds",
  journal =      j-INFO-PROC-LETT,
  volume =       "32",
  number =       "6",
  pages =        "297--300",
  day =          "3",
  month =        oct,
  year =         "1989",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q25 (05C70 68R10)",
  MRnumber =     "90j:68020",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "New York Univ",
  affiliationaddress = "New York, NY, USA",
  classification = "723; 921; C1160 (Combinatorial mathematics); C4240
                 (Programming and algorithm theory)",
  corpsource =   "Graduate Sch. of Bus. Adm., New York Univ., NY, USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "bond structure; cardinality; complexity; Computational
                 Complexity; computational complexity; Computer
                 Metatheory--Computability and Decidability; cycle;
                 disjoint subsets; edges; finite; Graph Theory; graph
                 theory; loopless graph; matching with bonds;
                 Mathematical Techniques; maximum-weight matching; MB;
                 nonempty; NP-hard problem; Restricted Matching
                 Problems; set theory; theory; undirected; union;
                 verification",
  subject =      "G.2.2 Mathematics of Computing, DISCRETE MATHEMATICS,
                 Graph Theory \\ F.1.3 Theory of Computation,
                 COMPUTATION BY ABSTRACT DEVICES, Complexity Classes \\
                 F.2.2 Theory of Computation, ANALYSIS OF ALGORITHMS AND
                 PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Pattern matching",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Rytter:1989:NOP,
  author =       "Wojciech Rytter",
  title =        "A note on optimal parallel transformations of regular
                 expressions to nondeterministic finite automata",
  journal =      j-INFO-PROC-LETT,
  volume =       "31",
  number =       "2",
  pages =        "103--109",
  day =          "26",
  month =        apr,
  year =         "1989",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q45",
  MRnumber =     "90k:68094",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Coventry, Engl",
  classification = "721; 723; C4220 (Automata theory); C4240
                 (Programming and algorithm theory)",
  corpsource =   "Dept. of Comput. Sci., Warwick Univ., Coventry, UK",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "algorithms; Automata Theory; Computer Systems,
                 Digital--Parallel Processing; Finite Automata; finite
                 automata; homomorphism; log n time; Nondeterministic
                 Finite Automata; nondeterministic finite automata;
                 optimal parallel transformations; parallel algorithms;
                 Parallel Random Access Machines; parallel random-access
                 machine; Parallel Transformations; recursive
                 construction; Regular Expressions; regular expressions;
                 theory; verification",
  subject =      "F.1.1 Theory of Computation, COMPUTATION BY ABSTRACT
                 DEVICES, Models of Computation, Automata \\ F.1.2
                 Theory of Computation, COMPUTATION BY ABSTRACT DEVICES,
                 Modes of Computation, Parallelism \\ F.1.2 Theory of
                 Computation, COMPUTATION BY ABSTRACT DEVICES, Modes of
                 Computation, Alternation and nondeterminism \\ E.1
                 Data, DATA STRUCTURES, VAX/VMS",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Statman:1989:SSC,
  author =       "R. Statman",
  title =        "On sets of solutions to combinator equations",
  journal =      j-THEOR-COMP-SCI,
  volume =       "66",
  number =       "1",
  pages =        "99--104",
  day =          "2",
  month =        aug,
  year =         "1989",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:29:49 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1985.bib",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C1250 (Pattern
                 recognition)",
  corpsource =   "Dept. of Math., Carnegie-Mellon Univ., Pittsburgh, PA,
                 USA",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "beta -conversion; combinator equations; combinatorial
                 mathematics; pattern matching; pattern recognition;
                 sets of solutions",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Walker:1989:FCP,
  author =       "Kenneth W. Walker",
  title =        "First-class patterns for {Icon}",
  journal =      j-COMP-LANGS,
  volume =       "14",
  number =       "3",
  pages =        "153--163",
  month =        "????",
  year =         "1989",
  CODEN =        "COLADA",
  ISSN =         "0096-0551 (print), 1873-6742 (electronic)",
  ISSN-L =       "0096-0551",
  bibdate =      "Tue Mar 25 14:04:06 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/complngs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Arizona",
  affiliationaddress = "Tucson, AZ, USA",
  classcodes =   "C6140D (High level languages); C6130D (Document
                 processing techniques)",
  classification = "723",
  corpsource =   "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ,
                 USA",
  fjournal =     "Computer Languages",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00960551",
  journalabr =   "Comput Lang",
  keywords =     "backtracking; coexpression semantics; Computer
                 Programming Languages; constructs; control structure;
                 dynamically created; entities; executable form; high
                 level languages; Icon Programming Language; Icon
                 programming language; interpreters; language; Language
                 Constructs; matching expressions; modifications;
                 pattern data type; pattern simulation; problem solving;
                 procedure syntax; Snobol Programming Language; SNOBOL4;
                 String Pattern Matching; string pattern matching",
  treatment =    "P Practical",
}

@Article{Wood:1989:IFS,
  author =       "P. Wood and D. Turcaso",
  title =        "Implementing a Faster String Search Algorithm in
                 {Ada}",
  journal =      j-SIGADA-LETTERS,
  volume =       "8",
  number =       "3",
  pages =        "87--97",
  month =        may # "\slash " # jun,
  year =         "1989",
  CODEN =        "AALEE5",
  ISSN =         "1094-3641 (print), 1557-9476 (electronic)",
  ISSN-L =       "1094-3641",
  bibdate =      "Thu Sep 28 07:33:23 MDT 2000",
  bibsource =    "ftp://ftp.uu.net/library/bibliography;
                 http://www.adahome.com/Resources/Bibliography/articles.ref;
                 https://www.math.utah.edu/pub/tex/bib/sigada.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  fjournal =     "ACM SIGAda Ada Letters",
  journal-URL =  "https://dl.acm.org/loi/sigada",
}

@Article{Yasuda:1989:PAM,
  author =       "Takuya Yasuda and Satoshi Igarashi and Oichi Atoda and
                 Nobuo Saito",
  title =        "`{Pattern} associative memory' and its use in logic
                 programming language processors",
  journal =      j-SYS-COMP-JAPAN,
  volume =       "20",
  number =       "11",
  pages =        "11--20",
  month =        nov,
  year =         "1989",
  CODEN =        "SCJAEP",
  ISSN =         "0882-1666 (print), 1520-684X (electronic)",
  ISSN-L =       "0882-1666",
  bibdate =      "Thu Oct 31 17:45:50 2002",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The traditional speed improvement of the logic
                 language processing system has been based on the
                 parallelism of clauses, and aimed at speeding up of the
                 unification. However, there can be another approach. By
                 introducing a specific function to the memory hardware,
                 the database can be managed independently of the host
                 CPU. Then the speed is improved by minimizing the data
                 traffic through the von Neumann bottleneck in the
                 retrieval of candidate clauses. This paper proposes a
                 pattern associative memory (PAM) which maintains the
                 clauses by the structural representation in it and
                 retrieves them by pattern matching with a high speed.
                 To make use of argument parallelism of clauses,
                 parallel hashing is adopted in PAM.",
  acknowledgement = ack-nhfb,
  affiliation =  "Tokyo Univ of Agriculture and Technology",
  affiliationaddress = "Koganei, Jpn",
  classification = "722; 723; 922",
  fjournal =     "Systems and computers in Japan",
  journalabr =   "Syst Comput Jpn",
  keywords =     "Associative; Candidate Clause Retrieval; Computer
                 Systems, Digital --- Parallel Processing; Data Storage,
                 Digital; Database Systems; Garbage Collection; Hash
                 Table; Hashing Processor; Logic Language Processing;
                 Pattern Associative Memory; Probability",
}

@Article{Zetzsche:1989:IPR,
  author =       "Christoph Zetzsche and Terry Caelli",
  title =        "Invariant pattern recognition using multiple filter
                 image representations",
  journal =      j-CVGIP,
  volume =       "45",
  number =       "2",
  pages =        "251--262",
  month =        feb,
  year =         "1989",
  CODEN =        "CVGPDB",
  ISSN =         "0734-189x (print), 1557-895x (electronic)",
  ISSN-L =       "0734-189X",
  bibdate =      "Thu Feb 6 18:44:11 MST 1997",
  bibsource =    "Compendex database; Graphics/rosenfeld/1989.bib;
                 https://www.math.utah.edu/pub/tex/bib/cvgip.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Lehrstuhl fur Nachrichtentechnik, Tech. Univ., Munich,
                 West Germany",
  affiliationaddress = "Munich, West Germany",
  classification = "723; C1250 (Pattern recognition); C5260B (Computer
                 vision and picture processing)",
  fjournal =     "Computer Vision, Graphics, and Image Processing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/0734189X",
  journalabr =   "Comput Vision Graphics Image Process",
  keywords =     "4-Dimensional representation; Correlation processes;
                 Cross correlation; Encoding scheme; Image
                 Decomposition; Image decompositions; Image positional
                 information; Image Processing; Invariant Pattern
                 Recognition; Invariant pattern recognition; Matched
                 filtering; Multiple Filter Image Representations;
                 Multiple filter image representations; Pattern
                 Matching; Pattern Recognition; Pattern rotations;
                 Recognition system, (image transformation, form); Scale
                 changes; Signal Filtering and Prediction;
                 Translations",
  thesaurus =    "Correlation methods; Filtering and prediction theory;
                 Pattern recognition",
}

@Article{Zhu:1989:TTD,
  author =       "Rui Feng Zhu and Tadao Takaoka",
  title =        "A Technique for Two-Dimensional Pattern Matching",
  journal =      j-CACM,
  volume =       "32",
  number =       "9",
  pages =        "1110--1120",
  month =        sep,
  year =         "1989",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Thu May 30 09:41:10 MDT 1996",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/cacm1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0001-0782/66459.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  keywords =     "algorithms; design; image multiplicity comparison;
                 performance",
  subject =      "{\bf F.2.2}: Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Pattern matching. {\bf I.5.4}:
                 Computing Methodologies, PATTERN RECOGNITION,
                 Applications, Text processing.",
}

@Article{Arcangeli:1990:PPP,
  author =       "J.-P. Arcangeli and C. Pomian",
  title =        "Principles of plasma pattern and alternative structure
                 compilation",
  journal =      j-THEOR-COMP-SCI,
  volume =       "71",
  number =       "2",
  pages =        "177--191",
  day =          "30",
  month =        mar,
  year =         "1990",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C6150C (Compilers, interpreters and other
                 processors)",
  conflocation = "Nice, France; 23-25 Feb. 1988",
  conftitle =    "INFORMATIKA 88. 2nd French-Soviet Workshop on Methods
                 of Compilation and Program Construction",
  corpsource =   "Lab. Langages et Syst. Inf., Univ. Paul Sabatier,
                 Toulouse, France",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "alternative structure compilation; backtracking;
                 formal model; message parsing; pattern codes; pattern
                 matching; plasma pattern; program compilers; simple
                 jumps; single pass compiler; syntax",
  pubcountry =   "Netherlands",
  treatment =    "P Practical",
}

@Article{Balachandran:1990:ERC,
  author =       "A. Balachandran and D. M. Dhamdhere and S. Biswas",
  title =        "Efficient retargetable code generation using bottom-up
                 tree pattern matching",
  journal =      j-COMP-LANGS,
  volume =       "15",
  number =       "3",
  pages =        "127--140",
  month =        "????",
  year =         "1990",
  CODEN =        "COLADA",
  ISSN =         "0096-0551 (print), 1873-6742 (electronic)",
  ISSN-L =       "0096-0551",
  bibdate =      "Tue Mar 25 14:04:06 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/complngs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Indian Inst of Technology",
  affiliationaddress = "Bombay, India",
  classcodes =   "C6150C (Compilers, interpreters and other processors);
                 C4210 (Formal logic)",
  classification = "722; 723",
  corpsource =   "Indian Inst. of Technol., Bombay, India",
  fjournal =     "Computer Languages",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00960551",
  journalabr =   "Comput Lang",
  keywords =     "attributed production rules; automatic code
                 generation; bottom-up tree pattern; Code Generation;
                 compression; Computer Operating Systems--Program
                 Compilers; Computer Programming Languages; cost;
                 derivation; expression trees; folding technique; Graham
                 Glanville style; grammars; information; matching;
                 matching automaton; minimum cost; optimal instruction;
                 Pattern Matching; program compilers; regular tree
                 grammar; retargetable code generation; selection;
                 table; target machine instructions",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Barrett:1990:RGA,
  author =       "Robert Barrett",
  title =        "References On {\tt grep}, {\tt awk}, {\tt sed}, and
                 {\tt tr}",
  journal =      j-CUJ,
  volume =       "8",
  type =         "Letter",
  number =       "3",
  pages =        "138--??",
  month =        mar,
  year =         "1990",
  ISSN =         "0898-9788",
  bibdate =      "Fri Aug 30 16:52:23 MDT 1996",
  bibsource =    "http://www.cuj.com/cbklist.htm;
                 https://www.math.utah.edu/pub/tex/bib/cccuj.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Bertossi:1990:SMW,
  author =       "A. A. Bertossi and F. Luccio and E. Lodi and L.
                 Pagli",
  title =        "String matching with weighted errors",
  journal =      j-THEOR-COMP-SCI,
  volume =       "73",
  number =       "3",
  pages =        "319--328",
  day =          "22",
  month =        jul,
  year =         "1990",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory)",
  corpsource =   "Dipartimento di Inf., Pisa Univ., Italy",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "computational complexity; parallel algorithms;
                 parallel time; PRAM model; sequential time; string
                 matching problem; weighted differences; weighted
                 errors",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Bradford:1990:SMB,
  author =       "James H. Bradford",
  title =        "Sequence matching with binary codes",
  journal =      j-INFO-PROC-LETT,
  volume =       "34",
  number =       "4",
  pages =        "193--196",
  day =          "24",
  month =        apr,
  year =         "1990",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Brock Univ",
  affiliationaddress = "St. Catharines, Ont, Can",
  classification = "723; B6120B (Codes); C1250 (Pattern recognition);
                 C1260 (Information theory)",
  corpsource =   "Dept. of Comput. Sci., Brock Univ., St. Catharines,
                 Ont., Canada",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "algorithm; Algorithms; Binary Codes; binary codes;
                 binary codewords; binary numbers; Codes, Symbolic;
                 Computer Metatheory--Computability and Decidability;
                 Computer Programming; error correction codes; Hamming
                 Distance; Hamming distance; Levenshtein Distance;
                 Levenshtein distance; pattern recognition; Sequence
                 Matching; sequence matching; string pairs; String
                 Similarity; string similarity; String-To-String Editing
                 Problem",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Breslauer:1990:OTP,
  author =       "Dany Breslauer and Zvi Galil",
  title =        "An optimal {$ O(\log \log n) $} time parallel string
                 matching algorithm",
  journal =      j-SIAM-J-COMPUT,
  volume =       "19",
  number =       "6",
  pages =        "1051--1058",
  month =        dec,
  year =         "1990",
  CODEN =        "SMJCAT",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68Q25 (68R15)",
  MRnumber =     "91m:68074",
  bibdate =      "Mon Nov 29 11:01:39 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/19/6;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@InProceedings{Chang:1990:ASM,
  author =       "W. I. Chang and E. L. Lawler",
  title =        "Approximate string matching in sublinear expected
                 time",
  crossref =     "IEEE:1990:PAS",
  volume =       "1",
  pages =        "116--124",
  year =         "1990",
  bibdate =      "Thu Apr 5 06:13:50 MDT 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Cohen:1990:CLP,
  author =       "Jacques Cohen",
  title =        "Constraint logic programming languages",
  journal =      j-CACM,
  volume =       "33",
  number =       "7",
  pages =        "52--68",
  month =        jul,
  year =         "1990",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Thu May 30 09:41:10 MDT 1996",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Misc/IMMD_IV.bib;
                 http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/cacm1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0001-0782/79209.html",
  abstract =     "Constraint Logic Programming (CLP) is an extension of
                 Logic Programming aimed at replacing the pattern
                 matching mechanism of unification, as used in Prolog,
                 by a more general operation called constraint
                 satisfaction. This article provides a panoramic view of
                 the recent work done in designing and implementing CLP
                 languages. It also presents a summary of their
                 theoretical foundations, discusses implementation
                 issues, compares the major CLP languages, and suggests
                 directions for further work.",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  keywords =     "design; languages",
  subject =      "{\bf F.4.1}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Mathematical Logic, Logic
                 programming. {\bf F.4.1}: Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Mathematical
                 Logic, Prolog. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Compilers.",
}

@TechReport{Cole:1990:TBC,
  author =       "R. Cole",
  title =        "Tight bounds on the complexity of the {Boyer--Moore}
                 pattern matching algorithm",
  type =         "Report",
  number =       "512",
  institution =  "Computer Science Dept, New York University",
  address =      "New York, NY, SA",
  month =        jun,
  year =         "1990",
  bibdate =      "Sat Sep 02 14:28:37 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@InProceedings{Colussi:1990:ECS,
  author =       "L. Colussi and Z. Galil and R. Giancarlo",
  title =        "On the exact complexity of string matching",
  crossref =     "IEEE:1990:PAS",
  volume =       "1",
  pages =        "135--144",
  year =         "1990",
  bibdate =      "Thu Apr 5 06:13:50 MDT 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@InProceedings{Consens:1990:GVF,
  author =       "Mariano P. Consens and Alberto O. Mendelzon",
  title =        "{GraphLog}: a visual formalism for real life
                 recursion",
  crossref =     "ACM:1990:PPN",
  pages =        "404--416",
  year =         "1990",
  bibdate =      "Wed Oct 25 12:40:13 MDT 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pods/298514/p404-consens/p404-consens.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pods/298514/p404-consens/",
  abstract =     "We present a query language called GraphLog, based on
                 a graph representation of both data and queries.
                 Queries are graph patterns. Edges in queries represent
                 edges or paths in the database. Regular expressions are
                 used to qualify these paths. We characterize the
                 expressive power of the language and show that it is
                 equivalent to stratified linear Datalog, first order
                 logic with transitive closure, and non-deterministic
                 logarithmic space (assuming ordering on the domain).
                 The fact that the latter three classes coincide was not
                 previously known. We show how GraphLog can be extended
                 to incorporate aggregates and path summarization, and
                 describe briefly our current prototype
                 implementation.",
  acknowledgement = ack-nhfb,
  classification = "C6140D (High level languages); C6160Z (Other DBMS)",
  corpsource =   "Comput. Syst. Res. Inst., Toronto Univ., Ont.,
                 Canada",
  keywords =     "database management systems; edges; expressive power;
                 first order logic; graph representation; graph theory;
                 GraphLog; path summarization; paths; query language;
                 query languages; real life recursion; transitive
                 closure; visual formalism",
  sponsororg =   "SIGACT; SIGMOD; SIGART",
  treatment =    "P Practical",
}

@Book{Cormen:1990:IA,
  author =       "Thomas H. Cormen and Charles E. (Eric) Leiserson and
                 Ronald L. Rivest",
  title =        "Introduction to Algorithms",
  publisher =    pub-MIT,
  address =      pub-MIT:adr,
  pages =        "xvii + 1028",
  year =         "1990",
  ISBN =         "0-262-03141-8, 0-07-013143-0 (McGraw-Hill)",
  ISBN-13 =      "978-0-262-03141-7, 978-0-07-013143-9 (McGraw-Hill)",
  LCCN =         "QA76.6 .C662 1990",
  bibdate =      "Tue Oct 11 06:42:43 2005",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/subjects/acc-stab-num-alg.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  libnote =      "Not yet in my library.",
  subject =      "Computer programming; Computer algorithms",
  tableofcontents = "Growth of functions \\
                 Summations \\
                 Recurrences \\
                 Sets, etc. \\
                 Counting and probability \\
                 Heapsort \\
                 Quicksort \\
                 Sorting in linear time \\
                 Medians and order statistics \\
                 Elementary data structures \\
                 Hash tables \\
                 Binary search trees \\
                 Red-black trees \\
                 Augmenting data structures \\
                 Dynamic programming \\
                 Greedy algorithms \\
                 Amortized analysis \\
                 B-trees \\
                 Binomial heaps \\
                 Fibonacci heaps \\
                 Data structures for disjoint sets \\
                 Elementary graph algorithms \\
                 Minimum spanning trees \\
                 Single-source shortest paths \\
                 All-pairs shortest paths \\
                 Maximum flow \\
                 Sorting networks \\
                 Arithmetic circuits \\
                 Algorithms for parallel computers \\
                 Matrix operations \\
                 Polynomials and the FFT \\
                 Number-theoretic algorithms \\
                 String matching \\
                 Computational geometry \\
                 NP-completeness \\
                 Approximation algorithms",
}

@InProceedings{Dubiner:1990:FTP,
  author =       "M. Dubiner and Z. Galil and E. Magen",
  title =        "Faster tree pattern matching",
  crossref =     "IEEE:1990:PAS",
  volume =       "1",
  pages =        "145--150",
  year =         "1990",
  bibdate =      "Thu Apr 5 06:13:50 MDT 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Galil:1990:IAA,
  author =       "Zvi Galil and Kunsoo Park",
  title =        "An Improved Algorithm for Approximate String
                 Matching",
  journal =      j-SIAM-J-COMPUT,
  volume =       "19",
  number =       "6",
  pages =        "989--999",
  month =        dec,
  year =         "1990",
  CODEN =        "SMJCAT",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68Q20 (68Q25 68U15)",
  MRnumber =     "92c:68062",
  MRreviewer =   "Linda Pagli",
  bibdate =      "Mon Nov 29 11:01:39 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/19/6;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Giegerich:1990:CSI,
  author =       "R. Giegerich",
  title =        "Code selection by inversion of order-sorted derivors",
  journal =      j-THEOR-COMP-SCI,
  volume =       "73",
  number =       "2",
  pages =        "177--211",
  day =          "22",
  month =        jun,
  year =         "1990",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory); C6140D
                 (High level languages)",
  corpsource =   "Tech. Fak., Bielefeld Univ., West Germany",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "code selection problem; code selector specification;
                 completeness; expressive power; formal criteria;
                 hierarchic derivor; high level languages; intermediate
                 languages; inversion; nonsyntactic subtasks;
                 order-sorted derivors; order-sorted term algebras;
                 pattern matching; programming theory",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@InProceedings{Glueck:1990:AMT,
  author =       "R. Glueck and V. F. Turchin",
  title =        "Application of metasystem transition to function
                 inversion and transformation",
  crossref =     "Watanabe:1990:IPI",
  pages =        "286--287",
  year =         "1990",
  bibdate =      "Thu Mar 12 08:36:58 MST 1998",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/issac.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/issac/96877/p286-glueck/",
  abstract =     "The authors prove by construction an application
                 considered theoretically by Turchin (1972) that
                 self-application of metacomputation will allow the
                 automatic construction of inverse algorithms, in
                 particular the algorithm of binary subtraction from the
                 algorithm of binary addition. Further, they present
                 results concerning the algorithmic construction of an
                 efficient pattern matcher, which leads to the Knuth,
                 Morris and Pratt algorithm. These results were achieved
                 with the first working model of a self-applicable
                 supercompiler system, implementing the concept of
                 metacomputation.",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ. of Technol. Vienna, Austria",
  classification = "C4240 (Programming and algorithm theory)",
  keywords =     "Algorithmic construction; algorithms; Function
                 inversion; Inverse algorithms; Metacomputation;
                 Metasystem transition; Pattern matcher; theory;
                 Transformation; verification",
  subject =      "{\bf G.1.0} Mathematics of Computing, NUMERICAL
                 ANALYSIS, General, Computer arithmetic. {\bf I.1.0}
                 Computing Methodologies, SYMBOLIC AND ALGEBRAIC
                 MANIPULATION, General. {\bf D.3.4} Software,
                 PROGRAMMING LANGUAGES, Processors. {\bf F.2.2} Theory
                 of Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
                 COMPLEXITY, Nonnumerical Algorithms and Problems,
                 Pattern matching.",
  thesaurus =    "Algorithm theory; Computation theory; Symbol
                 manipulation",
}

@Article{Goldschlag:1990:MVC,
  author =       "D. M. Goldschlag",
  title =        "Mechanically verifying concurrent programs with the
                 {Boyer--Moore} prover",
  journal =      j-IEEE-TRANS-SOFTW-ENG,
  volume =       "16",
  number =       "9",
  pages =        "1005--1023",
  month =        sep,
  year =         "1990",
  CODEN =        "IESEDJ",
  DOI =          "https://doi.org/10.1109/32.58787",
  ISSN =         "0098-5589 (print), 1939-3520 (electronic)",
  ISSN-L =       "0098-5589",
  bibdate =      "Thu Feb 1 11:00:42 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranssoftweng1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=58787",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Software Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32",
}

@Article{Gonnet:1990:AKR,
  author =       "Gaston H. Gonnet and Ricardo A. Baeza-Yates",
  title =        "An analysis of the {Karp-Rabin} string matching
                 algorithm",
  journal =      j-INFO-PROC-LETT,
  volume =       "34",
  number =       "5",
  pages =        "271--274",
  day =          "7",
  month =        may,
  year =         "1990",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We present an average case analysis of the Karp-Rabin
                 string matching algorithm. This algorithm is a
                 probabilistic algorithm that adapts hashing techniques
                 to string searching. We also propose an efficient
                 implementation of this algorithm.",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Waterloo",
  affiliationaddress = "Waterloo, Ont, Canada",
  classification = "723; 922; C4240 (Programming and algorithm theory)",
  corpsource =   "Dept. of Comput. Sci., Waterloo Univ., Ont., Canada",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "algorithm theory; Algorithms; average case analysis;
                 Computer Programming; Hashing; hashing techniques;
                 Karp-Rabin Algorithm; Karp-Rabin string matching
                 algorithm; pattern recognition; probabilistic
                 algorithm; Probability; search problems; String
                 Matching; String Searching",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Gonnet:1990:AKS,
  author =       "Gaston H. Gonnet and Ricardo A. Baeza-Yates",
  title =        "An analysis of the {Karp-Rabin} string matching
                 algorithm",
  journal =      j-INFO-PROC-LETT,
  volume =       "34",
  number =       "5",
  pages =        "271--274",
  day =          "7",
  month =        may,
  year =         "1990",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We present an average case analysis of the Karp-Rabin
                 string matching algorithm. This algorithm is a
                 probabilistic algorithm that adapts hashing techniques
                 to string searching. We also propose an efficient
                 implementation of this algorithm.",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Waterloo",
  affiliationaddress = "Waterloo, Ont, Canada",
  classification = "723; 922; C4240 (Programming and algorithm theory)",
  corpsource =   "Dept. of Comput. Sci., Waterloo Univ., Ont., Canada",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190/",
  journalabr =   "Inf Process Lett",
  keywords =     "algorithm theory; Algorithms; average case analysis;
                 Computer Programming; Hashing; hashing techniques;
                 Karp-Rabin Algorithm; Karp-Rabin string matching
                 algorithm; pattern recognition; probabilistic
                 algorithm; Probability; search problems; String
                 Matching; String Searching",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Guenther:1990:EEF,
  author =       "G. R. Guenther",
  title =        "Efficient expansion of factored expressions",
  journal =      j-INFO-PROC-LETT,
  volume =       "35",
  number =       "2",
  pages =        "69--72",
  day =          "29",
  month =        jun,
  year =         "1990",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Laurentian Univ",
  affiliationaddress = "Sudbury, Ont, Can",
  classification = "723; C4210 (Formal logic); C4240 (Programming and
                 algorithm theory); C6140D (High level languages)",
  corpsource =   "Dept. of Math. and Comput. Sci., Laurentian Univ.,
                 Sudbury, Ont., Canada",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Computer Programming --- Algorithms; Computer
                 Programming Languages; Factored Expressions; factored
                 expressions; formal languages; generator; high level
                 languages; iterator; Iterators; programming theory;
                 Regular Expressions; regular expressions; Theory",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@TechReport{Harrison:1990:CAV,
  author =       "Luddy Harrison and Zahira Ammarguellat",
  title =        "A comparison of automatic versus manual
                 parallelization of the {Boyer--Moore} theorem prover",
  number =       "CSRD 960",
  institution =  inst-UIUC-CSRD,
  address =      inst-UIUC-CSRD:adr,
  pages =        "17",
  year =         "1990",
  bibdate =      "Fri Aug 30 08:01:51 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/super.bib",
  abstract =     "In this paper, we compare the manual parallelization
                 of the Boyer--Moore theorem prover [Gab85] using the
                 constructs of Multiplisp [Hal85] and Qlisp [GGS89],
                 with the automatic parallelization of the same program
                 using the Parcel compiler [Har89]. boyer is popular as
                 a Lisp benchmark because it performs a significant and
                 representative computation; its structure makes it
                 interesting for studying manual and automatic
                 parallelization as well. We will compare the
                 parallelism that results from a straightforward
                 hand-parallelization of the theorem prover using future
                 and qlet, with that introduced by Parcel. We find the
                 most significant parallelism within the theorem prover
                 is easily expressed using future or qlet, and that this
                 same parallelism is automatically uncovered by the
                 Parcel compiler. There is in boyer some
                 producer-consumer parallelism that can be expressed
                 using future or qlet, that is not exploited by Parcel.
                 On the other hand, we show that Parcel is able to
                 deduce the lifetimes of dynamically allocated objects,
                 and on this basis to guide the management of a
                 hierarchical memory, whereas there is no provision for
                 the management of such a memory in either Multilisp or
                 Qlisp.",
  acknowledgement = ack-nhfb,
  annote =       "To appear in Monographs in Parallel and Distributed
                 Computing, Chris Jesshope and Dave Klappholz, eds.,
                 Pitman Publishing, 1990. Supported in part by the
                 National Science Foundation. Supported in part by the
                 U.S. Department of Energy. Supported in part by the
                 Office of Naval Research. Supported in part by the Air
                 Force Office of Scientific Research.",
  keywords =     "Automatic theorem proving; Parallel processing
                 (Electronic computers)",
}

@Article{Hashiguchi:1990:ERE,
  author =       "K. Hashiguchi and H. Yoo",
  title =        "Extended regular expressions of star degree at most
                 two",
  journal =      j-THEOR-COMP-SCI,
  volume =       "76",
  number =       "2-3",
  pages =        "273--284",
  day =          "21",
  month =        nov,
  year =         "1990",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C4210 (Formal logic)",
  corpsource =   "Dept. of Inf. and Comput. Sci., Toyohashi Univ. of
                 Technol., Japan",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "closure; concatenation; context-free languages;
                 extended regular expressions; finite languages; formal
                 languages; Kleene star; star degree; star operator;
                 subfamily; union",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Hendren:1990:PPR,
  author =       "Laurie J. Hendren and Alexandru Nicolau",
  title =        "Parallelizing programs with recursive data
                 structures",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "1",
  number =       "1",
  pages =        "35--47",
  month =        jan,
  year =         "1990",
  CODEN =        "ITDSEO",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Fri Apr 11 15:20:39 MDT 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/ieeetranspardistsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Cornell Univ, Dep of Comput Sci, Ithaca, NY, USA",
  classification = "722; 723; C4240 (Programming and algorithm theory);
                 C6120 (File organisation); C6150C (Compilers,
                 interpreters and other processors)",
  corpsource =   "Dept. of Comput. Sci., Cornell Univ., Ithaca, NY,
                 USA",
  fjournal =     "IEEE Transactions on Parallel and Distributed
                 Systems",
  journal-URL =  "http://www.computer.org/tpds/archives.htm",
  journalabr =   "IEEE Trans Parallel Distrib Syst",
  keywords =     "accessible nodes; automatic parallelization; Computer
                 Operating Systems; Computer Systems, Digital--Parallel
                 Processing; Data Processing--Data Structures; data
                 structures; directed acyclic graphs; directed graphs;
                 disambiguation techniques; dynamic data structures;
                 dynamically updatable trees; imperative; imperative
                 programs; interference; interference analysis;
                 language; parallel programming; parallel programming
                 languages; parallelization techniques; parallelizing
                 compilers; Parallelizing Compilers; Program Compilers;
                 program compilers; Recursive Data Structures; recursive
                 data structures; regular-expression-like
                 representation; tools; trees (mathematics)",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Henry:1990:UWI,
  author =       "Robert R. Henry and Kenneth M. Whaley and Bruce
                 Forstall",
  title =        "The {University} of {Washington} illustrating
                 compiler",
  journal =      j-SIGPLAN,
  volume =       "25",
  number =       "6",
  pages =        "223--233",
  month =        jun,
  year =         "1990",
  CODEN =        "SINODQ",
  ISBN =         "0-89791-364-7",
  ISBN-13 =      "978-0-89791-364-5",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:15:53 MST 2003",
  bibsource =    "Compendex database; http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/pldi/93542/index.html;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/pldi/93542/p223-henry/",
  abstract =     "The University of Washington illustrating compiler
                 (UWPI) automatically illustrates the data structures
                 used in simple programs written in a subset of
                 Pascal${}^2$. A UWPI user submits a program to UWPI,
                 and can then watch a graphical display show time
                 varying illustrations of the data structures and
                 program source code. UWPI uses the information latent
                 in the program to determine how to illustrate the
                 program. UWPI infers the abstract data types directly
                 from the declarations and operations used in the source
                 program, and then lays out the illustration in a
                 natural way by instantiating well-known layouts for the
                 abstract types. UWPI solves program illustration using
                 compile-time pattern matching and type inferencing to
                 link anticipated execution events to display events,
                 rather than relying on user assistance or specialized
                 programming techniques. UWPI has been used to
                 automatically illustrate didactic sorting and searching
                 examples, and can be used to help teach basic data
                 structures, or to help when debugging programs.",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Washington",
  affiliationaddress = "Seattle, WA, USA",
  annote =       "Published as part of the Proceedings of PLDI'90.",
  classification = "722; 723",
  conference =   "Proceedings of the ACM SIGPLAN '90 Conference on
                 Programming Language Design and Implementation",
  conferenceyear = "1990",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  journalabr =   "SIGPLAN Not",
  keywords =     "Computer Operating Systems; Computer Programming
                 Languages --- pascal; Data Processing --- Data
                 Structures; design; Program Compilers; reliability;
                 University of Washington Illustrating Compiler (UWPI)",
  meetingaddress = "White Plains, NY, USA",
  meetingdate =  "Jun 20--22 1990",
  meetingdate2 = "06/20--22/90",
  sponsor =      "Assoc for Computing Machinery, Special Interest Group
                 on Programming Languages",
  subject =      "{\bf D.3.4} Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers. {\bf D.3.3} Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Data types and structures. {\bf D.3.3}
                 Software, PROGRAMMING LANGUAGES, Language Constructs
                 and Features, Abstract data types. {\bf D.2.2}
                 Software, SOFTWARE ENGINEERING, Design Tools and
                 Techniques, User interfaces. {\bf D.2.5} Software,
                 SOFTWARE ENGINEERING, Testing and Debugging, Debugging
                 aids. {\bf G.2.2} Mathematics of Computing, DISCRETE
                 MATHEMATICS, Graph Theory.",
}

@TechReport{Hume:1990:FSS,
  author =       "Andrew Hume and Daniel Sunday",
  title =        "Fast String Searching",
  type =         "Computing Science Technical Report",
  number =       "156",
  institution =  inst-ATT-BELL,
  address =      inst-ATT-BELL:adr,
  pages =        "??",
  year =         "1990",
  bibdate =      "Sat Sep 02 07:46:26 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  acknowledgement = ack-nhfb,
  remark =       "Published in \cite{Hume:1991:FSS}. No electronic form
                 of this report has yet been located, so the year is
                 uncertain.",
}

@Article{Isenman:1990:PAI,
  author =       "M. E. Isenman and D. E. Shasha",
  title =        "Performance and architectural issues for string
                 matching",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "39",
  number =       "2",
  pages =        "238--250",
  month =        feb,
  year =         "1990",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/12.45209",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Thu Jul 7 14:19:59 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=45209",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Janicki:1990:TSS,
  author =       "R. Janicki and T. Muldner",
  title =        "Transformations of sequential specifications into
                 concurrent specifications by synchronization guards",
  journal =      j-THEOR-COMP-SCI,
  volume =       "77",
  number =       "1-2",
  pages =        "97--129",
  day =          "07",
  month =        dec,
  year =         "1990",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C4210 (Formal logic); C4240 (Programming and
                 algorithm theory); C6110B (Software engineering
                 techniques)",
  conflocation = "Iowa City, IA, USA; 22-24 May 1989",
  conftitle =    "International Conference on Algebraic Methodology and
                 Software Technology, AMAST",
  corpsource =   "Dept. of Comput. Sci. and Syst., McMaster Univ.,
                 Hamilton, Ont., Canada",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "Banach; concurrent specifications; formal
                 specification; high level languages; parallel
                 programming; Pascal; Pascal-like language; programming
                 language representation; programming theory; regular
                 expression; sequential specifications; special actions;
                 synchronisation; synchronization guards;
                 transformations",
  pubcountry =   "Netherlands",
  treatment =    "P Practical",
}

@Article{Jokinen:1990:PTA,
  author =       "M. O. Jokinen",
  title =        "Parameter Transmission Abstractions",
  journal =      j-COMP-J,
  volume =       "33",
  number =       "2",
  pages =        "133--139",
  month =        apr,
  year =         "1990",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/33.2.133",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Tue Dec 4 14:48:28 MST 2012",
  bibsource =    "http://comjnl.oxfordjournals.org/content/33/2.toc;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_02/;
                 https://www.math.utah.edu/pub/tex/bib/compj.bib;
                 https://www.math.utah.edu/pub/tex/bib/compj1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/33/2/133.full.pdf+html;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_02/tiff/133.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_02/tiff/134.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_02/tiff/135.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_02/tiff/136.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_02/tiff/137.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_02/tiff/138.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_02/tiff/139.tif",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. Sci., Turku Univ., Finland",
  classcodes =   "C6140D (High level languages); C6110 (Systems analysis
                 and programming); C6120 (File organisation)",
  classification = "C6110 (Systems analysis and programming); C6120
                 (File organisation); C6140D (High level languages)",
  corpsource =   "Dept. of Comput. Sci., Turku Univ., Finland",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  keywords =     "computational linguistics; conventional; Conventional
                 parameter transmission mechanisms; copying; Copying;
                 data structures; default values; Default values; high
                 level; implicit actions; Implicit actions; languages;
                 linguistic mechanism; Linguistic mechanism; optional
                 parameters; Optional parameters; parameter binding;
                 parameter transmission abstractions; Parameter
                 transmission abstractions; parameter transmission
                 mechanisms; pattern recognition; pattern-matching
                 based; Pattern-matching based parameter binding;
                 programming; programming languages; Programming
                 languages; type conversions; Type conversions",
  thesaurus =    "Computational linguistics; Data structures; High level
                 languages; Pattern recognition; Programming",
  treatment =    "P Practical",
}

@Article{Kuo:1990:NSC,
  author =       "R. T. Kuo and S. S. Tseng",
  title =        "The necessary and sufficient condition for the
                 worst-case male optimal stable matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "34",
  number =       "5",
  pages =        "261--263",
  day =          "7",
  month =        may,
  year =         "1990",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Natl Chiao Tung Univ",
  affiliationaddress = "Hsinchu, Taiwan",
  classification = "723; C4240 (Programming and algorithm theory); C4250
                 (Database theory)",
  corpsource =   "National Chiao Tung Univ., Hsinchu, Taiwan",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "algorithm theory; Algorithms; Computer Programming;
                 database theory; pattern recognition; probability;
                 search problems; sequential stable matching problem;
                 Stable Matching Problem; worst-case male optimal stable
                 matching",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Lee:1990:HSC,
  author =       "Peizong Lee and Zvi M. Kedem",
  title =        "On High-Speed Computing with a Programmable Linear
                 Array",
  journal =      j-J-SUPERCOMPUTING,
  volume =       "4",
  number =       "3",
  pages =        "223--249",
  month =        sep,
  year =         "1990",
  CODEN =        "JOSUED",
  DOI =          "https://doi.org/10.1007/BF00127833",
  ISSN =         "0920-8542 (print), 1573-0484 (electronic)",
  ISSN-L =       "0920-8542",
  bibdate =      "Wed Jul 6 11:13:02 MDT 2005",
  bibsource =    "ftp://ftp.ira.uka.de/pub/Parallel/JOURNAL.SUPER.bib;
                 http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0920-8542&volume=4&issue=3;
                 https://www.math.utah.edu/pub/tex/bib/jsuper.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0920-8542&volume=4&issue=3&spage=223",
  acknowledgement = ack-nhfb,
  affiliation =  "Inst. of Inf. Sci., Acad. Sinica, Taipei, Taiwan",
  classification = "B1265B (Logic circuits); C5220 (Computer
                 architecture)",
  corpsource =   "Inst. of Inf. Sci., Acad. Sinica, Taipei, Taiwan",
  fjournal =     "The Journal of Supercomputing",
  journal-URL =  "http://link.springer.com/journal/11227",
  keywords =     "cellular arrays; database operations; formal
                 methodology; high-speed computations; matrix
                 arithmetic; nested for-loops; optimal processor/time
                 product; parallel processing; pattern matching;
                 programmable linear systolic array; sequential
                 algorithms; signal processing; sorting; systolic
                 arrays; transitive closure",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Lins:1990:ISU,
  author =       "Rafael D. Lins and Simon J. Thompson",
  title =        "Implementing {SASL} using Categorical
                 Multi-combinators",
  journal =      j-SPE,
  volume =       "20",
  number =       "11",
  pages =        "1137--1165",
  month =        nov,
  year =         "1990",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Categorical multi-combinators form a rewriting system
                 developed with the aim of providing efficient
                 implementations of lazy functional languages. The core
                 of the system of categorical multi-combinators consists
                 of only two rewriting laws with a very low
                 pattern-matching complexity. This system allows the
                 equivalent of several beta-reductions to be performed
                 at once, and avoids the generation of trivially
                 reducible sub-expressions. In this paper we present a
                 method of introducing algebraic data-types and local
                 recursion to categorical multi-combinators which is
                 both efficient and in harmony with the original system.
                 We also show how to compile a subset of SASL into
                 categorical combinators. Some implementation issues are
                 also addressed here. The performance of implementations
                 of categorical multi-combinator SASL machines is
                 analysed here and compared with other implementations
                 of functional languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "combinator functional",
}

@Article{Liu:1990:COR,
  author =       "Cheng-Hsiung Liu and Wen-Hsiang Tsai",
  title =        "{$3$D} Curved Object Recognition from Multiple {$2$D}
                 Camera Views",
  journal =      j-CVGIP,
  volume =       "50",
  number =       "2",
  pages =        "177--187",
  month =        may,
  year =         "1990",
  CODEN =        "CVGPDB",
  ISSN =         "0734-189x (print), 1557-895x (electronic)",
  ISSN-L =       "0734-189X",
  bibdate =      "Fri Jan 31 15:09:26 MST 1997",
  bibsource =    "Compendex database; Graphics/optica.bib;
                 https://www.math.utah.edu/pub/tex/bib/cvgip.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Inst. of Comput. Sci. and Inf. Eng., Nat. Chiao Tung
                 Univ.",
  affiliationaddress = "Hsinchu, Taiwan",
  classification = "723; 741; C1250 (Pattern recognition); C5260B
                 (Computer vision and picture processing)",
  fjournal =     "Computer Vision, Graphics, and Image Processing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/0734189X",
  journalabr =   "Comput Vision Graphics Image Process",
  keywords =     "2D Shape Analysis; 3D curved object recognition; 3D
                 Object Recognition; Automatic Learning; Decision Tree;
                 Decision tree; Feature Clustering; Feature comparison;
                 Fixed camera views; Image Processing--Image Analysis;
                 Industrial Plants--Automation; Input 2D silhouette
                 shape features; Lateral camera; Learning process; Model
                 shapes; Multiple 2D camera views; Pattern Recognition
                 Systems; Principal axes; Recognition system; Rotation;
                 Sequential matching; Shape registration; Top camera;
                 Top-view shape centroids; Translation; Turntable;
                 Vision--Artificial",
  thesaurus =    "Computer vision; Computerised pattern recognition;
                 Computerised picture processing",
}

@Article{Maes:1990:CSS,
  author =       "Maurice Maes",
  title =        "On a cyclic string-to-string correction problem",
  journal =      j-INFO-PROC-LETT,
  volume =       "35",
  number =       "2",
  pages =        "73--78",
  day =          "29",
  month =        jun,
  year =         "1990",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Philips Research Lab",
  affiliationaddress = "Eindhoven, Neth",
  classification = "723; C4240 (Programming and algorithm theory)",
  corpsource =   "Philips Res. Labs., Eindhoven, Netherlands",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; computational complexity; Computer
                 Programming; cyclic string-to-string correction
                 problem; Cyclic Strings; distance functions; distance
                 measure; edit operations; encoding; equivalent;
                 minimum-cost sequences; Pattern Matching; polygonal
                 objects; similarity measure; String Correction",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Mahajan:1990:EPI,
  author =       "Milind Mahajan and V. K. Prasanna Kumar",
  title =        "Efficient parallel implementation of {RETE} pattern
                 matching",
  journal =      j-COMPUT-SYST-SCI-ENG,
  volume =       "5",
  number =       "3",
  pages =        "187--192",
  month =        jul,
  year =         "1990",
  CODEN =        "CSSEEI",
  ISSN =         "0267-6192",
  bibdate =      "Thu Feb 4 13:21:32 MST 1999",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/computsystscieng.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 OCLC Contents1st database",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Southern California",
  affiliationaddress = "Los Angeles, USA",
  classification = "723",
  fjournal =     "Computer Systems Science and Engineering",
  journal-URL =  "http://www.crlpublishing.co.uk/csse",
  journalabr =   "Comput Syst Sci Eng",
  keywords =     "Computer Programming --- Algorithms; Computer Systems
                 Programming --- Multiprocessing Programs; Expert
                 Systems; Matching Algorithms; Pattern Matching; RETE
                 Algorithm",
}

@InCollection{Morris:1990:PER,
  author =       "Joseph M. Morris",
  title =        "Programming by expression refinement: the {KMP}
                 algorithm",
  crossref =     "Feijen:1990:BOB",
  chapter =      "37",
  pages =        "327--338",
  year =         "1990",
  bibdate =      "Sun Mar 27 17:53:57 1994",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/d/dijkstra-edsger-w.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  keywords =     "Knuth--Morris--Pratt pattern-matching algorithm",
}

@Article{Nilsen:1990:SDT,
  author =       "Kelvin Nilsen",
  title =        "A stream data type that supports goal-directed pattern
                 matching on unbounded sequences of values",
  journal =      j-COMP-LANGS,
  volume =       "15",
  number =       "1",
  pages =        "41--54",
  month =        "????",
  year =         "1990",
  CODEN =        "COLADA",
  ISSN =         "0096-0551 (print), 1873-6742 (electronic)",
  ISSN-L =       "0096-0551",
  bibdate =      "Tue Mar 25 14:04:06 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/complngs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Iowa State Univ",
  affiliationaddress = "Ames, IA, USA",
  classcodes =   "C6120 (File organisation); C6110 (Systems analysis and
                 programming); C5260B (Computer vision and picture
                 processing)C6180N (Natural language processing); C6130D
                 (Document processing techniques); C6140D (High level
                 languages)",
  classification = "723",
  corpsource =   "Dept. of Comput. Sci., Iowa State Univ., Ames, IA,
                 USA",
  fjournal =     "Computer Languages",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00960551",
  journalabr =   "Comput Lang",
  keywords =     "arbitrary values; Computer Programming Languages;
                 computerised pattern recognition; Data Processing--Data
                 Structures; data structures; data type; Design;
                 goal-directed; Goal-Directed Pattern Matching; high;
                 Icon; interactive user; interfaces; level languages;
                 natural language processing; pattern matching
                 techniques; processing; programming; sequences;
                 Snobol4; SNOBOL4; stream data type; unbounded; user
                 interfaces; word",
  treatment =    "P Practical",
}

@InProceedings{Noor:1990:ASC,
  author =       "Ahmed K. Noor and Carl M. Anderson",
  title =        "Application of symbolic computation to geometrically
                 nonlinear analysis of curved beams",
  crossref =     "Noor:1990:SCT",
  pages =        "115--148",
  year =         "1990",
  bibdate =      "Sat Oct 21 15:18:51 2000",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/mathematica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The application of a two-step hybrid analytical
                 technique to the geometrically nonlinear analysis of
                 curved beams is used to demonstrate the potential of
                 symbolic computations in structural mechanics. The
                 hybrid technique is based on successive use of the
                 regular perturbation method and a classical direct
                 variational procedure. The present application is also
                 used to identify a number of problem areas which limit
                 the realization of the full potential of symbolic
                 computations in nonlinear structural mechanics. The
                 tasks which can be efficiently performed by symbolic
                 computations are: (1) generation of algebraic
                 expressions for the perturbation functions; (2)
                 determination of the radius of convergence of the
                 perturbation series; and (3) evaluation of sensitivity
                 derivatives (derivatives of the different response
                 quantities with respect to the geometric and material
                 parameters of the beam). The symbolic computation
                 system Mathematica is used in the present study. A
                 sample Mathematica program is presented for generating
                 the perturbation functions, applying the direct
                 variational procedure, and evaluating the sensitivity
                 derivatives.",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Virginia",
  affiliationaddress = "Hampton, VA, USA",
  classification = "408; 723; 921",
  conference =   "Winter Annual Meeting of the American Society of
                 Mechanical Engineers",
  conferenceyear = "1990",
  journalabr =   "ASME Pressure Vessels Piping Div Publ PVP",
  keywords =     "Analysis; Beams and Girders; Computer Program
                 Mathematica; Computer Software; Curved Beams; Direct
                 Variational Procedure; Mathematical Techniques ---
                 Nonlinear Equations; Nonlinear Geometric Analysis;
                 Regular Perturbation Method; Symbolic Computation",
  meetingaddress = "Dallas, TX, USA",
  meetingdate =  "Nov 25--30 1990",
  meetingdate2 = "11/25--30/90",
  sponsor =      "ASME, Pressure Vessels and Piping Div; ASME, Applied
                 Mechanics Div; ASME, Computers in Engineering Div",
}

@Article{Partsch:1990:FPM,
  author =       "H. A. Partsch and F. A. Stomp",
  title =        "A fast pattern matching algorithm derived by
                 transformational and assertional reasoning",
  journal =      j-FORM-ASP-COMPUT,
  volume =       "2",
  number =       "1",
  pages =        "109--122",
  month =        mar,
  year =         "1990",
  CODEN =        "FACME5",
  DOI =          "https://doi.org/10.1007/BF01888219",
  ISSN =         "0934-5043 (print), 1433-299X (electronic)",
  ISSN-L =       "0934-5043",
  bibdate =      "Tue Mar 17 20:57:21 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/formaspcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/BF01888219",
  acknowledgement = ack-nhfb,
  fjournal =     "Formal Aspects of Computing",
  journal-URL =  "http://link.springer.com/journal/165",
}

@Article{Peacocke:1990:ISS,
  author =       "Richard D. Peacocke and Daryl H. Graf",
  title =        "An Introduction to Speech and Speaker Recognition",
  journal =      j-COMPUTER,
  volume =       "23",
  number =       "8",
  pages =        "26--33",
  month =        aug,
  year =         "1990",
  CODEN =        "CPTRB4",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Tue Feb 04 06:54:17 1997",
  bibsource =    "Ai/Speech.bib; Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/computer1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 Misc/IMMD_IV.bib",
  abstract =     "Speech recognition, the ability to identify spoken
                 words, and speaker recognition, the ability to identify
                 who is saying them, are becoming commonplace
                 applications of speech processing technology.",
  acknowledgement = ack-nhfb,
  affiliation =  "Bell Northern Research, Ottawa, Ont, Can",
  classification = "721; 723; 751; 922; B6130 (Speech analysis and
                 processing techniques); C1250C (Speech recognition);
                 C5260 (Digital signal processing); C5585 (Speech
                 recognition and synthesis); C6180N (Natural language
                 processing)",
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
  journalabr =   "Computer",
  keywords =     "Automata Theory--Grammars; Controlled environmental
                 conditions; Digital signal processing module; Hidden
                 Markov Models; Isolated words; Limited vocabulary size;
                 Pattern-matching algorithm; Preprocessed signal
                 storage; Probability; Recognition; Reference speech
                 patterns; Signal Processing--Digital Techniques;
                 Speaker recognition; Speaker-dependent systems; Speech;
                 Speech capture device; Speech recognition system;
                 Speech recognition task; Tightly constrained grammar;
                 Tightly Constrained Grammar",
  thesaurus =    "Computerised signal processing; Speech recognition",
}

@Article{Ramesh:1990:PTP,
  author =       "R. Ramesh and I. V. Ramakrishnan",
  title =        "Parallel Tree Pattern Matching",
  journal =      j-J-SYMBOLIC-COMP,
  volume =       "9",
  number =       "4",
  pages =        "485--502 (or 485--501??)",
  month =        apr,
  year =         "1990",
  CODEN =        "JSYCEH",
  ISSN =         "0747-7171 (print), 1095-855X (electronic)",
  ISSN-L =       "0747-7171",
  bibdate =      "Wed Mar 19 13:51:24 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsymcomp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C4240 (Programming and algorithm theory); C1160
                 (Combinatorial mathematics); C1250 (Pattern
                 recognition)",
  corpsource =   "Dept. of Comput. Sci., Texas Univ., Dallas, TX, USA",
  fjournal =     "Journal of Symbolic Computation",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07477171",
  keywords =     "automatic; code; compilers; computational complexity;
                 optimization; parallel algorithm; parallel algorithms;
                 parallel random access machine model; parallel tree
                 pattern matching; pattern; programming tasks;
                 recognition; Rewriting, Theorem proving; symbolic
                 computation; term rewriting; theorem proving; trees
                 (mathematics)",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Saxton:1990:FGA,
  author =       "Lawrence V. Saxton and Nalin Wijesinghe",
  title =        "A fast generalized approximate string matching
                 algorithm",
  journal =      j-CONG-NUM,
  volume =       "78",
  pages =        "199--206",
  year =         "1990",
  ISSN =         "0384-9864",
  MRclass =      "68U15 (68P20)",
  MRnumber =     "1140484",
  bibdate =      "Mon May 26 18:16:34 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Proceedings of the Twenty-first Southeastern
                 Conference on Combinatorics, Graph Theory, and
                 Computing (Boca Raton, FL, 1990).",
  fjournal =     "Congressus Numerantium. A Conference Journal on
                 Numerical Themes",
}

@Book{Sedgewick:1990:AC,
  author =       "Robert Sedgewick",
  title =        "Algorithms in {C}",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "xii + 657",
  year =         "1990",
  ISBN =         "0-201-51425-7",
  ISBN-13 =      "978-0-201-51425-4",
  LCCN =         "QA76.73.C15 S43 1990",
  bibdate =      "Wed Dec 15 10:41:38 1993",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  tableofcontents = "Fundamentals \\
                 1. Introduction \\
                 2. C \\
                 3. Elementary data structures \\
                 4. Trees \\
                 5. Recursion \\
                 6. Analysis of algorithms \\
                 7. Implementation of algorithms \\
                 Sorting algorithms \\
                 8. Elementary sorting methods \\
                 9. Quicksort \\
                 10. Radix sorting \\
                 11. Priority queues \\
                 12. Mergesort \\
                 13. External sorting \\
                 Searching algorithms \\
                 14. Elementary searching methods \\
                 15. Balanced trees \\
                 16. Hashing \\
                 17. Radix searching \\
                 18. External searching \\
                 String processing \\
                 19. String searching \\
                 20. Pattern matching \\
                 21. Parsing \\
                 22. File compression \\
                 23. Cryptology \\
                 Geometry algorithms \\
                 24. Elementary geometric methods \\
                 25. Finding the convex hull \\
                 26. Range searching \\
                 27. Geometric intersection \\
                 28. Closet-point problems \\
                 Graph algorithms \\
                 29. Elementary graph algorithms \\
                 30. Connectivity \\
                 31. Weighted graphs \\
                 32. Directed graphs \\
                 33. Network flow \\
                 34. Matching \\
                 Mathematical algorithms \\
                 35. Random numbers \\
                 36. Arithmetic \\
                 37. Gaussian elimination \\
                 38. Curve fitting \\
                 39. Integration \\
                 Advanced topics \\
                 40. Parallel algorithms \\
                 41. The Fast Fourier Transform \\
                 42. Dynamic programming \\
                 43. Linear programming \\
                 44. Exhaustive search \\
                 45. NP-complete problems \\
                 Index",
}

@Article{Sunday:1990:VFS,
  author =       "Daniel M. Sunday",
  title =        "A Very Fast Substring Search Algorithm",
  journal =      j-CACM,
  volume =       "33",
  number =       "8",
  pages =        "132--142",
  month =        aug,
  year =         "1990",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Thu May 30 09:41:10 MDT 1996",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/cacm1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See also
                 \cite{Boyer:1977:FSS,Knuth:1977:FPM,Baeza-Yates:1992:NAT}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0001-0782/79184.html",
  abstract =     "This article describes a substring search algorithm
                 that is faster than the Boyer--Moore algorithm. This
                 algorithm does not depend on scanning the pattern
                 string in any particular order. Three variations of the
                 algorithm are given that use three different pattern
                 scan orders. These include: (1) a ``Quick Search''
                 algorithm; (2) a ``Maximal Shift'' and (3) an ``Optimal
                 Mismatch'' algorithm.",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  keywords =     "algorithms; theory",
  subject =      "{\bf F.2.2}: Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Pattern matching.",
}

@Article{Sunday:string-search,
  author =       "Daniel M. Sunday",
  title =        "A Very Fast Substring Search Algorithm",
  journal =      j-CACM,
  volume =       "33",
  number =       "8",
  pages =        "132--142",
  month =        aug,
  year =         "1990",
  bibdate =      "Sun May 2 07:54:35 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See also
                 \cite{Boyer:string-search,Knuth:string-search,Baeza-Yates:j-CACM-35-10-74}.",
  acknowledgement = ack-nhfb,
}

@Article{Takahashi:1990:SCM,
  author =       "H. Takahashi and N. Itoh and T. Amano and A.
                 Yamashita",
  title =        "A spelling correction method and its application to an
                 {OCR} system",
  journal =      j-PATTERN-RECOGN,
  volume =       "23",
  number =       "3-4",
  pages =        "363--377",
  year =         "1990",
  CODEN =        "PTNRA8",
  ISSN =         "0031-3203 (print), 1873-5142 (electronic)",
  ISSN-L =       "0031-3203",
  bibdate =      "Wed Jan 15 12:19:41 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/spell.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This paper describes a method of spelling correction
                 consisting of two steps: selection of candidate words,
                 and approximate string matching between the input word
                 and each candidate word. Each word is classified and
                 multi-indexed according to combinations of a constant
                 number of characters in the word. Candidate words are
                 selected fast and accurately, regardless of error
                 types, as long as the number of errors is below a
                 threshold. We applied this method to the
                 post-processing of a printed alphanumeric OCR on a
                 personal computer, thus making our OCR more reliable
                 and user-friendly.",
  acknowledgement = ack-nhfb,
  affiliation =  "IBM Japan Ltd",
  affiliationaddress = "Tokyo, Jpn",
  classification = "722; 723; 741",
  comment =      "Some criteria are explained and used to find correct
                 spellings of misspelled words. The candidate words must
                 start with the same letter and be within 3 of the same
                 length. This method requires that the first character
                 be correct -- this is a bad requirement. They develop a
                 method that orders the characters in the word least
                 frequently to most frequently and then searches a
                 dictionary ordered in a similar way.",
  fjournal =     "Pattern Recognition",
  journalabr =   "Pattern Recognit",
  keywords =     "Applications; Character Recognition Equipment;
                 Character Recognition, Optical; Learning Systems;
                 Machine Learning; Optical Scanners; Pattern Matching;
                 Pattern Recognition; Spelling Correction; Text
                 Processing",
}

@Article{Tsui:1990:OES,
  author =       "Hung-Tat Tsui and Ming-Hong Chan and Kin-Cheong Chu
                 and Shao-Hua Kong",
  title =        "Orientation estimation of {$3$D} surface patches",
  journal =      j-CVGIP,
  volume =       "50",
  number =       "1",
  pages =        "112--124",
  month =        apr,
  year =         "1990",
  CODEN =        "CVGPDB",
  ISSN =         "0734-189x (print), 1557-895x (electronic)",
  ISSN-L =       "0734-189X",
  bibdate =      "Fri Jan 31 15:09:26 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/cvgip.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Electron., Chinese Univ. of Hong Kong",
  affiliationaddress = "Shatin, Hong Kong",
  classification = "723; 741; 913; C1250 (Pattern recognition); C5260B
                 (Computer vision and picture processing)",
  fjournal =     "Computer Vision, Graphics, and Image Processing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/0734189X",
  journalabr =   "Comput Vision Graphics Image Process",
  keywords =     "3D resampling; 3D spherical window; 3D surface
                 patches; 3D template matching; 3D Vision; Automatic
                 Inspection; Automatic inspection job; Closed contours;
                 Depth Recovery; Image Analysis; Image Processing; Image
                 Segmentation; Inspection; Irregular-shaped objects;
                 Nonuniform surface sampling; Object Recognition; Object
                 recognition; Orientation estimation; Patch orientation;
                 Pattern Matching; Pattern Recognition; Self-occlusion;
                 Vision--Artificial",
  thesaurus =    "Computer vision; Inspection",
}

@InProceedings{Vishkin:1990:DSN,
  author =       "U. Vishkin",
  title =        "Deterministic sampling --- a new technique for fast
                 pattern matching",
  crossref =     "ACM:1990:PTS",
  pages =        "170--180",
  year =         "1990",
  bibdate =      "Wed Feb 20 18:33:59 MST 2002",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/stoc/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/stoc/100216/p170-vishkin/",
  acknowledgement = ack-nhfb,
}

@Article{Wolff:1990:SPS,
  author =       "J. G. Wolff",
  title =        "Simplicity and Power --- Some Unifying Ideas in
                 Computing",
  journal =      j-COMP-J,
  volume =       "33",
  number =       "6",
  pages =        "518--534",
  month =        dec,
  year =         "1990",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/33.6.518",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  MRclass =      "68N15",
  MRnumber =     "1 084 057",
  bibdate =      "Tue Dec 4 14:48:30 MST 2012",
  bibsource =    "http://comjnl.oxfordjournals.org/content/33/6.toc;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_06/;
                 https://www.math.utah.edu/pub/tex/bib/compj1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/33/6/518.full.pdf+html;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_06/tiff/518.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_06/tiff/519.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_06/tiff/520.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_06/tiff/521.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_06/tiff/522.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_06/tiff/523.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_06/tiff/524.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_06/tiff/525.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_06/tiff/526.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_06/tiff/527.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_06/tiff/528.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_06/tiff/529.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_06/tiff/530.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_06/tiff/531.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_06/tiff/532.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_06/tiff/533.tif;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_33/Issue_06/tiff/534.tif",
  acknowledgement = ack-nhfb,
  affiliation =  "Sch. of Electron. Eng. Sci., Wales Univ., Bangor, UK",
  classcodes =   "C6140D (High level languages); C6110 (Systems analysis
                 and programming); C6170 (Expert systems); C1210B
                 (Reliability theory); C1250 (Pattern recognition)",
  classification = "C1210B (Reliability theory); C1250 (Pattern
                 recognition); C6110 (Systems analysis and programming);
                 C6140D (High level languages); C6170 (Expert systems)",
  corpsource =   "Sch. of Electron. Eng. Sci., Wales Univ., Bangor, UK",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  keywords =     "AND; AND relations; artificial; Artificial
                 intelligence; complexity; Complexity; computerised
                 pattern recognition; computing machine; Computing
                 machine; computing system; Computing system;
                 connectionist; Connectionist; descriptive power;
                 Descriptive power; formal system; Formal system; high
                 expressive power; High expressive power; information
                 theory; intelligence; key dimensions; Key dimensions;
                 knowledge structure; Knowledge structure; language;
                 logic programming; new; New language; OR relations;
                 parallel languages; parallel programming; parallelism;
                 Parallelism; pattern matching; Pattern matching;
                 PROLOG; Prolog-like pattern-matching system;
                 redundancy; Redundancy; relations; search; Search;
                 Shannon-Weaver; Shannon-Weaver information theory;
                 simplicity; Simplicity; size; Size; software
                 engineering; Software engineering; SP; symbolic;
                 Symbolic; unification; Unification; unifying framework;
                 Unifying framework; unifying ideas; Unifying ideas",
  thesaurus =    "Computerised pattern recognition; Logic programming;
                 Parallel languages; Parallel programming; PROLOG;
                 Redundancy",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@TechReport{Aho:1991:MCR,
  author =       "Alfred V. Aho and Ravi Sethi",
  title =        "Maintaining Cross References in Manuscripts",
  type =         "Computing Science Technical Report",
  number =       "127",
  institution =  inst-ATT-BELL,
  address =      inst-ATT-BELL:adr,
  pages =        "10",
  day =          "20",
  month =        aug,
  year =         "1991",
  bibdate =      "Fri Aug 25 15:53:20 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  URL =          "https://web.archive.org/web/*/http://cm.bell-labs.com/cm/cs/cstr/127.ps.gz",
  abstract =     "Authors face the tedious bookkeeping problem of
                 maintaining the consistency of references to figures,
                 citations, and other numbered entities in successive
                 drafts of a manuscript. If a figure is added to or
                 deleted from the manuscript, the numbers of all
                 subsequent figures must be adjusted, along with the
                 references to these figures. In this note, we show how
                 the UNIX commands grep, awk, and sed can be used to
                 create a simple and flexible reference assembler that
                 automatically maintains the consistency of cross
                 references in manuscripts.",
  acknowledgement = ack-nhfb,
  remark =       "TO DO: This report is dated 3 years after its
                 publication in \cite{Aho:1988:MCR}; presumably it is an
                 update of a much earlier version.",
}

@Article{Aiken:1991:IRT,
  author =       "Alexander Aiken and Brian R. Murphy",
  title =        "Implementing Regular Tree Expressions",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "523",
  pages =        "427--??",
  year =         "1991",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 08:51:55 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Belli:1991:SFT,
  author =       "F. Belli and K. E. Grosspietsch",
  title =        "Specification of fault-tolerant system issues by
                 predicate\slash transition nets and regular expressions
                 --- approach and case study",
  journal =      j-IEEE-TRANS-SOFTW-ENG,
  volume =       "17",
  number =       "6",
  pages =        "513--526",
  month =        jun,
  year =         "1991",
  CODEN =        "IESEDJ",
  DOI =          "https://doi.org/10.1109/32.87278",
  ISSN =         "0098-5589 (print), 1939-3520 (electronic)",
  ISSN-L =       "0098-5589",
  bibdate =      "Thu Feb 1 11:00:42 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranssoftweng1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=87278",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Software Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32",
}

@TechReport{Boyer:1991:ACP,
  author =       "Robert S. Boyer and Yuan Yu",
  title =        "{AUTOMATED CORRECTNESS PROOFS OF MACHINE CODE PROGRAMS
                 FOR A COMMERCIAL MICROPROCESSOR}",
  number =       "TR-91-33",
  institution =  "University of Texas, Austin",
  address =      "Austin, TX, USA",
  pages =        "15",
  month =        nov,
  year =         "1991",
  bibdate =      "Fri Sep 22 14:23:22 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 Techreports/university-of-texas-austin.bib",
  note =         "prize ($ \backslash $ \$1.50).",
  abstract =     "We have formally specified a substantial subset of the
                 MC68020, a widely used microprocessor built by
                 Motorola, within the mathematical logic of the
                 automated reasoning system Nqthm, i.e., the
                 Boyer--Moore Theorem Prover. Using this MC68020
                 specification, we have mechanically checked the
                 correctness of MC68020 machine code programs for
                 Euclid's GCD, Hoare's Quick Sort, binary search, and
                 other well-known algo- rithms. The machine code for
                 these examples was generated using the Gnu C and the
                 Verdix Ada compilers. We have developed an extensive
                 library of proven lemmas to facilitate automated
                 reasoning about machine code programs. We describe a
                 two stage methodology we use to do our machine code
                 proofs.",
  acknowledgement = ack-nhfb,
  keywords =     "Automated reasoning Nqthm Boyer--Moore Theorem Prover
                 formal program verification object code Gnu C Ada.",
}

@InProceedings{Breslauer:1991:LBP,
  author =       "Dany Breslauer and Zvi Galil",
  title =        "A lower bound for parallel string matching",
  crossref =     "ACM:1991:PTT",
  pages =        "439--443",
  year =         "1991",
  bibdate =      "Wed Feb 20 18:33:59 MST 2002",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/stoc/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/stoc/103418/p439-breslauer/p439-breslauer.pdf;
                 http://www.acm.org/pubs/citations/proceedings/stoc/103418/p439-breslauer/",
  acknowledgement = ack-nhfb,
}

@Article{Chapman:1991:QSS,
  author =       "Rob Chapman",
  title =        "{QuikFind} String Search",
  journal =      j-FORTH-DIMENSIONS,
  volume =       "13",
  number =       "4",
  pages =        "21--??",
  day =          "1",
  month =        nov,
  year =         "1991",
  CODEN =        "FODMD5",
  ISSN =         "0884-0822",
  bibdate =      "Sat May 25 13:29:25 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 UnCover library database",
  abstract =     "Sure, ``Forth is fast'-repeat that mantra to yourself
                 while waiting to compile code from a dictionary of
                 several thousand words. The author tweaked his system a
                 bit, then got hooked on the potential. His years-long
                 self-study course is described succinctly here, along
                 with the anticipated results: a fast hash algorithm for
                 dictionary searches that won't turn your modules into
                 molasses.",
  acknowledgement = ack-nhfb,
  fjournal =     "Forth Dimensions",
}

@Article{Cope:1991:RMU,
  author =       "David Cope",
  title =        "Recombinant Music: Using the Computer to Explore
                 Musical Style",
  journal =      j-COMPUTER,
  volume =       "24",
  number =       "7",
  pages =        "22--28",
  month =        jul,
  year =         "1991",
  CODEN =        "CPTRB4",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Sat Feb 1 16:21:14 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/computer1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "A computer program that creates new but stylistically
                 recognizable music from existing works offers insights
                 into the elusive phenomenon of musical style.",
  acknowledgement = ack-nhfb,
  affiliation =  "Porter Coll., California Univ., Santa Cruz, CA, USA",
  classification = "723; 751; C5260B (Computer vision and picture
                 processing); C6170 (Expert systems); C7820
                 (Humanities)",
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
  journalabr =   "Computer",
  keywords =     "Artificial Intelligence; Augmented Transition
                 Networks; Computer Programming; EMI; Experiments in
                 Musical Intelligence; Expert system; Expert Systems;
                 Hierarchical Analysis; Hierarchical musical function;
                 Musical pitches; Musical Style Analysis;
                 Natural-language processing; Pattern matching; Pattern
                 recognition; Pattern Recognition Systems; Recombinant
                 music; Recombinant Music",
  thesaurus =    "Computerised pattern recognition; Expert systems;
                 Music; Natural languages",
}

@Article{Cringean:1991:NNS,
  author =       "Janey K. Cringean and Roger England and Gordon A.
                 Manson and Peter Willett",
  title =        "Nearest-neighbour searching in files of text
                 signatures using transputer networks",
  journal =      j-EPODD,
  volume =       "4",
  number =       "4",
  pages =        "185--203",
  month =        dec,
  year =         "1991",
  CODEN =        "EPODEU",
  ISSN =         "0894-3982",
  bibdate =      "Fri Sep 22 14:23:22 2023",
  bibsource =    "ftp://ftp.math.utah.edu/pub/tex/bib/epodd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This paper discusses the implementation of
                 nearest-neighbour document retrieval in serial files
                 using transputer networks. The system uses a two-stage
                 retrieval algorithm in which an initial text-signature
                 search is used to exclude large numbers of documents
                 from the detailed and time-consuming pattern-matching
                 search. The latter is implemented using a processor
                 farm, so that documents which match at the signature
                 level can be examined in parallel to determine whether
                 they are, in fact, a good match for the query. The
                 results demonstrate that communication is the critical
                 factor in all of the transputer networks that were
                 investigated. A high degree of speed-up can be obtained
                 when only the pattern-matching search is carried out.
                 When text signatures are used, however, the speed-up is
                 less, decreasing in line with an increase in the size
                 of the text signatures that are used.",
  acknowledgement = ack-nhfb,
  fjournal =     "Electronic Pub\-lish\-ing\emdash{}Orig\-i\-na\-tion,
                 Dissemination, and Design",
  keywords =     "Best-match searching, Full-text documents, Geometric
                 parallelism, Information retrieval, Nearest-neighbour
                 searching, Parallel processing",
}

@Article{Crochemore:1991:TWS,
  author =       "Maxime Crochemore and Dominique Perrin",
  title =        "Two-Way String Matching",
  journal =      j-J-ACM,
  volume =       "38",
  number =       "3",
  pages =        "651--675",
  month =        jul,
  year =         "1991",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Thu Oct 20 22:24:43 1994",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Theory/JACM.bib;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0004-5411/116845.html",
  abstract =     "A new string matching algorithm is presented, which
                 can be viewed as an intermediate between the classical
                 algorithms of Knuth, Morris, and Pratt on the one hand
                 and Boyer and Moore, on the other hand. The algorithm
                 is linear in time and uses constant space as the
                 algorithm of Galil and Seiferas. It presents the
                 advantage of being remarkably simple which consequently
                 makes its analysis possible. The algorithm relies on a
                 previously-known result in combinatorics on words,
                 called the {\em Critical Factorization Algorithm},
                 which relates the global period of a word to its local
                 repetitions of blocks.",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  keywords =     "algorithms; analysis of algorithms; combinatorial
                 algorithms; critical factorization theorem; Design;
                 pattern matching; String Processing; text processing;
                 theory",
  subject =      "{\bf F.2.2}: Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Pattern matching.",
}

@Article{Crochemore:1991:UKM,
  author =       "M. Crochemore and W. Rytter",
  title =        "Usefulness of the {Karp-Miller-Rosenberg} algorithm in
                 parallel computations on strings and arrays",
  journal =      j-THEOR-COMP-SCI,
  volume =       "88",
  number =       "1",
  pages =        "59--82",
  day =          "30",
  month =        sep,
  year =         "1991",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C4240P (Parallel programming and algorithm theory)",
  corpsource =   "LITP, Inst. Blaise Pascal, Paris Univ., France",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "arrays; complexity bounds; computational complexity;
                 data structure; finding squares; longest common factor;
                 longest repeated factor; Lyndon factorization; maximal
                 symmetric factor; palindromes; parallel algorithms;
                 parallel computations; pattern-matching; repeated
                 patterns; sequential algorithms; string matching;
                 strings; testing even palstars",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Danvy:1991:SDC,
  author =       "Olivier Danvy",
  title =        "Semantics-directed compilation of nonlinear patterns",
  journal =      j-INFO-PROC-LETT,
  volume =       "37",
  number =       "6",
  pages =        "315--322",
  day =          "28",
  month =        mar,
  year =         "1991",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Kansas State Univ",
  affiliationaddress = "Manhattan, KS, USA",
  classification = "723; C6150C (Compilers, interpreters and other
                 processors)",
  corpsource =   "Dept. of Comput. and Inf. Sci., Kansas State Univ.,
                 Manhattan, KS, USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "automatic derivation; compiled patterns; Computer
                 Metatheory; Computer Programming --- Theory; Computer
                 Programming Languages; computerised pattern
                 recognition; Nonlinear Patterns; nonlinear patterns;
                 Partial Evaluation; partial evaluation; Pattern
                 Compilation; pattern compiler; Pattern Matching;
                 pattern matching program; program compilers;
                 Programming Theory; Semantics-Directed Compilation",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Book{Dougherty:1991:SA,
  author =       "Dale Dougherty",
  title =        "sed \& awk",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xxii + 394",
  year =         "1991",
  ISBN =         "0-937175-59-5",
  ISBN-13 =      "978-0-937175-59-0",
  LCCN =         "QA76.76.U84 D69 1991",
  bibdate =      "Fri Sep 22 14:23:22 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  URL =          "http://www.oreilly.com/catalog/9780937175590",
  abstract =     "For people who create and modify text files, sed and
                 awk are power tools for editing. Most of the things
                 that you can do with these programs can be done
                 interactively with a text editor. However, using sed
                 and awk can save many hours of repetitive work in
                 achieving the same result. To master sed and awk you
                 must thoroughly understand UNIX regular expressions,
                 and understand the syntax of sed and awk commands. This
                 handbook treats regular expressions as a foundation for
                 learning about sed and awk and contains a comprehensive
                 treatment of sed and awk syntax. It emphasizes the
                 kinds of practical problems that sed and awk can help
                 users to solve, with many useful example scripts and
                 programs.",
  acknowledgement = ack-nhfb,
  tableofcontents = "1. Power Tools for Editing \\
                 2. Understanding Basic Operations \\
                 3. Understanding Regular Expression Syntax \\
                 4. Writing Sed Scripts \\
                 5. Basic Sed Commands \\
                 6. Advanced Sed Commands \\
                 7. Writing Scripts for Awk \\
                 8. Conditionals, Loops, and Arrays \\
                 9. Functions \\
                 10. The Bottoms Drawer \\
                 11. Full-featured Applications \\
                 12. A Miscellany of Scripts \\
                 Appendices",
}

@Article{Dowek:1991:SOP,
  author =       "G. Dowek",
  title =        "A second-order pattern matching algorithm for the cube
                 of typed lambda-calculi",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "520",
  pages =        "151--??",
  year =         "1991",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 08:51:55 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Galil:1991:ECS,
  author =       "Zvi Galil and Raffaele Giancarlo",
  title =        "On the Exact Complexity of String Matching: Lower
                 Bounds",
  journal =      j-SIAM-J-COMPUT,
  volume =       "20",
  number =       "6",
  pages =        "1008--1020",
  month =        dec,
  year =         "1991",
  CODEN =        "SMJCAT",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68Q20 (68Q25 68U15)",
  MRnumber =     "93a:68049",
  MRreviewer =   "D. M. Campbell",
  bibdate =      "Mon Nov 29 11:01:53 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/20/6;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Gokhale:1991:BUH,
  author =       "Maya Gokhale and William Holmes and Andrew Kopser and
                 Sara Lucas and Ronald Minnich and Douglas Sweely and
                 Daniel Lopresti",
  title =        "Building and Using a Highly Parallel Programmable
                 Logic Array",
  journal =      j-COMPUTER,
  volume =       "24",
  number =       "1",
  pages =        "81--89",
  month =        jan,
  year =         "1991",
  CODEN =        "CPTRB4",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Mon Feb 24 15:40:54 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/computer1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/super.bib",
  abstract =     "Construction of real hardware and feedback from real
                 users contributed to Splash's design, development, and
                 success. For certain pattern-matching applications its
                 price/performance ratio is unmatched.",
  acknowledgement = ack-nhfb,
  affiliation =  "Supercomputing Res Center, Bowie, MD, USA",
  classification = "721; 722; 723; 912; B1265B (Logic circuits); C5120
                 (Logic and switching circuits); C5210 (Logic design
                 methods)",
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
  journalabr =   "Computer",
  keywords =     "Computer Systems, Digital; Computers, Supercomputer;
                 Cray-2; Ergonomics; Hardware development; Highly
                 parallel programmable logic array; Logic description
                 generator; Logic Design; Parallel Processing; Parallel
                 Programmable Logic Array; Programming; Runtime
                 environment; Sequence comparison; Splash; splash
                 Programmable Logic Array; Sun workstation; Sun
                 Workstation; Sun workstation; Two-slot addition",
  thesaurus =    "Logic arrays; Logic design",
}

@Article{Grossi:1991:FCS,
  author =       "Roberto Grossi",
  title =        "Further comments on the subtree isomorphism for
                 ordered trees: {``On the subtree isomorphism problem
                 for ordered trees'' [Inform. Process. {Lett. \bf 32}
                 (1989), no. 5, 271--273; MR 90k:68139] by E.
                 {M{\"a}kinen}}",
  journal =      j-INFO-PROC-LETT,
  volume =       "40",
  number =       "5",
  pages =        "255--256",
  day =          "13",
  month =        dec,
  year =         "1991",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68R10 (05C05 68P05 68Q25)",
  MRnumber =     "93c:68077",
  MRreviewer =   "Fabrizio Luccio",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See \cite{Makinen:1989:SIP}.",
  acknowledgement = ack-nhfb,
  affiliation =  "Universita di Pisa",
  affiliationaddress = "Pisa, Italy",
  classification = "723; 731; 921; C1160 (Combinatorial mathematics);
                 C4240 (Programming and algorithm theory)",
  corpsource =   "Dipartimento di Inf., Pisa Univ., Italy",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "algorithm theory; Binary Tree Representation; Codes,
                 Symbolic --- Coding Errors; coding; Computer Metatheory
                 --- Binary Sequences; Computer Programming ---
                 Algorithms; Design of Algorithms; Mathematical
                 Techniques; Mathematical Techniques --- Linear Algebra;
                 Ordered Trees; ordered trees; Subtree Isomorphism;
                 subtree isomorphism; Trees; trees (mathematics);
                 unordered rooted trees",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Grossi:1991:NSI,
  author =       "Roberto Grossi",
  title =        "A note on the subtree isomorphism for ordered trees
                 and related problems",
  journal =      j-INFO-PROC-LETT,
  volume =       "39",
  number =       "2",
  pages =        "81--84",
  day =          "31",
  month =        jul,
  year =         "1991",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68R10 (68Q25)",
  MRnumber =     "93e:68101",
  MRreviewer =   "Charles J. Colbourn",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ di Pisa Corso Italia",
  affiliationaddress = "Pisa, Italy",
  classification = "723; 921; C1160 (Combinatorial mathematics); C4240
                 (Programming and algorithm theory)",
  corpsource =   "Dipartimento di Inf., Pisa Univ., Italy",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "codeword; computational complexity; Computer
                 Programming --- Algorithms; Computer Systems
                 Programming --- Multiprocessing Programs; EREW PRAM;
                 exact string matching; Mathematical Techniques; Ordered
                 Trees; ordered trees; parallel algorithm; Parallel
                 Algorithms; parallel algorithms; sequential space;
                 sequential time; string coding; String Matching;
                 Subtree Isomorphism; subtree isomorphism; Trees; trees
                 (mathematics)",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Hume:1991:FSS,
  author =       "Andrew Hume and Daniel Sunday",
  title =        "Fast String Searching",
  journal =      j-SPE,
  volume =       "21",
  number =       "11",
  pages =        "1221--1248",
  month =        nov,
  year =         "1991",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380211105",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  note =         "See
                 \cite{Boyer:1977:FSS,Knuth:1977:FPM,Sunday:1990:VFS}.",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "Boyer--Moore; DNA sequence matching; pattern matching;
                 string searching",
  onlinedate =   "30 Oct 2006",
}

@Article{Jokinen:1991:TAA,
  author =       "P. Jokinen and E. Ukkonen",
  title =        "Two algorithms for approximate string matching in
                 static texts",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "520",
  pages =        "240--??",
  year =         "1991",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 08:51:55 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Kearns:1991:ERE,
  author =       "Steven M. Kearns",
  title =        "Extending Regular Expressions with Context Operators
                 and Parse Extraction",
  journal =      j-SPE,
  volume =       "21",
  number =       "8",
  pages =        "787--804",
  month =        aug,
  year =         "1991",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "context sensitive; parse extraction; regular
                 expressions; string matching",
}

@Article{Kearns:1991:T,
  author =       "Steven M. Kearns",
  title =        "{TLex}",
  journal =      j-SPE,
  volume =       "21",
  number =       "8",
  pages =        "805--821",
  month =        aug,
  year =         "1991",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "pattern matching; regular expressions; string
                 matching",
}

@Article{Kesner:1991:PMO,
  author =       "D. Kesner",
  title =        "Pattern matching in order-sorted languages",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "520",
  pages =        "267--??",
  year =         "1991",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 08:51:55 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Kinber:1991:CSS,
  author =       "E. B. Kinber",
  title =        "On complete sets of samples for generalized regular
                 expressions",
  journal =      j-THEOR-COMP-SCI,
  volume =       "91",
  number =       "1",
  pages =        "101--117",
  day =          "09",
  month =        dec,
  year =         "1991",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C4210 (Formal logic)",
  corpsource =   "Comput. Centre, Latvian State Univ., Riga, Latvia",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "arbitrary class; complete sets of samples;
                 decidability; equivalence problem; equivalent programs;
                 formal languages; generalized regular expressions;
                 inductive formalizations; language; program structures;
                 stronger equivalence relation",
  pubcountry =   "Netherlands",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Klier:1991:FCB,
  author =       "Peter Klier and Richard J. Fateman",
  title =        "On Finding the Closest Bitwise Matches in a Fixed
                 Set",
  journal =      j-TOMS,
  volume =       "17",
  number =       "1",
  pages =        "88--97",
  month =        mar,
  year =         "1991",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/103147.103157",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  MRclass =      "68Q20",
  MRnumber =     "1 103 630",
  bibdate =      "Sun Sep 04 23:33:02 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  URL =          "http://www.acm.org/pubs/citations/journals/toms/1991-17-1/p88-klier/",
  abstract =     "In a given large fixed table of bit-vectors, we would
                 like to find, as rapidly as possible, those bit-vectors
                 which have the least Hamming distances from a
                 newly-presented arbitrary bit-vector.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "http://portal.acm.org/toc.cfm?idx=J782",
  keywords =     "algorithms; performance",
  subject =      "{\bf F.2.2}: Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Pattern matching. {\bf E.2}:
                 Data, DATA STORAGE REPRESENTATIONS. {\bf F.2.2}: Theory
                 of Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
                 COMPLEXITY, Nonnumerical Algorithms and Problems,
                 Sorting and searching. {\bf H.3.3}: Information
                 Systems, INFORMATION STORAGE AND RETRIEVAL, Information
                 Search and Retrieval, Search process.",
}

@Article{Laville:1991:CPR,
  author =       "Alain Laville",
  title =        "Comparison of Priority Rules in Pattern Matching and
                 Term Rewriting",
  journal =      j-J-SYMBOLIC-COMP,
  volume =       "11",
  number =       "4",
  pages =        "321--348 (or 321--347??)",
  month =        apr,
  year =         "1991",
  CODEN =        "JSYCEH",
  ISSN =         "0747-7171 (print), 1095-855X (electronic)",
  ISSN-L =       "0747-7171",
  MRclass =      "68Q42 (68N05)",
  MRnumber =     "93g:68063",
  bibdate =      "Sat May 10 15:54:09 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsymcomp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C4210 (Formal logic); C4240 (Programming and algorithm
                 theory)",
  corpsource =   "INRIA, Le Chesnay, France",
  fjournal =     "Journal of Symbolic Computation",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07477171",
  keywords =     "calls; constructors based linear systems; function;
                 pattern matching; priority rules; programming theory;
                 rewriting systems; term rewriting",
  treatment =    "T Theoretical or Mathematical",
}

@Article{LeBret:1991:RSM,
  author =       "Christophe {Le Bret}",
  title =        "Robust String Matching",
  journal =      j-COMP-LANG-MAG,
  volume =       "8",
  number =       "12",
  pages =        "71--??",
  month =        dec,
  year =         "1991",
  CODEN =        "COMLEF",
  ISSN =         "0749-2839",
  bibdate =      "Tue Jan 23 08:04:25 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/complang.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Language Magazine",
}

@Article{Lee:1991:DCM,
  author =       "David Lee",
  title =        "Detection, Classification, and Measurement of
                 Discontinuities",
  journal =      j-SIAM-J-SCI-STAT-COMP,
  volume =       "12",
  number =       "2",
  pages =        "311--341",
  month =        mar,
  year =         "1991",
  CODEN =        "SIJCD4",
  ISSN =         "0196-5204",
  MRclass =      "94A12 (26A27 65D99 94A13)",
  MRnumber =     "91m:94004",
  MRreviewer =   "Solomon Marcus",
  bibdate =      "Tue Apr 29 19:18:28 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/siamjscistatcomp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C4130 (Interpolation and function approximation);
                 C4290 (Other computer theory)",
  corpsource =   "AT and T Bell Labs., Murray Hill, NJ, USA",
  fjournal =     "SIAM Journal on Scientific and Statistical Computing",
  journal-URL =  "http://epubs.siam.org/loi/sijcd4",
  keywords =     "classification; computational geometry; curve fitting;
                 discontinuities; discontinuity detection; linear
                 filter; measurement; necessary and sufficient
                 conditions; one-to-one correspondence; pattern
                 matching; pattern search; sampled noisy data; scaled
                 pattern; splines; splines (mathematics); statistical
                 method; white noise",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Lee:1991:VAL,
  author =       "Kuo Chu Lee and Takako Matoba Hickey and Victor W. Mak
                 and Gary E. Herman",
  title =        "{VLSI} Accelerators for Large Database Systems",
  journal =      j-IEEE-MICRO,
  volume =       "11",
  number =       "6",
  pages =        "8--20",
  month =        nov # "\slash " # dec,
  year =         "1991",
  CODEN =        "IEMIDZ",
  DOI =          "https://doi.org/10.1109/40.108569",
  ISSN =         "0272-1732 (print), 1937-4143 (electronic)",
  ISSN-L =       "0272-1732",
  bibdate =      "Thu Dec 14 06:08:58 MST 2000",
  bibsource =    "Compendex database; Database/Graefe.bib;
                 https://www.math.utah.edu/pub/tex/bib/ieeemicro.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 Science Citation Index database (1980--2000)",
  abstract =     "Resloving the problem of slow response times in a
                 cost-effective manner",
  acknowledgement = ack-nhfb,
  affiliation =  "Bellcore, Morristown, NJ, USA",
  classcodes =   "B1265F (Microprocessors and microcomputers); B2570
                 (Semiconductor integrated circuits); C5130
                 (Microprocessor chips); C6160D (Relational DBMS); C5220
                 (Computer architecture)",
  classification = "714.2; 722.1; 723.3",
  corpsource =   "Bellcore, Morristown, NJ, USA",
  fjournal =     "IEEE Micro",
  journal-URL =  "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=40",
  keywords =     "aggregation operations; Associative search;
                 associative search; Boolean algebra; Computer
                 applications; databases; dedicated computer systems;
                 formatted databases; general purpose computers;
                 hardware interfaces; instruction sets; large database;
                 Microprocessor chips; microprocessor chips; reduced
                 instruction set computing; Relational data filtering;
                 relational data filtering; Relational database systems;
                 relational databases; special purpose computers; string
                 search; String search accelerator; systems; text
                 search; unformatted; VLIS accelerators; VLSI; VLSI
                 accelerator; VLSI circuits",
  treatment =    "P Practical",
}

@Article{Mak:1991:EPP,
  author =       "Victor Wing-Kit Mak and Chu Lee Kuo and Ophir
                 Frieder",
  title =        "Exploiting Parallelism in Pattern Matching: An
                 Information Retrieval Application",
  journal =      j-TOIS,
  volume =       "9",
  number =       "1",
  pages =        "52--74",
  month =        jan,
  year =         "1991",
  CODEN =        "ATISET",
  ISSN =         "1046-8188",
  ISSN-L =       "0734-2047",
  bibdate =      "Sat Jan 16 19:02:45 MST 1999",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Database/Graefe.bib;
                 http://liinwww.ira.uka.de/bibliography/Database/Graefe.html;
                 http://www.acm.org/pubs/tois/toc.html;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tois.bib",
  URL =          "http://www.acm.org:80",
  abstract =     "We propose a document-searching architecture based on
                 high-speed hardware pattern matching to increase the
                 throughput of an information retrieval system. We also
                 propose a new parallel VLSI pattern-matching algorithm
                 called the Data Parallel Pattern Matching (DPPM)
                 algorithm, which serially broadcasts and compares the
                 pattern to a block of data in parallel. The DPPM
                 algorithm utilizes the high degree of integration of
                 VLSI technology to attain very high-speed processing
                 through parallelism. Performance of the DPPM has been
                 evaluated both analytically and by simulation. Based on
                 the simulation statistics and timing analysis on the
                 hardware design, a search rate of multiple gigabytes
                 per second is achievable using 2-$ \lbrace $ micro$
                 \rbrace $ m CMOS technology. The potential performance
                 of the proposed document-searching architecture is also
                 analyzed using the simulation statistics of the DPPM
                 algorithm.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Information Systems (TOIS)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J779",
  keywords =     "Algorithms; Algorithms implemented in hardware;
                 Analysis of algorithms and problem complexity;
                 Arithmetic and logic structures; Computer systems
                 organization; Data; Design; Design studies; Design
                 styles; DPPM; Files; Information search and retrieval;
                 Information storage and retrieval; Integrated circuits;
                 Modeling techniques; Multiple data stream architecture;
                 Nonnumerical algorithms and problems; Parallel; Pattern
                 matcher; Pattern matching; Performance; Performance of
                 systems; Processor architectures; Search process;
                 Selection process; SIMD; Sorting and searching;
                 Sorting/searching; Types and design styles; VLSI",
}

@Article{Manber:1991:ASM,
  author =       "Udi Manber and Ricardo Baeza-Yates",
  title =        "An algorithm for string matching with a sequence of
                 don't cares",
  journal =      j-INFO-PROC-LETT,
  volume =       "37",
  number =       "3",
  pages =        "133--136",
  day =          "18",
  month =        feb,
  year =         "1991",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Arizona",
  affiliationaddress = "Tucson, AZ, USA",
  classification = "723; C6120 (File organisation); C7250 (Information
                 storage and retrieval)",
  corpsource =   "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ,
                 USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "algorithm; Algorithms; biological sequences; Computer
                 Programming; Data Processing --- Data Structures; data
                 structures; information retrieval; pattern; proximity
                 searching; search; sequence of don't cares; String
                 Matching; string matching; suffix array data structure;
                 text searching systems; two-dimensional orthogonal
                 range queries problem; upper bound",
  treatment =    "P Practical",
}

@Article{Naor:1991:SMP,
  author =       "M. Naor",
  title =        "String Matching with Preprocessing of Text and
                 Pattern",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "510",
  pages =        "739--??",
  year =         "1991",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 08:51:55 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Narayanan:1991:PME,
  author =       "V. Narayanan",
  title =        "Pattern matching for everyone",
  journal =      j-SIGCSE,
  volume =       "23",
  number =       "3",
  pages =        "27--30",
  month =        sep,
  year =         "1991",
  CODEN =        "SIGSD3",
  DOI =          "https://doi.org/10.1145/126459.126468",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 18:57:16 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigcse1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Pakin:1991:REG,
  author =       "Scott Pakin",
  title =        "Regular Expressions and Gender Guessing",
  journal =      j-COMP-LANG-MAG,
  volume =       "8",
  number =       "12",
  pages =        "59--??",
  month =        dec,
  year =         "1991",
  CODEN =        "COMLEF",
  ISSN =         "0749-2839",
  bibdate =      "Tue Jan 23 08:04:25 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Language Magazine",
}

@Article{Partsch:1991:ACS,
  author =       "H. A. Partsch and N. Volker",
  title =        "Another Case Study on Reusability of Transformational
                 Developments Pattern Matching According to {Knuth},
                 {Morris}, and {Pratt}",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "544",
  pages =        "35--??",
  year =         "1991",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 08:51:55 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@InCollection{Pepper:1991:LPD,
  author =       "P. Pepper",
  title =        "Literate program derivation: a case study",
  crossref =     "Broy:1991:MPS",
  pages =        "101--124",
  year =         "1991",
  bibdate =      "Wed Aug 31 00:52:14 MDT 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/litprog.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "`Literate programming' is a notion that has been
                 introduced by D. E. Knuth (1984), as a means for
                 improving the art of programming by amalgamating
                 explanatory text with the program proper. The author
                 combines the principal ideas of literate programming
                 with the concepts of formal program development, based
                 on algebraic specifications and transformations. This
                 experiment is performed using the sublinear
                 string-searching algorithm of R. S. Boyer and J. S.
                 Moore (1977) as an illustrating example.",
  acknowledgement = ack-nhfb,
  affiliation =  "Inst. fur Angewandte Inf., Tech. Univ., Berlin,
                 Germany",
  classification = "C1250 (Pattern recognition); C4240 (Programming and
                 algorithm theory); C5260B (Computer vision and picture
                 processing); C6110B (Software engineering techniques)",
  keywords =     "Algebraic specifications; Case study; Explanatory
                 text; Formal program development; Literate programming;
                 Sublinear string-searching algorithm; Transformations",
  thesaurus =    "Computerised pattern recognition; Formal
                 specification; Programming",
}

@Article{Revesz:1991:TOM,
  author =       "G. E. Revesz",
  title =        "On translating ordinary mathematical notation",
  journal =      j-STRUCTURED-PROGRAMMING,
  volume =       "12",
  number =       "3",
  pages =        "115--122",
  month =        "",
  year =         "1991",
  CODEN =        "STPGEM",
  ISSN =         "0935-1183",
  bibdate =      "Thu Sep 01 01:15:09 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/texbook3.bib",
  abstract =     "The abstract mathematical description of an algorithm
                 is usually much better for human consumption than its
                 implementation in a conventional programming language.
                 The aim is to use ordinary mathematical notation as a
                 program development tool for certain applications. The
                 author illustrates some ideas via an experimental
                 translator which translates mathematical formulas to
                 Pascal statements. More precisely, a combination of
                 ordinary mathematical notation and conventional style
                 control structures and declarations is used as the
                 programming language. But, because of the
                 two-dimensional nature of ordinary mathematical
                 notation, the proper display of source programs
                 requires some special tools. Given the popularity of
                 the {\TeX} type-setting system, the author decided to
                 encode the source programs in plain {\TeX}. The
                 experimental translator has four phases: the first
                 phase is a lexical analyzer (tokenizer) which deals
                 primarily with the decoding of the {\TeX} notation; the
                 second phase is a preprocessor which analyses the
                 declarations and performs other pattern matching
                 functions; the third is the actual parser; and the
                 fourth phase is the code generator. (6 Refs.)",
  acknowledgement = ack-nhfb,
  affiliation =  "IBM Corp., Thomas J. Watson Res. Center, Yorktown, NY,
                 USA",
  classification = "C6110 (Systems analysis and programming); C6140D
                 (High level languages); C6150C (Compilers, interpreters
                 and other processors)",
  keywords =     "Abstract mathematical description; Code generator;
                 Conventional style control structures; Declarations;
                 Experimental translator; Lexical analyzer; Ordinary
                 mathematical notation; Parser; Pascal statements;
                 Pattern matching functions; Preprocessor; Program
                 development tool; Programming language; Source
                 programs; TeX notation; TeX type-setting system;
                 Tokenizer; Two-dimensional nature",
  thesaurus =    "Pascal; Program compilers; Program interpreters;
                 Structured programming; Word processing",
}

@Article{Rote:1991:CMH,
  author =       "G{\"u}nter Rote",
  title =        "Computing the minimum {Hausdorff} distance between
                 two-point sets on a line under translation",
  journal =      j-INFO-PROC-LETT,
  volume =       "38",
  number =       "3",
  pages =        "123--127",
  day =          "17",
  month =        may,
  year =         "1991",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68U05 (68T10)",
  MRnumber =     "92d:68114",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Technische Univ Graz",
  affiliationaddress = "Graz, Austria",
  classification = "723; 921; C4240 (Programming and algorithm theory)",
  corpsource =   "Inst. f{\"u}r Math., Tech. Univ., Graz, Austria",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; computational complexity; Computational
                 Geometry; computational geometry; Computer Programming;
                 Computer Vision; geometry; Hausdorff Distance;
                 Mathematical Techniques --- Geometry; minimum Hausdorff
                 distance; optimal algorithm; Pattern Matching; Pattern
                 Recognition; point sets",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Savoy:1991:IRH,
  author =       "Jacques Savoy and Daniel Desbois",
  title =        "Information retrieval in hypertext systems: an
                 approach using {Bayesian} networks",
  journal =      j-EPODD,
  volume =       "4",
  number =       "2",
  pages =        "87--108",
  month =        jun,
  year =         "1991",
  CODEN =        "EPODEU",
  ISSN =         "0894-3982",
  bibdate =      "Fri Sep 22 14:23:22 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/epodd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The emphasis in most hypertext systems is on the
                 navigational methods, rather than on the global
                 document retrieval mechanisms. When a search mechanism
                 is provided, it is often restricted to simple string
                 matching or to the Boolean model. As an alternate
                 method, we propose a retrieval mechanism using Bayesian
                 inference networks. The main contribution of our
                 approach is the automatic construction of this network
                 using the expected mutual information measure to build
                 the inference tree, and using Jaccard's formula to
                 define fixed conditional probability relationships.",
  acknowledgement = ack-nhfb,
  fjournal =     "Electronic Pub\-lish\-ing\emdash{}Orig\-i\-na\-tion,
                 Dissemination, and Design",
  keywords =     "Hypertext, Information retrieval, Information
                 retrieval in hypertext, Bayesian network, Probabilistic
                 retrieval model, Probabilistic inference, Uncertainty
                 processing",
}

@Article{Savoy:EPODD-4-2-87,
  author =       "Jacques Savoy and Daniel Desbois",
  title =        "Information retrieval in hypertext systems: an
                 approach using {Bayesian} networks",
  journal =      j-EPODD,
  volume =       "4",
  number =       "2",
  pages =        "87--108",
  month =        jun,
  year =         "1991",
  CODEN =        "EPODEU",
  ISSN =         "0894-3982",
  bibdate =      "Fri Sep 22 14:23:22 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/epodd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The emphasis in most hypertext systems is on the
                 navigational methods, rather than on the global
                 document retrieval mechanisms. When a search mechanism
                 is provided, it is often restricted to simple string
                 matching or to the Boolean model. As an alternate
                 method, we propose a retrieval mechanism using Bayesian
                 inference networks. The main contribution of our
                 approach is the automatic construction of this network
                 using the expected mutual information measure to build
                 the inference tree, and using Jaccard's formula to
                 define fixed conditional probability relationships.",
  acknowledgement = ack-nhfb,
  keywords =     "Hypertext, Information retrieval, Information
                 retrieval in hypertext, Bayesian network, Probabilistic
                 retrieval model, Probabilistic inference, Uncertainty
                 processing",
}

@Article{Schneier:1991:OHF,
  author =       "Bruce Schneier",
  title =        "One-Way Hash Functions: Probabilistic algorithms can
                 be used for general-purpose pattern matching",
  journal =      j-DDJ,
  volume =       "16",
  number =       "9",
  pages =        "148--151",
  day =          "1",
  month =        sep,
  year =         "1991",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Tue Sep 10 09:11:02 MDT 1996",
  bibsource =    "http://www.ddj.com/index/author/index.htm;
                 https://www.math.utah.edu/pub/tex/bib/cryptography1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/dr-dobbs.bib;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 UnCover database",
  acknowledgement = ack-nhfb,
  classification = "C6120 (File organisation); C6130 (Data handling
                 techniques)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  keywords =     "128-Bit hash; 32 Bit; 32-Bit architectures; 32-Bit
                 operands; Cryptographic algorithm; DES; Digital
                 Encryption Standard; MD5; Message Digest; One-way hash
                 function",
  thesaurus =    "C listings; Cryptography; File organisation",
}

@Article{Schneier:1991:OWH,
  author =       "Bruce Schneier",
  title =        "One-Way Hash Functions: Probabilistic algorithms can
                 be used for general-purpose pattern matching",
  journal =      j-DDJ,
  volume =       "16",
  number =       "9",
  pages =        "148--151",
  day =          "1",
  month =        sep,
  year =         "1991",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Tue Sep 10 09:11:02 MDT 1996",
  bibsource =    "ftp://ftp.math.utah.edu/pub/tex/bib/dr-dobbs.bib;
                 ftp://ftp.math.utah.edu/pub/tex/bib/hash.bib;
                 http://www.ddj.com/index/author/index.htm;
                 https://www.math.utah.edu/pub/tex/bib/cryptography1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 UnCover database",
  acknowledgement = ack-nhfb,
  classification = "C6120 (File organisation); C6130 (Data handling
                 techniques)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  keywords =     "128-Bit hash; 32 Bit; 32-Bit architectures; 32-Bit
                 operands; Cryptographic algorithm; DES; Digital
                 Encryption Standard; MD5; Message Digest; One-way hash
                 function",
  thesaurus =    "C listings; Cryptography; File organisation",
}

@Article{Smith:1991:EVF,
  author =       "P. D. Smith",
  title =        "Experiments with a Very Fast Substring Search
                 Algorithm",
  journal =      j-SPE,
  volume =       "21",
  number =       "10",
  pages =        "1065--1074",
  month =        oct,
  year =         "1991",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380211006",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "30 Oct 2006",
}

@Article{Smith:1991:PEP,
  author =       "Donald A. Smith",
  title =        "Partial evaluation of pattern matching in constraint
                 logic programming languages",
  journal =      j-SIGPLAN,
  volume =       "26",
  number =       "9",
  pages =        "62--71",
  month =        sep,
  year =         "1991",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:16:11 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Tucci:1991:RNC,
  author =       "Maurizio Tucci and Gennaro Costagliola and Shi-Kuo
                 Chang",
  title =        "A remark on {NP}-completeness of picture matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "39",
  number =       "5",
  pages =        "241--243",
  day =          "13",
  month =        sep,
  year =         "1991",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Pittsburgh",
  affiliationaddress = "Pittsburgh, PA, USA",
  classification = "723; 903; C1250 (Pattern recognition); C4240
                 (Programming and algorithm theory); C4250 (Database
                 theory); C6160S (Spatial and pictorial databases)",
  corpsource =   "Dept. of Comput. Sci., Pittsburgh Univ., PA, USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "2-D string representation; computational complexity;
                 computer graphics; Computer Metatheory ---
                 Computational Complexity; computerised pattern
                 recognition; computerised picture processing; database
                 management systems; Database Systems; database theory;
                 iconic indexing; image database systems; Image
                 Databases; image retrieval; Information Retrieval;
                 information retrieval; Information Science; NP
                 Completeness; NP-completeness; objects; orthogonal
                 projections; Picture Matching; picture matching;
                 picture queries; picture retrieval; spatial relations",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Vishkin:1991:DSN,
  author =       "Uzi Vishkin",
  title =        "Deterministic Sampling --- a New Technique for Fast
                 Pattern Matching",
  journal =      j-SIAM-J-COMPUT,
  volume =       "20",
  number =       "1",
  pages =        "22--40",
  month =        feb,
  year =         "1991",
  CODEN =        "SMJCAT",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68P99 (68Q10 68Q20 68T10)",
  MRnumber =     "1 082 134",
  bibdate =      "Mon Nov 29 11:01:41 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/20/1;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Yodaiken:1991:MFC,
  author =       "Victor Yodaiken",
  title =        "Modal functions for concise definition of state
                 machines and products",
  journal =      j-INFO-PROC-LETT,
  volume =       "40",
  number =       "2",
  pages =        "65--72",
  day =          "25",
  month =        oct,
  year =         "1991",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q60",
  MRnumber =     "92m:68077",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Massachusetts",
  affiliationaddress = "Amherst, MA, USA",
  classification = "721; C4210 (Formal logic); C4220 (Automata theory)",
  corpsource =   "Dept. of Comput. and Inf. Syst., Massachusetts Univ.,
                 Amherst, MA, USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "automata products; Automata Theory; Automata Theory
                 --- Formal Languages; complex control; computer
                 engineering; Finite Automata; finite automata; Finite
                 State Transition Systems; finite state transition
                 systems; formal languages; function composition;
                 generalized feedback product; modal extension; Modal
                 Functions; modal functions; Moore machine; Moore
                 Machines; past input signals; primitive recursive
                 functions; recursive functions; regular expressions;
                 rule; semigroups; state dependent extension; state
                 diagrams; state machines; state products; state sets;
                 state systems; wreath products",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Yoo:1991:EAL,
  author =       "H. Yoo and K. Hashiguchi",
  title =        "Extended automata-like regular expressions of star
                 degree at most (2, 1)",
  journal =      j-THEOR-COMP-SCI,
  volume =       "88",
  number =       "2",
  pages =        "351--363",
  day =          "07",
  month =        oct,
  year =         "1991",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C4210 (Formal logic); C4220 (Automata theory)",
  corpsource =   "Dept. of Inf. and Comput. Sci., Toyohashi Univ. of
                 Technol., Japan",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "automata theory; concatenation; context-free
                 languages; extended automata-like regular expressions;
                 finite languages; star degree; star operator;
                 ultralinear languages; union",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Amir:1992:EPM,
  author =       "Amihood Amir and Gad M. Landau and Uzi Vishkin",
  title =        "Efficient pattern matching with scaling",
  journal =      j-J-ALG,
  volume =       "13",
  number =       "1",
  pages =        "2--32",
  month =        mar,
  year =         "1992",
  CODEN =        "JOALDV",
  DOI =          "https://doi.org/10.1016/0196-6774(92)90003-U",
  ISSN =         "0196-6774 (print), 1090-2678 (electronic)",
  ISSN-L =       "0196-6774",
  bibdate =      "Tue Dec 11 09:15:14 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jalg.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/019667749290003U",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Algorithms",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01966774",
}

@Article{Amir:1992:TDD,
  author =       "Amihood Amir and Martin Farach",
  title =        "Two-dimensional dictionary matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "44",
  number =       "5",
  pages =        "233--239",
  day =          "21",
  month =        dec,
  year =         "1992",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68U15",
  MRnumber =     "93k:68111",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory); C6130D
                 (Document processing techniques)",
  corpsource =   "Coll. of Comput., Georgia Inst. of Technol., Atlanta,
                 GA, USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  keywords =     "computational complexity; dictionary matching
                 algorithms; dictionary patterns; pattern matching
                 algorithms; pattern string; preprocessing; text
                 processing; two-dimensional dictionary problem;
                 two-dimensional patterns; word processing",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Anonymous:1992:AUa,
  author =       "Anonymous",
  title =        "{Answers to UNIX}",
  journal =      j-UNIX-WORLD,
  volume =       "9",
  number =       "10",
  pages =        "117--??",
  month =        oct,
  year =         "1992",
  ISSN =         "0739-5922",
  bibdate =      "Sat Jan 27 06:20:21 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "Designing scripts, regular expressions, and reading
                 characters.",
  acknowledgement = ack-nhfb,
  fjournal =     "UNIX/world",
}

@Article{Anonymous:1992:CPM,
  author =       "Anonymous",
  title =        "{Combinatorial Pattern Matching School}",
  journal =      j-THEOR-COMP-SCI,
  volume =       "92",
  number =       "1",
  pages =        "??--??",
  day =          "06",
  month =        jan,
  year =         "1992",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C1160
                 (Combinatorial mathematics) and algorithm theory; C1250
                 (Pattern recognition); C4220 (Automata theory); C4240P
                 (Parallel programming and algorithm theory)",
  conflocation = "Paris, France; July 1990",
  conftitle =    "Combinatorial Pattern Matching School",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "acyclic deterministic automata; algorithm theory;
                 automata theory; average-case pattern matching;
                 Boyer--Moore--Horspool algorithm; canonical form;
                 circular string; computational complexity; data
                 compression; dynamic programming; factor automata; fast
                 linear-space computations; linear time; longest common
                 subsequences; minimisation; optimal algorithms; pattern
                 recognition; search problems; string matching",
  pubcountry =   "Netherlands",
}

@Article{Atallah:1992:PMM,
  author =       "Mikhail J. Atallah and Philippe Jacquet and Wojciech
                 Szpankowski",
  title =        "Pattern Matching with Mismatches: a Probabilistic
                 Analysis and a Randomized Algorithm",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "644",
  pages =        "27--??",
  year =         "1992",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:46:24 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Baeza-Yates:1992:ART,
  author =       "R. A. Baeza-Yates and M. Regnier",
  title =        "Average running time of the {Boyer--Moore--Horspool}
                 algorithm",
  journal =      j-THEOR-COMP-SCI,
  volume =       "92",
  number =       "1",
  pages =        "19--31",
  day =          "06",
  month =        jan,
  year =         "1992",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C1250 (Pattern
                 recognition); C4240P (Parallel programming and
                 algorithm theory); C6130 (Data handling techniques)",
  conflocation = "Paris, France; July 1990",
  conftitle =    "Combinatorial Pattern Matching School",
  corpsource =   "Dept. de Ciencias de la Comput., Chile Univ.,
                 Santiago, Chile",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
  keywords =     "average running time; Boyer--Moore--Horspool
                 algorithm; Boyer--Moore-type string searching
                 algorithms; cardinality; computational complexity;
                 exact expression; linearity constant; pattern
                 recognition; search problems; stationary process;
                 symbol manipulation; text editing; word enumeration
                 problem",
  pubcountry =   "Netherlands",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Baeza-Yates:1992:FPA,
  author =       "Ricardo A. Baeza-Yates and Chris H. Perleberg",
  title =        "Fast and Practical Approximate String Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "644",
  pages =        "182--??",
  year =         "1992",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:46:24 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Baeza-Yates:1992:NAT,
  author =       "Ricardo Baeza-Yates and Gaston H. Gonnet",
  title =        "A new approach to text searching",
  journal =      j-CACM,
  volume =       "35",
  number =       "10",
  pages =        "74--82",
  month =        oct,
  year =         "1992",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Thu May 30 09:41:10 MDT 1996",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/cacm1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "This paper describes a new linear-time string search
                 algorithm that can handle limited regular-expression
                 pattern matching {\em without\/} backtracking. See also
                 \cite{Knuth:1977:FPM}, \cite{Boyer:1977:FSS},
                 \cite{Karp:1981:ERPa}, \cite{Sunday:1990:VFS}, and
                 \cite{Wu:1992:FTS}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0001-0782/135243.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  keywords =     "algorithms",
  subject =      "{\bf F.2.2}: Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Pattern matching. {\bf H.3.3}:
                 Information Systems, INFORMATION STORAGE AND RETRIEVAL,
                 Information Search and Retrieval, Retrieval models.
                 {\bf H.3.3}: Information Systems, INFORMATION STORAGE
                 AND RETRIEVAL, Information Search and Retrieval, Search
                 process. {\bf H.3.3}: Information Systems, INFORMATION
                 STORAGE AND RETRIEVAL, Information Search and
                 Retrieval, Selection process. {\bf I.5.4}: Computing
                 Methodologies, PATTERN RECOGNITION, Applications, Text
                 processing.",
}

@Article{Baeza-Yates:1992:TCN,
  author =       "Ricardo Baeza-Yates and Fred T. Krogh and Bernard
                 Ziegler and Peter R. Sibbald and Daniel M. Sunday",
  title =        "Technical Correspondence: Notes on a Very Fast
                 Substring Search Algorithm",
  journal =      j-CACM,
  volume =       "35",
  number =       "4",
  pages =        "132--137",
  month =        apr,
  year =         "1992",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Tue Jan 28 14:52:45 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cacm1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  journal-URL =  "https://dl.acm.org/loi/cacm",
}

@Article{Bertossi:1992:SNP,
  author =       "A. A. Bertossi and F. Luccio and L. Pagli and E.
                 Lodi",
  title =        "Short notes: {A parallel solution to the approximate
                 string matching problem}",
  journal =      j-COMP-J,
  volume =       "35",
  number =       "5",
  pages =        "524--526",
  month =        oct,
  year =         "1992",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/35.5.524",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Tue Dec 4 14:48:35 MST 2012",
  bibsource =    "http://comjnl.oxfordjournals.org/content/35/5.toc;
                 https://www.math.utah.edu/pub/tex/bib/compj.bib;
                 https://www.math.utah.edu/pub/tex/bib/compj1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/35/5/524.full.pdf+html;
                 http://www3.oup.co.uk/computer_journal/Volume_35/Issue_05/350524.sgm.abs.html;
                 http://www3.oup.co.uk/computer_journal/Volume_35/Issue_05/tiff/524.tif;
                 http://www3.oup.co.uk/computer_journal/Volume_35/Issue_05/tiff/525.tif;
                 http://www3.oup.co.uk/computer_journal/Volume_35/Issue_05/tiff/526.tif",
  acknowledgement = ack-nhfb,
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
}

@InProceedings{Boyer:1992:ACP,
  author =       "R. S. Boyer and Yuan Yu",
  title =        "Automated correctness proofs of machine code programs
                 for a commercial microprocessor",
  crossref =     "Kapur:1992:ADC",
  pages =        "416--430",
  month =        "",
  year =         "1992",
  bibdate =      "Wed Oct 30 05:59:54 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hoare-c-a-r.bib;
                 https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The authors have formally specified a substantial
                 subset of the MC68020, a widely used microprocessor
                 built by Motorola, within the mathematical logic of the
                 automated reasoning system Nqthm i.e. the Boyer--Moore
                 Theorem Prover. Using this MC68020 specification, the
                 authors have mechanically checked the correctness of
                 MC68020 machine code programs for Euclid's GCD, Hoare's
                 Quick Sort, binary search, and other well-known
                 algorithms. The machine code for these examples was
                 generated using the GNU C and the Verdix Ada compilers.
                 The authors have developed an extensive library of
                 proven lemmas to facilitate automated reasoning about
                 machine code programs. The authors describe a two stage
                 methodology they use to do their machine code proofs.",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. Sci. and Math., Texas Univ., Austin,
                 TX, USA",
  classification = "C4210 (Formal logic); C5130 (Microprocessor chips);
                 C6110B (Software engineering techniques); C6150G
                 (Diagnostic, testing, debugging and evaluating
                 systems)",
  keywords =     "Automated reasoning system Nqthm; Automatic
                 correctness proofs; Binary search; Boyer--Moore Theorem
                 Prover; Commercial microprocessor; GCD; GNU C; Hoare's
                 Quick Sort; Machine code programs; Mathematical logic;
                 MC68020; Verdix Ada compilers",
  thesaurus =    "Formal specification; Microprocessor chips; Program
                 verification; Theorem proving",
}

@Article{Breslauer:1992:LBP,
  author =       "Dany Breslauer and Zvi Galil",
  title =        "A Lower Bound for Parallel String Matching",
  journal =      j-SIAM-J-COMPUT,
  volume =       "21",
  number =       "5",
  pages =        "856--862",
  month =        oct,
  year =         "1992",
  CODEN =        "SMJCAT",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68Q22 (68Q25 68U15)",
  MRnumber =     "93j:68064",
  bibdate =      "Mon Nov 29 11:02:04 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/21/5;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@InProceedings{Bruggemann-Klein:1992:DRLa,
  author =       "A. Br{\"u}ggemann-Klein and D. Wood",
  title =        "Deterministic regular languages",
  crossref =     "Finkel:1992:SAS",
  bookpages =    "xiv + 620",
  pages =        "173--184",
  month =        feb,
  year =         "1992",
  bibdate =      "Tue Sep 13 16:25:09 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sgml.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The ISO standard for standard generalized markup
                 language (SGML) provides a syntactic meta-language for
                 the definition of textual markup systems. In the
                 standard the right hand sides of productions are called
                 content models and they are based on regular
                 expressions. The allowable regular expressions are
                 those that are `unambiguous' as defined by the
                 standard. Unfortunately, the standard's use of the term
                 `unambiguous' does not correspond to the two well known
                 notions, since not all regular languages are denoted by
                 `unambiguous' expressions. Furthermore, the standard's
                 definition of `unambiguous' is somewhat vague. The
                 authors provide a precise definition of `unambiguous
                 expressions' and rename them deterministic regular
                 expressions to avoid any confusion. A regular
                 expression E is deterministic if the canonical
                 epsilon-free finite automaton M/sub E/ recognizing L(E)
                 is deterministic. A regular language is deterministic
                 if there is a deterministic expression that denotes it.
                 The authors give a Kleene-like theorem for
                 deterministic regular languages and characterize them
                 in terms of the structural properties of the minimal
                 deterministic automata recognizing them. The latter
                 result enables them to decide if a given regular
                 expression denotes a deterministic regular language
                 and, if so, to construct an equivalent deterministic
                 expression.",
  acknowledgement = ack-nhfb,
  affiliation =  "Inst. f{\"u}r Inf., Freiburg Univ., Germany",
  classification = "C4210 (Formal logic); C4220 (Automata theory)",
  confdate =     "13--15 Feb. 1992",
  conflocation = "Cachan, France",
  keywords =     "Canonical epsilon-free finite automaton; Content
                 models; Deterministic regular expressions; ISO
                 standard; Kleene-like theorem; Minimal deterministic
                 automata; Regular expressions; Standard generalized
                 markup language; Structural properties; Syntactic
                 meta-language; Textual markup systems",
  thesaurus =    "Deterministic automata; Finite automata; Formal
                 languages",
}

@InProceedings{Bruggemann-Klein:1992:DRLb,
  author =       "A. Bruggemann-Klein and D. Wood",
  title =        "Deterministic regular languages",
  crossref =     "Finkel:1992:SAS",
  pages =        "173--184",
  month =        "????",
  year =         "1992",
  bibdate =      "Wed Sep 11 05:43:28 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sgml.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Inst. f{\"u}r Inf., Freiburg Univ., Germany",
  classification = "C4210 (Formal logic); C4220 (Automata theory)",
  keywords =     "Canonical epsilon-free finite automaton; Content
                 models; Deterministic regular expressions; ISO
                 standard; Kleene-like theorem; Minimal deterministic
                 automata; Regular expressions; Standard generalized
                 markup language; Structural properties; Syntactic
                 meta-language; Textual markup systems",
  thesaurus =    "Deterministic automata; Finite automata; Formal
                 languages",
}

@TechReport{Bruggemann-Klein:1992:URE,
  author =       "Anne Br{\"u}ggemann-Klein and Derick Wood",
  title =        "Unambiguous Regular Expressions and {SGML} Document
                 Grammars",
  type =         "Technical Report",
  number =       "337",
  institution =  "Computer Science Department, University of Western
                 Ontario",
  address =      "London, Ontario, Canada",
  month =        nov,
  year =         "1992",
  ISBN =         "0-7714-1454-4",
  ISBN-13 =      "978-0-7714-1454-1",
  bibdate =      "Sat Feb 24 09:50:43 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sgml.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-js,
  annote =       "From Joachim Schrod: ``Available from AFA
                 \path=ftp.csd.uwo.ca:/pub/csd-technical-reports/337=.
                 This report shows the relationship between traditional
                 formal languages and SGML doctype specifications. In
                 particular, it is a data point to show that the usage
                 of terms in the SGML community does not conform to the
                 canonical meaning in CS\@. The report shows that one
                 can decide if a given regular expression is equivalent
                 to a valid SGML doctype, and that one can do this
                 transformation. The algorithm for the transformation is
                 exponential; it is not known if this is a time-optimal
                 algorithm.''",
}

@InProceedings{BruggemannKlein:1992:DRL,
  author =       "A. Bruggemann-Klein and D. Wood",
  title =        "Deterministic regular languages",
  crossref =     "Finkel:1992:SAS",
  pages =        "173--184",
  month =        "????",
  year =         "1992",
  bibdate =      "Wed Sep 11 05:43:28 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sgml.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Inst. f{\"u}r Inf., Freiburg Univ., Germany",
  classification = "C4210 (Formal logic); C4220 (Automata theory)",
  keywords =     "Canonical epsilon-free finite automaton; Content
                 models; Deterministic regular expressions; ISO
                 standard; Kleene-like theorem; Minimal deterministic
                 automata; Regular expressions; Standard generalized
                 markup language; Structural properties; Syntactic
                 meta-language; Textual markup systems",
  thesaurus =    "Deterministic automata; Finite automata; Formal
                 languages",
}

@Article{Cai:1992:MEB,
  author =       "J. Cai and R. Paige and R. Tarjan",
  title =        "More efficient bottom-up multi-pattern matching in
                 trees",
  journal =      j-THEOR-COMP-SCI,
  volume =       "106",
  number =       "1",
  pages =        "21--60",
  day =          "30",
  month =        nov,
  year =         "1992",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C1250 (Pattern recognition); C4210 (Formal logic);
                 C6120 (File organisation)",
  corpsource =   "Dept. of Comput. Sci., New York Univ., NY, USA",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "bottom-up multi-pattern matching; decomposition
                 method; pattern preprocessing; pattern recognition;
                 programming language systems; rewriting systems;
                 space/time tradeoff; theorem proving; tree data
                 structures; trees",
  pubcountry =   "Netherlands",
  treatment =    "P Practical",
}

@Article{Chang:1992:TEC,
  author =       "William I. Chang and Jordan Lampe",
  title =        "Theoretical and Empirical Comparisons of Approximate
                 String Matching Algorithms",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "644",
  pages =        "172--??",
  year =         "1992",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:46:24 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Chew:1992:IGP,
  author =       "L. P. Chew and K. Kedem",
  title =        "Improvements on Geometric Pattern Matching Problems",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "621",
  pages =        "318--??",
  year =         "1992",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:46:24 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Chia-Hsiang:1992:RED,
  author =       "Chang Chia-Hsiang and Robert Paige",
  title =        "From Regular Expressions to {DFA's} Using Compressed
                 {NFA's}",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "644",
  pages =        "88--??",
  year =         "1992",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:46:24 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@InProceedings{Cole:1992:TBE,
  author =       "R. Cole and R. Hariharan",
  title =        "Tighter bounds on the exact complexity of string
                 matching",
  crossref =     "IEEE:1992:ASF",
  pages =        "600--609",
  year =         "1992",
  bibdate =      "Thu Apr 5 06:13:50 MDT 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Crochemore:1992:FSI,
  author =       "M. Crochemore",
  title =        "Foreword to the {Special Issue on Selected Papers of
                 the Combinatorial Pattern Matching School, Paris, July
                 1990}",
  journal =      j-THEOR-COMP-SCI,
  volume =       "92",
  number =       "1",
  pages =        "1--??",
  day =          "06",
  month =        jan,
  year =         "1992",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Fri Nov 21 19:16:33 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Crochemore:1992:NTD,
  author =       "M. Crochemore and W. Rytter",
  title =        "Note on Two-Dimensional Pattern Matching by Optimal
                 Parallel Algorithms",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "654",
  pages =        "100--??",
  year =         "1992",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:46:24 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Crochemore:1992:SMO,
  author =       "M. Crochemore",
  title =        "String-matching on ordered alphabets",
  journal =      j-THEOR-COMP-SCI,
  volume =       "92",
  number =       "1",
  pages =        "33--47",
  day =          "06",
  month =        jan,
  year =         "1992",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C1250 (Pattern
                 recognition); C4240P (Parallel programming and
                 algorithm theory); C6130 (Data handling techniques)",
  conflocation = "Paris, France; July 1990",
  conftitle =    "Combinatorial Pattern Matching School",
  corpsource =   "LITP, Paris Univ., France",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "complexity; computational complexity; constant space;
                 data handling; linear time; memory locations; ordered
                 alphabets; pattern recognition; search problems;
                 string-matching algorithm; time-space optimal",
  pubcountry =   "Netherlands",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@InProceedings{Farnum:1992:PBT,
  author =       "Charles Farnum",
  title =        "Pattern-based tree attribution",
  crossref =     "ACM:1992:CRN",
  pages =        "211--222",
  year =         "1992",
  bibdate =      "Mon May 3 18:24:44 MDT 1999",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/plan/143165/p211-farnum/",
  abstract =     "Attribute grammars have been used for many
                 language-oriented tasks, including the formal
                 description of semantics and the implementation of
                 compilation tasks from simple type checking through
                 code generation. Despite their successful use,
                 attribute grammars have some disadvantages, including
                 the monolithic nature of the grammar and the fixed
                 factoring of all attribute descriptions by a single set
                 of grammar productions. {\em Attribute pattern sets\/}
                 provide a more expressive attribution system by using
                 pattern matching, instead of grammar productions, to
                 perform case analysis. Attribute pattern sets can be
                 implemented in terms of attribute grammars in a way
                 that maintains the dependency structure of the
                 attribute system, making it straightforward to convert
                 many of the practical results from attribute grammar
                 theory to similar results for attribute pattern sets.",
  acknowledgement = ack-nhfb,
  keywords =     "algorithms; languages; verification",
  subject =      "{\bf F.4.2} Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Grammars and Other Rewriting
                 Systems, Grammar types. {\bf G.2.2} Mathematics of
                 Computing, DISCRETE MATHEMATICS, Graph Theory, Trees.
                 {\bf F.3.3} Theory of Computation, LOGICS AND MEANINGS
                 OF PROGRAMS, Studies of Program Constructs, Type
                 structure.",
}

@InProceedings{Farnum:1992:PTA,
  author =       "Charles Farnum",
  title =        "Pattern-based tree attribution",
  crossref =     "ACM:1992:CRN",
  pages =        "211--222",
  year =         "1992",
  bibdate =      "Mon May 3 18:24:44 MDT 1999",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/plan/143165/p211-farnum/",
  abstract =     "Attribute grammars have been used for many
                 language-oriented tasks, including the formal
                 description of semantics and the implementation of
                 compilation tasks from simple type checking through
                 code generation. Despite their successful use,
                 attribute grammars have some disadvantages, including
                 the monolithic nature of the grammar and the fixed
                 factoring of all attribute descriptions by a single set
                 of grammar productions. {\em Attribute pattern sets\/}
                 provide a more expressive attribution system by using
                 pattern matching, instead of grammar productions, to
                 perform case analysis. Attribute pattern sets can be
                 implemented in terms of attribute grammars in a way
                 that maintains the dependency structure of the
                 attribute system, making it straightforward to convert
                 many of the practical results from attribute grammar
                 theory to similar results for attribute pattern sets.",
  acknowledgement = ack-nhfb,
  keywords =     "algorithms; languages; verification",
  subject =      "{\bf F.4.2} Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Grammars and Other Rewriting
                 Systems, Grammar types. {\bf G.2.2} Mathematics of
                 Computing, DISCRETE MATHEMATICS, Graph Theory, Trees.
                 {\bf F.3.3} Theory of Computation, LOGICS AND MEANINGS
                 OF PROGRAMS, Studies of Program Constructs, Type
                 structure.",
}

@Book{Frakes:1992:IRD,
  editor =       "William B. Frakes and Ricardo Baeza-Yates",
  title =        "Information Retrieval: Data Structures and
                 Algorithms",
  publisher =    pub-PH,
  address =      pub-PH:adr,
  pages =        "viii + 504",
  year =         "1992",
  ISBN =         "0-13-463837-9",
  ISBN-13 =      "978-0-13-463837-9",
  LCCN =         "QA76.9.D351543 1992",
  bibdate =      "Wed May 18 19:05:15 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  price =        "US\$56.00",
  acknowledgement = ack-nhfb,
  libnote =      "Not in my library.",
  tableofcontents = "Introduction to information storage and retrieval
                 systems / W. B. Frakes \\
                 Introduction to data structures and algorithms related
                 to information retrieval / R. S. Baeza-Yates \\
                 Inverted files / D. Harman [and others] \\
                 Signature files / C. Faloutsos \\
                 New indices for text: PAT trees and PAT arrays / G. H.
                 Gonnet, R. A. Baeza-Yates, T. Snider \\
                 File organizations for optical disks / D. A. Ford, S.
                 Christodoulakis \\
                 Lexical analysis and stoplists / C. Fox \\
                 Stemming algorithms / W. B. Frakes \\
                 Thesaurus construction / P. Srinivasan \\
                 String searching algorithms / R. A. Baeza-Yates \\
                 Relevance feedback and other query modification
                 techniques / D. Harman \\
                 Boolean operations / S. Wartik \\
                 Hashing algorithms / S. Wartik [and others] \\
                 Ranking algorithms / D. Harman \\
                 Extended Boolean models / E. Fox [and others] \\
                 Clustering algorithms / E. Rasmussen \\
                 Special-purpose hardware for information retrieval / L.
                 Hollaar \\
                 Parallel information retrieval algorithms / C.
                 Stanfill",
}

@Article{Fraser:1992:ESE,
  author =       "Christopher W. Fraser and David R. Hanson and Todd A.
                 Proebsting",
  title =        "Engineering a simple, efficient code-generator
                 generator",
  journal =      j-LOPLAS,
  volume =       "1",
  number =       "3",
  pages =        "213--226",
  month =        sep,
  year =         "1992",
  CODEN =        "ALPSE8",
  DOI =          "https://doi.org/10.1145/151640.151642",
  ISSN =         "1057-4514 (print), 1557-7384 (electronic)",
  ISSN-L =       "1057-4514",
  bibdate =      "Fri Feb 17 18:41:11 2006",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://storage.webhop.net/documents/iburg.pdf;
                 http://www.acm.org/pubs/toc/Abstracts/1057-4514/151642.html;
                 http://www.cs.princeton.edu/software/iburg/",
  abstract =     "Many code-generator generators use tree pattern
                 matching and dynamic programming. This paper describes
                 a simple program that generates matchers that are fast,
                 compact, and easy to understand. It is simpler than
                 common alternatives: 200-700 lines of Icon or 950 lines
                 of C versus 3000 lines of C for Twig and 5000 for burg.
                 Its matchers run up to 25 times faster than Twig's.
                 They are necessarily slower than burg's BURS (bottom-up
                 rewrite system) matchers, but they are more flexible
                 and still practical.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Letters on Programming Languages and Systems
                 (LOPLAS)",
  keywords =     "languages",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Translator writing systems and compiler
                 generators. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Code generation. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors,
                 Compilers.",
}

@InProceedings{Galil:1992:CTO,
  author =       "Zvi Galil",
  title =        "A constant-time optimal parallel string-matching
                 algorithm",
  crossref =     "ACM:1992:PTF",
  pages =        "69--76",
  year =         "1992",
  bibdate =      "Wed Feb 20 18:34:00 MST 2002",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/stoc/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/stoc/129712/p69-galil/p69-galil.pdf;
                 http://www.acm.org/pubs/citations/proceedings/stoc/129712/p69-galil/",
  acknowledgement = ack-nhfb,
}

@Article{Galil:1992:ECS,
  author =       "Zvi Galil and Raffaele Giancarlo",
  title =        "On the Exact Complexity of String Matching: Upper
                 Bounds",
  journal =      j-SIAM-J-COMPUT,
  volume =       "21",
  number =       "3",
  pages =        "407--437",
  month =        jun,
  year =         "1992",
  CODEN =        "SMJCAT",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68Q20 (68Q25 68U15)",
  MRnumber =     "93g:68051",
  MRreviewer =   "D. M. Campbell",
  bibdate =      "Mon Nov 29 11:02:00 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/21/3;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@InProceedings{Galil:1992:TAI,
  author =       "Z. Galil and K. Park",
  title =        "Truly alphabet-independent two-dimensional pattern
                 matching",
  crossref =     "IEEE:1992:ASF",
  pages =        "247--256",
  year =         "1992",
  bibdate =      "Thu Apr 5 06:13:50 MDT 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Garg:1992:CRE,
  author =       "V. K. Garg and M. T. Ragunath",
  title =        "Concurrent regular expressions and their relationship
                 to {Petri} nets",
  journal =      j-THEOR-COMP-SCI,
  volume =       "96",
  number =       "2",
  pages =        "285--304",
  day =          "13",
  month =        apr,
  year =         "1992",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C4210 (Formal
                 logic); C6110B (Software engineering techniques)",
  corpsource =   "Dept. of Electr. and Comput. Eng., Texas Univ.,
                 Austin, TX, USA",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "algebraic systems; concurrent regular expressions;
                 concurrent systems specification; formal languages;
                 formal specification; interleaving; interleaving
                 closure; modular description of languages; Petri nets;
                 renaming; synchronous composition",
  pubcountry =   "Netherlands",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Book{Gilly:1992:UN,
  author =       "Daniel Gilly and {the staff of O'Reilly \ and
                 Associates}",
  title =        "{UNIX} in a Nutshell",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Second",
  year =         "1992",
  ISBN =         "1-56592-001-5",
  ISBN-13 =      "978-1-56592-001-9",
  LCCN =         "QA76.76.O63 G55 1992",
  bibdate =      "Tue Dec 14 22:53:27 1993",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  acknowledgement = ack-nhfb,
  shorttableofcontents = "Introduction \\
                 UNIX commands \\
                 UNIX shell \\
                 Bourne shell and Korn shell \\
                 C shell \\
                 Pattern matching \\
                 Emacs editor \\
                 Vi editor \\
                 Ex editor \\
                 Sed editor \\
                 Awk scripting language",
  tableofcontents = "Commands and shells \\
                 Introduction \\
                 UNIX commands \\
                 The UNIX shell: an overview \\
                 The Bourne shell and Korn shell \\
                 The C shell \\
                 Text editing \\
                 Pattern matching \\
                 The emacs editor \\
                 The Vi editor \\
                 The ex editor \\
                 The sed editor \\
                 The awk scripting language \\
                 Text formatting \\
                 nroff and troff \\
                 mm macros \\
                 ms macros \\
                 me macros \\
                 Preprocessors \\
                 Software development \\
                 The SCCS utility \\
                 The RCS utility \\
                 The make utility \\
                 Program debugging \\
                 Loose ends \\
                 ASCII character set",
}

@InProceedings{Ginsburg:1992:PMR,
  author =       "Seymour Ginsburg and Xiaoyang Wang",
  title =        "Pattern matching by {Rs}-operations: towards a unified
                 approach to querying sequenced data",
  crossref =     "ACM:1992:PPE",
  pages =        "293--300",
  year =         "1992",
  bibdate =      "Wed Oct 25 12:40:13 MDT 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pods/137097/p293-ginsburg/p293-ginsburg.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pods/137097/p293-ginsburg/;
                 http://www.acm.org:80/pubs/citations/proceedings/pods/137097/p293-ginsburg/",
  abstract =     "A family of sequence operations (rs-operations), based
                 on pattern matching and including most of the
                 ``natural'' operations on sequences, is introduced. In
                 order to apply rs-operations to calculus-like query
                 languages, a logic about sequences (SL) is defined by
                 converting rs-operations to special predicates. To
                 illustrate the applicability of our concepts to
                 database queries, rs-operations and SL are used in an
                 algebra and a calculus, respectively, over an extended
                 relational data model containing sequences.",
  acknowledgement = ack-nhfb,
  generalterms = "Languages; Theory",
  keywords =     "languages; theory",
  subject =      "{\bf H.2.3} Information Systems, DATABASE MANAGEMENT,
                 Languages, Query languages. {\bf H.2.1} Information
                 Systems, DATABASE MANAGEMENT, Logical Design, Data
                 models. {\bf F.2.2} Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Pattern matching.",
}

@Article{Grosch:1992:TAT,
  author =       "Josef Grosch",
  title =        "Transformation of Attributed Trees Using Pattern
                 Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "641",
  pages =        "1--??",
  year =         "1992",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:46:24 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Gudeman:1992:DSG,
  author =       "David A. Gudeman",
  title =        "Denotational Semantics of a Goal-Directed Language",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "1",
  pages =        "107--125",
  month =        jan,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/104659.html",
  abstract =     "Goal-directed evaluation is a very expressive
                 programming language paradigm that is supported in
                 relatively few languages. It is characterized by
                 evaluation of expressions in an attempt to meet some
                 goal, with resumption of previous expressions on
                 failure. This paradigm is found in SNOBL4 in its
                 pattern-matching facilities, and in Icon as a general
                 part of the language. This paper presents a
                 denotational semantics of Icon and shows how Icon is in
                 fact a combination of two distinct paradigms,
                 goal-directed evaluation and functional application.
                 The two paradigms are not supported separately in
                 different contexts, but integrated fully into a single
                 evaluation mechanism.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; theory",
  subject =      "{\bf F.3.2}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Semantics of Programming
                 Languages, Denotational semantics. {\bf D.3.1}:
                 Software, PROGRAMMING LANGUAGES, Formal Definitions and
                 Theory, Semantics. {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, Nonprocedural
                 languages. {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, ICON. {\bf D.3.3}:
                 Software, PROGRAMMING LANGUAGES, Language Constructs
                 and Features, Control structures. {\bf F.3.3}: Theory
                 of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Studies of Program Constructs, Control primitives.",
}

@Article{Gusfield:1992:EAA,
  author =       "Dan Gusfield and Gad M. Landau and Baruch Schieber",
  title =        "An efficient algorithm for the {All Pairs Suffix ---
                 Prefix Problem}",
  journal =      j-INFO-PROC-LETT,
  volume =       "41",
  number =       "4",
  pages =        "181--185",
  day =          "18",
  month =        mar,
  year =         "1992",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of California at Davis",
  affiliationaddress = "Davis, CA, USA",
  classification = "723; C4240 (Programming and algorithm theory)",
  corpsource =   "Div. of Comput. Sci., California Univ., Davis, CA,
                 USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; all pairs suffix-prefix problem;
                 computational complexity; Computer Metatheory ---
                 Computational Complexity; Computer Programming; fixed
                 alphabet; longest suffix; programming theory; String
                 Matching; Suffix-Prefix Matching",
  treatment =    "T Theoretical or Mathematical",
}

@InProceedings{Hanson:1992:RCT,
  author =       "Eric N. Hanson",
  title =        "Rule condition testing and action execution in
                 {Ariel}",
  crossref =     "Stonebraker:1992:PAS",
  pages =        "49--58",
  year =         "1992",
  bibdate =      "Wed Oct 25 12:40:13 MDT 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/mod/130283/p49-hanson/p49-hanson.pdf;
                 http://www.acm.org/pubs/citations/proceedings/mod/130283/p49-hanson/",
  abstract =     "This paper describes testing of rule conditions and
                 execution of rule actions in Ariel active DBMS. The
                 Ariel rule system is tightly coupled with query and
                 update processing. Ariel rules can have conditions
                 based on a mix of patterns, events, and transitions.
                 For testing rule conditions, Ariel makes use of a
                 discrimination network composed of a special data
                 structure for testing single-relation selection
                 conditions efficiently, and a modified version of the
                 TREAT algorithm, called A-TREAT, for testing join
                 conditions. The key modification to TREAT (which could
                 also be used in the Rete algorithm) is the use of {\em
                 virtual\/}-memory nodes which save storage since they
                 contain only the predicate associated with the memory
                 node instead of copies of data matching the predicate.
                 The rule-action executor in Ariel binds the data
                 matching a rule's condition to the action of the rule
                 at rule fire time, and executes the rule action using
                 the query processor.",
  acknowledgement = ack-nhfb,
  generalterms = "Design; Languages; Measurement; Theory",
  subject =      "Information Systems --- Database Management ---
                 Languages (H.2.3); Computing Methodologies ---
                 Artificial Intelligence --- Knowledge Representation
                 Formalisms and Methods (I.2.4)",
}

@Article{Hashiguchi:1992:TRS,
  author =       "K. Hashiguchi and K. Yamada",
  title =        "Two recognizable string-matching problems over free
                 partially commutative monoids",
  journal =      j-THEOR-COMP-SCI,
  volume =       "92",
  number =       "1",
  pages =        "77--86",
  day =          "06",
  month =        jan,
  year =         "1992",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C1250 (Pattern
                 recognition); C4200 (Computer theory)",
  conflocation = "Paris, France; July 1990",
  conftitle =    "Combinatorial Pattern Matching School",
  corpsource =   "Dept. of Inf. and Comput. Sci., Toyohashi Univ. of
                 Technol., Japan",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "computation theory; constant-size alphabet; free
                 partially commutative monoids; linear-time algorithms;
                 pattern recognition; recognizable string-matching
                 problems; search problems",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Heering:1992:IGL,
  author =       "J. Heering and P. Klint and J. Rekers",
  title =        "Incremental Generation of Lexical Scanners",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "4",
  pages =        "490--520",
  month =        oct,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/133240.html",
  abstract =     "It is common practice to specify textual patterns by
                 means of a set of regular expressions and to transform
                 this set into a finite automaton to be used for the
                 scanning of input strings. In many applications, the
                 cost of this preprocessing phase can be amortized over
                 many uses of the constructed automaton. In this paper
                 new techniques for lazy and incremental scanner
                 generation are presented. The lazy technique postpones
                 the construction of parts of the automaton until they
                 are really needed during the scanning of input. The
                 incremental technique allows modifications to the
                 original set of regular expressions to be made and
                 reuses major parts of the previous automaton. This is
                 interesting in applications such as environments for
                 the interactive development of language definitions in
                 which modifications to the definition of lexical syntax
                 and the uses of the generated scanners alternate
                 frequently.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages; performance",
  subject =      "{\bf D.1.2}: Software, PROGRAMMING TECHNIQUES,
                 Automatic Programming. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Translator writing
                 systems and compiler generators.",
}

@Book{Hopcroft:1992:EAF,
  author =       "John E. Hopcroft and Jeffrey D. Ullman",
  title =        "{Einf{\"u}hrung in die Automatentheorie, formale
                 Sprachen und Komplexit{\"a}tstheorie}. ({German})
                 [{Introduction} to Automata Theory, Formal Languages
                 and Complexity Theory]",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  edition =      "1. Nachdr.",
  pages =        "ix + 461",
  year =         "1992",
  ISBN =         "0-201-02988-X, 3-89319-181-X",
  ISBN-13 =      "978-0-201-02988-8, 978-3-89319-181-9",
  LCCN =         "????",
  bibdate =      "Wed Sep 9 09:30:16 MDT 2020",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       "Internationale Computer-Bibliothek",
  acknowledgement = ack-nhfb,
  language =     "German",
  subject =      "Machine theory; Formal languages; Computational
                 complexity; Computational complexity.; Formal
                 languages.; Machine theory.; Automatentheorie; Formale
                 Sprache; Komplexit{\"a}tstheorie; Theoretische
                 Informatik",
}

@Article{Hudak:1992:RPL,
  author =       "Paul Hudak and Simon Peyton Jones and Philip Wadler
                 and Brian Boutel and Jon Fairbairn and Joseph Fasel and
                 Mar{\'\i}a M. Guzm{\'a}n and Kevin Hammond and John
                 Hughes and Thomas Johnsson and Dick Kieburtz and
                 Rishiyur Nikhil and Will Partain and John Peterson",
  title =        "Report on the programming language {Haskell}: a
                 non-strict, purely functional language (Version 1.2)",
  journal =      j-SIGPLAN,
  volume =       "27",
  number =       "5",
  pages =        "Ri--Rx, R1--R163",
  month =        may,
  year =         "1992",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:16:21 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/fparith.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Haskell is a general purpose, purely functional
                 programming language incorporating many recent
                 innovations in programming language research, including
                 higher-order functions, non-strict semantics, static
                 polymorphic typing, user-defined algebraic datatypes,
                 pattern-matching, list comprehensions, a module system,
                 and a rich set of primitive datatypes, including lists,
                 arrays, arbitrary and fixed precision integers, and
                 floating-point numbers. Haskell is both the culmination
                 and solidification of many years of research on
                 functional languages-the design has been influenced by
                 languages as old as ISWIM and as new as Miranda. The
                 report defines the syntax for Haskell programs and an
                 informal abstract semantics for the meaning of such
                 programs.",
  acknowledgement = ack-nhfb,
  affiliation =  "Yale Univ., New Haven, CT, USA",
  classification = "C6140D (High level languages)",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "Abstract semantics; Arrays; Fixed precision integers;
                 Floating-point numbers; Functional programming
                 language; Haskell; Higher-order functions; List
                 comprehensions; Lists; Module system; Non-strict
                 semantics; Pattern-matching; Primitive datatypes;
                 Static polymorphic typing; Syntax; User-defined
                 algebraic datatypes",
  thesaurus =    "Functional programming; High level languages",
}

@Article{Hui:1992:CSS,
  author =       "Lucas C. K. Hui",
  title =        "Color Set Size Problem with Applications to String
                 Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "644",
  pages =        "227--??",
  year =         "1992",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:46:24 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Jambunathan:1992:DIF,
  author =       "K. Jambunathan and E. Lai and S. L. Hartle and B. L.
                 Button",
  title =        "Development of an intelligent front end using {LISP}",
  journal =      "Applications of Artificial Intelligence in
                 Engineering",
  pages =        "228--243",
  year =         "1992",
  CODEN =        "AAIEEO",
  bibdate =      "Tue Sep 28 07:51:05 MDT 1999",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/common-lisp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Nottingham Polytechnic",
  affiliationaddress = "Engl",
  classification = "631.1; 723.1.1; 723.2; 723.4.1",
  journalabr =   "Appl Artif Intell Eng",
  keywords =     "Advanced information technology; C (programming
                 language); Common Lisp; Computational fluid dynamics
                 (CFD) package; Data structures; Expert systems; Fluid
                 dynamics; Inference engines; Intelligent front end
                 (IFE); Knowledge based systems; Lisp (programming
                 language); Pattern matching; Shell environment",
}

@Article{Jayaraman:1992:SAL,
  author =       "Bharat Jayaraman",
  title =        "Sublist assertions for listless and lazy evaluation",
  journal =      j-COMP-LANGS,
  volume =       "17",
  number =       "2",
  pages =        "133--146",
  month =        apr,
  year =         "1992",
  CODEN =        "COLADA",
  ISSN =         "0096-0551 (print), 1873-6742 (electronic)",
  ISSN-L =       "0096-0551",
  bibdate =      "Tue Mar 25 14:04:06 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/complngs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "State Univ of New York at Buffalo",
  affiliationaddress = "Buffalo, NY, USA",
  classcodes =   "C6130 (Data handling techniques); C6110L (Logic
                 programming); C6140D (High level languages)",
  classification = "723.1.1",
  corpsource =   "Dept. of Comput. Sci., State Univ. of New York,
                 Buffalo, NY, USA",
  fjournal =     "Computer Languages",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00960551",
  journalabr =   "Comput Lang",
  keywords =     "answer; eager evaluation; lazy evaluation; list; list
                 pattern; list processing; List processing; List
                 processing languages; list-matching; list-valued
                 function; listless evaluation; listof operation; logic
                 programming; logical form; order; processing;
                 programming languages; PROLOG; Prolog (Programming
                 language); Prolog programming; relational assertions;
                 Relational assertions; sublist assertion;
                 Subset-equational program; unification",
  treatment =    "P Practical",
}

@InProceedings{Jorgensen:1992:GCL,
  author =       "Jesper J{\o}rgensen",
  title =        "Generating a compiler for a lazy language by partial
                 evaluation",
  crossref =     "ACM:1992:CRN",
  pages =        "258--268",
  year =         "1992",
  bibdate =      "Mon May 3 18:24:44 MDT 1999",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/plan/143165/p258-jorgensen/",
  abstract =     "Compiler generation is often emphasized as being the
                 most important application of partial evaluation. But
                 most of the larger practical applications have, to the
                 best of our knowledge, been outside this field.
                 Especially, no one has generated compilers for
                 languages other than small languages. This paper
                 describes a large application of partial evaluation
                 where a realistic compiler was generated for a strongly
                 typed lazy functional language. The language, that was
                 called BAWL, was modeled after the language in Bird and
                 Wadler [BW88] and is a combinator language with pattern
                 matching, guarded alternatives, local definitions and
                 list comprehensions. The paper describes the most
                 important techniques used, especially the binding time
                 improvements needed in order to get small and efficient
                 target programs. Finally, the performance of the
                 compiler is compared with two compilers for similar
                 languages: Miranda and LML.",
  acknowledgement = ack-nhfb,
  keywords =     "algorithms; languages",
  subject =      "{\bf D.3.4} Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers. {\bf F.3.3} Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS, Studies
                 of Program Constructs, Functional constructs. {\bf
                 D.3.3} Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Procedures, functions, and
                 subroutines. {\bf D.3.2} Software, PROGRAMMING
                 LANGUAGES, Language Classifications. {\bf D.3.1}
                 Software, PROGRAMMING LANGUAGES, Formal Definitions and
                 Theory, Semantics. {\bf D.3.1} Software, PROGRAMMING
                 LANGUAGES, Formal Definitions and Theory, Syntax.",
}

@Article{Katajainen:1992:ALM,
  author =       "Jyrki Katajainen and Timo Raita",
  title =        "An Analysis of the Longest Match and the Greedy
                 Heuristics in Text Encoding",
  journal =      j-J-ACM,
  volume =       "39",
  number =       "2",
  pages =        "281--294",
  month =        apr,
  year =         "1992",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Fri Sep 22 14:23:22 2023",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Theory/JACM.bib;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0004-5411/128751.html",
  abstract =     "Text compression is often done using a fixed,
                 previously formed dictionary (code book) that expresses
                 which substrings of the text can be replaced by code
                 words. There always exists an optimal solution for
                 text-encoding problem. Due to the long processing times
                 of the various optimal algorithms, several heuristics
                 have been proposed in the literature. In this paper,
                 the worst-case compression gains obtained by the
                 longest match and the greedy heuristics for various
                 types of dictionaries is studied. For general
                 dictionaries, the performance of the heuristics can be
                 almost the weakest possible. In practice, however, the
                 dictionaries have usually properties that lead to a
                 space-optimal or near-space-optimal coding result with
                 the heuristics.",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  keywords =     "Algorithms; Data Structures and Algorithms; optimal
                 and heuristic encoding; performance; shortest paths;
                 textual substitution; Theory",
  subject =      "{\bf E.4}: Data, CODING AND INFORMATION THEORY, Data
                 compaction and compression. {\bf G.2.2}: Mathematics of
                 Computing, DISCRETE MATHEMATICS, Graph Theory, Path and
                 circuit problems.",
}

@Article{Kaufmann:1992:EBM,
  author =       "Matt Kaufmann",
  title =        "An extension of the {Boyer--Moore} Theorem Prover to
                 support first-order quantification",
  journal =      j-J-AUTOM-REASON,
  volume =       "9",
  number =       "3",
  pages =        "355--372",
  month =        dec,
  year =         "1992",
  CODEN =        "JAREEW",
  DOI =          "https://doi.org/10.1007/BF00245295",
  ISSN =         "0168-7433 (print), 1573-0670 (electronic)",
  ISSN-L =       "0168-7433",
  bibdate =      "Sat Apr 2 10:49:35 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jautomreason.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/BF00245295",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Autom. Reason.",
  fjournal =     "Journal of Automated Reasoning",
  journal-URL =  "http://link.springer.com/journal/10817",
}

@Article{Kim:1992:ASM,
  author =       "J. Y. Kim and J. Shawe-Taylor",
  title =        "An approximate string-matching algorithm",
  journal =      j-THEOR-COMP-SCI,
  volume =       "92",
  number =       "1",
  pages =        "107--117",
  day =          "06",
  month =        jan,
  year =         "1992",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C1250 (Pattern
                 recognition); C4240P (Parallel programming and
                 algorithm theory)",
  conflocation = "Paris, France; July 1990",
  conftitle =    "Combinatorial Pattern Matching School",
  corpsource =   "Dept. of Comput. Sci., R. Holloway and Bedford New
                 Coll., London Univ., UK",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "algorithm theory; approximate searches; approximate
                 string-matching algorithm; attribute-matching
                 algorithms; complexity analysis; computational
                 complexity; data structure; look-up phase; pattern
                 recognition; regularity assumptions; search problems;
                 text string",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Kinber:1992:LCR,
  author =       "Efim Kinber",
  title =        "Learning a Class of Regular Expressions via Restricted
                 Subset Queries",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "642",
  pages =        "232--??",
  year =         "1992",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:46:24 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Knight:1992:ARE,
  author =       "James R. Knight and Eugene W. Myers",
  title =        "Approximate Regular Expression Pattern Matching with
                 Concave Gap Penalties",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "644",
  pages =        "66--??",
  year =         "1992",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:46:24 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Kukich:1992:TAC,
  author =       "Karen Kukich",
  title =        "Techniques for Automatically Correcting Words in
                 Text",
  journal =      j-COMP-SURV,
  volume =       "24",
  number =       "4",
  pages =        "377--439",
  month =        dec,
  year =         "1992",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/146370.146380",
  ISSN =         "0360-0300 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  bibdate =      "Thu Jun 19 09:43:10 MDT 2008",
  bibsource =    "Compendex database;
                 ftp://ftp.ira.uka.de/pub/bibliography/Ai/cmubib.bib;
                 http://www.acm.org/pubs/contents/journals/surveys/;
                 https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/spell.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0360-0300/146380.html",
  abstract =     "Research aimed at correcting words in text has focused
                 on three progressively more difficult problems: (1)
                 nonword error detection; (2) isolated-word error
                 correction; and (3) context-dependent word correction.
                 In response to the first problem, efficient pattern
                 matching and $n$-gram analysis techniques have been
                 developed for detecting strings that do not appear in a
                 given word list. In response to the second problem, a
                 variety of general and application-specific spelling
                 correction techniques have been developed. Some of them
                 were based on detailed studies of spelling error
                 patterns. In response to the third problem, a few
                 experiments using natural-language-processing tools or
                 statistical-language models have been carried out. This
                 article surveys documented findings on spelling error
                 patterns, provides descriptions of various nonword
                 detection and isolated-word error correction
                 techniques, reviews the state of the art of
                 context-dependent word correction techniques, and
                 discusses research issues related to all three areas of
                 automatic error correction in text.",
  acknowledgement = ack-nhfb,
  affiliation =  "Bellcore",
  affiliationaddress = "Morristown, NJ, USA",
  classification = "723.1.1; 723.5",
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
  journalabr =   "ACM Comput Surv",
  keywords =     "$n$-gram analysis; algorithms; Automatic error
                 correction; Computer programming languages;
                 context-dependent spelling correction; Error
                 correction; Error detection; Error patterns;
                 experimentation; grammar checking; human factors;
                 Isolated words; n-gram analysis;
                 natural-language-processing models; neural net
                 classifiers; Optical Character Recognition (OCR);
                 Pattern recognition; performance; spell checking;
                 Spelling correction; spelling error detection; spelling
                 error patterns; statistical-language models; theory;
                 Word correction; Word processing; word recognition and
                 correction",
  subject =      "I.2.6 [Artificial Intelligence]: Learning\emdash
                 connectionism and neural nets; I.2.7 [Artificial
                 Intelligence]: Natural Language Processing\emdash
                 language models; language parsing and understanding;
                 text analysis; I.5.1 [Pattern Recognition]:
                 Models\emdash neural nets; statistical; I.5.4 [Pattern
                 Recognition]: Applications\emdash text processing;
                 I.7.1 [Text Processing]: Text Editing\emdash spelling",
}

@Article{Lecroq:1992:VBM,
  author =       "T. Lecroq",
  title =        "A variation on the {Boyer--Moore} algorithm",
  journal =      j-THEOR-COMP-SCI,
  volume =       "92",
  number =       "1",
  pages =        "119--144",
  day =          "06",
  month =        jan,
  year =         "1992",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C4220 (Automata theory)",
  conflocation = "Paris, France; July 1990",
  conftitle =    "Combinatorial Pattern Matching School",
  corpsource =   "CERIL, Evry, France",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
  keywords =     "automata theory; Boyer--Moore algorithm; linear-time
                 method; longest prefix; smallest suffix automaton",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Manber:1992:APM,
  author =       "Udi Manber and Sun Wu",
  title =        "Approximate Pattern Matching",
  journal =      j-BYTE,
  volume =       "17",
  number =       "??",
  pages =        "??--??",
  month =        "??",
  year =         "1992",
  CODEN =        "BYTEDJ",
  ISSN =         "0360-5280 (print), 1082-7838 (electronic)",
  ISSN-L =       "0360-5280",
  bibdate =      "Fri Sep 22 14:23:22 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "BYTE Magazine",
}

@Article{Manber:1992:SAR,
  author =       "Udi Manber and Sun Wu",
  title =        "Some Assembly Required. Approximate Pattern Matching:
                 Agrep's algorithms let you perform text searches using
                 an approximate pattern",
  journal =      j-BYTE,
  volume =       "17",
  number =       "12",
  pages =        "281--??",
  month =        nov,
  year =         "1992",
  CODEN =        "BYTEDJ",
  ISSN =         "0360-5280 (print), 1082-7838 (electronic)",
  ISSN-L =       "0360-5280",
  bibdate =      "Tue Jan 2 10:01:41 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "BYTE Magazine",
}

@Article{Muthukrishnan:1992:SMU,
  author =       "S. Muthukrishnan and H. Ramesh",
  title =        "String Matching Under a General Matching Relation",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "652",
  pages =        "356--??",
  year =         "1992",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:46:24 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Myers:1992:FRA,
  author =       "Gene Myers",
  title =        "A Four {Russians} Algorithm for Regular Expression
                 Pattern Matching",
  journal =      j-J-ACM,
  volume =       "39",
  number =       "2",
  pages =        "430--448",
  month =        apr,
  year =         "1992",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Thu Oct 20 22:42:43 1994",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Theory/JACM.bib;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0004-5411/128755.html",
  abstract =     "Given a regular expression {$R$} of length {$P$} and a
                 word {$A$} of length {$N$}, the membership problem is
                 to determine if {$A$} is in the language denoted by
                 {$R$}. An {$ O(P N / \lg N) $} time algorithm is
                 presented that is based on a {$ \lg N $} speedup of the
                 standard {$ O(P N) $} time simulation of {$R$}'s
                 nondeterministic finite automaton on {$A$} using a
                 combination of the node-listing and ``Four-Russians''
                 paradigms. This result places a new worst-case upper
                 bound on regular expression pattern matching. Moreover,
                 in practice the method provides an implementation that
                 is faster than existing software for small regular
                 expressions.",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  keywords =     "Algorithms; finite automaton; Four Russians paradigm;
                 note listing; performance; regular expression; String
                 Processing; Theory",
  subject =      "{\bf F.2.2}: Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Pattern matching. {\bf I.1.2}:
                 Computing Methodologies, ALGEBRAIC MANIPULATION,
                 Algorithms, Analysis of algorithms. {\bf I.5.0}:
                 Computing Methodologies, PATTERN RECOGNITION, General.
                 {\bf F.1.1}: Theory of Computation, COMPUTATION BY
                 ABSTRACT DEVICES, Models of Computation.",
}

@Article{Neraud:1992:SMI,
  author =       "J. Neraud and M. Crochemore",
  title =        "A string matching interpretation of the equation $ x^m
                 y^n = z^p $",
  journal =      j-THEOR-COMP-SCI,
  volume =       "92",
  number =       "1",
  pages =        "145--164",
  day =          "06",
  month =        jan,
  year =         "1992",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C1250 (Pattern recognition); C4240P (Parallel
                 programming and algorithm theory)",
  conflocation = "Paris, France; July 1990",
  conftitle =    "Combinatorial Pattern Matching School",
  corpsource =   "LITP, Rouen Univ., Mont-Saint-Aignan, France",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "algorithm theory; biprefix code; computational
                 complexity; finite alphabet; maximal factors;
                 NP-complete problem; on-line algorithm; pattern
                 recognition; preprocessing phase; string-matching
                 interpretation; time linear",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Ogawa:1992:RDF,
  author =       "R. Ogawa and Y. Kikuchi and K. Takahashi",
  title =        "Recent developments in full text database
                 technologies",
  journal =      j-J-INFO-PROC-SOC-JAPAN,
  volume =       "33",
  number =       "4",
  pages =        "404--412",
  month =        "????",
  year =         "1992",
  CODEN =        "JOSHA4",
  ISSN =         "0447-8053",
  bibdate =      "Wed Sep 11 05:43:28 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sgml.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Discusses CD-ROM; Knuth--Morris--Pratt pattern matching
                 in strings; the Boyer--Moore string searching
                 algorithm; Aho--Corasick string matching; associative
                 memory; variable length don't care; cellular arrays;
                 broadcasting; shift registers; systolic arrays; finite
                 state automata: input control; sequential logic;
                 comparison; dynamic programming; SGML; and
                 PostScript.",
  acknowledgement = ack-nhfb,
  affiliation =  "NEC Corp., Tokyo, Japan",
  classification = "C6130D (Document processing techniques); C7250L
                 (Non-bibliographic systems)",
  fjournal =     "Journal of Information Processing Society of Japan =
                 Joho Shori",
  keywords =     "Aho--Corasick string matching; Associative memory;
                 Boyer--Moore string searching algorithm; Broadcasting;
                 CD-ROM; Cellular arrays; Dynamic programming; Finite
                 state automata; Full text database technologies; Input
                 control; Knuth--Morris--Pratt pattern matching;
                 PostScript; Sequential logic; SGML; Shift registers;
                 Systolic arrays; Variable length don't care",
  language =     "Japanese",
  pubcountry =   "Japan",
  thesaurus =    "Cellular arrays; Information retrieval; Information
                 retrieval systems",
}

@Article{Paredaens:1992:OG,
  author =       "Jan Paredaens and Jan {Van den Bussche} and Marc
                 Andries and Marc Gemis and Marc Gyssens and Inge
                 Thyssens and Dirk {Van Gucht} and Vijay Sarathy and
                 Lawrence Saxton",
  title =        "An overview of {GOOD}",
  journal =      j-SIGMOD,
  volume =       "21",
  number =       "1",
  pages =        "25--31",
  month =        mar,
  year =         "1992",
  CODEN =        "SRECD8",
  ISSN =         "0163-5808 (print), 1943-5835 (electronic)",
  ISSN-L =       "0163-5808",
  bibdate =      "Mon Jan 12 08:45:40 MST 2004",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigmod.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Antwerp Univ., Belgium",
  classification = "C6160J (Object-oriented databases); C6180 (User
                 interfaces)",
  fjournal =     "SIGMOD Record (ACM Special Interest Group on
                 Management of Data)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J689",
  keywords =     "Database manipulations; GOOD; Graph-oriented database
                 user-interface; Graph-oriented object database;
                 Graph-pattern matching; Uniform object manipulation
                 primitive",
  thesaurus =    "Object-oriented databases; User interfaces",
}

@Article{Pettersson:1992:TPM,
  author =       "Mikael Pettersson",
  title =        "A Term Pattern-Match Compiler Inspired by Finite
                 Automata Theory",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "641",
  pages =        "258--??",
  year =         "1992",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:46:24 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Quong:1992:FAC,
  author =       "R. W. Quong",
  title =        "Fast average-case pattern matching by multiplexing
                 sparse tables",
  journal =      j-THEOR-COMP-SCI,
  volume =       "92",
  number =       "1",
  pages =        "165--179",
  day =          "06",
  month =        jan,
  year =         "1992",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C1250 (Pattern
                 recognition); C4240P (Parallel programming and
                 algorithm theory)",
  conflocation = "Paris, France; July 1990",
  conftitle =    "Combinatorial Pattern Matching School",
  corpsource =   "Sch. of Electr. Eng., Purdue Univ., West Lafayette,
                 IN, USA",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "computational complexity; data collecting evidence;
                 encode; fast average case pattern matching;
                 k-mismatches string searching problem; multiplexing
                 sparse tables; occurrences; pattern matching; pattern
                 recognition; search problems; text string; uniform
                 character distribution",
  pubcountry =   "Netherlands",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Raita:1992:TBM,
  author =       "Timo Raita",
  title =        "Tuning the {Boyer--Moore--Horspool} String Searching
                 Algorithm",
  journal =      j-SPE,
  volume =       "22",
  number =       "10",
  pages =        "879--884",
  month =        oct,
  year =         "1992",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380221006",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "30 Oct 2006",
}

@Article{Ramesh:1992:NPM,
  author =       "R. Ramesh and I. V. Ramakrishnan",
  title =        "Nonlinear Pattern Matching in Trees",
  journal =      j-J-ACM,
  volume =       "39",
  number =       "2",
  pages =        "295--316",
  month =        apr,
  year =         "1992",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Fri Sep 22 14:23:22 2023",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Compiler/Compiler.Lins.bib;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0004-5411/128752.html",
  abstract =     "Tree pattern matching is a fundamental operation that
                 is used in a number of programming tasks such as
                 mechanical theorem proving, term rewriting, symbolic
                 computation, and nonprocedural programming languages.
                 In this paper, we present new sequential algorithms for
                 nonlinear pattern matching in trees. Our algorithm
                 improves upon know tree pattern matching algorithms in
                 important aspects such as time performance, ease of
                 integration with several reduction strategies and
                 ability to avoid unnecessary computation steps on match
                 attempts that fail. The expected time complexity of our
                 algorithm is linear in the sum of the sizes of the two
                 trees.",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  keywords =     "Algorithms; Data Structures and Algorithms; languages;
                 nonlinear pattern matching; normalization; performance;
                 rewriting; theorem proving; Theory",
  subject =      "{\bf F.2.2}: Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Pattern matching. {\bf F.4.1}:
                 Theory of Computation, MATHEMATICAL LOGIC AND FORMAL
                 LANGUAGES, Mathematical Logic, Mechanical theorem
                 proving. {\bf F.4.2}: Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Grammars and
                 Other Rewriting Systems. {\bf E.1}: Data, DATA
                 STRUCTURES, Trees.",
}

@Article{Regnier:1992:LAS,
  author =       "Mireille Regnier",
  title =        "A Language Approach to String Searching Evaluation",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "644",
  pages =        "15--??",
  year =         "1992",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon May 13 11:46:24 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs1992.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Reznick:1992:URE,
  author =       "Larry Reznick",
  title =        "Using Regular Expressions",
  journal =      j-SYS-ADMIN,
  volume =       "1",
  number =       "3",
  pages =        "59--??",
  month =        sep # "\slash " # oct,
  year =         "1992",
  CODEN =        "SYADE7",
  ISSN =         "1061-2688",
  bibdate =      "Sat Aug 31 19:04:03 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Sys admin: the journal for UNIX system
                 administrators",
}

@Article{Robinson:1992:HSR,
  author =       "Ian N. Robinson",
  title =        "Hardware to support runtime intelligence",
  journal =      j-COMPUTER,
  volume =       "25",
  number =       "5",
  pages =        "63--66",
  month =        may,
  year =         "1992",
  CODEN =        "CPTRB4",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Sat Feb 1 16:21:14 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/computer1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Hewlett--Packard Lab., Palo Alto, CA, USA",
  classification = "713; 722; 723; B1265D (Memory circuits); C5130
                 (Microprocessor chips); C5260B (Computer vision and
                 picture processing); C5340 (Associative storage); C6170
                 (Expert systems)",
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
  journalabr =   "Computer",
  keywords =     "Artificial Intelligence; Associative; Associative
                 memory system; Computer Hardware; Coprocessor board;
                 Custom VLSI chips; Data Storage, Digital; Database
                 Systems; Declarative Expression; Declarative
                 expression; Dynamic database; Dynamic Databases;
                 Integrated Circuits, vlsi; Pattern-matching rules;
                 Popular intelligent-system architectures; Querying;
                 Runtime Intelligence; Runtime intelligence; Syntax",
  thesaurus =    "Computerised pattern recognition; Content-addressable
                 storage; Database management systems; Knowledge based
                 systems; Memory architecture; VLSI",
}

@Article{Russinoff:1992:VSC,
  author =       "David M. Russinoff",
  title =        "A verification system for concurrent programs based on
                 the {Boyer--Moore} prover",
  journal =      j-FORM-ASP-COMPUT,
  volume =       "4",
  number =       "1S",
  pages =        "597--611",
  month =        nov # "\slash " # dec,
  year =         "1992",
  CODEN =        "FACME5",
  DOI =          "https://doi.org/10.1007/BF03180564",
  ISSN =         "0934-5043 (print), 1433-299X (electronic)",
  ISSN-L =       "0934-5043",
  bibdate =      "Wed Mar 18 06:37:01 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/formaspcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/BF03180564",
  acknowledgement = ack-nhfb,
  fjournal =     "Formal Aspects of Computing",
  journal-URL =  "http://link.springer.com/journal/165",
}

@Article{Saoudi:1992:OPA,
  author =       "A. Saoudi and M. Nivat",
  title =        "Optimal Parallel Algorithms for Multidimensional Image
                 Template Matching and Pattern Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "654",
  pages =        "240--??",
  year =         "1992",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:46:24 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Book{Sedgewick:1992:AC,
  author =       "Robert Sedgewick",
  title =        "Algorithms in {C++}",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "xiv + 656",
  year =         "1992",
  ISBN =         "0-201-36118-3, 0-201-51059-6",
  ISBN-13 =      "978-0-201-36118-6, 978-0-201-51059-1",
  LCCN =         "QA76.73.C153 S38 1992",
  MRclass =      "68N15, 68-01, 68-04, 68P10, 68W10, 68W15, 68N15",
  bibdate =      "Mon Jan 3 12:10:05 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cryptography1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/numana1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/prng.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  ZMnumber =     "0826.68025",
  acknowledgement = ack-nhfb,
  libnote =      "Not yet in my library.",
  tableofcontents = "Fundamentals \\
                 1: Introduction \\
                 Algorithms \\
                 Outline of Topics \\
                 2: C++ (and C) \\
                 Example: Euclid's Algorithm \\
                 Types of Data \\
                 Input/Output \\
                 Concluding Remarks \\
                 3: Elementary Data Structures \\
                 Arrays \\
                 Linked Lists \\
                 Storage Allocation \\
                 Pushdown Stacks \\
                 Queues \\
                 Linked List Implementation of Stacks \\
                 Abstract and Concrete Data Types \\
                 4: Trees \\
                 Glossary \\
                 Properties \\
                 Representing Binary Trees \\
                 Representing Forests \\
                 Traversing Trees \\
                 5: Recursion \\
                 Recurrences \\
                 Divide-and-Conquer \\
                 Recursive Tree Traversal \\
                 Removing Recursion \\
                 Perspective \\
                 6: Analysis of Algorithms \\
                 Framework \\
                 Classification of Algorithms \\
                 Computational Complexity \\
                 Average-Case Analysis \\
                 Approximate and Asymptotic Results \\
                 Basic Recurrences \\
                 Perspective \\
                 7: Implementation of Algorithms \\
                 Selecting an Algorithm \\
                 Empirical Analysis \\
                 Program Optimization \\
                 Algorithms and Systems \\
                 Sorting Algorithms \\
                 8: Elementary Sorting Methods \\
                 Rules of the Game \\
                 Selection Sort \\
                 Insertion Sort \\
                 Digression: Bubble Sort \\
                 Performance Characteristics of Elementary Sorts \\
                 Sorting Files with Large Records \\
                 Shellsort \\
                 Distribution Counting \\
                 9: Quicksort \\
                 The Basic Algorithm \\
                 Performance Characteristics of Quicksort \\
                 Removing Recursion \\
                 Small Subfiles \\
                 Median-of-Three Partitioning \\
                 Selection \\
                 10: Radix Sorting \\
                 Bits \\
                 Radix Exchange Sort \\
                 Straight Radix Sort \\
                 Performance Characteristics of Radix Sorts \\
                 A Linear Sort \\
                 11: Priority Queues \\
                 Elementary Implementations \\
                 Heap Data Structure \\
                 Algorithms on Heaps \\
                 Heapsort \\
                 Indirect Heaps \\
                 Advanced Implementations \\
                 12: Mergesort \\
                 Merging \\
                 Mergesort \\
                 List Mergesort \\
                 Bottom-Up Mergesort \\
                 Performance Characteristics \\
                 Optimized Implementations \\
                 Recursion Revisited \\
                 13: External Sorting \\
                 Sort-Merge \\
                 Balanced Multiway Merging \\
                 Replacement Selection \\
                 Practical Considerations \\
                 Polyphase Merging \\
                 An Easier Way \\
                 Searching Algorithms \\
                 14: Elementary Searching Methods \\
                 Sequential Searching \\
                 Binary Search \\
                 Binary Tree Search \\
                 Deletion \\
                 Indirect Binary Search Trees \\
                 15: Balanced Trees \\
                 Top-Down 2-3-4 Trees \\
                 Red-Black Trees \\
                 Other Algorithms \\
                 16: Hashing \\
                 Hash Functions \\
                 Separate Chaining \\
                 Linear Probing \\
                 Double Hashing \\
                 Perspective \\
                 17: Radix Searching \\
                 Digital Search Trees \\
                 Radix Search Tries \\
                 Multiway Radix Searching \\
                 Patricia \\
                 18: External Searching \\
                 Indexed Sequential Access \\
                 B-Trees \\
                 Extendible Hashing \\
                 Virtual Memory \\
                 String Processing \\
                 19: String Searching \\
                 A Short History \\
                 Brute-Force Algorithm \\
                 Knuth--Morris--Pratt Algorithm \\
                 Boyer--Moore Algorithm \\
                 Rabin--Karp Algorithm \\
                 Multiple Searches \\
                 20: Pattern Matching \\
                 Describing Patterns \\
                 Pattern Matching Machines \\
                 Representing the Machine \\
                 Simulating the Machine \\
                 21: Parsing \\
                 Context-Free Grammars \\
                 Top-Down Parsing \\
                 Bottom-Up Parsing \\
                 Compilers \\
                 Compiler-Compilers \\
                 22: File Compression \\
                 Run-Length Encoding \\
                 Variable-Length Encoding \\
                 Building the Huffman Code \\
                 Implementation \\
                 23: Cryptology \\
                 Rules of the Game \\
                 Simple Methods \\
                 Encryption/Decryption Machines \\
                 Public-Key Cryptosystems \\
                 Geometric Algorithms \\
                 24: Elementary Geometric Methods \\
                 Points, Lines, and Polygons \\
                 Line Segment Intersection \\
                 Simple Closed Path \\
                 Inclusion in a Polygon \\
                 Perspective \\
                 25: Finding the Convex Hull \\
                 Rules of the Game \\
                 Package-Wrapping \\
                 The Graham Scan \\
                 Interior Elimination \\
                 Performance Issues \\
                 26: Range Searching \\
                 Elementary Methods \\
                 Grid Method \\
                 Two-Dimensional Trees \\
                 Multidimensional Range Searching \\
                 27: Geometric Intersection \\
                 Horizontal and Vertical Lines \\
                 Implementation \\
                 General Line Intersection \\
                 28: Closest-Point Problems \\
                 Closest-Pair Problem \\
                 Voronoi Diagrams \\
                 Graph Algorithms \\
                 29: Elementary Graph Algorithms \\
                 Glossary \\
                 Representation \\
                 Depth-First Search \\
                 Nonrecursive Depth-First Search \\
                 Breadth-First Search \\
                 Mazes \\
                 Perspective \\
                 30: Connectivity \\
                 Connected Components \\
                 Biconnectivity \\
                 Union-Find Algorithms \\
                 31: Weighted Graphs \\
                 Minimum Spanning Tree \\
                 Priority-First Search \\
                 Kruskal's Method \\
                 Shortest Path \\
                 Minimum Spanning Tree and Shortest Paths in Dense
                 Graphs \\
                 Geometric Problems \\
                 32: Directed Graphs \\
                 Depth-First Search \\
                 Transitive Closure \\
                 All Shortest Paths \\
                 Topological Sorting \\
                 Strongly Connected Components \\
                 33: Network Flow \\
                 The Network Flow Problem \\
                 Ford--Fulkerson Method \\
                 Network Searching \\
                 34: Matching \\
                 Bipartite Graphs \\
                 Stable Marriage Problem \\
                 Advanced Algorithms \\
                 Mathematical Algorithms \\
                 35: Random Numbers \\
                 Applications \\
                 Linear Congruential Method \\
                 Additive Congruential Method \\
                 Testing Randomness \\
                 Implementation Notes \\
                 36: Arithmetic \\
                 Polynomial Arithmetic \\
                 Polynomial Evaluation and Interpolation \\
                 Polynomial Multiplication \\
                 Arithmetic Operations with Large Integers \\
                 Matrix Arithmetic \\
                 37: Gaussian Elimination \\
                 A Simple Example \\
                 Outline of the Method \\
                 Variations and Extensions \\
                 38: Curve Fitting \\
                 Polynomial Interpolation \\
                 Spline Interpolation \\
                 Method of Least Squares \\
                 39: Integration \\
                 Symbolic Integration \\
                 Simple Quadrature Methods \\
                 Compound Methods \\
                 Adaptive Quadrature \\
                 Advanced Topics \\
                 40: Parallel Algorithms \\
                 General Approaches \\
                 Perfect Shuffles \\
                 Systolic Arrays \\
                 Perspective \\
                 41: The Fast Fourier Transform \\
                 Evaluate, Multiply, Interpolate \\
                 Complex Roots of Unity \\
                 Evaluation at the Roots of Unity \\
                 Interpolation at the Roots of Unity \\
                 Implementation \\
                 42: Dynamic Programming \\
                 Knapsack Problem \\
                 Matrix Chain Product \\
                 Optimal Binary Search Trees \\
                 Time and Space Requirements \\
                 43: Linear Programming \\
                 Linear Programs \\
                 Geometric Interpretation \\
                 The Simplex Method \\
                 Implementation \\
                 44: Exhaustive Search \\
                 Exhaustive Search in Graphs \\
                 Backtracking \\
                 Digression: Permutation Generation \\
                 Approximation Algorithms \\
                 45: NP-Complete Problems \\
                 Deterministic and Nondeterministic Polynomial-Time
                 Algorithms \\
                 NP-Completeness \\
                 Cook's Theorem \\
                 Some NP-Complete Problems",
}

@Article{Sekar:1992:APM,
  author =       "R. C. Sekar and R. Ramesh and I. V. Ramakrishnan",
  title =        "Adaptive Pattern Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "623",
  pages =        "247--??",
  year =         "1992",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:46:24 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Shields:1992:SME,
  author =       "Paul C. Shields",
  title =        "String Matching: The Ergodic Case",
  journal =      j-ANN-PROBAB,
  volume =       "20",
  number =       "3",
  pages =        "1199--1203",
  month =        jul,
  year =         "1992",
  CODEN =        "APBYAE",
  ISSN =         "0091-1798 (print), 2168-894X (electronic)",
  ISSN-L =       "0091-1798",
  bibdate =      "Sun Apr 20 10:44:17 MDT 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/annprobab1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://projecteuclid.org/euclid.aop/1176989686",
  acknowledgement = ack-nhfb,
  fjournal =     "Annals of Probability",
  journal-URL =  "http://projecteuclid.org/all/euclid.aop",
}

@Article{Ukkonen:1992:ASM,
  author =       "E. Ukkonen",
  title =        "Approximate string-matching with $q$-grams and maximal
                 matches",
  journal =      j-THEOR-COMP-SCI,
  volume =       "92",
  number =       "1",
  pages =        "191--211",
  day =          "06",
  month =        jan,
  year =         "1992",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C1250 (Pattern recognition); C4240P (Parallel
                 programming and algorithm theory); C6120 (File
                 organisation)",
  conflocation = "Paris, France; July 1990",
  conftitle =    "Combinatorial Pattern Matching School",
  corpsource =   "Dept. of Comput. Sci., Helsinki Univ., Finland",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "algorithm theory; approximate string-matching;
                 associated string-matching problem; data structures;
                 edit distance; edit distance based string-matching;
                 fast hybrid algorithms; linear time; locally best
                 approximate occurrences; lower bound; maximal common
                 substrings; maximal matches; pattern recognition;
                 q-grams; string distance functions; unit cost model",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Verma:1992:STP,
  author =       "Rakesh M. Verma",
  title =        "Strings, trees, and patterns",
  journal =      j-INFO-PROC-LETT,
  volume =       "41",
  number =       "3",
  pages =        "157--161",
  day =          "6",
  month =        mar,
  year =         "1992",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Houston",
  affiliationaddress = "Houston, TX, USA",
  classification = "723; 921; C1160 (Combinatorial mathematics); C1250
                 (Pattern recognition); C4240P (Parallel programming and
                 algorithm theory)",
  corpsource =   "Dept. of Comput. Sci., Houston Univ., TX, USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "computational complexity; Computer Metatheory ---
                 Computational Complexity; Computer Programming ---
                 Algorithms; linear time algorithm; Linear Time
                 Algorithms; Mathematical Techniques; ordered subtree
                 isomorphism; pattern matching; pattern recognition;
                 patterns; Subtree Isomorphism; subtree isomorphism;
                 symbolic problems; Trees; trees; trees (mathematics)",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@InProceedings{Wu:1992:AFA,
  author =       "Sun Wu and Udi Manber",
  title =        "{{\tt agrep}} --- a Fast Approximate Pattern-Matching
                 Tool",
  crossref =     "USENIX:1992:PWU",
  institution =  "University of Arizona, Tucson",
  pages =        "153--162",
  month =        "Winter",
  year =         "1992",
  bibdate =      "Wed Aug 13 10:48:45 MDT 1997",
  bibsource =    "ftp://ftp.uu.net/library/bibliography;
                 http://www.usenix.org/cgi-bin/sortbib.pl?-sA;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "University of Arizona, Tucson",
}

@Article{Wu:1992:FTS,
  author =       "Sun Wu and Udi Manber",
  title =        "Fast text searching allowing errors",
  journal =      j-CACM,
  volume =       "35",
  number =       "10",
  pages =        "83--91",
  month =        oct,
  year =         "1992",
  CODEN =        "CACMA2",
  DOI =          "https://doi.org/10.1145/135239.135244",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Mon Jan 06 09:13:52 1997",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/cacm1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/cacm1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "This algorithm in this paper is implemented in the
                 \path|agrep| program, publicly available via ANONYMOUS
                 FTP to \path|cs.arizona.edu| in the \path|agrep|
                 subdirectory. See also \cite{Baeza-Yates:1992:NAT}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0001-0782/135244.html",
  abstract =     "The string-matching problem is a very common problem.
                 We are searching for a string $ P = p_1 p_2 \ldots {}
                 p_m $ inside a large text file $ T = t_1 t_2 \ldots {}
                 t_n $, both sequences of characters from a finite
                 character set $ \Sigma $. The characters may be English
                 characters in a text file, DNA base pairs, lines of
                 source code, angles between edges in polygons, machines
                 or machine parts in a production schedule, music notes
                 and tempo in a musical score, and so forth. We want to
                 find all occurrences of $P$ in $T$; namely, we are
                 searching for the set of starting positions $ F = \{
                 i|1 \leq i \leq n - m + 1$ such that $ t_i t_{i + 1}
                 \ldots {} t_{i + m - 1} = P \} $. The two most famous
                 algorithms for this problem are the Boyer--Moore
                 algorithm [3] and the Knuth Morris Pratt algorithm
                 [10]. There are many extensions to this problem; for
                 example, we may be looking for a set of patterns, a
                 pattern with ``wild cards,'' or a regular expression.
                 String-matching tools are included in every reasonable
                 text editor, word processor, and many other
                 application",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  keywords =     "algorithms",
  subject =      "{\bf F.2.2}: Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Pattern matching. {\bf H.3.3}:
                 Information Systems, INFORMATION STORAGE AND RETRIEVAL,
                 Information Search and Retrieval, Search process. {\bf
                 I.5.4}: Computing Methodologies, PATTERN RECOGNITION,
                 Applications, Text processing.",
}

@InProceedings{Xu:1992:RCR,
  author =       "H. Xu and Y. Kambayashi",
  title =        "Realization of Composite Relationship Views Utilizing
                 Regular Expressions",
  crossref =     "Kim:1992:DSN",
  pages =        "79--87",
  year =         "1992",
  bibdate =      "Sat Dec 7 16:52:15 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  annote =       "Also known as DASFAA '89",
  keywords =     "advanced; applications; DASFAA; database systems;
                 next-generation applications",
}

@Article{Yoo:1992:ERE,
  author =       "H. Yoo and K. Hashiguchi",
  title =        "Extended regular expressions of arbitrary star
                 degrees",
  journal =      j-THEOR-COMP-SCI,
  volume =       "97",
  number =       "2",
  pages =        "217--231",
  day =          "27",
  month =        apr,
  year =         "1992",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Nov 22 13:24:22 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  acknowledgement = ack-nhfb,
  classification = "C4210 (Formal logic)",
  corpsource =   "Dept. of Inf. and Comput. Sci., Toyohashi Univ. of
                 Technol., Japan",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "closure; concatenation; context-free languages;
                 context-sensitive languages; finite languages;
                 inclusion problem; regular expressions; star operators;
                 union",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Agha:1993:AOD,
  author =       "Gul Agha and Christian J. Callsen",
  title =        "{ActorSpace}: an open distributed programming
                 paradigm",
  journal =      j-SIGPLAN,
  volume =       "28",
  number =       "7",
  pages =        "23--32",
  month =        jul,
  year =         "1993",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:16:39 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "A programming paradigm is presented called,
                 ActorSpace. ActorSpace provides a new communication
                 model based on destination patterns. An actorSpace is a
                 computationally passive container of actors which acts
                 as a context for matching patterns. Patterns are
                 matched against listed attributes of actors and
                 actorSpaces that are visible in the actorSpace. Both
                 visibility and attributes are dynamic. Messages may be
                 sent to one or all members of a group defined by a
                 pattern. The paradigm provides powerful support for
                 component-based construction of massively parallel and
                 distributed applications. In particular, it supports
                 open interfaces to servers and pattern-directed access
                 to software repositories.",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. Sci., Illinois Univ.,
                 Urbana-Champaign, IL, USA",
  classification = "C6110J (Object-oriented programming); C6110P
                 (Parallel programming); C6150N (Distributed systems)",
  confdate =     "19-22 May 1993",
  conflocation = "San Diego, CA, USA",
  confsponsor =  "ACM",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "ActorSpace; Communication model; Component-based
                 construction; Computationally passive container;
                 Destination patterns; Distributed applications; Listed
                 attributes; Matching patterns; Open distributed
                 programming; Open interfaces; Pattern-directed access;
                 Programming paradigm; Software repositories",
  thesaurus =    "Object-oriented methods; Object-oriented programming;
                 Open systems; Parallel programming",
}

@Article{Andre:1993:ESIa,
  author =       "Jacques Andr{\'e} and Jakob Gonczarowski and Richard
                 Southall",
  title =        "Editorial: Special issue: {Proceedings of the Raster
                 Imaging and Digital Typography Conference}",
  journal =      j-EPODD,
  volume =       "6",
  number =       "3",
  pages =        "115--116",
  month =        sep,
  year =         "1993",
  CODEN =        "EPODEU",
  ISSN =         "0894-3982",
  bibdate =      "Thu Jun 2 10:04:26 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/epodd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This issue of {\em Electronic Publishing\/} contains
                 the papers presented during the third Raster Imaging
                 and Digital Typography conference, held at Darmstadt,
                 Germany, from 11 to 13 April 1994. Earlier conferences
                 in the series took place in 1989 at Lausanne,
                 Switzerland (organized by Roger D. Hersch, EPFL) and in
                 1991 at Boston, Massachussets (organized by Robert A.
                 Morris, University of Massachussets at Boston). The
                 corresponding proceedings are published by Cambridge
                 University Press (see below). Digital typography is a
                 relatively new field: the first commercial
                 cathode-ray-tube photo\-composing machine appeared in
                 1966. Since that time, the field has been growing very
                 fast, and is still active. During the RIDT'89
                 conference, emphasis was laid on the rasterisation of
                 outline characters and on rendering techniques. RIDT'91
                 concentrated more on digital halftoning and on
                 greyscale characters. However, both of these
                 conferences bore in mind that beyond the mathematics of
                 shapes and their rendering, printing types exist with
                 their own aesthetic rules. That is why the
                 presentations were made by a mix of technologists,
                 scientists and designers. The RIDT'94 programme
                 committee tried to attract a similar mix of papers when
                 this conference was launched. As expected, the fields
                 have moved on since the last conference, but we hope
                 that the selected papers adequately exhibit the present
                 state of the art in raster imaging and digital
                 typography. In the recent past, formal research in
                 digital typography has dealt with graphical algorithms,
                 such as the rendering of outline characters and the
                 generation of outline characters from bit-mapped
                 drawings, to name but two. Present research focuses on
                 models and methods for concise but precise font
                 description and modelling. That trend began in industry
                 with font interpolation programs and font systems such
                 as Adobe Systems' Multiple Master technology. This
                 research definitively belongs to computer science, with
                 keywords such as {\em object orientation}, {\em regular
                 expressions}, {\em string matching\/} and {\em shape
                 parameterization}. A look at related fields, such as
                 computer-aided design, shows that there still remains
                 plenty of mathematical research to be done in digital
                 typography. Mathematics is already used in CAD to
                 express aesthetic criteria, both at the local
                 (individual curves/surfaces) and the global level, for
                 ensuring overall appearance and design consistency.
                 \ldots{}.",
  fjournal =     "Electronic Pub\-lish\-ing\emdash{}Orig\-i\-na\-tion,
                 Dissemination, and Design",
}

@InProceedings{Andre:1993:ESIb,
  author =       "Jacques Andr{\'e} and Jakob Gonczarowski and Richard
                 Southall",
  editor =       "Jacques Andr{\'e} and Jakob Gonczarowski and Richard
                 Southall",
  booktitle =    "{Proceedings of the Raster Imaging and Digital
                 Typography Conference}",
  title =        "Editorial: Special issue: {Proceedings of the Raster
                 Imaging and Digital Typography Conference}",
  volume =       "6(3)",
  publisher =    pub-WILEY,
  address =      pub-WILEY:adr,
  pages =        "115--116",
  month =        sep,
  year =         "1993",
  CODEN =        "EPODEU",
  ISBN =         "0-471-94823-3",
  ISBN-13 =      "978-0-471-94823-0",
  ISSN =         "0894-3982",
  LCCN =         "????",
  bibdate =      "Tue Feb 27 09:47:10 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/epodd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       j-EPODD,
  abstract =     "This issue of {\em Electronic Publishing\/} contains
                 the papers presented during the third Raster Imaging
                 and Digital Typography conference, held at Darmstadt,
                 Germany, from 11 to 13 April 1994. Earlier conferences
                 in the series took place in 1989 at Lausanne,
                 Switzerland (organized by Roger D. Hersch, EPFL) and in
                 1991 at Boston, Massachussets (organized by Robert A.
                 Morris, University of Massachussets at Boston). The
                 corresponding proceedings are published by Cambridge
                 University Press (see below). Digital typography is a
                 relatively new field: the first commercial
                 cathode-ray-tube photo\-composing machine appeared in
                 1966. Since that time, the field has been growing very
                 fast, and is still active. During the RIDT'89
                 conference, emphasis was laid on the rasterisation of
                 outline characters and on rendering techniques. RIDT'91
                 concentrated more on digital halftoning and on
                 greyscale characters. However, both of these
                 conferences bore in mind that beyond the mathematics of
                 shapes and their rendering, printing types exist with
                 their own aesthetic rules. That is why the
                 presentations were made by a mix of technologists,
                 scientists and designers. The RIDT'94 programme
                 committee tried to attract a similar mix of papers when
                 this conference was launched. As expected, the fields
                 have moved on since the last conference, but we hope
                 that the selected papers adequately exhibit the present
                 state of the art in raster imaging and digital
                 typography. In the recent past, formal research in
                 digital typography has dealt with graphical algorithms,
                 such as the rendering of outline characters and the
                 generation of outline characters from bit-mapped
                 drawings, to name but two. Present research focuses on
                 models and methods for concise but precise font
                 description and modelling. That trend began in industry
                 with font interpolation programs and font systems such
                 as Adobe Systems' Multiple Master technology. This
                 research definitively belongs to computer science, with
                 keywords such as {\em object orientation}, {\em regular
                 expressions}, {\em string matching\/} and {\em shape
                 parameterization}. A look at related fields, such as
                 computer-aided design, shows that there still remains
                 plenty of mathematical research to be done in digital
                 typography. Mathematics is already used in CAD to
                 express aesthetic criteria, both at the local
                 (individual curves/surfaces) and the global level, for
                 ensuring overall appearance and design consistency.
                 \ldots{}.",
  acknowledgement = ack-nhfb,
}

@Article{Andre:EPODD-6-3-115,
  author =       "Jacques Andr{\'e} and Jakob Gonczarowski and Richard
                 Southall",
  title =        "Editorial: Special issue: {Proceedings of the Raster
                 Imaging and Digital Typography Conference}",
  journal =      j-EPODD,
  volume =       "6",
  number =       "3",
  pages =        "115--116",
  month =        sep,
  year =         "1993",
  CODEN =        "EPODEU",
  ISSN =         "0894-3982",
  bibdate =      "Thu Jun 2 10:04:26 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/epodd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This issue of {\em Electronic Publishing\/} contains
                 the papers presented during the third Raster Imaging
                 and Digital Typography conference, held at Darmstadt,
                 Germany, from 11 to 13 April 1994. Earlier conferences
                 in the series took place in 1989 at Lausanne,
                 Switzerland (organized by Roger D. Hersch, EPFL) and in
                 1991 at Boston, Massachussets (organized by Robert A.
                 Morris, University of Massachussets at Boston). The
                 corresponding proceedings are published by Cambridge
                 University Press (see below). Digital typography is a
                 relatively new field: the first commercial
                 cathode-ray-tube photo\-composing machine appeared in
                 1966. Since that time, the field has been growing very
                 fast, and is still active. During the RIDT'89
                 conference, emphasis was laid on the rasterisation of
                 outline characters and on rendering techniques. RIDT'91
                 concentrated more on digital halftoning and on
                 greyscale characters. However, both of these
                 conferences bore in mind that beyond the mathematics of
                 shapes and their rendering, printing types exist with
                 their own aesthetic rules. That is why the
                 presentations were made by a mix of technologists,
                 scientists and designers. The RIDT'94 programme
                 committee tried to attract a similar mix of papers when
                 this conference was launched. As expected, the fields
                 have moved on since the last conference, but we hope
                 that the selected papers adequately exhibit the present
                 state of the art in raster imaging and digital
                 typography. In the recent past, formal research in
                 digital typography has dealt with graphical algorithms,
                 such as the rendering of outline characters and the
                 generation of outline characters from bit-mapped
                 drawings, to name but two. Present research focuses on
                 models and methods for concise but precise font
                 description and modelling. That trend began in industry
                 with font interpolation programs and font systems such
                 as Adobe Systems' Multiple Master technology. This
                 research definitively belongs to computer science, with
                 keywords such as {\em object orientation}, {\em regular
                 expressions}, {\em string matching\/} and {\em shape
                 parameterization}. A look at related fields, such as
                 computer-aided design, shows that there still remains
                 plenty of mathematical research to be done in digital
                 typography. Mathematics is already used in CAD to
                 express aesthetic criteria, both at the local
                 (individual curves/surfaces) and the global level, for
                 ensuring overall appearance and design consistency.
                 \ldots{}.",
}

@Article{Apostolico:1993:ECP,
  author =       "Alberto Apostolico",
  title =        "Efficient {CRCW-PRAM} algorithms for universal
                 substring searching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "108",
  number =       "2",
  pages =        "331--344",
  day =          "15",
  month =        feb,
  year =         "1993",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:16:58 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1993&volume=108&issue=2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1993&volume=108&issue=2&aid=1277",
  acknowledgement = ack-nhfb,
  classification = "C4240P (Parallel programming and algorithm theory)",
  corpsource =   "Dept. of Comput. Sci., Purdue Univ., West Lafayette,
                 IN, USA",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
  keywords =     "computational complexity; CRCW-PRAM algorithms;
                 parallel algorithms; search problems; standard
                 representation; universal substring searching",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Arnon:1993:SLD,
  author =       "Dennis S. Arnon",
  title =        "{Scrimshaw}: a language for document queries and
                 transformations",
  journal =      j-EPODD,
  volume =       "6",
  number =       "4",
  pages =        "385--396",
  month =        dec,
  year =         "1993",
  CODEN =        "EPODEU",
  ISSN =         "0894-3982",
  bibdate =      "Thu Jun 2 10:04:26 1994",
  bibsource =    "ftp://ftp.math.utah.edu/pub/tex/bib/epodd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We present a new language for tree pattern matching
                 and transformation called Scrimshaw. It extends to
                 trees the familiar notions of regular expressions,
                 pattern matching, and pattern replacement for strings.
                 As we show by examples, it serves well as both a
                 structured document query language and as a language
                 for expressing document transformations. Scrimshaw has
                 been implemented in a C-like language and is in ongoing
                 use.",
  fjournal =     "Electronic Pub\-lish\-ing\emdash{}Orig\-i\-na\-tion,
                 Dissemination, and Design",
  keywords =     "Tree pattern matching, Document query languages,
                 Document conversion, SGML",
}

@Article{Arnon:EPODD-6-4-385,
  author =       "Dennis S. Arnon",
  title =        "{Scrimshaw}: {A} language for document queries and
                 transformations",
  journal =      j-EPODD,
  volume =       "6",
  number =       "4",
  pages =        "385--396",
  month =        dec,
  year =         "1993",
  CODEN =        "EPODEU",
  ISSN =         "0894-3982",
  bibdate =      "Thu Jun 2 10:04:26 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/epodd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We present a new language for tree pattern matching
                 and transformation called Scrimshaw. It extends to
                 trees the familiar notions of regular expressions,
                 pattern matching, and pattern replacement for strings.
                 As we show by examples, it serves well as both a
                 structured document query language and as a language
                 for expressing document transformations. Scrimshaw has
                 been implemented in a C-like language and is in ongoing
                 use.",
  keywords =     "Tree pattern matching, Document query languages,
                 Document conversion, SGML",
}

@Article{Baeza-Yates:1993:FTD,
  author =       "Ricardo Baeza-Yates and Mireille Regnier",
  title =        "Fast two-dimensional pattern matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "45",
  number =       "1",
  pages =        "51--57",
  day =          "25",
  month =        jan,
  year =         "1993",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Universidad de Chile",
  affiliationaddress = "Santiago, Chile",
  classification = "723.1; C4240 (Programming and algorithm theory)",
  corpsource =   "Dept. de Ciencias de la Comput., Chile Univ.,
                 Santiago, Chile",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; alphabet-independent algorithm;
                 computational complexity; multiple string matching;
                 Pattern matching; Pattern recognition; search problems;
                 searching algorithm; String matching; text rows; two
                 dimensional text; two-dimensional pattern matching;
                 worst case",
  treatment =    "T Theoretical or Mathematical; X Experimental",
}

@Article{Baeza-Yates:1993:FTP,
  author =       "Ricardo Baeza-Yates and Mireille Regnier",
  title =        "Fast two-dimensional pattern matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "45",
  number =       "1",
  pages =        "51--57",
  day =          "25",
  month =        jan,
  year =         "1993",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Universidad de Chile",
  affiliationaddress = "Santiago, Chile",
  classification = "723.1; C4240 (Programming and algorithm theory)",
  corpsource =   "Dept. de Ciencias de la Comput., Chile Univ.,
                 Santiago, Chile",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190/",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; alphabet-independent algorithm;
                 computational complexity; multiple string matching;
                 Pattern matching; Pattern recognition; search problems;
                 searching algorithm; String matching; text rows; two
                 dimensional text; two-dimensional pattern matching;
                 worst case",
  treatment =    "T Theoretical or Mathematical; X Experimental",
}

@InProceedings{Baker:1993:TPP,
  author =       "Brenda S. Baker",
  title =        "A theory of parameterized pattern matching: algorithms
                 and applications",
  crossref =     "ACM:1993:PTF",
  pages =        "71--80",
  year =         "1993",
  bibdate =      "Wed Feb 20 18:34:01 MST 2002",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/stoc/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/stoc/167088/p71-baker/p71-baker.pdf;
                 http://www.acm.org/pubs/citations/proceedings/stoc/167088/p71-baker/",
  acknowledgement = ack-nhfb,
}

@Article{Bell:1993:LMS,
  author =       "Timothy C. Bell and David Kulp",
  title =        "Longest-match String Searching for {Ziv--Lempel}
                 Compression",
  journal =      j-SPE,
  volume =       "23",
  number =       "7",
  pages =        "757--771",
  month =        jul,
  year =         "1993",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380230705",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "30 Oct 2006",
}

@Article{Bjorner:1993:MFF,
  author =       "Anders Bj{\"o}rner",
  title =        "The {M{\"o}bius} function of factor order",
  journal =      j-THEOR-COMP-SCI,
  volume =       "117",
  number =       "1--2",
  pages =        "91--98",
  day =          "30",
  month =        aug,
  year =         "1993",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:17:30 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1993&volume=117&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1993&volume=117&issue=1-2&aid=1413",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C4210 (Formal
                 logic)",
  conflocation = "Bordeaux, France; 2-5 May 1991",
  conftitle =    "Conference on Formal Power Series and Algebraic
                 Combinatorics",
  corpsource =   "Dept. of Math., R. Inst. of Technol., Stockholm,
                 Sweden",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
  keywords =     "combinatorial interpretation; combinatorial
                 mathematics; factor order; formal logic; free monoid;
                 homotopy spheres; Knuth--Morris--Pratt algorithm; Mobius
                 function; parity-changing involution; proof; recursive
                 rule",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Bose:1993:PMP,
  author =       "P. Bose and J. F. Buss and A. Lubiw",
  title =        "Pattern Matching for Permutations",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "709",
  pages =        "200--??",
  year =         "1993",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:49:00 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Breslauer:1993:SCC,
  author =       "D. Breslauer",
  title =        "Saving Comparisons in the {Crochemore-Perrin} String
                 Matching Algorithm",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "726",
  pages =        "61--??",
  year =         "1993",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Nov 24 16:52:25 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Breslauer:1993:TCB,
  author =       "Dany Breslauer and Livio Colussi and Laura Toniolo",
  title =        "Tight comparison bounds for the string prefix-matching
                 problem",
  journal =      j-INFO-PROC-LETT,
  volume =       "47",
  number =       "1",
  pages =        "51--57",
  day =          "9",
  month =        aug,
  year =         "1993",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q20 (68U15)",
  MRnumber =     "94g:68041",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Centrum voor Wiskunde and Informatica",
  affiliationaddress = "Amsterdam, Neth",
  classification = "721; 723; 921; C4240 (Programming and algorithm
                 theory)",
  conferenceyear = "1993",
  corpsource =   "Centrum voor Wiskunde en Inf., Amsterdam,
                 Netherlands",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; Comparison model; complexity;
                 computational complexity; Computer science;
                 deterministic sequential comparison model; Exact
                 complexity; Failure function; Knuth--Morris--Pratt string
                 matching algorithm; linear-time string prefix-matching
                 algorithms; Mathematical models; Mathematical
                 techniques; Pattern recognition; pattern recognition;
                 pattern string; self-prefix problem; String matching;
                 string prefix-matching problem; Tight comparison
                 bounds",
  treatment =    "T Theoretical or Mathematical",
}

@InProceedings{Brueggemann-Klein:1993:UER,
  author =       "A. Brueggemann-Klein",
  title =        "Unambiguity of Extended Regular Expressions in {SGML}
                 Document Grammars",
  crossref =     "Lengauer:1993:AEF",
  pages =        "73--84",
  year =         "1993",
  bibdate =      "Wed Apr 3 08:31:49 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sgml.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Bruggemann-Klein:1993:REF,
  author =       "Anne Br{\"u}ggemann-Klein",
  title =        "Regular expressions into finite automata",
  journal =      j-THEOR-COMP-SCI,
  volume =       "120",
  number =       "2",
  pages =        "197--213",
  day =          "22",
  month =        nov,
  year =         "1993",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:17:43 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1993&volume=120&issue=2;
                 https://www.math.utah.edu/pub/tex/bib/sgml.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1993&volume=120&issue=2&aid=1327",
  abstract =     "This paper shows that the Glushkov automaton can be
                 constructed in a time quadratic in the size of the
                 expression, and that this is worst-case optimal. For
                 deterministic expressions, his algorithm has even
                 linear run time. This improves on the cubic time
                 methods suggested in the literature (Book et al. 1971;
                 Aho et al. 1986; Berry and Sethi 1986). A major step of
                 the algorithm consists in bringing the expression into
                 what is called star normal form. This concept is also
                 useful for characterizing the relationship between two
                 types of unambiguity that have been studied in the
                 literature. Namely, the author shows that, modulo a
                 technical condition, an expression is strongly
                 unambiguous (Sippu and Soisalon-Soininen 1988) if and
                 only if it is weakly unambiguous (Book et al. 1971) and
                 in star-normal form. This leads to his third result, a
                 quadratic-time decision algorithm for weak unambiguity,
                 that improves on the biquadratic method introduced by
                 Book et al. (1971).",
  acknowledgement = ack-nhfb,
  affiliation =  "Inst. f{\"u}r Inf., Freiburg Univ., Germany",
  classification = "C4210 (Formal logic); C4220 (Automata theory);
                 C6130D (Document processing techniques)",
  corpsource =   "Inst. fur Inf., Freiburg Univ., Germany",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "Description language; description language;
                 Deterministic regular expressions; deterministic
                 regular expressions; Deterministic regular expressions;
                 Document processing; document processing; Document
                 types; document types; E-transitions; finite automata;
                 formal languages; Nondeterministic finite automaton;
                 nondeterministic finite automaton; Nondeterministic
                 finite automaton; page description languages;
                 Quadratic-time decision algorithm; quadratic-time
                 decision algorithm; Regular expressions; regular
                 expressions; Regular expressions; SGML standard;
                 standards; Star normal form; star normal form; Star
                 normal form; Textual markup systems; textual markup
                 systems; Textual markup systems; Worst-case optimal;
                 worst-case optimal",
  pubcountry =   "Netherlands",
  thesaurus =    "Finite automata; Formal languages; Page description
                 languages; Standards",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@InProceedings{Bruggemann-Klein:1993:UERa,
  author =       "A. Br{\"u}ggemann-Klein",
  title =        "Unambiguity of extended regular expressions in {SGML}
                 document grammars",
  crossref =     "Lengauer:1993:AEF",
  bookpages =    "ix + 418",
  pages =        "73--84",
  month =        sep # "--" # oct,
  year =         "1993",
  bibdate =      "Tue Sep 10 19:13:47 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sgml.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  abstract =     "In the standard generalized markup language (SGML),
                 document types are defined by context-free grammars in
                 an extended Backus-Naur form. The right-hand side of a
                 production is called a content model. Content models
                 are extended regular expressions that have to be
                 unambiguous in the sense that `an element \ldots{} that
                 occurs in the document instance must be able to satisfy
                 only one primitive content token without looking ahead
                 in the document instance.' The author presents a
                 linear-time algorithm that decides whether a given
                 content model is unambiguous. A similar result has
                 previously been obtained not for content models but for
                 the smaller class of standard regular expressions. It
                 relies on the fact that the languages of marked regular
                 expressions are local-a property that does not hold any
                 more for content models that contain the new and
                 ?-operator. Therefore, it is necessary to develop new
                 techniques for content models. Besides solving an
                 interesting problem in formal language theory, the
                 author's results are relevant for developers of SGML
                 systems. In fact, his definitions are causing changes
                 to the revised edition of the SGML standard, and the
                 algorithm to test content models for unambiguity has
                 been implemented in an SGML parser.",
  acknowledgement = ack-nhfb,
  affiliation =  "Paderborn Univ., Fachbereich f{\"u}r Math. Inf.,
                 Germany",
  classification = "C4210 (Formal logic); C6140D (High level languages);
                 C7108 (Desktop publishing)",
  confdate =     "30 Sept.-2 Oct. 1993",
  conflocation = "Bad Honnef, Germany",
  keywords =     "Backus-Naur form; Context-free grammars; Document
                 types; Extended regular expressions; Formal language
                 theory; Linear-time algorithm; Marked regular
                 expressions; Parser; SGML document grammars; Standard
                 generalized markup language",
  thesaurus =    "Context-free grammars; Formal languages; Page
                 description languages",
}

@InProceedings{Bruggemann-Klein:1993:UERb,
  author =       "A. Bruggemann-Klein",
  title =        "Unambiguity of extended regular expressions in {SGML}
                 document grammars",
  crossref =     "Lengauer:1993:AEF",
  pages =        "73--84",
  month =        "????",
  year =         "1993",
  bibdate =      "Tue Sep 10 19:13:47 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sgml.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Paderborn Univ., Fachbereich f{\"u}r Math. Inf.,
                 Germany",
  classification = "C4210 (Formal logic); C6140D (High level languages);
                 C7108 (Desktop publishing)",
  keywords =     "Backus-Naur form; Context-free grammars; Document
                 types; Extended regular expressions; Formal language
                 theory; Linear-time algorithm; Marked regular
                 expressions; Parser; SGML document grammars; Standard
                 generalized markup language",
  thesaurus =    "Context-free grammars; Formal languages; Page
                 description languages",
}

@InProceedings{BruggemannKlein:1993:UER,
  author =       "A. Bruggemann-Klein",
  title =        "Unambiguity of extended regular expressions in {SGML}
                 document grammars",
  crossref =     "Lengauer:1993:AEF",
  pages =        "73--84",
  month =        "????",
  year =         "1993",
  bibdate =      "Tue Sep 10 19:13:47 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sgml.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Paderborn Univ., Fachbereich f{\"u}r Math. Inf.,
                 Germany",
  classification = "C4210 (Formal logic); C6140D (High level languages);
                 C7108 (Desktop publishing)",
  keywords =     "Backus-Naur form; Context-free grammars; Document
                 types; Extended regular expressions; Formal language
                 theory; Linear-time algorithm; Marked regular
                 expressions; Parser; SGML document grammars; Standard
                 generalized markup language",
  thesaurus =    "Context-free grammars; Formal languages; Page
                 description languages",
}

@Article{Bunke:1993:JPS,
  author =       "H. Bunke and G. Kaufmann",
  title =        "Jigsaw Puzzle Solving Using Approximate String
                 Matching and Best-First Search",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "719",
  pages =        "299--??",
  year =         "1993",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:49:00 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Burton:1993:PMA,
  author =       "F. Warren Burton and Robert D. Cameron",
  title =        "Pattern matching with abstract data types",
  journal =      j-J-FUNCT-PROGRAM,
  volume =       "3",
  number =       "2",
  pages =        "171--190",
  month =        apr,
  year =         "1993",
  CODEN =        "JFPRES",
  DOI =          "https://doi.org/10.1017/S095679680000068X",
  ISSN =         "0956-7968 (print), 1469-7653 (electronic)",
  ISSN-L =       "0956-7968",
  bibdate =      "Tue Jul 11 18:01:54 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jfunctprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.cambridge.org/core/product/04DD26A0E6CA3A1E87E0E6AE8BC02EED",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Funct. Program.",
  fjournal =     "Journal of Functional Programming",
  journal-URL =  "http://journals.cambridge.org/action/displayJournal?jid=JFP",
  onlinedate =   "01 November 2008",
}

@PhdThesis{Chang:1993:SPMa,
  author =       "Daniel Kuo-Yee Chang",
  title =        "String pattern matching and lossless data
                 compression",
  type =         "{Ph.D.} thesis",
  school =       "City University of New York",
  address =      "New York, NY, USA",
  pages =        "110",
  year =         "1993",
  bibdate =      "Fri Feb 1 09:20:36 MST 2013",
  bibsource =    "http://search.proquest.com/;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://search.proquest.com/docview/304028781",
  acknowledgement = ack-nhfb,
  advisor =      "Charles Giardina",
  classification = "0984: Computer science",
  dissertation-thesis-number = "9325077",
  subject =      "Computer science",
}

@Article{Chang:1993:SPMb,
  author =       "Daniel K. Chang",
  title =        "A string pattern---matching algorithm",
  journal =      j-J-SYST-SOFTW,
  volume =       "22",
  number =       "3",
  pages =        "207--216",
  month =        sep,
  year =         "1993",
  CODEN =        "JSSODM",
  ISSN =         "0164-1212 (print), 1873-1228 (electronic)",
  ISSN-L =       "0164-1212",
  bibdate =      "Wed Sep 8 09:22:29 MDT 2010",
  bibsource =    "http://www.sciencedirect.com/science/journal/01641212;
                 https://www.math.utah.edu/pub/tex/bib/jsystsoftw.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "The Journal of systems and software",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01641212",
}

@Article{Chen:1993:SMV,
  author =       "Sei-Wang W. Chen and Anil K. Jain",
  title =        "Strategies of Multi-view and Multi-matching for {$3$D}
                 Object Recognition",
  journal =      j-CVGIP-IU,
  volume =       "57",
  number =       "1",
  pages =        "121--130",
  month =        jan,
  year =         "1993",
  CODEN =        "CIUNEJ",
  DOI =          "https://doi.org/10.1006/ciun.1993.1008;
                 https://doi.org/10.1006/cviu.1993.1008",
  ISSN =         "1049-9660 (print), 1557-7635 (electronic)",
  ISSN-L =       "1049-9660",
  bibdate =      "Wed Mar 8 08:52:54 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=ciun;
                 http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=cviu;
                 https://www.math.utah.edu/pub/tex/bib/cvgip.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.idealibrary.com/links/artid/ciun.1993.1008/production;
                 http://www.idealibrary.com/links/artid/ciun.1993.1008/production/pdf;
                 http://www.idealibrary.com/links/artid/cviu.1993.1008/production;
                 http://www.idealibrary.com/links/artid/cviu.1993.1008/production/pdf",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Inf. and Comput. Educ., Nat. Taiwan Normal
                 Univ., Taipei, Taiwan",
  classification = "C1250 (Pattern recognition); C5260B (Computer vision
                 and picture processing)",
  fjournal =     "Computer Vision, Graphics, and Image Processing. Image
                 Understanding",
  journal-URL =  "http://www.sciencedirect.com/science/journal/10499660",
  keywords =     "2D appearances; 2D techniques; 3D object recognition;
                 Chamfer matcher; Fieldable laser radar transceiver;
                 Impossible views; Matching module; Multi-matching
                 strategy; Multi-view representation; Point matcher;
                 Proposed strategies; Search space; String matcher;
                 Termination rule; Vector matcher",
  thesaurus =    "Image recognition",
}

@InProceedings{Cole:1993:OFP,
  author =       "R. Cole and M. Crochemore and Z. Galil and L.
                 Gasieniec and R. Eariharan and S. Muthukrishnan and K.
                 Park and W. Rytter",
  title =        "Optimally fast parallel algorithms for preprocessing
                 and pattern matching in one and two dimensions",
  crossref =     "IEEE:1993:ASF",
  pages =        "248--258",
  year =         "1993",
  bibdate =      "Thu Apr 5 06:13:51 MDT 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Crochemore:1993:TDP,
  author =       "Maxime Crochemore and Leszek G{\polhk{a}}sieniec and
                 Wojciech Rytter",
  title =        "Two-dimensional pattern matching by sampling",
  journal =      j-INFO-PROC-LETT,
  volume =       "46",
  number =       "4",
  pages =        "159--162",
  day =          "25",
  month =        jun,
  year =         "1993",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68T10",
  MRnumber =     "1 229 203",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Inst Gaspard Monge",
  affiliationaddress = "Noisy-le-Grand, Fr",
  classification = "721.1; 723.1; 723.2; 922.1; C1250 (Pattern
                 recognition); C5260B (Computer vision and picture
                 processing)",
  corpsource =   "Inst. Gaspard Monge, Noisy-le-Grand, France",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; Computational linguistics; Data
                 processing; deterministic sampling; linear sequential
                 time; logarithmic deterministic sample; One dimensional
                 string matching problem; pattern recognition; Pattern
                 recognition; sampling; Sampling; Two dimensional
                 pattern matching problem; two-dimensional pattern
                 matching",
  treatment =    "P Practical",
}

@Article{deAlmeida:1993:SMA,
  author =       "Nalvo F. {de Almeida, Jr.} and Valmir C. Barbosa",
  title =        "A string-matching algorithm for the {CREW PRAM}",
  journal =      j-INFO-PROC-LETT,
  volume =       "47",
  number =       "5",
  pages =        "257--259",
  day =          "8",
  month =        oct,
  year =         "1993",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68T10",
  MRnumber =     "1 245 143",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "UFMS",
  affiliationaddress = "Campo Grande, Braz",
  classification = "721.1; 722.4; 723.2; 723.5; 921.5; C4240P (Parallel
                 programming and algorithm theory)",
  corpsource =   "Dept. de Comput. e Estatistica, Univ. Federal de Minas
                 Gerais, Campo Grande, Brazil",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; Computational complexity; computational
                 complexity; Computational methods; crew pram; CREW
                 PRAM; Data processing; Data structures; fixed alphabet;
                 O(log m) time; O(n/log m) processors; Optimization;
                 parallel algorithms; Parallel processing systems;
                 Parallel random access machines; Pattern matching;
                 pattern matching; Pattern recognition; String matching;
                 string matching; string matching algorithm; time
                 complexity",
  treatment =    "T Theoretical or Mathematical",
}

@Article{DellaVentura:1993:PES,
  author =       "A. {Della Ventura} and P. Ongaro and R. Schettini",
  title =        "Pictorial editing by shape matching techniques",
  journal =      j-CGF,
  volume =       "12",
  number =       "2",
  pages =        "111--122",
  month =        jun,
  year =         "1993",
  CODEN =        "CGFODY",
  ISSN =         "0167-7055 (print), 1467-8659 (electronic)",
  ISSN-L =       "0167-7055",
  bibdate =      "Mon Apr 14 10:23:20 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C4260 (Computational geometry); C6130B (Graphics
                 techniques)",
  corpsource =   "IFCTR, Milano, Italy",
  fjournal =     "Com{\-}pu{\-}ter Graphics Forum",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1111/(ISSN)1467-8659/",
  keywords =     "computational geometry; computer graphics; driven
                 matching technique; image recognition; model-;
                 Model-driven matching technique; packages; painting;
                 Painting packages; Pattern-editing; pattern-editing;
                 pictorial editing; Pictorial editing; pictorial editor;
                 Pictorial editor; pictorial editor; retouching
                 packages; Retouching packages; search-and-replace
                 function; Search-and-replace function; shape matching
                 techniques; Shape matching techniques; Textile design;
                 textile design",
  thesaurus =    "Computational geometry; Computer graphics; Image
                 recognition",
  treatment =    "P Practical",
}

@Article{Dowek:1993:UPM,
  author =       "Gilles Dowek",
  title =        "The undecidability of pattern matching in calculi
                 where primitive recursive functions are representable",
  journal =      j-THEOR-COMP-SCI,
  volume =       "107",
  number =       "2",
  pages =        "349--356",
  day =          "18",
  month =        jan,
  year =         "1993",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:16:54 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1993&volume=107&issue=2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1993&volume=107&issue=2&aid=1295",
  acknowledgement = ack-nhfb,
  classification = "C1250 (Pattern recognition); C4210 (Formal logic)",
  corpsource =   "INRIA, Le Chesnay, France",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "calculi; inductive types; lambda calculus; pattern
                 matching; pattern recognition; polymorphic
                 lambda-calculi; primitive recursive functions;
                 undecidability",
  pubcountry =   "Netherlands",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Fischetti:1993:CIP,
  author =       "Vincent A. Fischetti and Gad M. Landau and Jeanette P.
                 Schmidt and Peter H. Sellers",
  title =        "Corrigendum: {``Identifying periodic occurrences of a
                 template with applications to protein structure''}",
  journal =      j-INFO-PROC-LETT,
  volume =       "46",
  number =       "3",
  pages =        "157--157",
  day =          "11",
  month =        jun,
  year =         "1993",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68U15 (92D20)",
  MRnumber =     "94b:68126b",
  bibdate =      "Sat Apr 11 12:24:19 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See \cite{Fischetti:1993:IPO}.",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Fischetti:1993:IPO,
  author =       "Vincent A. Fischetti and Gad M. Landau and Peter H.
                 Sellers and Jeanette P. Schmidt",
  title =        "Identifying periodic occurrences of a template with
                 applications to protein structure",
  journal =      j-INFO-PROC-LETT,
  volume =       "45",
  number =       "1",
  pages =        "11--18",
  day =          "25",
  month =        jan,
  year =         "1993",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68U15 (92D20)",
  MRnumber =     "94b:68126a",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See also corrigendum \cite{Fischetti:1993:CIP}.",
  acknowledgement = ack-nhfb,
  affiliation =  "Rockefeller Univ",
  affiliationaddress = "New York City, NY, USA",
  classification = "461.2; 723.1; A3620 (Macromolecules and polymer
                 molecules); A8715 (Molecular biophysics); C4240
                 (Programming and algorithm theory); C7330 (Biology and
                 medicine)",
  corpsource =   "Rockefeller Univ., New York, NY, USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; biology computing; computational
                 complexity; molecular biophysics; Periodic occurrences;
                 periodic occurrences; protein structure; Proteins;
                 proteins; String matching; template character;
                 Templates; text substring",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Ganesan:1993:STL,
  author =       "Ravi Ganesan and Alan T. Sherman",
  title =        "Statistical Techniques for Language Recognition: An
                 Introduction and Guide for Cryptanalysts",
  journal =      j-CRYPTOLOGIA,
  volume =       "17",
  number =       "4",
  pages =        "321--366",
  month =        oct,
  year =         "1993",
  CODEN =        "CRYPE6",
  DOI =          "https://doi.org/10.1080/0161-119391867980",
  ISSN =         "0161-1194 (print), 1558-1586 (electronic)",
  ISSN-L =       "0161-1194",
  bibdate =      "Mon Jun 30 15:39:06 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cryptologia.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 OCLC Article1st database",
  note =         "Preliminary version available as Technical Report
                 CS-TR-3036/UMIACS-TR-93-16, University of Maryland
                 College Park (February 1993), and as Technical Report
                 TR CS-93-02, University of Maryland Baltimore County
                 (February 28, 1993).",
  URL =          "http://www.informaworld.com/smpp/content~content=a748639241~db=all~order=page",
  abstract =     "We explain how to apply statistical techniques to
                 solve several language-recognition problems that arise
                 in cryptanalysis and other domains. Language
                 recognition is important in cryptanalysis because,
                 among other applications, an exhaustive key search of
                 any cryptosystem from ciphertext alone requires a test
                 that recognizes valid plaintext. Written for
                 cryptanalysts, this guide should also be helpful to
                 others as an introduction to statistical inference on
                 Markov chains. Modeling language as a finite stationary
                 Markov process, we adapt a statistical model of pattern
                 recognition to language recognition. Within this
                 framework we consider four well-defined
                 language-recognition problems: (1) recognizing a known
                 language, (2) distinguishing a known language from
                 uniform noise, (3) distinguishing unknown 0/sup
                 th/-order noise from unknown 1/sup st/-order language,
                 and (4) detecting non-uniform unknown language. For the
                 second problem we give a most powerful test based on
                 the Neyman--Pearson lemma. For the other problems,
                 which typically have no uniformly most powerful tests,
                 we give likelihood ratio tests. We also discuss the
                 chi-squared test statistic X/sup 2/ and the index of
                 coincidence IC. In addition, we point out useful works
                 in the statistics and pattern-matching literature for
                 further reading about these fundamental problems and
                 test statistics",
  acknowledgement = ack-nhfb,
  fjournal =     "Cryptologia",
  journal-URL =  "http://www.tandfonline.com/loi/ucry20",
  keywords =     "cryptography; Markov processes; maximum likelihood
                 estimation; natural languages; noise; pattern
                 recognition",
  language =     "English",
  romanvolume =  "XVII",
  subject =      "statistical techniques; language recognition;
                 cryptanalysts; language-recognition problems;
                 exhaustive key search; ciphertext; Markov chains;
                 pattern recognition; Neyman--Pearson lemma; likelihood
                 ratio tests; chi-squared test statistic; index of
                 coincidence; test statistics; fundamental problems;
                 computational linguistics; contingency tables; natural
                 language processing; maximum likelihood estimators;
                 weight of evidence",
}

@Article{Gemis:1993:GGO,
  author =       "Marc Gemis and Jan Paredaens and Inge Thyssens and Jan
                 {Van den Bussche}",
  title =        "{GOOD}: a graph-oriented object database system",
  journal =      j-SIGMOD,
  volume =       "22",
  number =       "2",
  pages =        "505--510",
  month =        jun,
  year =         "1993",
  CODEN =        "SRECD8",
  ISBN =         "0-89791-592-5",
  ISBN-13 =      "978-0-89791-592-2",
  ISSN =         "0163-5808 (print), 1943-5835 (electronic)",
  ISSN-L =       "0163-5808",
  bibdate =      "Mon Jan 12 08:45:44 MST 2004",
  bibsource =    "Compendex database; http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigmod.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The graph-oriented database management system or GOOD
                 is represented by a directed graph. It contains all
                 information stored in a database. GOOD-language has
                 five basic graph transformation operations. These are:
                 node, edge additions, deletions, and a duplicate
                 eliminator. Graph pattern is the means in order for the
                 operation to work. To demonstrate a GOOD-program, video
                 session is used.",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Antwerp",
  affiliationaddress = "Antwerp, Belgium",
  classification = "721.1; 723.1.1; 723.2; 723.3; 723.5; C6160J
                 (Object-oriented databases); C6180G (Graphical user
                 interfaces)",
  conference =   "Proceedings of the 1993 ACM SIGMOD International
                 Conference on Management of Data",
  conferenceyear = "1993",
  fjournal =     "SIGMOD Record (ACM Special Interest Group on
                 Management of Data)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J689",
  keywords =     "Computer graphics; Computer programming languages;
                 Computer vision; Database graph; Database instance;
                 Database systems; Directed graph; Formal languages;
                 GOOD-language; Graph theory; Graph transformation
                 operation; Graph-oriented database management system;
                 Graph-oriented object database system; Graphical user
                 interface, GOOD; Information management; Information
                 retrieval; Information retrieval systems; Instance
                 graph; Macros; Object oriented programming; Pattern
                 matching; Pattern recognition systems; Program builder;
                 Query languages; Select-project-join query; User
                 interfaces",
  meetingaddress = "Washington, DC, USA",
  meetingdate =  "May 26--28 1993",
  meetingdate2 = "05/26--28/93",
  publisherinfo = "Fort Collins Computer Center",
  sponsor =      "ACM, SIGMOD; Minerals, Metals \& Materials Society",
  thesaurus =    "Graphical user interfaces; Object-oriented databases;
                 Query languages",
  xxcrossref =   "Anonymous:1993:SAS",
}

@Article{Gemis:1993:OOP,
  author =       "Marc Gemis and Jan Paredaens",
  title =        "An Object-Oriented Pattern Matching Language",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "742",
  pages =        "339--??",
  year =         "1993",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:49:00 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Giancarlo:1993:IDS,
  author =       "R. Giancarlo",
  title =        "An Index Data Structure for Matrices, with
                 Applications to Fast Two-Dimensional Pattern Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "709",
  pages =        "337--??",
  year =         "1993",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:49:00 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@TechReport{Gokhale:1993:DBC,
  author =       "Maya B. Gokhale and Judith D. Schlesinger",
  title =        "A data-parallel bit-serial {C} ({dbC})",
  type =         "Technical report",
  number =       "SRC-TR-93-096",
  institution =  inst-SRC-IDA,
  address =      inst-SRC-IDA:adr,
  pages =        "14",
  month =        may,
  year =         "1993",
  bibdate =      "Fri Aug 30 08:01:51 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/prng.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/super.bib",
  abstract =     "We describe Data-parallel Bit-serial C (dbC), a data
                 parallel extension to ANSI C which currently runs on
                 the CM-2, Cray-2 and YMP, Sun workstation, and Terasys,
                 an experimental SIMD machine. dbC's contribution is
                 two-fold. First, it provides to the programmer an
                 abstraction of the data parallel programming model,
                 hiding implementation-dependent features, so that the
                 high level dbC program can be ported without change
                 among several diverse architectures. Second, dbC
                 exposes in the high level language the full bit-serial
                 processing capabilities of many SIMD arrays, making
                 possible the efficient implementation of both
                 bit-oriented applications (such as pattern matching and
                 image processing) and applications requiring large
                 integers (such as generating large random numbers).
                 Preliminary performance results indicate that dbC
                 programs run approximately a factor of two slower than
                 hand-written assembly code. On a representative problem
                 using small integers, a DNA pattern matching benchmark,
                 the dbC version runs a factor of two faster than C*.",
  acknowledgement = ack-nhfb,
  keywords =     "Parallel programming (Computer science)",
}

@TechReport{Gokhale:1993:DPB,
  author =       "Maya B. Gokhale and Judith D. Schlesinger",
  title =        "A data-parallel bit-serial {C} ({dbC})",
  type =         "Technical report",
  number =       "SRC-TR-93-096",
  institution =  inst-SRC-IDA,
  address =      inst-SRC-IDA:adr,
  pages =        "14",
  month =        may,
  year =         "1993",
  bibdate =      "Fri Aug 30 08:01:51 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/prng.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/super.bib",
  abstract =     "We describe Data-parallel Bit-serial C (dbC), a data
                 parallel extension to ANSI C which currently runs on
                 the CM-2, Cray-2 and YMP, Sun workstation, and Terasys,
                 an experimental SIMD machine. dbC's contribution is
                 two-fold. First, it provides to the programmer an
                 abstraction of the data parallel programming model,
                 hiding implementation-dependent features, so that the
                 high level dbC program can be ported without change
                 among several diverse architectures. Second, dbC
                 exposes in the high level language the full bit-serial
                 processing capabilities of many SIMD arrays, making
                 possible the efficient implementation of both
                 bit-oriented applications (such as pattern matching and
                 image processing) and applications requiring large
                 integers (such as generating large random numbers).
                 Preliminary performance results indicate that dbC
                 programs run approximately a factor of two slower than
                 hand-written assembly code. On a representative problem
                 using small integers, a DNA pattern matching benchmark,
                 the dbC version runs a factor of two faster than C*.",
  acknowledgement = ack-nhfb,
  keywords =     "Parallel programming (Computer science)",
}

@Article{Goldberg:1993:FSA,
  author =       "Robert R. Goldberg",
  title =        "Finite State Automata from Regular Expression Trees",
  journal =      j-COMP-J,
  volume =       "36",
  number =       "7",
  pages =        "623--630",
  month =        "????",
  year =         "1993",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/36.7.623",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Tue Dec 4 14:48:38 MST 2012",
  bibsource =    "http://comjnl.oxfordjournals.org/content/36/7.toc;
                 http://www3.oup.co.uk/computer_journal/Volume_36/Issue_07/Vol36_07.index.html;
                 https://www.math.utah.edu/pub/tex/bib/compj.bib;
                 https://www.math.utah.edu/pub/tex/bib/compj1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/36/7/623.full.pdf+html;
                 http://www3.oup.co.uk/computer_journal/Volume_36/Issue_07/Vol36_07.body.html#AbstractGoldberg",
  acknowledgement = ack-nhfb,
  affiliation =  "Queens Coll., City Univ. of New York, NY, USA",
  author-1-adr = "Department of Computer Science, Queens College of
                 CUNY, 65-30 Kissena Boulevard, Flushing, NY11367-0904,
                 USA",
  classcodes =   "C4220 (Automata theory); C1160 (Combinatorial
                 mathematics); C6120 (File organisation)",
  classification = "C1160 (Combinatorial mathematics); C4220 (Automata
                 theory); C6120 (File organisation)",
  corpsource =   "Queens Coll., City Univ. of New York, NY, USA",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  keywords =     "alphabet symbols; Alphabet symbols; bypassing;
                 Bypassing; finite automata; multibranch expression;
                 Multibranch expression trees; nondeterministic finite
                 state automata; Nondeterministic finite state automata;
                 operands; Operands; parallel algorithm; Parallel
                 algorithm; regular expression; Regular expression
                 trees; tree data structures; trees; trees
                 (mathematics)",
  thesaurus =    "Finite automata; Tree data structures; Trees
                 [mathematics]",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Hancart:1993:SSS,
  author =       "Christophe Hancart",
  title =        "On {Simon}'s string searching algorithm",
  journal =      j-INFO-PROC-LETT,
  volume =       "47",
  number =       "2",
  pages =        "95--99",
  day =          "20",
  month =        aug,
  year =         "1993",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q20 (68Q25 68U15)",
  MRnumber =     "94j:68096",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ Paris",
  affiliationaddress = "Paris, Fr",
  classification = "716.1; 921; C1160 (Combinatorial mathematics); C4220
                 (Automata theory); C4240 (Programming and algorithm
                 theory)",
  corpsource =   "Inst. Blaise Pascal, Paris 7 Univ., France",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; Analysis of algorithms; automata theory;
                 automaton; Computational complexity; computational
                 complexity; Finite automata; Information science;
                 search problems; String matching; string searching
                 algorithm; time complexity",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@InProceedings{Herz:1993:ACSa,
  author =       "J. Herz and R. D. Hersch",
  title =        "Analysing Character Shapes by String Matching
                 Techniques",
  crossref =     "Andre:1993:PTI",
  pages =        "261--272",
  year =         "1993",
  bibdate =      "Mon Apr 27 08:08:18 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  keywords =     "digital typography; raster imaging; RIDT",
}

@Article{Herz:1993:ACSb,
  author =       "Jacky Herz and Roger D. Hersch",
  title =        "Analysing character shapes by string matching
                 techniques",
  journal =      j-EPODD,
  volume =       "6",
  number =       "3",
  pages =        "261--272",
  month =        sep,
  year =         "1993",
  CODEN =        "EPODEU",
  ISSN =         "0894-3982",
  bibdate =      "Thu Jun 2 10:04:26 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/epodd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Preliminary attempts at automatic analysis and
                 synthesis of typographic shapes are described. String
                 matching techniques are used to recover implicit
                 relationships between character parts. A knowledge base
                 describing local character shape parts is created and
                 is used in order to propagate local shape modifications
                 across different characters.",
  fjournal =     "Electronic Pub\-lish\-ing\emdash{}Orig\-i\-na\-tion,
                 Dissemination, and Design",
  keywords =     "Digital typography, Shape analysis, String matching,
                 Shape similarities, Implicit design intentions",
}

@Article{Herz:EPODD-6-3-261,
  author =       "Jacky Herz and Roger D. Hersch",
  title =        "Analysing character shapes by string matching
                 techniques",
  journal =      j-EPODD,
  volume =       "6",
  number =       "3",
  pages =        "261--272",
  month =        sep,
  year =         "1993",
  CODEN =        "EPODEU",
  ISSN =         "0894-3982",
  bibdate =      "Thu Jun 2 10:04:26 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/epodd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Preliminary attempts at automatic analysis and
                 synthesis of typographic shapes are described. String
                 matching techniques are used to recover implicit
                 relationships between character parts. A knowledge base
                 describing local character shape parts is created and
                 is used in order to propagate local shape modifications
                 across different characters.",
  keywords =     "Digital typography, Shape analysis, String matching,
                 Shape similarities, Implicit design intentions",
}

@Article{Horspool:1993:SAP,
  author =       "R. Nigel Horspool and Jan Vitek",
  title =        "Static analysis of {PostScript} code",
  journal =      j-COMP-LANGS,
  volume =       "19",
  number =       "2",
  pages =        "65--78",
  month =        apr,
  year =         "1993",
  CODEN =        "COLADA",
  ISSN =         "0096-0551 (print), 1873-6742 (electronic)",
  ISSN-L =       "0096-0551",
  bibdate =      "Tue Mar 25 14:04:06 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/complngs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Victoria",
  affiliationaddress = "Victoria, BC, Can",
  classcodes =   "C6140D (High level languages); C6150C (Compilers,
                 interpreters and other processors); C6130D (Document
                 processing techniques)",
  classification = "721.1; 723.1; 723.1.1",
  corpsource =   "Dept. of Comput. Sci., Victoria Univ., BC, Canada",
  fjournal =     "Computer Languages",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00960551",
  journalabr =   "Comput Lang",
  keywords =     "abstract; Abstract interpretation; Algorithms; Codes
                 (symbols); compilation; Computational linguistics;
                 Computer programming languages; Error detection;
                 interpretation algorithm; languages; Object oriented
                 programming; page description languages; polymorphism;
                 PostScript (programming language); PostScript code;
                 probable errors; Program compilation; Program
                 compilers; Program diagnostics; program interpreters;
                 Programming theory; regular expression notation;
                 stack-based languages; Stacked based programming
                 languages; Static analysis; static analysis; Unlimited
                 polymorphism; visual",
  treatment =    "P Practical",
}

@Article{Jategaonkar:1993:TIE,
  author =       "Lalita A. Jategaonkar and John C. Mitchell",
  title =        "Type inference with extended pattern matching and
                 subtypes",
  journal =      j-FUND-INFO,
  volume =       "19",
  number =       "1--2",
  pages =        "127--165",
  month =        sep # "\slash " # oct,
  year =         "1993",
  CODEN =        "FUMAAJ",
  ISSN =         "0169-2968 (print), 1875-8681 (electronic)",
  ISSN-L =       "0169-2968",
  bibdate =      "Mon Mar 7 06:24:59 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fundinfo1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Fundamenta Informaticae",
  journal-URL =  "http://content.iospress.com/journals/fundamenta-informaticae;
                 http://dl.acm.org/citation.cfm?id=J291",
  remark =       "Special issue on lambda calculus and type theory.",
}

@InProceedings{Jiang:1993:OWH,
  author =       "Tao Jiang and Ming Li",
  title =        "$k$ one-way heads cannot do string-matching",
  crossref =     "ACM:1993:PTF",
  pages =        "62--70",
  year =         "1993",
  bibdate =      "Wed Feb 20 18:34:01 MST 2002",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/stoc/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/stoc/167088/p62-jiang/p62-jiang.pdf;
                 http://www.acm.org/pubs/citations/proceedings/stoc/167088/p62-jiang/",
  acknowledgement = ack-nhfb,
}

@Article{Kamel:1993:SRH,
  author =       "M. S. Kamel and H. C. Shen and A. K. C. Wong and R. I.
                 Campeanu",
  title =        "System for the recognition of human faces",
  journal =      j-IBM-SYS-J,
  volume =       "32",
  number =       "2",
  pages =        "307--320",
  year =         "1993",
  CODEN =        "IBMSA7",
  ISSN =         "0018-8670",
  bibdate =      "Tue Mar 19 17:38:46 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ibmsysj.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "G321-5515.",
  abstract =     "The paper describes a system for content-based
                 retrieval of facial images from an image database. The
                 system includes feature extraction based on
                 expert-assisted feature selection, spatial feature
                 measurement, feature and shape representation, feature
                 information compression, and organization, search
                 procedures, and pattern-matching techniques. The system
                 uses novel data structures to represent the extracted
                 information. These structures include attributed graphs
                 for representing local features and their
                 relationships, n-tuple of mixed mode data, and highly
                 compressed feature codes. For the retrieval phase, a
                 knowledge-directed search technique that uses a
                 hypothesis refinement approach extracts specific
                 features for candidate identification and retrieval.
                 The overall system, the components, and the methodology
                 are described. The system has been implemented on an
                 IBM Personal System/2 running Operating System/2.
                 Examples demonstrating the performance of the system
                 are included.",
  acknowledgement = ack-nhfb,
  affiliation =  "Waterloo Univ., Ont., Canada",
  classification = "C5260B (Computer vision and picture processing);
                 C6120 (File organisation); C6160S (Spatial and
                 pictorial databases); C6170 (Expert systems)",
  fjournal =     "IBM Systems Journal",
  keywords =     "Attributed graphs; Compressed feature codes;
                 Content-based retrieval; Data structures;
                 Expert-assisted feature selection; Facial images;
                 Feature extraction; Feature information compression;
                 Human faces; Hypothesis refinement; IBM Personal
                 System/2; Image database; Knowledge-directed search
                 technique; Operating System/2; Pattern-matching; Search
                 procedures; Shape representation; Spacial feature
                 measurement",
  language =     "English",
  pubcountry =   "USA",
  thesaurus =    "Face recognition; Feature extraction; IBM computers;
                 Image coding; Knowledge based systems; Microcomputer
                 applications; Query processing; Spatial data
                 structures; Visual databases",
}

@Article{Kebler:1993:APP,
  author =       "C. W. Kebler and W. J. Paul",
  title =        "Automatic Parallelization by Pattern-Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "734",
  pages =        "166--??",
  year =         "1993",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:49:00 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Kim:1993:MPM,
  author =       "Jeong Uk Kim and Ho Chang and Tag Gon Kim",
  title =        "Multidisk partial match file design with known access
                 pattern",
  journal =      j-INFO-PROC-LETT,
  volume =       "45",
  number =       "1",
  pages =        "33--39",
  day =          "25",
  month =        jan,
  year =         "1993",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Korea Advanced Inst of Science and Technology",
  affiliationaddress = "Taejon, SOUTH KOREA",
  classification = "721.1; 722.1; C4240 (Programming and algorithm
                 theory); C4250 (Database theory); C6160 (Database
                 management systems (DBMS))",
  corpsource =   "Dept. of Electr. Eng., Korea Adv. Inst. of Sci. and
                 Technol., Taejon, South Korea",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "access patterns; access time; binary Cartesian product
                 files; computational complexity; database management
                 systems; database theory; disk access concurrency; File
                 allocation; File organization; Magnetic disk storage;
                 Multidisk partial match file design; multidisk partial
                 match files; NP hard problems; Storage allocation
                 (computer)",
  treatment =    "T Theoretical or Mathematical",
}

@InProceedings{Klarlund:1993:GT,
  author =       "Nils Klarlund and Michael I. Schwartzbach",
  title =        "Graph types",
  crossref =     "ACM:1993:CRT",
  pages =        "196--205",
  year =         "1993",
  bibdate =      "Mon May 3 12:45:53 MDT 1999",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/plan/158511/p196-klarlund/",
  abstract =     "Recursive data structures are abstractions of simple
                 records and pointers. They impose a shape invariant,
                 which is verified at compile-time and exploited to
                 automatically generate code for building, copying,
                 comparing, and traversing values without loss of
                 efficiency. However, such values are always tree
                 shaped, which is a major obstacle to practical use. We
                 propose a notion of graph types, which allow common
                 shapes, such as doubly-linked lists or threaded trees,
                 to be expressed concisely and efficiently. We define
                 regular languages of routing expressions to specify
                 relative addresses of extra pointers in a canonical
                 spanning tree. An efficient algorithm for computing
                 such addresses is developed. We employ a second-order
                 monadic logic to decide well-formedness of graph type
                 specifications. This logic can also be used for
                 automated reasoning about pointer structures.",
  acknowledgement = ack-nhfb,
  keywords =     "algorithms; languages; theory",
  subject =      "{\bf F.3.3} Theory of Computation, LOGICS AND MEANINGS
                 OF PROGRAMS, Studies of Program Constructs, Type
                 structure. {\bf D.3.3} Software, PROGRAMMING LANGUAGES,
                 Language Constructs and Features, Data types and
                 structures. {\bf F.2.2} Theory of Computation, ANALYSIS
                 OF ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Computations on discrete
                 structures. {\bf G.2.2} Mathematics of Computing,
                 DISCRETE MATHEMATICS, Graph Theory, Trees.",
}

@InProceedings{Lai:1993:AAD,
  author =       "Feipei Lai and Shu-Lin Hwang and Tzer-Shyong Chen and
                 Chia-Rung Hsieh",
  title =        "{Arden} --- Architecture Development Environment",
  crossref =     "Baozong:1993:PTI",
  pages =        "5--9 (vol.1)",
  year =         "1993",
  bibdate =      "Wed Oct 30 05:56:55 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This paper describes Arden, which is being developed
                 to help architecture design. Arden includes a
                 retargetable compiler and a back-end simulation tool
                 that uses the concepts of object-oriented programming
                 (OOP) to achieve model reusability. The code generator
                 in the Arden compiler uses a tree pattern matching
                 method for instruction selection. An experimental
                 bottom-up matching algorithm that reduces the pattern
                 matching to a numerical computation problem can reduce
                 the space complexity and the search time. A useful
                 instruction description language has been proposed to
                 simplify the architecture specifications. We have
                 implemented the DLX architecture with only 49 rules.
                 Arden has been able to output DLX assembly code and has
                 the same performance as GNU cc output.",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. Sci. and Inf. Eng., Nat. Taiwan
                 Univ., Taipei, Taiwan",
  classification = "C5220 (Computer architecture); C6110J
                 (Object-oriented programming); C7430 (Computer
                 engineering)",
  keywords =     "Architecture Development Environment; Architecture
                 specification; Arden; Back-end simulation tool; Code
                 generator; DLX architecture; Instruction description
                 language; Model reusability; Object-oriented
                 programming; OOP; Retargetable compiler; Space
                 complexity; Tree pattern matching",
  thesaurus =    "CAD; Computer architecture; Object-oriented
                 programming; Software reusability",
}

@Article{Malton:1993:DSF,
  author =       "Andrew Malton",
  title =        "The denotational semantics of a functional
                 tree-manipulation language",
  journal =      j-COMP-LANGS,
  volume =       "19",
  number =       "3",
  pages =        "157--168",
  month =        jul,
  year =         "1993",
  CODEN =        "COLADA",
  ISSN =         "0096-0551 (print), 1873-6742 (electronic)",
  ISSN-L =       "0096-0551",
  bibdate =      "Tue Mar 25 14:04:06 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/complngs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Queen's Univ",
  affiliationaddress = "Kingston, Can",
  classcodes =   "C6140D (High level languages); C6110 (Systems analysis
                 and programming); C4240 (Programming and algorithm
                 theory)",
  classification = "723.1.1; 921.4",
  corpsource =   "Dept. of Comput. and Inf. Sci., Queens Univ.,
                 Kingston, Ont., Canada",
  fjournal =     "Computer Languages",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00960551",
  journalabr =   "Comput Lang",
  keywords =     "Algorithms; algorithms; Computational linguistics;
                 Computer programming languages; denotational semantics;
                 Denotational semantics; failure-handling; functional
                 languages; functional programming; functional
                 tree-manipulation; high level languages; language;
                 Language dialects; Parse trees; pattern-matching;
                 programming; programming language; prototyping;
                 semantic problems; Source transformation languages;
                 theory; tree data structures; Tree manipulation
                 algorithms; tree-manipulation; Trees (mathematics);
                 TXL; txl",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Manber:1993:SAN,
  author =       "Udi Manber and Gene Myers",
  title =        "Suffix Arrays: a New Method for On-Line String
                 Searches",
  journal =      j-SIAM-J-COMPUT,
  volume =       "22",
  number =       "5",
  pages =        "935--948",
  month =        oct,
  year =         "1993",
  CODEN =        "SMJCAT",
  DOI =          "https://doi.org/10.1137/0222058",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68P10 (68Q25)",
  MRnumber =     "94e:68045",
  bibdate =      "Sat Jan 26 12:46:16 MST 2013",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/22/5;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-ds # " and " # ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
  rawdata =      "Manber, U., and E. W. Myers (1993) ``Suffix Arrays: A
                 New Method for On-Line String Searches,'' {\it SIAM
                 Journal on Computing}, {\bf22}(5):935--948, October.",
  xxauthor =     "U. Manber and E. W. Myers",
}

@InProceedings{Matzen:1993:MSA,
  author =       "R. W. Matzen and K. M. George and G. E. Hedrick",
  title =        "A Model for Studying Ambiguity in {SGML} Element
                 Declarations",
  crossref =     "Deaton:1993:ACS",
  pages =        "668--676",
  month =        "????",
  year =         "1993",
  bibdate =      "Wed Apr 3 08:31:49 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sgml.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Oklahoma State Univ., Stillwater, OK, USA",
  classification = "C4210 (Formal logic); C4220 (Automata theory);
                 C6130D (Document processing techniques); C6140D (High
                 level languages); C7108 (Desktop publishing)",
  keywords =     "Ambiguous content models; Ambiguous model group
                 detection algorithm; Bounded arc; Document
                 representation; Electronic publishing; Element symbol;
                 Indexed nondeterministic finite automata; ISO standard;
                 Meta-language system; Regular expressions; SGML element
                 declarations; Standard Generalized Markup Language;
                 Text processing",
  thesaurus =    "Finite automata; Formal languages; Page description
                 languages; Uncertainty handling",
}

@Article{Nakatani:1993:MCB,
  author =       "Toshio Nakatani and Kemal Ebcio{\u{g}}lu",
  title =        "Making compaction-based parallelization affordable",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "4",
  number =       "9",
  pages =        "1014--1029",
  month =        sep,
  year =         "1993",
  CODEN =        "ITDSEO",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Fri Apr 11 15:20:39 MDT 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/ieeetranspardistsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "IBM Tokyo Research Lab",
  affiliationaddress = "Yamato, Jpn",
  classification = "721.1; 722.4; 913; 921; C5220P (Parallel
                 architecture); C6110P (Parallel programming); C6130
                 (Data handling techniques); C6150C (Compilers,
                 interpreters and other processors); C6150N (Distributed
                 systems)",
  corpsource =   "Res. Lab., IBM Japan Ltd., Tokyo, Japan",
  fjournal =     "IEEE Transactions on Parallel and Distributed
                 Systems",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=71",
  journalabr =   "IEEE Trans Parallel Distrib Syst",
  keywords =     "AIX; branch-intensive code; code explosion problem;
                 Compaction; compaction-based parallelization; compress;
                 fgrep; Heuristic methods; Instruction level
                 parallelism; Instruction scheduling; instruction sets;
                 instruction-level parallelism; Lookahead; lookahead
                 heuristic; loop parallelization; parallel; parallel
                 architectures; Parallel processing systems; Percolation
                 scheduling; pipeline processing; Pipeline processing
                 systems; program compilers; Program compilers;
                 programming; scheduling; Scheduling; sed; software;
                 software pipelining; sort; table lookup; Trace
                 scheduling; utilities; VLIW compilation techniques;
                 VLIW parallelizing compiler; yacc",
  treatment =    "P Practical",
}

@Article{Nance:1993:SBE,
  author =       "Barry Nance and Tom Thompson and Ben Smith",
  title =        "A Small Browser with Everything: {A} powerful {DOS}
                 browser, a faster Finder, and {Perl-based} recursive
                 grep",
  journal =      j-BYTE,
  volume =       "18",
  number =       "2",
  pages =        "235--??",
  month =        feb,
  year =         "1993",
  CODEN =        "BYTEDJ",
  ISSN =         "0360-5280",
  bibdate =      "Tue Jan 2 10:01:41 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/byte1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Owolabi:1993:EPS,
  author =       "Olumide Owolabi",
  title =        "Efficient pattern searching over large dictionaries",
  journal =      j-INFO-PROC-LETT,
  volume =       "47",
  number =       "1",
  pages =        "17--21",
  day =          "9",
  month =        aug,
  year =         "1993",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Port Harcourt",
  affiliationaddress = "Port Harcourt, Nigeria",
  classification = "721; 723; C1250 (Pattern recognition); C4250
                 (Database theory)",
  conferenceyear = "1993",
  corpsource =   "Dept. of Math. and Comput. Sci., Port Harcourt Univ.,
                 Nigeria",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; algorithms; Boyer--Moore pattern matching
                 algorithm; Computational complexity; computational
                 complexity; Computer science; database theory;
                 glossaries; Information science; Large dictionaries;
                 large dictionaries; N-gram method; online query term
                 expansion; Online searching; Pattern recognition;
                 pattern recognition; Pattern searching; pattern
                 searching; query processing; similarity matching;
                 Stemming; stemming; String similarity; strings
                 similarity; very large databases",
  treatment =    "T Theoretical or Mathematical",
}

@Book{Pai:1993:SCR,
  author =       "Dinesh K. Pai and Tony H. S. Ser",
  title =        "Simultaneous computation of robot kinematics and
                 differential kinematics with automatic
                 differentiation",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "775--780",
  year =         "1993",
  ISBN =         "0-7803-0823-9",
  ISBN-13 =      "978-0-7803-0823-7",
  LCCN =         "TJ210.3.I447 1993",
  bibdate =      "Sun Jan 5 08:48:44 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/mathematica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE catalog number 93CH3213-6.",
  abstract =     "We describe (i) Computation of derivatives of
                 functions defined on a robot's kinematic quantities
                 using the efficient adjoint technique for automatic
                 differentiation; (ii) Implemented software called RAD
                 which can generate optimized C programs for computing
                 these quantities from concise descriptions of the robot
                 and the required kinematic quantities. In addition to
                 automatic differentiation, the RAD software provides
                 symbolic formulation of the kinematics and
                 simplification of trigonometric algebraic expressions
                 using Mathematica [Wol91] and pattern matching. We
                 illustrate the utility of the software with a 2-link
                 robot and a PUMA robot.",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of British Columbia",
  affiliationaddress = "Vancouver, BC, Can",
  classification = "723.1; 723.5; 731.5; 921.5; 921.6; 931.1",
  conference =   "1993 International Conference on Intelligent Robots
                 and Systems. Part 2 (of 3)",
  conferenceyear = "1993",
  keywords =     "Algebra; Automatic differentiation; C (programming
                 language); Computational methods; Computer software;
                 Differential equations; Differential kinematics;
                 Differentiation (calculus); Kinematics; Mathematical
                 models; Optimization; Pattern matching; puma robot;
                 Robot kinematics; Robotics; Robots; Software package
                 Mathematica; Software package rad; Two link robot",
  meetingabr =   "1993 Int Conf Intell Rob Syst",
  meetingaddress = "Yokohama, Jap",
  meetingdate =  "Jul 26--30 1993",
  meetingdate2 = "07/26--30/93",
  publisherinfo = "IEEE Service Center",
  sponsor =      "IEEE; Robotics Society of Japan; SICE; New Technology
                 Foundation",
}

@Article{Pitt:1993:MCD,
  author =       "Leonard Pitt and Manfred K. Warmuth",
  title =        "The Minimum Consistent {DFA} Problem Cannot be
                 Approximated within any Polynomial",
  journal =      j-J-ACM,
  volume =       "40",
  number =       "1",
  pages =        "95--142",
  month =        jan,
  year =         "1993",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Tue Sep 9 07:57:29 1997",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Theory/JACM.bib;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0004-5411/138042.html",
  abstract =     "The minimum consistent DFA problem is that of finding
                 a DFA with as few states as possible that is consistent
                 with a given sample (a finite collection of words, each
                 labeled as to whether the DFA found should accept or
                 reject). Assuming that P $ \ne $ NP, it is shown that
                 for any constant $k$, no polynomial-time algorithm can
                 be guaranteed to find a consistent DFA with fewer than
                 $ \mbox {\em opt \/ }^k $ states, where $ \mbox {\em
                 opt \/ } $ is the number of states in the minimum state
                 DFA consistent with the sample. This result holds even
                 if the alphabet is of constant size two, and if the
                 algorithm is allowed to produce an NFA, a regular
                 expression, or a regular grammar that is consistent
                 with the sample. A similar nonapproximability result is
                 presented for the problem of finding small consistent
                 linear grammars. For the case of finding minimum
                 consistent DFAs when the alphabet is not of constant
                 size but instead is allowed to vary with the problem
                 specification, the slightly stronger lower bound on
                 approximability of $ \mbox {\em opt \/ }{(1 - \epsilon)
                 \log \log \mbox {\em opt \/ }} $ is shown for any $
                 \epsilon > 0 $.",
  acknowledgement = ack-nhfb,
  annote =       "Earlier version in STOC89 and Univ of Ill TR 1499 in
                 1989",
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  keywords =     "Algorithms; approximation algorithms; Languages;
                 Learning Theory; minimization of finite state machines;
                 nonapproximability; Theory",
  subject =      "{\bf F.1.1}: Theory of Computation, COMPUTATION BY
                 ABSTRACT DEVICES, Models of Computation, Automata. {\bf
                 F.1.3}: Theory of Computation, COMPUTATION BY ABSTRACT
                 DEVICES, Complexity Classes, Reducibility and
                 completeness. {\bf F.2.2}: Theory of Computation,
                 ANALYSIS OF ALGORITHMS AND PROBLEM COMPLEXITY,
                 Nonnumerical Algorithms and Problems, Computations on
                 discrete structures. {\bf F.4.2}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Grammars and Other Rewriting Systems, Decision
                 problems.",
}

@Article{Poulovassilis:1993:PMA,
  author =       "A. Poulovassilis",
  title =        "A Pattern-Matching Algorithm for Functional
                 Databases",
  journal =      j-COMP-J,
  volume =       "36",
  number =       "2",
  pages =        "195--199",
  month =        apr,
  year =         "1993",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/36.2.195",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Tue Dec 4 14:48:36 MST 2012",
  bibsource =    "http://comjnl.oxfordjournals.org/content/36/2.toc;
                 http://www3.oup.co.uk/computer_journal/Volume_36/Issue_02/Vol36_02.index.html;
                 https://www.math.utah.edu/pub/tex/bib/compj.bib;
                 https://www.math.utah.edu/pub/tex/bib/compj1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 Misc/Functional.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/36/2/195.full.pdf+html;
                 http://www3.oup.co.uk/computer_journal/Volume_36/Issue_02/Vol36_02.body.html#AbstractPoulovassilis",
  abstract =     "In an earlier paper the author described the
                 implementation of a functional database language FDL
                 addressing the storage and update of functions in some
                 detail, but giving a limited discussion of pattern
                 matching. In this companion paper a pattern matching
                 algorithm is proposed which is suitable for functional
                 databases in general and FDL in particular.",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput., King's Coll., London, UK",
  author-1-adr = "Department of Computing, King's College London,
                 Strand, London WC2R 2LS, UK",
  classcodes =   "C6160K (Deductive databases); C6140D (High level
                 languages); C4250 (Database theory)",
  classification = "C4250 (Database theory); C6140D (High level
                 languages); C6160K (Deductive databases)",
  corpsource =   "Dept. of Comput., King's Coll., London, UK",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  keywords =     "database language; database theory; deductive
                 databases; FDL; functional; Functional database
                 language; Functional databases; functional databases;
                 Pattern-matching algorithm; pattern-matching algorithm;
                 programming; query languages",
  thesaurus =    "Database theory; Deductive databases; Functional
                 programming; Query languages",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Puel:1993:CPM,
  author =       "Laurence Puel and Asc{\'a}nder Su{\'a}rez",
  title =        "Compiling Pattern Matching by Term Decomposition",
  journal =      j-J-SYMBOLIC-COMP,
  volume =       "15",
  number =       "1",
  pages =        "1--26",
  month =        jan,
  year =         "1993",
  CODEN =        "JSYCEH",
  ISSN =         "0747-7171 (print), 1095-855X (electronic)",
  ISSN-L =       "0747-7171",
  MRclass =      "68N17 (68N20 68Q55)",
  MRnumber =     "94c:68038",
  MRreviewer =   "Zhenyu Qian",
  bibdate =      "Sat May 10 15:54:09 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsymcomp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6150C (Compilers, interpreters and other processors);
                 C4210 (Formal logic)",
  corpsource =   "Univ. Paris Sud, Orsay, France",
  fjournal =     "Journal of Symbolic Computation",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07477171",
  keywords =     "compiling pattern matching; lazy languages; match
                 algorithm; ML; partial evaluation; program compilers;
                 rewriting systems; term decomposition; term rewriting",
  treatment =    "P Practical",
}

@Article{Rao:1993:ELD,
  author =       "Pushpa Rao and Clifford Walinsky",
  title =        "An equational language for data-parallelism",
  journal =      j-SIGPLAN,
  volume =       "28",
  number =       "7",
  pages =        "112--118",
  month =        jul,
  year =         "1993",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:16:39 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Data-parallelism provides a clean conceptual framework
                 for parallel programming. The authors are developing
                 two programming languages: a high level equational
                 language, called EL*, and a low-level implementation
                 language. Both languages exploit data-parallelism
                 instead of control-parallelism. EL* is a declarative
                 data-parallel language. EL* programs are high-level
                 equational specifications that use extensive
                 pattern-matching and recursion. The language's syntax
                 and semantics are intended to be clear and simple.
                 Recursive forms arc restricted to enable translation to
                 efficient data-parallel operations. EL* programs are
                 compiled into FP*, a variant of Backus's FP, where
                 parallel operations are more explicit and low-level.
                 The target language has a rich set of functions for
                 performing communication, and computation. It also has
                 a powerful set of combining forms that generate large
                 highly-parallel functions from smaller program units.
                 Prototype compilers have been implemented for both
                 languages, and they demonstrate good performance.
                 Several linear algebra and non-numeric problems have
                 been programmed with relative ease using EL*.",
  acknowledgement = ack-nhfb,
  affiliation =  "Dartmouth Coll., Hanover, NH, USA",
  classification = "C6110B (Software engineering techniques); C6110P
                 (Parallel programming); C6140D (High level languages);
                 C6150C (Compilers, interpreters and other processors)",
  confdate =     "19-22 May 1993",
  conflocation = "San Diego, CA, USA",
  confsponsor =  "ACM",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "Clean conceptual framework; Data-parallelism;
                 Declarative data-parallel language; FP*; High level
                 equational language; Linear algebra; Low-level
                 implementation language; Non-numeric problems; Parallel
                 programming",
  thesaurus =    "Formal specification; Parallel languages; Parallel
                 programming; Program compilers",
}

@InProceedings{Sadeh:1993:ASM,
  author =       "I. Sadeh",
  title =        "On approximate string matching",
  crossref =     "Storer:1993:DDC",
  pages =        "148--157",
  year =         "1993",
  DOI =          "https://doi.org/10.1109/DCC.1993.253135",
  bibdate =      "Tue Feb 5 14:06:26 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=253135",
  acknowledgement = ack-nhfb,
}

@Article{Schwartz:1993:DSI,
  author =       "Michael F. Schwartz and David C. M. Wood",
  title =        "Discovering shared interests using graph analysis",
  journal =      j-CACM,
  volume =       "36",
  number =       "8",
  pages =        "78--89",
  month =        aug,
  year =         "1993",
  CODEN =        "CACMA2",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Thu May 30 09:41:10 MDT 1996",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Database/Graefe.bib;
                 http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/cacm1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/internet.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0001-0782/163402.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  keywords =     "design; experimentation; Internet network electronic
                 mail connectivity measurement study; measurement",
  subject =      "{\bf H.3.3}: Information Systems, INFORMATION STORAGE
                 AND RETRIEVAL, Information Search and Retrieval, Search
                 process. {\bf C.2.4}: Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, Distributed Systems,
                 Distributed applications. {\bf H.3.1}: Information
                 Systems, INFORMATION STORAGE AND RETRIEVAL, Content
                 Analysis and Indexing, Abstracting methods. {\bf
                 H.3.4}: Information Systems, INFORMATION STORAGE AND
                 RETRIEVAL, Systems and Software, Information networks.
                 {\bf H.4.3}: Information Systems, INFORMATION SYSTEMS
                 APPLICATIONS, Communications Applications, Bulletin
                 boards. {\bf H.4.3}: Information Systems, INFORMATION
                 SYSTEMS APPLICATIONS, Communications Applications,
                 Electronic mail. {\bf H.5.3}: Information Systems,
                 INFORMATION INTERFACES AND PRESENTATION, Group and
                 Organization Interfaces, Organizational design. {\bf
                 I.5.2}: Computing Methodologies, PATTERN RECOGNITION,
                 Design Methodology, Classifier design and evaluation.
                 {\bf I.5.3}: Computing Methodologies, PATTERN
                 RECOGNITION, Clustering, Algorithms. {\bf I.5.3}:
                 Computing Methodologies, PATTERN RECOGNITION,
                 Clustering, Similarity measures. {\bf I.5.4}: Computing
                 Methodologies, PATTERN RECOGNITION, Applications. {\bf
                 K.4.1}: Computing Milieux, COMPUTERS AND SOCIETY,
                 Public Policy Issues, Privacy. {\bf F.2.2}: Theory of
                 Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
                 COMPLEXITY, Nonnumerical Algorithms and Problems,
                 Pattern matching.",
}

@Article{Shapiro:1993:CCR,
  author =       "V. Shapiro",
  title =        "Cross-Correlation with Reconstruction: a New Approach
                 to Pattern Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "719",
  pages =        "548--??",
  year =         "1993",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:49:00 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@InProceedings{Shevchenko:1993:SRP,
  author =       "Ivan I. Shevchenko and Andrej G. Sokolsky",
  title =        "Studies of Regular Precessions of a Symmetric
                 Satellite by Means of Computer Algebra",
  crossref =     "Bronstein:1993:IPI",
  pages =        "65--67",
  year =         "1993",
  bibdate =      "Thu Mar 12 08:40:26 MST 1998",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/issac.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/issac/164081/p65-shevchenko/",
  abstract =     "The perturbed motion in the neighbourhood of regular
                 precessions of a dynamically symmetric satellite on a
                 circular orbit is studied. The `Norma' specialized
                 program package (A. G. Sokolsky, I. I. Shevenko, 1990;
                 1991), intended for normalization of autonomous
                 Hamiltonian systems by means of computer algebra, is
                 used to obtain normal forms of the Hamiltonian. A full
                 catalogue of non resonant and resonant normal forms up
                 to the 6th order of normalization is constructed for
                 the case of hyperboloidal precession. The case of
                 cylindrical precession, more complicated in analytical
                 sense, is considered as well. Analytical expressions
                 for coefficients of terms of the normal forms are
                 derived as dependences on the frequencies and the
                 initial physical parameters of the system. Though the
                 intermediary expressions occupy megabytes of computer
                 memory, the final normal forms are compact.",
  acknowledgement = ack-nhfb,
  affiliation =  "Inst. of Theor. Astron., Acad. of Sci., St.
                 Petersburg, Russia",
  classification = "C4140 (Linear algebra); C6130 (Data handling
                 techniques); C7310 (Mathematics computing); C7350
                 (Astronomy and astrophysics computing)",
  keywords =     "ACM; algebraic computation; algorithms; Analytical
                 expressions; Autonomous Hamiltonian systems; Circular
                 orbit; Computer algebra; Cylindrical precession;
                 design; Dynamically symmetric satellite; Hyperboloidal
                 precession; Initial physical parameters; Intermediary
                 expressions, ISSAC; Norma specialized program package;
                 Perturbed motion; Regular precessions; Resonant normal
                 forms; SIGSAM; symbolic computation; Symmetric
                 satellite",
  subject =      "{\bf I.1.3} Computing Methodologies, SYMBOLIC AND
                 ALGEBRAIC MANIPULATION, Languages and Systems,
                 Special-purpose algebraic systems. {\bf I.1.2}
                 Computing Methodologies, SYMBOLIC AND ALGEBRAIC
                 MANIPULATION, Algorithms. {\bf I.1.0} Computing
                 Methodologies, SYMBOLIC AND ALGEBRAIC MANIPULATION,
                 General. {\bf J.2} Computer Applications, PHYSICAL
                 SCIENCES AND ENGINEERING, Aerospace.",
  thesaurus =    "Astronomy computing; Matrix algebra; Series
                 [mathematics]; Symbol manipulation",
}

@Article{Smith:1993:XRL,
  author =       "Henry I. Smith and M. L. Schattenburg",
  title =        "{X-ray} lithography, from 500 to 30 nm: {X-ray}
                 nanolithography",
  journal =      j-IBM-JRD,
  volume =       "37",
  number =       "3",
  pages =        "319--329",
  month =        may,
  year =         "1993",
  CODEN =        "IBMJAE",
  ISSN =         "0018-8646 (print), 2151-8556 (electronic)",
  ISSN-L =       "0018-8646",
  bibdate =      "Tue Mar 25 14:26:59 MST 1997",
  bibsource =    "http://www.research.ibm.com/journal/;
                 https://www.math.utah.edu/pub/tex/bib/ibmjrd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Proximity X-ray lithography (XRL), using wavelengths
                 between 0.8 and 1.5 nm, provides a near-ideal match to
                 the `system problem' of lithography for feature sizes
                 from 500 to 30 nm, by virtue of `absorption without
                 scattering' and recently developed mask technology. The
                 effects of photoelectrons, at one time through to be
                 problematic, are now understood not to limit
                 resolution. With experiments and simulations via
                 Maxwell's equations, the author shows that useful
                 resolution is not limited by diffraction until
                 linewidths are below 50 nm. It is critically important
                 to optimize the source spatial incoherence to eliminate
                 the deleterious effects of high spatial frequencies.
                 Mask architecture and patterning methods are presented
                 which he believes are compatible with manufacturing at
                 linewidths from 500 to 30 nm. Distortion due to mask
                 frame flexing and absorber stress can now be
                 eliminated. Elimination of distortion at the pattern
                 generation stage remains the problem of greatest
                 concern. He discusses a proposed method of
                 spatial-phase-locked electron-beam lithography which
                 could solve this problem. The new interferometric
                 alignment scheme has achieved 18-nm alignment at 3
                 sigma. He asserts that projection XRL using multilayer
                 mirrors at 13 nm can never match the present
                 performance of proximity XRL. Applications of
                 sub-100-nm XRL, including MOS, quantum-effect, and
                 optoelectronic devices are discussed which illustrate
                 the benefits of high resolution, process robustness,
                 low distortion, low damage, and high throughput.",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Electr. Eng. and Comput. Sci., MIT,
                 Cambridge, MA, USA",
  classcodes =   "B2550G (Lithography); B2570 (Semiconductor integrated
                 circuits)",
  classification = "B2550G (Lithography); B2570 (Semiconductor
                 integrated circuits)",
  corpsource =   "Dept. of Electr. Eng. and Comput. Sci., MIT,
                 Cambridge, MA, USA",
  fjournal =     "IBM Journal of Research and Development",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5288520",
  keywords =     "30; 30 To 500 nm; distortion; Distortion; effect
                 devices; electron beam lithography; Feature sizes;
                 feature sizes; interferometric alignment scheme;
                 Interferometric alignment scheme; mask architecture;
                 Mask architecture; mask frame flexing; Mask frame
                 flexing; Mask patterning; mask patterning; Maxwell
                 equations; Maxwell's equations; MOS devices;
                 nanolithography; nanotechnology; optoelectronic
                 devices; Optoelectronic devices; Proximity X-ray
                 lithography; proximity X-ray lithography; quantum;
                 Quantum effect devices; Resolution; resolution;
                 spatial-phase-locked electron-beam lithography;
                 Spatial-phase-locked electron-beam lithography; to 500
                 nm; X-ray; X-ray lithography; X-ray nanolithography",
  numericalindex = "Size 3.0E-08 to 5.0E-07 m",
  thesaurus =    "Electron beam lithography; Maxwell equations;
                 Nanotechnology; X-ray lithography",
  treatment =    "P Practical; X Experimental",
}

@Article{Soo:1993:DCP,
  author =       "Von-Wun Soo and Jan-Fu Hwang and Tung-Bo Chen and Chin
                 Yu",
  title =        "Divide-and-conquer, pattern matching, and relaxation
                 methods in interpretation of {$2$-D NMR} spectra of
                 polypeptides",
  journal =      j-J-COMPUT-CHEM,
  volume =       "14",
  number =       "10",
  pages =        "1164--1171",
  month =        oct,
  year =         "1993",
  CODEN =        "JCCHDD",
  DOI =          "https://doi.org/10.1002/jcc.540141006",
  ISSN =         "0192-8651 (print), 1096-987X (electronic)",
  ISSN-L =       "0192-8651",
  bibdate =      "Thu Nov 29 14:54:23 MST 2012",
  bibsource =    "http://www.interscience.wiley.com/jpages/0192-8651;
                 https://www.math.utah.edu/pub/tex/bib/jcomputchem1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational Chemistry",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1096-987X",
  onlinedate =   "7 Sep 2004",
}

@Article{Srinivas:1993:STA,
  author =       "Yellamraju V. Srinivas",
  title =        "A sheaf-theoretic approach to pattern matching and
                 related problems",
  journal =      j-THEOR-COMP-SCI,
  volume =       "112",
  number =       "1",
  pages =        "53--97",
  day =          "26",
  month =        apr,
  year =         "1993",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:17:09 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1993&volume=112&issue=1;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1993&volume=112&issue=1&aid=1301",
  acknowledgement = ack-nhfb,
  classification = "C1250 (Pattern recognition); C4240 (Programming and
                 algorithm theory)",
  corpsource =   "Kestrel Inst., Palo Alto, CA, USA",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "computational complexity; generalized version;
                 geometric view; grammars; Grothendieck topology;
                 Knuth--Morris--Pratt string-matching algorithm; modulo
                 commutativity; n-queens problem; parsing; pattern
                 matching; pattern recognition; scene analysis;
                 sheaf-theoretic approach; Waltz filtering",
  pubcountry =   "Netherlands",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Takeda:1993:FMA,
  author =       "Masayuki Takeda",
  title =        "A fast matching algorithm for patterns with pictures",
  journal =      "Bull. Inform. Cybernet.",
  volume =       "25",
  number =       "3--4",
  pages =        "137--153",
  year =         "1993",
  ISSN =         "0286-522X",
  MRclass =      "68U15",
  MRnumber =     "1215542 (94a:68143)",
  bibdate =      "Mon May 26 18:16:34 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Bulletin of Informatics and Cybernetics",
}

@Article{Tarhio:1993:ABM,
  author =       "Jorma Tarhio and Esko Ukkonen",
  title =        "Approximate {Boyer--Moore} String Matching",
  journal =      j-SIAM-J-COMPUT,
  volume =       "22",
  number =       "2",
  pages =        "243--260",
  month =        apr,
  year =         "1993",
  CODEN =        "SMJCAT",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68Q20 (68U15)",
  MRnumber =     "93m:68060",
  bibdate =      "Mon Nov 29 11:02:11 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/22/2;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Thiemann:1993:ART,
  author =       "P. Thiemann",
  title =        "Avoiding repeated tests in pattern matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "724",
  pages =        "141--??",
  year =         "1993",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:49:00 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@InCollection{Ukkonen:1993:ASMa,
  author =       "Esko Ukkonen",
  booktitle =    "Combinatorial pattern matching ({Padova}, 1993)",
  title =        "Approximate string-matching over suffix trees",
  volume =       "684",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "228--242",
  year =         "1993",
  DOI =          "https://doi.org/10.1007/BFb0029808",
  MRclass =      "68U15 (68Q20 68R05)",
  MRnumber =     "1253338 (94j:68311)",
  bibdate =      "Mon May 26 18:16:34 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  acknowledgement = ack-nhfb,
}

@Article{Ukkonen:1993:ASMb,
  author =       "Esko Ukkonen and Derick Wood",
  title =        "Approximate String Matching with Suffix Automata",
  journal =      j-ALGORITHMICA,
  volume =       "10",
  number =       "5",
  pages =        "353--364",
  year =         "1993",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68T10 (68Q70)",
  MRnumber =     "MR1245517 (94j:68260)",
  bibdate =      "Mon Jan 22 05:35:34 MST 2001",
  bibsource =    "dblp-journals-algorithmica.bib;
                 http://dblp.uni-trier.de/db/journals/algorithmica/algorithmica10.html#UkkonenW93;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
  oldlabel =     "UkkonenW93",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/algorithmica/UkkonenW93",
}

@Article{Weber-Wulff:1993:PMP,
  author =       "Debora Weber-Wulff",
  title =        "Proof movie --- A proof with the {Boyer--Moore}
                 prover",
  journal =      j-FORM-ASP-COMPUT,
  volume =       "5",
  number =       "2",
  pages =        "121--151",
  month =        mar,
  year =         "1993",
  CODEN =        "FACME5",
  DOI =          "https://doi.org/10.1007/BF01211302",
  ISSN =         "0934-5043 (print), 1433-299X (electronic)",
  ISSN-L =       "0934-5043",
  bibdate =      "Tue Mar 17 20:57:32 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/formaspcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/BF01211302",
  acknowledgement = ack-nhfb,
  fjournal =     "Formal Aspects of Computing",
  journal-URL =  "http://link.springer.com/journal/165",
}

@Article{Wentworth:1993:GRE,
  author =       "E. P. Wentworth",
  title =        "Generalized Regular Expressions --- a Programming
                 Exercise in {Haskell}",
  journal =      j-SIGPLAN,
  volume =       "28",
  number =       "5",
  pages =        "49--54",
  month =        may,
  year =         "1993",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:16:36 MST 2003",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Misc/Functional.bib;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "functional",
}

@InProceedings{Zobel:1993:SLL,
  author =       "Justin Zobel and Alistair Moffat and Ron Sacks-Davis",
  title =        "Searching Large Lexicons for Partially Specified Terms
                 using Compressed Inverted Files",
  crossref =     "Agrawal:1993:VLD",
  pages =        "290--301",
  year =         "1993",
  bibdate =      "Fri Jan 12 07:50:33 MST 2001",
  bibsource =    "http://www.vldb.org/dblp/db/conf/vldb/vldb93.html;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldb.bib",
  URL =          "http://www.vldb.org/dblp/db/conf/vldb/ZobelMS93.html",
  acknowledgement = ack-nhfb,
  authorurl =    "http://www.vldb.org/dblp/db/indices/a-tree/z/Zobel:Justin.html;
                 http://www.vldb.org/dblp/db/indices/a-tree/m/Moffat:Alistair.html;
                 http://www.vldb.org/dblp/db/indices/a-tree/s/Sacks=Davis:Ron.html",
  keywords =     "regular expressions; very large data bases; VLDB",
}

@Article{Abbott:1994:TT,
  author =       "Paul Abbott",
  title =        "Tricks of the Trade",
  journal =      j-MATHEMATICA-J,
  volume =       "4",
  number =       "1",
  pages =        "38--42",
  month =        "Winter",
  year =         "1994",
  CODEN =        "????",
  ISSN =         "1047-5974 (print), 1097-1610 (electronic)",
  ISSN-L =       "1047-5974",
  bibdate =      "Sat Nov 6 13:33:52 MDT 2010",
  bibsource =    "http://www.mathematica-journal.com/issue/v4i1/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.mathematica-journal.com/issue/v4i1/tutorials/tricks/38-42_tricks41.mj.pdf;
                 http://www.mathematica-journal.com/issue/v4i1/tutorials/tricks/index.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Mathematica Journal",
  journal-URL =  "http://www.mathematica-journal.com/",
  keywords =     "CollectCases; DSolve; Implicit Differentiation; New
                 Packages in Version 2.2; Searching for Options;
                 Simplifying a Sum; Testing Pattern Matching; Using
                 Pad{\'e} to Generate Code",
}

@Article{Akutsu:1994:ASM,
  author =       "T. Akutsu",
  title =        "Approximate String Matching with Don't Care
                 Characters",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "240--249",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Alexander:1994:SCS,
  author =       "K. S. Alexander",
  title =        "Shortest Common Superstrings for Strings of Random
                 Letters",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "164--172",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Amir:1994:ADP,
  author =       "Amihood Amir and Martin Farach and S. Muthukrishnan",
  title =        "Alphabet dependence in parameterized matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "49",
  number =       "3",
  pages =        "111--115",
  day =          "11",
  month =        feb,
  year =         "1994",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Georgia Inst of Technology",
  affiliationaddress = "Atlanta, GA, USA",
  classification = "721.1; 721.2; 723.5; 741.1; C1250 (Pattern
                 recognition); C6110B (Software engineering
                 techniques)",
  corpsource =   "Coll. of Comput., Georgia Inst. of Technol., Atlanta,
                 GA, USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; Computation theory; Computer software;
                 Image processing; Logic design; parameterized matching;
                 Parameterized string matching; pattern matching
                 paradigm; Pattern model; pattern recognition; pattern
                 string; Program fragments; Software maintenance;
                 software maintenance; String matching",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Amir:1994:AIA,
  author =       "Amihood Amir and Gary Benson and Martin Farach",
  title =        "An Alphabet Independent Approach to Two-Dimensional
                 Pattern Matching",
  journal =      j-SIAM-J-COMPUT,
  volume =       "23",
  number =       "2",
  pages =        "313--323",
  month =        apr,
  year =         "1994",
  CODEN =        "SMJCAT",
  DOI =          "https://doi.org/10.1137/S0097539792226321",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68Q20 (68Q25)",
  MRnumber =     "95d:68052",
  MRreviewer =   "Lajos R{\'o}nyai",
  bibdate =      "Mon Nov 29 11:02:25 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/23/2;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://epubs.siam.org/sam-bin/dbq/article/22632",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@InCollection{Amir:1994:OTD,
  author =       "Amihood Amir and Gary Benson and Martin Farach",
  booktitle =    "Automata, languages and programming ({Jerusalem},
                 1994)",
  title =        "Optimal two-dimensional compressed matching",
  volume =       "820",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "215--226",
  year =         "1994",
  DOI =          "https://doi.org/10.1007/3-540-58201-0_70",
  MRclass =      "68U15 (68Q22)",
  MRnumber =     "1334113 (96e:68141)",
  bibdate =      "Mon May 26 18:16:34 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       "Lecture Notes in Comput. Sci.",
  acknowledgement = ack-nhfb,
}

@InProceedings{Antoy:1994:NNS,
  author =       "Sergio Antoy and Rachid Echahed and Michael Hanus",
  title =        "A needed narrowing strategy",
  crossref =     "ACM:1994:CRP",
  pages =        "268--279",
  year =         "1994",
  bibdate =      "Mon May 3 12:50:22 MDT 1999",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/plan/174675/p268-antoy/",
  abstract =     "Narrowing is the operational principle of languages
                 that integrate functional and logic programming. We
                 propose a notion of a needed narrowing step that, for
                 inductively sequential rewrite systems, extends the
                 Huet and L{\'e}vy notion of a needed reduction step. We
                 define a strategy, based on this notion, that computes
                 only needed narrowing steps. Our strategy is sound and
                 complete for a large class of rewrite systems, is
                 optimal w.r.t. the cost measure that counts the number
                 of distinct steps of a derivation, computes only
                 independent unifiers, and is efficiently implemented by
                 pattern matching.",
  acknowledgement = ack-nhfb,
  keywords =     "theory",
  subject =      "{\bf D.1.1} Software, PROGRAMMING TECHNIQUES,
                 Applicative (Functional) Programming. {\bf D.1.6}
                 Software, PROGRAMMING TECHNIQUES, Logic Programming.
                 {\bf F.4.1} Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Mathematical Logic, Logic and
                 constraint programming.",
}

@Article{Backofen:1994:RPE,
  author =       "Rolf Backofen",
  title =        "Regular Path Expressions in Feature Logic",
  journal =      j-J-SYMBOLIC-COMP,
  volume =       "17",
  number =       "5",
  pages =        "421--455",
  month =        may,
  year =         "1994",
  CODEN =        "JSYCEH",
  ISSN =         "0747-7171 (print), 1095-855X (electronic)",
  ISSN-L =       "0747-7171",
  MRclass =      "68T30 (68S05 68T20 68T27)",
  MRnumber =     "95i:68128",
  MRreviewer =   "P. {\v{S}}t{\v{e}}p{\'a}nek",
  bibdate =      "Sat May 10 15:54:09 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsymcomp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C4210 (Formal logic)",
  corpsource =   "DFKI, Saarbrucken, Germany",
  fjournal =     "Journal of Symbolic Computation",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07477171",
  keywords =     "computational linguistics; decidability; decidable;
                 existential fragment; expressions; feature logic;
                 formal languages; formal logic; functional uncertainty;
                 quasi-terminating rule system; regular language;
                 regular path; satisfiability; subterm relation",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Baeza-Yates:1994:BMA,
  author =       "Ricardo A. Baeza-Yates and Christian Choffrut and
                 Gaston H. Gonnet",
  title =        "On {Boyer--Moore} automata",
  journal =      j-ALGORITHMICA,
  volume =       "12",
  number =       "4--5",
  pages =        "268--292",
  year =         "1994",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68Q20 (68Q25)",
  MRnumber =     "MR1289483 (95i:68050)",
  bibdate =      "Mon Jan 22 05:23:27 MST 2001",
  bibsource =    "dblp-journals-algorithmica.bib;
                 http://dblp.uni-trier.de/db/journals/algorithmica/algorithmica12.html#Baeza-YatesCG94;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
  oldlabel =     "Baeza-YatesCG94",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/algorithmica/Baeza-YatesCG94",
}

@Article{Baeza-Yates:1994:PMU,
  author =       "R. Baeza-Yates and W. Cunto and U. Manber and S. Wu",
  title =        "Proximity Matching Using Fixed-Queries Trees",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "198--212",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Bafna:1994:AAM,
  author =       "V. Bafna and E. L. Lawler and P. A. Peuzner",
  title =        "Approximation Algorithms for Multiple Sequence
                 Alignment",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "43--53",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Benson:1994:SEA,
  author =       "G. Benson",
  title =        "A Space Efficient Algorithm for Finding the Best
                 Non-Overlapping Alignment Score",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "1--14",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Bertossi:1994:PSM,
  author =       "A. A. Bertossi and F. Logi",
  title =        "Parallel String Matching with Variable Length Don't
                 Cares",
  journal =      j-J-PAR-DIST-COMP,
  volume =       "22",
  number =       "2",
  pages =        "229--234",
  month =        aug,
  year =         "1994",
  CODEN =        "JPDCER",
  DOI =          "https://doi.org/10.1006/jpdc.1994.1083",
  ISSN =         "0743-7315 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:18:55 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 https://www.math.utah.edu/pub/tex/bib/jpardistcomp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.idealibrary.com/links/doi/10.1006/jpdc.1994.1083/production;
                 http://www.idealibrary.com/links/doi/10.1006/jpdc.1994.1083/production/pdf",
  acknowledgement = ack-nhfb,
  classification = "C4240P (Parallel programming and algorithm theory)",
  corpsource =   "Dipartimento di Inf., Pisa Univ., Italy",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  keywords =     "computational complexity; EREW PRAM model; finite
                 alphabet; parallel algorithm; parallel algorithms;
                 parallel computer; parallel string matching; problems;
                 processor; running time; scan operations; search;
                 utilization; variable length don't cares",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Bodlaender:1994:PCS,
  author =       "H. Bodlaender and R. G. Downey and M. R. Fellows and
                 H. T. Wareham",
  title =        "The Parameterized Complexity of Sequence Alignment and
                 Consensus",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "15--30",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Brazma:1994:EAL,
  author =       "A. Brazma",
  title =        "Efficient Algorithm for Learning Simple Regular
                 Expressions from Noisy Examples",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "872",
  pages =        "260--??",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:52:14 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Brazma:1994:ELR,
  author =       "A. Brazma and K. Cerans",
  title =        "Efficient Learning of Regular Expressions from Good
                 Examples",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "872",
  pages =        "76--??",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:52:14 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Breslauer:1994:DMU,
  author =       "D. Breslauer",
  title =        "Dictionary-Matching on Unbounded Alphabets:
                 Uniform-Length Dictionaries",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "184--197",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Breslauer:1994:ECS,
  author =       "D. Breslauer and L. Colussi and L. Toniolo",
  title =        "On the Exact Complexity of the String Prefix-Matching
                 Problem",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "855",
  pages =        "483--??",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:52:14 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Breslauer:1994:TSS,
  author =       "Dany Breslauer",
  title =        "Testing string superprimitivity in parallel",
  journal =      j-INFO-PROC-LETT,
  volume =       "49",
  number =       "5",
  pages =        "235--241",
  day =          "11",
  month =        mar,
  year =         "1994",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q20 (68Q22)",
  MRnumber =     "94m:68070",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "CNR",
  affiliationaddress = "Pisa, Italy",
  classification = "723.1; 723.2; 921.6; C4240P (Parallel programming
                 and algorithm theory)",
  conferenceyear = "1994",
  corpsource =   "Centre of Nat. Res., Pisa Univ., Italy",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; computational complexity; Computer
                 software; CRCW-PRAM algorithm; optimal algorithm;
                 Optimization; parallel; parallel algorithms; Parallel
                 processing systems; periods; Quasiperiods;
                 quasiperiods; String matching; string matching; String
                 superprimitivity; superprimitivity",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Buneman:1994:CS,
  author =       "Peter Buneman and Leonid Libkin and Dan Suciu and Val
                 Tannen and Limsoon Wong",
  title =        "Comprehension Syntax",
  journal =      j-SIGMOD,
  volume =       "23",
  number =       "1",
  pages =        "87--96",
  month =        mar,
  year =         "1994",
  CODEN =        "SRECD8",
  ISSN =         "0163-5808 (print), 1943-5835 (electronic)",
  ISSN-L =       "0163-5808",
  bibdate =      "Mon Jan 12 08:45:47 MST 2004",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigmod.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. and Inf. Sci., Pennsylvania Univ.,
                 Philadelphia, PA, USA",
  classification = "C6140D (High level languages); C6160D (Relational
                 DBMS)",
  fjournal =     "SIGMOD Record (ACM Special Interest Group on
                 Management of Data)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J689",
  keywords =     "Abstract syntax language; Comprehension syntax;
                 Database language development; Database query
                 languages; First-order logic; Function definition;
                 Optimization; Pattern matching; Programming paradigm;
                 Relational algebra; Relational database; Structural
                 recursion; Variant types",
  thesaurus =    "Query languages; Query processing; Relational algebra;
                 Relational databases",
}

@Article{Chang:1994:ASM,
  author =       "W. I. Chang and T. G. Marr",
  title =        "Approximate String Matching and Local Similarity",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "259--273",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Chang:1994:SAS,
  author =       "William I. Chang and Eugene L. Lawler",
  title =        "Sublinear Approximate String Matching and Biological
                 Applications",
  journal =      j-ALGORITHMICA,
  volume =       "12",
  number =       "4--5",
  pages =        "327--344",
  year =         "1994",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68Q20 (68Q25 92D20)",
  MRnumber =     "MR1289486 (95e:68071)",
  bibdate =      "Mon Jan 22 05:24:56 MST 2001",
  bibsource =    "dblp-journals-algorithmica.bib;
                 http://dblp.uni-trier.de/db/journals/algorithmica/algorithmica12.html#ChangL94;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
  oldlabel =     "ChangL94",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/algorithmica/ChangL94",
}

@Article{Chao:1994:CAS,
  author =       "K.-M. Chao",
  title =        "Computing all Suboptimal Alignments in Linear Space",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "31--42",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Chlebus:1994:OPM,
  author =       "B. S. Chlebus and L. Gasieniec",
  title =        "Optimal Pattern Matching on Meshes",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "775",
  pages =        "213--??",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:52:14 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Cobbs:1994:FIA,
  author =       "A. L. Cobbs",
  title =        "Fast Identification of Approximately Matching
                 Substrings",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "64--74",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Cole:1994:TBC,
  author =       "Richard Cole",
  title =        "Tight Bounds on the Complexity of the {Boyer--Moore}
                 String Matching Algorithm",
  journal =      j-SIAM-J-COMPUT,
  volume =       "23",
  number =       "5",
  pages =        "1075--1091",
  month =        oct,
  year =         "1994",
  CODEN =        "SMJCAT",
  DOI =          "https://doi.org/10.1137/S0097539791195543",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68Q20",
  MRnumber =     "95m:68070",
  bibdate =      "Mon Nov 29 11:02:32 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/23/5;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://epubs.siam.org/sam-bin/dbq/article/19554",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Colussi:1994:FPM,
  author =       "L. Colussi",
  title =        "Fastest Pattern Matching in Strings",
  journal =      j-J-ALG,
  volume =       "16",
  number =       "2",
  pages =        "163--189",
  month =        mar,
  year =         "1994",
  CODEN =        "JOALDV",
  DOI =          "https://doi.org/10.1006/jagm.1994.1008",
  ISSN =         "0196-6774 (print), 1090-2678 (electronic)",
  ISSN-L =       "0196-6774",
  bibdate =      "Tue Dec 11 09:15:40 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jalg.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S019667748471008X",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Algorithms",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01966774",
}

@Article{Crochemore:1994:STS,
  author =       "Maxime Crochemore and Artur Czumaj and Leszek
                 G{\k{a}}sieniec and Stefan Jarominek and Thierry Lecroq
                 and Wojciech Plandowski and Wojciech Rytter",
  title =        "Speeding Up Two String-Matching Algorithms",
  journal =      j-ALGORITHMICA,
  volume =       "12",
  number =       "4--5",
  pages =        "247--267",
  year =         "1994",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68Q20 (68Q25)",
  MRnumber =     "MR1289482 (95e:68073)",
  bibdate =      "Mon Jan 22 05:26:13 MST 2001",
  bibsource =    "dblp-journals-algorithmica.bib;
                 http://dblp.uni-trier.de/db/journals/algorithmica/algorithmica12.html#CrochemoreCGJLPR94;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
  oldlabel =     "CrochemoreCGJLPR94",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/algorithmica/CrochemoreCGJLPR94",
}

@Article{Crochemore:1994:TDP,
  author =       "Maxime Crochemore and Wojciech Rytter",
  title =        "On two-dimensional pattern matching by optimal
                 parallel algorithms",
  journal =      j-THEOR-COMP-SCI,
  volume =       "132",
  number =       "1--2",
  pages =        "403--414",
  day =          "26",
  month =        sep,
  year =         "1994",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:18:25 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1994&volume=132&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1994&volume=132&issue=1-2&aid=1653",
  acknowledgement = ack-nhfb,
  classification = "C1250 (Pattern recognition); C4240P (Parallel
                 programming and algorithm theory)",
  corpsource =   "Inst. Gaspard Monge, Univ. de Marne la Vall{\'e}e,
                 Noisy le Grand, France",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "compressing images; CRCW PRAM; data compression;
                 Kedem-Landau-Palem algorithms; KLP algorithm; parallel
                 algorithms; parallel image identification; parallel
                 reduction; pattern recognition; pattern-matching;
                 suffix-prefix matching subprocedure",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@InProceedings{Das:1994:SAI,
  author =       "R. Das and J. Saltz and R. {von Hanxleden}",
  title =        "Slicing analysis and indirect accesses to distributed
                 arrays",
  crossref =     "Banerjee:1994:LCP",
  pages =        "152--168",
  month =        "",
  year =         "1994",
  bibdate =      "Mon Oct 26 07:05:30 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fortran3.bib;
                 https://www.math.utah.edu/pub/tex/bib/hpfortran.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. Sci., Maryland Univ., College Park,
                 MD, USA",
  classification = "C6110P (Parallel programming); C6120 (File
                 organisation); C6140D (High level languages); C6150C
                 (Compilers, interpreters and other processors)",
  keywords =     "Aggregated data prefetching; Array accesses; Compiler;
                 Fortran D prototype compiler; High Performance Fortran;
                 Indirection arrays; Irregular access patterns; Multiple
                 levels; Parallel code; Parallel computers; Program
                 slicing; Redundant preprocessing; Slice graph; Sparse
                 data structures; Subscript expressions",
  thesaurus =    "Data structures; FORTRAN; Parallel languages; Parallel
                 programming; Program compilers",
}

@Article{Du:1994:ADV,
  author =       "M.-W. Du and S. C. Chang",
  title =        "Approach to designing very fast approximate string
                 matching algorithms",
  journal =      j-IEEE-TRANS-KNOWL-DATA-ENG,
  volume =       "6",
  number =       "4",
  pages =        "620--633",
  month =        aug,
  year =         "1994",
  CODEN =        "ITKEEH",
  DOI =          "https://doi.org/10.1109/69.298177",
  ISSN =         "1041-4347 (print), 1558-2191 (electronic)",
  ISSN-L =       "1041-4347",
  bibdate =      "Wed Jan 15 12:19:41 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/spell.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "An approach to designing very fast algorithms for
                 approximate string matching in a dictionary is
                 proposed. Multiple spelling errors corresponding to
                 insert, delete, change, and transpose operations on
                 character strings are considered in the fault model.
                 The design of very fast approximate string matching
                 algorithms through a four-step reduction procedure is
                 described. The final and most effective step uses
                 hashing techniques to avoid comparing the given word
                 with words at large distances. The technique has been
                 applied to a library book catalog textbase. The
                 experiments show that performing approximate string
                 matching for a large dictionary in real-time on an
                 ordinary sequential computer under our multiple fault
                 model is feasible.",
  acknowledgement = ack-nhfb,
  affiliation =  "GTE Lab Inc",
  affiliationaddress = "Waltham, MA, USA",
  classification = "721.1; 722.4; 723.1; 723.2; 903.1; 903.3",
  fjournal =     "IEEE Transactions on Knowledge and Data Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=69",
  journalabr =   "IEEE Trans Knowl Data Eng",
  keywords =     "Algorithms; Character recognition; Character strings;
                 Computational linguistics; Data reduction; Data
                 structures; Error correction; Errors; Hashing
                 techniques; Information retrieval; Interactive computer
                 systems; Man machine systems; Multiple spelling errors;
                 Nearest neighbor search; Terminology; Textbase; Very
                 fast approximate string matching algorithms",
}

@Article{Dubiner:1994:FTP,
  author =       "Moshe Dubiner and Zvi Galil and Edith Magen",
  title =        "Faster Tree Pattern Matching",
  journal =      j-J-ACM,
  volume =       "41",
  number =       "2",
  pages =        "205--213",
  month =        mar,
  year =         "1994",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Sat Oct 22 23:12:49 1994",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0004-5411/174653.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  keywords =     "algorithms; theory",
  subject =      "{\bf F.2.2}: Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Computations on discrete
                 structures. {\bf F.2.2}: Theory of Computation,
                 ANALYSIS OF ALGORITHMS AND PROBLEM COMPLEXITY,
                 Nonnumerical Algorithms and Problems, Pattern matching.
                 {\bf G.2.2}: Mathematics of Computing, DISCRETE
                 MATHEMATICS, Graph Theory, Trees.",
}

@Article{Durand:1994:BSS,
  author =       "Ir{\'e}ne Durand",
  title =        "Bounded, Strongly Sequential and Forward-Branching
                 Term Rewriting Systems",
  journal =      j-J-SYMBOLIC-COMP,
  volume =       "18",
  number =       "4",
  pages =        "319--352",
  month =        oct,
  year =         "1994",
  CODEN =        "JSYCEH",
  ISSN =         "0747-7171 (print), 1095-855X (electronic)",
  ISSN-L =       "0747-7171",
  MRclass =      "68Q42",
  MRnumber =     "96e:68073",
  bibdate =      "Sat May 10 15:54:09 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsymcomp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C4210L (Formal languages and computational
                 linguistics); C1250 (Pattern recognition)",
  corpsource =   "Lab. Bordelais de Recherche en Inf., Bordeaux I Univ.,
                 Talence, France",
  fjournal =     "Journal of Symbolic Computation",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07477171",
  keywords =     "bounded term rewriting; branching term rewriting
                 systems; forward-; forward-branching index tree;
                 pattern matching; rewriting systems; strongly
                 sequential term rewriting systems; systems",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Dyadkin:1994:MP,
  author =       "Lev J. Dyadkin",
  title =        "Multibox parsers",
  journal =      j-SIGSOFT,
  volume =       "19",
  number =       "3",
  pages =        "23--25",
  month =        jul,
  year =         "1994",
  CODEN =        "SFENDP",
  DOI =          "https://doi.org/10.1145/182824.182827",
  ISSN =         "0163-5948 (print), 1943-5843 (electronic)",
  ISSN-L =       "0163-5948",
  bibdate =      "Wed Aug 1 17:12:53 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fortran3.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigsoft1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Traditional compiler front end generating tools such
                 as Lex/Yacc assume a front end consisting of two boxes:
                 a lexical box and a syntax box. Lex produces a lexical
                 analyzer using regular expressions as a token
                 description. Yacc generates a syntax analyzer from the
                 LALR grammar for the parsed language. This approach has
                 big problems with such lexically and syntactically
                 complex languages as Fortran. The main reason for these
                 problems is that regular expressions, being equivalent
                 to a right linear grammar, do not have the capability
                 to describe the incredibly complex lexical structure of
                 Fortran. As a result, compiler writers abandon Lex and
                 produce handwritten lexers for Fortran, thus defeating
                 the main purpose of the parser generator, automation.
                 This work solves these problems by introducing a
                 multibox parser, where each lower box modifies its
                 input language to produce a more ``straightened''
                 output language for the higher box. The number of boxes
                 reflects the complexity of the parsed language. For
                 example, Fortran requires more boxes than does C. Each
                 box is represented by an L-attributed translation
                 grammar in simple assignment form with an LL(1) input
                 grammar. LL(1) grammars were chosen for higher speed,
                 smaller size, and because, unlike regular expressions,
                 they can express constructs such as nested parentheses,
                 a capability which is required for parsing Fortran on
                 the lexical level. New operations for the LL(1) machine
                 are added to ensure it is strictly forward moving,
                 without backtracking in the parsed source code. We have
                 extended the LL(1) grammars to ``indexed LL(1)
                 grammars.''This enhancement allows more of the
                 resulting code to be automatically generated, rather
                 than handwritten. New parser generating tools have been
                 developed by us to support this technology. The
                 multibox approach has been implemented in the Lahey
                 Fortran 90 compiler.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGSOFT Software Engineering Notes",
  journal-URL =  "https://dl.acm.org/citation.cfm?id=J728",
}

@Article{Gereb-Graus:1994:TOW,
  author =       "Mih{\'a}ly Ger{\'e}b-Graus and Ming Li",
  title =        "Three one-way heads cannot do string matching",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "48",
  number =       "1",
  pages =        "1--8",
  month =        feb,
  year =         "1994",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1016/S0022-0000(05)80020-0",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:26:24 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000005800200",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Goldberg:1994:FPS,
  author =       "T. Goldberg and U. Zwick",
  title =        "Faster Parallel String Matching via Larger
                 Deterministic Samples",
  journal =      j-J-ALG,
  volume =       "16",
  number =       "2",
  pages =        "295--308",
  month =        mar,
  year =         "1994",
  CODEN =        "JOALDV",
  DOI =          "https://doi.org/10.1006/jagm.1994.1014",
  ISSN =         "0196-6774 (print), 1090-2678 (electronic)",
  ISSN-L =       "0196-6774",
  bibdate =      "Tue Dec 11 09:15:40 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jalg.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0196677484710145",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Algorithms",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01966774",
}

@InProceedings{Grahne:1994:RAS,
  author =       "G{\"o}sta Grahne and Matti Nyk{\"a}nen and Esko
                 Ukkonen",
  title =        "Reasoning about Strings in Databases",
  crossref =     "ACM:1994:PPT",
  pages =        "303--312",
  year =         "1994",
  bibdate =      "Wed Oct 25 12:40:13 MDT 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pods/182591/p303-grahne/p303-grahne.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pods/182591/p303-grahne/;
                 http://www.acm.org:80/pubs/citations/proceedings/pods/182591/p303-grahne/",
  abstract =     "In order to enable the database programmer to reason
                 about relations over strings of arbitrary length we
                 introduce alignment logic, a modal extension of
                 relational calculus. In addition to relations, a state
                 in the model consists of a two-dimensional array where
                 the strings are aligned on top of each other. The basic
                 modality in the language (a transpose, or ``slide'')
                 allows for a rearrangement of the alignment, and more
                 complex formulas can be formed using a syntax
                 reminiscent of regular expressions, in addition to the
                 usual connectives and quantifiers. It turns out that
                 the computational counterpart of the string-based
                 portion of the logic is the class of multitape two-way
                 finite state automata, which are devices particularly
                 well suited for the implementation of string matching.
                 A computational counterpart of the full logic is
                 obtained from relational algebra by extending the
                 selection operator into filters based on these
                 multitape machines. Safety of formulas in alignment
                 logic implies that new strings generated from old ones
                 have to be of bounded length. While an undecidable
                 property in general, this boundedness is decidable for
                 an important subclass of formulas. As far as expressive
                 power is concerned, alignment logic includes previous
                 proposals for querying string databases, and gives full
                 Turing computability. The language can be restricted to
                 define exactly regular sets and sets in the polynomial
                 hierarchy.",
  acknowledgement = ack-nhfb,
  generalterms = "Algorithms; Design; Languages; Theory",
  keywords =     "ACM; algorithms; computability; database systems;
                 design; languages; SIGACT; SIGART; SIGMOD; theory",
  subject =      "{\bf H.2.1} Information Systems, DATABASE MANAGEMENT,
                 Logical Design, Data models. {\bf H.2.3} Information
                 Systems, DATABASE MANAGEMENT, Languages, Query
                 languages. {\bf F.4.1} Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Mathematical
                 Logic. {\bf H.2.4} Information Systems, DATABASE
                 MANAGEMENT, Systems, Query processing.",
}

@Article{Havas:1994:NPS,
  author =       "G. Havas and Jin Xian Lian",
  title =        "A New Problem in String Searching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "834",
  pages =        "660--??",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon May 13 11:52:14 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs1994.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Huang:1994:CDM,
  author =       "X. Huang",
  title =        "A Context Dependent Method for Comparing Sequences",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "54--63",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Huang:1994:PRA,
  author =       "X. Huang and P. A. Pevzner and W. Miller",
  title =        "Parametric Recomputing in Alignment Graphs",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "87--101",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Idury:1994:MMP,
  author =       "R. M. Idury and A. A. Schaeffer",
  title =        "Multiple Matching of Parameterized Patterns",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "226--239",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Irving:1994:MCS,
  author =       "R. W. Irving and C. B. Fraser",
  title =        "Maximal Common Subsequences and Minimal Common
                 Supersequences",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "173--183",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Ito:1994:PTA,
  author =       "M. Ito and K. Shimizu and M. Nakanishi and A.
                 Hashimoto",
  title =        "Polynomial-Time Algorithms for Computing
                 Characteristic Strings",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "274--288",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@InProceedings{Jenks:1994:HMA,
  author =       "Richard D. Jenks and Barry M. Trager",
  title =        "How to make {AXIOM} into a {Scratchpad}",
  crossref =     "ACM:1994:IPI",
  pages =        "32--40",
  year =         "1994",
  MRclass =      "68W30 (Symbolic computation and algebraic
                 computation)",
  bibdate =      "Thu Mar 12 08:41:19 MST 1998",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/axiom.bib;
                 https://www.math.utah.edu/pub/tex/bib/issac.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/issac/190347/p32-jenks/",
  ZMnumber =     "0945.68543",
  abstract =     "Scratchpad (Griesmer and Jenks, 1971) was a computer
                 algebra system that had one principal representation
                 for mathematical formulae based on expression trees.
                 Its user interface design was based on a
                 pattern-matching paradigm with infinite rewrite rule
                 semantics, providing what we believe to be the most
                 natural paradigm for interactive symbolic problem
                 solving. Like M and M, however, user programs were
                 interpreted, often resulting in poor performance
                 relative to similar facilities coded in standard
                 programming languages such as FORTRAN and C. Scratchpad
                 development stopped in 1976 giving way to a new system
                 design that evolved into AXIOM. AXIOM has a
                 strongly-typed programming language for building a
                 library of parameterized types and algorithms, and a
                 type-inferencing interpreter that accesses the library
                 and can build any of an infinite number of types for
                 interactive use. We suggest that the addition of an
                 expression tree type to AXIOM can allow users to
                 operate with the same freedom and convenience of
                 untyped systems without giving up the expressive power
                 and run-time efficiency provided by the type system. We
                 also present a design that supports a multiplicity of
                 programming styles, from the Scratchpad
                 pattern-matching paradigm to functional programming to
                 more conventional procedural programming.",
  acknowledgement = ack-nhfb,
  affiliation =  "IBM Thomas J. Watson Res. Center, Yorktown Heights,
                 NY, USA",
  classification = "C6180 (User interfaces); C7310 (Mathematics
                 computing)",
  keywords =     "algorithms; AXIOM; C; Computer algebra system; design;
                 Expression trees; FORTRAN; Functional programming;
                 Infinite rewrite rule semantics; languages; Library;
                 Mathematical formulae; Pattern-matching; performance;
                 Procedural programming; Run-time efficiency;
                 Scratchpad; Strongly-typed programming language;
                 Symbolic problem solving; Type-inferencing interpreter;
                 Untyped systems; User interface design; User programs",
  language =     "English",
  subject =      "{\bf I.1.3} Computing Methodologies, SYMBOLIC AND
                 ALGEBRAIC MANIPULATION, Languages and Systems,
                 Special-purpose algebraic systems. {\bf D.3.3}
                 Software, PROGRAMMING LANGUAGES, Language Constructs
                 and Features, Data types and structures. {\bf F.2.2}
                 Theory of Computation, ANALYSIS OF ALGORITHMS AND
                 PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Pattern matching. {\bf I.1.1} Computing
                 Methodologies, SYMBOLIC AND ALGEBRAIC MANIPULATION,
                 Expressions and Their Representation, Simplification of
                 expressions.",
  thesaurus =    "Mathematics computing; Pattern matching; Program
                 interpreters; Programming; Symbol manipulation; User
                 interfaces",
}

@Article{Jiang:1994:ATA,
  author =       "T. Jiang and L. Wang and K. Zhang",
  title =        "Alignment of Trees --- an Alternative to Tree Edit",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "75--86",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@InProceedings{Johnson:1994:SMC,
  author =       "J. H. Johnson",
  title =        "Substring matching for clone detection and change
                 tracking",
  crossref =     "Muller:1994:ICS",
  pages =        "120--126",
  month =        "",
  year =         "1994",
  bibdate =      "Wed Oct 30 05:56:55 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Legacy systems pose problems to maintainers that can
                 be solved partially with effective tools. A prototype
                 tool for determining collections of files sharing a
                 large amount of text has been developed and applied to
                 a 40 megabyte source tree containing two releases of
                 the gcc compiler. Similarities in source code and
                 documentation corresponding to software cloning,
                 movement and inertia between releases, as well as the
                 effects of preprocessing easily stand out in a way that
                 immediately conveys nonobvious structural information
                 to a maintainer taking responsibility for such a
                 system.",
  acknowledgement = ack-nhfb,
  affiliation =  "Software Eng. Lab., Nat. Res. Council of Canada,
                 Ottawa, Ont., Canada",
  classification = "C6110B (Software engineering techniques); C6115
                 (Programming support); C6150C (Compilers, interpreters
                 and other processors); C6150G (Diagnostic, testing,
                 debugging and evaluating systems)",
  keywords =     "Change tracking; Clone detection; Design recovery;
                 Documentation; Gcc compiler; Legacy systems; Program
                 understanding; Prototype tool; Reverse engineering;
                 Software cloning; Source code; Source tree; Structural
                 information",
  thesaurus =    "Configuration management; Program compilers; Program
                 diagnostics; Software maintenance; Software tools",
}

@InProceedings{Johnson:1994:VTR,
  author =       "J. H. Johnson",
  title =        "Visualizing textual redundancy in legacy source",
  crossref =     "Botsford:1994:PCI",
  pages =        "9--18",
  month =        "",
  year =         "1994",
  bibdate =      "Wed Oct 30 05:42:27 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "As a result of maintenance activity, legacy systems
                 contain repeated text in the form of large and small
                 blocks that appear in more or less the same form in
                 several places. These repetitions define a structure
                 that can contribute information about the development
                 history of the source different from the documented
                 version or the current directory structure. A strategy
                 based on fingerprinting is used to obtain raw matches
                 indicating where repetitions occur. The information
                 inherent in these matches is then reorganized for
                 easier processing, leading to a natural clustering of
                 substrings. Suppression of detail is usually necessary
                 to make further progress and can be done in several
                 different ways. For example, matches of blocks of text
                 identify associations within groups of files. In cases
                 with complex clusters of files involving multiple
                 overlapping subsets of files, Hasse diagrams can
                 support visualization. Techniques useful for
                 understanding such graphs can then be employed to
                 provide significant insights into the structure of the
                 redundancy and hence the source. The paper discusses
                 this approach and shows results obtained from an
                 example of reasonable size (40 MBytes of source based
                 on two releases of the GNU gcc compiler).",
  acknowledgement = ack-nhfb,
  affiliation =  "Inst. for Inf. Technol., Nat. Res. Council of Canada,
                 Ottawa, Ont., Canada",
  classification = "C6110B (Software engineering techniques); C6120
                 (File organisation); C6130B (Graphics techniques);
                 C6130D (Document processing techniques)",
  keywords =     "40 MByte; Complex file clusters; Detail suppression;
                 Directory structure; Documented version; File groups;
                 Fingerprinting; GNU gcc compiler; Graph understanding;
                 Hasse diagrams; Information reorganization; Legacy
                 systems; Multiple overlapping subsets; Raw matches;
                 Repeated text; Software development history; Software
                 maintenance activity; Substring clustering; Text
                 blocks; Textual redundancy visualization",
  numericalindex = "Memory size 4.2E+07 Byte",
  thesaurus =    "Data visualisation; File organisation; Redundancy;
                 Software maintenance; String matching; System
                 documentation; Text editing",
}

@InProceedings{Kakeshita:1994:FCS,
  author =       "T. Kakeshita and M. Oda and Y. Imamura",
  title =        "Fall-in {C}: a software tool for pitfall detection in
                 {C} programs",
  crossref =     "IEEE:1994:FAP",
  pages =        "256--265",
  month =        "",
  year =         "1994",
  bibdate =      "Wed Oct 30 05:47:28 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Programming language C has a flexible structure, and
                 its compiler generates compact and efficient object
                 codes. However slight bugs (pitfall) which cannot be
                 detected by the compiler may cause a serious error in C
                 programs. We are developing a software tool Fall-in C
                 to detect such pitfalls. The paper demonstrates the
                 basic features of Fall-in C. In order to enable a
                 programmer to correct the detected pitfalls
                 immediately, Fall-in C is executed within GNU Emacs
                 editor. Pitfalls in C programs are mainly ad hoc. Thus
                 we prepare three pitfall detection methods for the
                 extensibility of Fall-in C: regular expression
                 searching, structural pattern matching and message
                 analysis of external programs. The patterns for the
                 first two methods can be easily added to Fall-in C.
                 Furthermore the message analysis method can be used to
                 integrate several C program checkers such as lint,
                 check and cchk into Fall-in C.",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Inf. Sci., Saga Univ., Japan",
  classification = "C6110B (Software engineering techniques); C6115
                 (Programming support); C6140D (High level languages);
                 C6150G (Diagnostic, testing, debugging and evaluating
                 systems)",
  keywords =     "C program checkers; C programs; Compiler; Detection
                 methods; Efficient object codes; Extensibility;
                 External programs; Fall-in C; GNU Emacs editor; Message
                 analysis; Pitfall detection; Programming language C;
                 Regular expression searching; Software tool; Structural
                 pattern matching",
  thesaurus =    "C language; Program testing; Software fault tolerance;
                 Software tools",
}

@Article{Karpinski:1994:AIO,
  author =       "M. Karpinski and W. Rytter",
  title =        "An Alphabet-Independent Optimal Parallel Search for
                 Three Dimensional Pattern",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "125--135",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Kececioglu:1994:EBO,
  author =       "J. Kececioglu and D. Sankoff",
  title =        "Efficient Bounds for Oriented Chromosome Inversion
                 Distance",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "307--325",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Kilpelainen:1994:QPT,
  author =       "P. Kilpelainen and H. Mannila",
  title =        "Query Primitives for Tree-Structured Data",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "213--225",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Kim:1994:FSM,
  author =       "Jong Yong Kim and John Shawe-Taylor",
  title =        "Fast String Matching using an $n$-gram Algorithm",
  journal =      j-SPE,
  volume =       "24",
  number =       "1",
  pages =        "79--88",
  month =        jan,
  year =         "1994",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "Boyer--Moore algorithm; DNA sequence matching; pattern
                 matching; string searching",
}

@InProceedings{Kitani:1994:MID,
  author =       "T. Kitani",
  title =        "Merging information by discourse processing for
                 information extraction",
  crossref =     "IEEE:1994:PTC",
  pages =        "412--418",
  month =        "",
  year =         "1994",
  bibdate =      "Wed Oct 30 05:56:55 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "In information extraction tasks, a finite-state
                 pattern matcher is widely used to identify individual
                 pieces of information in a sentence. Merging related
                 pieces of information scattered throughout a text is
                 usually difficult, however, since semantic relations
                 across sentences cannot be captured by the sentence
                 level processing. The purpose of the discourse
                 processing described in this paper is to link
                 individual pieces of information identified by the
                 sentence level processing. In the Tipster information
                 extraction domains, correct identification of company
                 names is the key to achieving a high level of system
                 performance. Therefore, the discourse processor in the
                 Textract information extraction system keeps track of
                 missing, abbreviated, and referenced company names in
                 order to correlate individual pieces of information
                 throughout the text. Furthermore, the discourse is
                 segmented, so that data can be extracted from relevant
                 portions of the text containing information of interest
                 related to a particular tie-up relationship.",
  acknowledgement = ack-nhfb,
  affiliation =  "Center for Machine Translation, Carnegie Mellon Univ.,
                 Pittsburgh, PA, USA",
  classification = "C6130 (Data handling techniques); C6180N (Natural
                 language processing); C7100 (Business and
                 administration); C7240 (Information analysis and
                 indexing); C7250 (Information storage and retrieval)",
  keywords =     "Abbreviated names; Company name identification;
                 Discourse processing; Finance; Finite-state pattern
                 matcher; Information correlation; Information
                 extraction; Information merging; Japanese GNU AWK;
                 Japanese morphological analyzer; Majesty; Missing
                 names; Natural language processing; Newspaper articles;
                 Referenced names; Segmented discourse; Semantic
                 relations; Sentence level processing; System
                 performance; Textract; Tie-up relationship; Tipster",
  thesaurus =    "Commerce; Information analysis; Information retrieval;
                 Merging; Natural languages",
}

@InProceedings{Knuth:1994:FPM,
  author =       "Donald E. Knuth and James H. {Morris, Jr.} and Vaughan
                 R. Pratt",
  title =        "Fast pattern matching in strings",
  crossref =     "Aoe:1994:CAS",
  pages =        "8--35",
  year =         "1994",
  MRclass =      "68T10",
  MRnumber =     "1 281 392",
  bibdate =      "Fri Mar 22 18:03:29 MST 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  acknowledgement = ack-nhfb,
}

@InProceedings{Kosaraju:1994:RTP,
  author =       "S. Rao Kosaraju",
  title =        "Real-time pattern matching and quasi-real-time
                 construction of suffix trees (preliminary version)",
  crossref =     "ACM:1994:PTS",
  pages =        "310--316",
  year =         "1994",
  bibdate =      "Wed Feb 20 18:34:01 MST 2002",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/stoc/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/stoc/195058/p310-kosaraju/p310-kosaraju.pdf;
                 http://www.acm.org/pubs/citations/proceedings/stoc/195058/p310-kosaraju/",
  acknowledgement = ack-nhfb,
}

@Article{Landau:1994:PMD,
  author =       "Gad M. Landau and Uzi Vishkin",
  title =        "Pattern Matching in a Digitized Image",
  journal =      j-ALGORITHMICA,
  volume =       "12",
  number =       "4--5",
  pages =        "375--408",
  year =         "1994",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68T10 (68U10)",
  MRnumber =     "MR1289488 (95e:68189)",
  bibdate =      "Mon Jan 22 05:31:17 MST 2001",
  bibsource =    "dblp-journals-algorithmica.bib;
                 http://dblp.uni-trier.de/db/journals/algorithmica/algorithmica12.html#LandauV94;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
  oldlabel =     "LandauV94",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/algorithmica/LandauV94",
}

@Article{Lestree:1994:URU,
  author =       "L. Lestree",
  title =        "Unit Route Upper Bound for String-Matching on
                 Hypercube",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "136--145",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Lopez-Ortiz:1994:LPM,
  author =       "Alejandro L{\'o}pez-Ortiz",
  title =        "Linear pattern matching of repeated substrings",
  journal =      j-SIGACT,
  volume =       "25",
  number =       "3",
  pages =        "114--121",
  month =        sep,
  year =         "1994",
  CODEN =        "SIGNDM",
  DOI =          "https://doi.org/10.1145/193820.193842",
  ISSN =         "0163-5700 (print), 1943-5827 (electronic)",
  ISSN-L =       "0163-5700",
  bibdate =      "Wed Mar 21 09:45:53 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigact.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGACT News",
  journal-URL =  "http://dl.acm.org/citation.cfm?id=J697",
}

@Article{Luczak:1994:LDC,
  author =       "T. Luczak and W. Szpankowski",
  title =        "A Lossy Data Compression Based on String Matching:
                 Preliminary Analysis and Suboptimal Algorithms",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "102--112",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Lustman:1994:STB,
  author =       "F. Lustman",
  title =        "Specifying transaction-based information systems with
                 regular expressions",
  journal =      j-IEEE-TRANS-SOFTW-ENG,
  volume =       "20",
  number =       "3",
  pages =        "207--217",
  month =        mar,
  year =         "1994",
  CODEN =        "IESEDJ",
  DOI =          "https://doi.org/10.1109/32.268922",
  ISSN =         "0098-5589 (print), 1939-3520 (electronic)",
  ISSN-L =       "0098-5589",
  bibdate =      "Thu Feb 1 11:00:42 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranssoftweng1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=268922",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Software Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32",
}

@Article{Maeder:1994:MPL,
  author =       "Roman E. Maeder",
  title =        "The {Mathematica} Programmer: Logic Programming {I}:
                 The Interpreter",
  journal =      j-MATHEMATICA-J,
  volume =       "4",
  number =       "1",
  pages =        "53--63",
  month =        "Winter",
  year =         "1994",
  CODEN =        "????",
  ISSN =         "1047-5974 (print), 1097-1610 (electronic)",
  ISSN-L =       "1047-5974",
  bibdate =      "Sat Nov 6 13:33:52 MDT 2010",
  bibsource =    "http://www.mathematica-journal.com/issue/v4i1/;
                 https://www.math.utah.edu/pub/tex/bib/mathematica.bib;
                 https://www.math.utah.edu/pub/tex/bib/mathematicaj.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.mathematica-journal.com/issue/v4i1/columns/maeder/53-63_Roman41.mj.pdf;
                 http://www.mathematica-journal.com/issue/v4i1/columns/maeder/index.html",
  abstract =     "This is the first of two columns on logic programming.
                 It gives an introduction to the subject and develops a
                 query evaluator in Mathematica. This query evaluator is
                 an interpreter for a subset of the programming language
                 Prolog. A prerequisite for it is unification, which is
                 a generalization of the pattern matching that underlies
                 Mathematica's own evaluator.",
  acknowledgement = ack-ble # " and " # ack-nhfb,
  fjournal =     "Mathematica Journal",
  journal-URL =  "http://www.mathematica-journal.com/",
}

@Article{Manber:1994:AAM,
  author =       "Udi Manber and Sun Wu",
  title =        "An Algorithm for approximate membership checking with
                 application to password security",
  journal =      j-INFO-PROC-LETT,
  volume =       "50",
  number =       "4",
  pages =        "191--197",
  day =          "25",
  month =        may,
  year =         "1994",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/cryptography1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/infoproc.bib;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/spell.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Given a large set of words W, we want to be able to
                 determine quickly whether a query word q is close to
                 any word in the set. A new data structure is presented
                 that allows such queries to be answered very quickly
                 even for huge sets if the words are not too long and
                 the query is quite close. The major application is in
                 limiting password guessing by verifying, before a
                 password is approved, that the password is not too
                 close to a dictionary word. Other applications include
                 spelling correction of bibliographic files and
                 approximate matching.",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Arizona",
  affiliationaddress = "Tucson, AZ, USA",
  classification = "723.2; 723.3; C6120 (File organisation); C6130S
                 (Data security)",
  corpsource =   "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ,
                 USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; approximate matching; approximate
                 membership checking; Approximate string matching;
                 bibliographic files; Bibliographic files; bibliographic
                 files; Bibliographic files; Bloom filters; Codes
                 (symbols); Cryptography; data structure; Data
                 structures; data structures; Data structures; data
                 structures; Data structures; password guessing;
                 Password security; password security; Password
                 security; Query languages; query word; Security of
                 data; security of data; Security of data; security of
                 data; Security of data; Spell checking; spelling
                 correction",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Manber:1994:TCS,
  author =       "U. Manber",
  title =        "A Text Compression Scheme that Allows Fast Searching
                 Directly in the Compressed File",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "113--124",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Matos:1994:PSI,
  author =       "Armando B. Matos",
  title =        "Periodic sets of integers",
  journal =      j-THEOR-COMP-SCI,
  volume =       "127",
  number =       "2",
  pages =        "287--312",
  day =          "23",
  month =        may,
  year =         "1994",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:18:08 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1994&volume=127&issue=2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  note =         "See remark \cite{Petersen:1995:RPB}.",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1994&volume=127&issue=2&aid=1479",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C4210 (Formal
                 logic); C4220 (Automata theory)",
  corpsource =   "Centro de Inf., Porto Univ., Portugal",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "concatenation; context-free language; context-free
                 languages; directed graph; directed graphs; finite
                 automata; Kleene closure; periodic sets of integers;
                 regular expressions",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Mohri:1994:MST,
  author =       "M. Mohri",
  title =        "Minimization of Sequential Transducers",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "151--163",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Munoz:1994:MTW,
  author =       "J. Munoz",
  title =        "Manual {TIG} welding and control chart advisor. {A}
                 prototype program in {Common Lisp} using pattern
                 matching techniques",
  journal =      "Quality Engineering",
  volume =       "7",
  number =       "2",
  pages =        "277--??",
  year =         "1994\slash 1995",
  CODEN =        "QUENE7",
  ISSN =         "0898-2112",
  bibdate =      "Tue Sep 28 07:51:05 MDT 1999",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/common-lisp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  journalabr =   "Qual Eng",
  keywords =     "Common Lisp",
}

@Article{Oda:1994:PDC,
  author =       "M. Oda and T. Kakeshita",
  title =        "Pitfall detection of {C} programs using pattern
                 matching",
  journal =      j-TRANS-INFO-PROCESSING-SOC-JAPAN,
  volume =       "35",
  number =       "11",
  pages =        "2427--2436",
  month =        nov,
  year =         "1994",
  CODEN =        "JSGRD5",
  ISSN =         "0387-5806",
  ISSN-L =       "0387-5806",
  bibdate =      "Wed Oct 30 05:47:28 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The programming language C has a flexible structure
                 and its compiler generates compact and efficient object
                 codes. However the compiler cannot detect some types of
                 bugs hidden in the program. We are developing a
                 software tool Fall-in C to detect such types of bugs,
                 or pitfalls, in C programs. In contrast with lint,
                 Fall-in C is executed within GNU Emacs editor in order
                 to enable a programmer to correct the detected pitfalls
                 immediately. Furthermore Fall-in C uses pattern
                 matching for pitfall detection so that programmers can
                 augment the detectable pitfall types by adding the
                 corresponding patterns. Fall-in C uses both regular
                 expression searching and structural pattern matching in
                 order to detect pitfalls in C programs. A regular
                 expression can efficiently detect lexical pitfalls
                 while it detects erroneous pitfalls during syntactic
                 pitfall detection. Although structural pattern matching
                 requires syntactic analysis and thus cannot detect
                 certain types of lexical pitfalls, it can properly
                 detect syntactic pitfalls. We evaluated the tool using
                 180 C source files (2.9 MB total) and demonstrated that
                 Fall-in C correctly detects 16 types of pitfalls.",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Inf. Sci. and Electron. Eng., Kurume Inst. of
                 Technol., Japan",
  classification = "C1250 (Pattern recognition); C4210L (Formal
                 languages and computational linguistics); C6115
                 (Programming support); C6140D (High level languages);
                 C6150G (Diagnostic, testing, debugging and evaluating
                 systems)",
  fjournal =     "Transactions of the Information Processing Society of
                 Japan",
  keywords =     "C programming language; C programs; Compiler; Fall-in
                 C; GNU Emacs editor; Lexical pitfalls; Object codes;
                 Pitfall detection; Pitfall types; Regular expression
                 searching; Software tool; Structural pattern matching;
                 Syntactic pitfall detection; Syntactic pitfalls",
  language =     "Japanese",
  pubcountry =   "Japan",
  thesaurus =    "C language; Computational linguistics; Pattern
                 matching; Program debugging; Software tools",
}

@InProceedings{Ohtani:1994:EITa,
  author =       "T. Ohtani and H. Sawamura and T. Minami",
  title =        "{EUODHILOS-II} on top of {GNU Epoch}",
  crossref =     "Bundy:1994:ADC",
  volume =       "814",
  pages =        "816--820",
  year =         "1994",
  bibdate =      "Wed Oct 30 10:18:39 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "EUODHILOS-II is implemented on the GNU Epoch editor in
                 the Emacs Lisp language. GNU Emacs produced by the GNU
                 project is familiar to many users as a text editor,
                 which exceeds in the ease to extend. Moreover it has
                 the various functions for such text processing as
                 syntactic analysis and searching with regular
                 expressions. Epoch is an extension of GNU Emacs for the
                 X Window System, which can manipulate multiple windows.
                 Operations are keyboard-oriented and the usual editing
                 commands are available in the comment, syntax
                 definition and side condition editors. Users can
                 customize EUODHILOS-II as they wish. The size of the
                 source code of EUODHILOS-II is about 300K bytes.",
  acknowledgement = ack-nhfb,
  affiliation =  "Inst. for Social Inf. Sci., Fujitsu Labs. Ltd.,
                 Shizuoka, Japan",
  classification = "C4210L (Formal languages and computational
                 linguistics); C6110L (Logic programming); C6170K
                 (Knowledge engineering techniques)",
  keywords =     "Emacs Lisp language; EUODHILOS-II; GNU Epoch editor;
                 Side condition editors; Syntactic analysis; Syntax
                 definition; Text editor; Text processing; X Window
                 System",
  thesaurus =    "Context-free grammars; Inference mechanisms; Logic
                 programming; Theorem proving",
}

@InProceedings{Ohtani:1994:EITb,
  author =       "T. Ohtani and H. Sawamura and T. Minami",
  title =        "{EUODHILOS-II} on top of {GNU Epoch}",
  crossref =     "Bundy:1994:ADC",
  pages =        "816--820",
  month =        "",
  year =         "1994",
  bibdate =      "Wed Oct 30 05:47:28 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "EUODHILOS-II is implemented on the GNU Epoch editor in
                 the Emacs Lisp language. GNU Emacs produced by the GNU
                 project is familiar to many users as a text editor,
                 which exceeds in the ease to extend. Moreover it has
                 the various functions for such text processing as
                 syntactic analysis and searching with regular
                 expressions. Epoch is an extension of GNU Emacs for the
                 X Window System, which can manipulate multiple windows.
                 Operations are keyboard-oriented and the usual editing
                 commands are available in the comment, syntax
                 definition and side condition editors. Users can
                 customize EUODHILOS-II as they wish. The size of the
                 source code of EUODHILOS-II is about 300K bytes.",
  acknowledgement = ack-nhfb,
  affiliation =  "Inst. for Social Inf. Sci., Fujitsu Labs. Ltd.,
                 Shizuoka, Japan",
  classification = "C4210L (Formal languages and computational
                 linguistics); C6110L (Logic programming); C6170K
                 (Knowledge engineering techniques)",
  keywords =     "Emacs Lisp language; EUODHILOS-II; GNU Epoch editor;
                 Side condition editors; Syntactic analysis; Syntax
                 definition; Text editor; Text processing; X Window
                 System",
  thesaurus =    "Context-free grammars; Inference mechanisms; Logic
                 programming; Theorem proving",
}

@InProceedings{Ohtani:1994:ETG,
  author =       "T. Ohtani and H. Sawamura and T. Minami",
  title =        "{EUODHILOS-II} on top of {GNU Epoch}",
  crossref =     "Bundy:1994:ADC",
  pages =        "816--820",
  month =        "",
  year =         "1994",
  bibdate =      "Wed Oct 30 05:47:28 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "EUODHILOS-II is implemented on the GNU Epoch editor in
                 the Emacs Lisp language. GNU Emacs produced by the GNU
                 project is familiar to many users as a text editor,
                 which exceeds in the ease to extend. Moreover it has
                 the various functions for such text processing as
                 syntactic analysis and searching with regular
                 expressions. Epoch is an extension of GNU Emacs for the
                 X Window System, which can manipulate multiple windows.
                 Operations are keyboard-oriented and the usual editing
                 commands are available in the comment, syntax
                 definition and side condition editors. Users can
                 customize EUODHILOS-II as they wish. The size of the
                 source code of EUODHILOS-II is about 300K bytes.",
  acknowledgement = ack-nhfb,
  affiliation =  "Inst. for Social Inf. Sci., Fujitsu Labs. Ltd.,
                 Shizuoka, Japan",
  classification = "C4210L (Formal languages and computational
                 linguistics); C6110L (Logic programming); C6170K
                 (Knowledge engineering techniques)",
  keywords =     "Emacs Lisp language; EUODHILOS-II; GNU Epoch editor;
                 Side condition editors; Syntactic analysis; Syntax
                 definition; Text editor; Text processing; X Window
                 System",
  thesaurus =    "Context-free grammars; Inference mechanisms; Logic
                 programming; Theorem proving",
}

@Article{Otto:1994:TFP,
  author =       "Erick Otto",
  title =        "Two Fast Pattern-Matching Algorithms",
  journal =      j-CUJ,
  volume =       "12",
  number =       "2",
  pages =        "39--??",
  month =        feb,
  year =         "1994",
  ISSN =         "0898-9788",
  bibdate =      "Fri Aug 30 16:52:23 MDT 1996",
  bibsource =    "http://www.cuj.com/cbklist.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "C Users Journal",
}

@Article{Percus:1994:SMN,
  author =       "Ora E. Percus and Jerome K. Percus",
  title =        "String matching for the novice",
  journal =      j-AMER-MATH-MONTHLY,
  volume =       "101",
  number =       "10",
  pages =        "944--947",
  month =        dec,
  year =         "1994",
  CODEN =        "AMMYAE",
  ISSN =         "0002-9890 (print), 1930-0972 (electronic)",
  ISSN-L =       "0002-9890",
  MRclass =      "60C05",
  MRnumber =     "1 304 317",
  bibdate =      "Wed Dec 3 17:17:33 MST 1997",
  bibsource =    "http://www.jstor.org/journals/00029890.htm;
                 https://www.math.utah.edu/pub/tex/bib/amermathmonthly1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "American Mathematical Monthly",
  journal-URL =  "https://www.jstor.org/journals/00029890.htm",
}

@Article{Perleberg:1994:SCS,
  author =       "Chris H. Perleberg",
  title =        "Single character searching methods and the shift-or
                 pattern-matching algorithm",
  journal =      j-INFO-PROC-LETT,
  volume =       "50",
  number =       "5",
  pages =        "269--275",
  day =          "10",
  month =        jun,
  year =         "1994",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ de Chile",
  affiliationaddress = "Santiago, Chile",
  classification = "721; 723; 921; C1250 (Pattern recognition); C4240
                 (Programming and algorithm theory)",
  conferenceyear = "1994",
  corpsource =   "Dept. de Ciencias de la Comput., Chile Univ.,
                 Santiago, Chile",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "algorithm theory; Algorithms; approximate pattern
                 matching; C (programming language); Data processing;
                 longest substring searching; Parallel processing
                 systems; Pattern matching; Pattern recognition; pattern
                 recognition; shift-or pattern-matching algorithm;
                 Single character searching (SCS); single character
                 searching methods; String searching; tuned Boyer--Moore
                 implementation",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Petersen:1994:RSM,
  author =       "H. Petersen",
  title =        "Refined simulation of multihead automata",
  journal =      j-INFO-PROC-LETT,
  volume =       "52",
  number =       "5",
  pages =        "229--233",
  day =          "9",
  month =        dec,
  year =         "1994",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q68",
  MRnumber =     "95j:68114",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Universitaet Hamburg",
  affiliationaddress = "Hamburg, Ger",
  classification = "721.1; 722.1; 723.5; C4220 (Automata theory); C4240C
                 (Computational complexity)",
  corpsource =   "Fachbereich Inf., Hamburg Univ., Germany",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "algorithms; Automata theory; automata theory;
                 complexity theory; Computational complexity;
                 computational complexity; computer science; Computer
                 simulation; Data storage equipment; Finite automata;
                 Formal languages; formal languages; input tape;
                 Magnetic tape; Multihead automata; multihead automata;
                 one-way models; refined simulation; String matching;
                 string-matching",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Phillips:1994:ASM,
  author =       "Thomas Phillips",
  title =        "Approximate String Matching",
  journal =      j-CUJ,
  volume =       "12",
  number =       "4",
  pages =        "77--??",
  month =        apr,
  year =         "1994",
  ISSN =         "0898-9788",
  bibdate =      "Fri Aug 30 16:52:23 MDT 1996",
  bibsource =    "http://www.cuj.com/cbklist.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "C Users Journal",
}

@Article{Prasad:1994:EEP,
  author =       "Sushil K. Prasad and Sajal K. Das and Calvin C.-Y.
                 Chen",
  title =        "Efficient {EREW PRAM} algorithms for
                 parentheses-matching",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "5",
  number =       "9",
  pages =        "995--1008",
  month =        sep,
  year =         "1994",
  CODEN =        "ITDSEO",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Fri Apr 11 15:20:39 MDT 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/ieeetranspardistsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Georgia State Univ",
  affiliationaddress = "Atlanta, GA, USA",
  classification = "722.1; 723.1; 723.2; 921.2; 921.5; C4240P (Parallel
                 programming and algorithm theory); C5440
                 (Multiprocessor systems and techniques); C6120 (File
                 organisation); C6130 (Data handling techniques)",
  corpsource =   "Dept. of Math. and Comput. Sci., Georgia State Univ.,
                 Atlanta, GA, USA",
  fjournal =     "IEEE Transactions on Parallel and Distributed
                 Systems",
  journal-URL =  "http://www.computer.org/tpds/archives.htm",
  journalabr =   "IEEE Trans Parallel Distrib Syst",
  keywords =     "access storage; algorithms; Algorithms; algorithms;
                 arrays; Computational complexity; computational
                 complexity; Data handling; Data structures; data
                 structures; EREW PRAM algorithms; exclusive-read and
                 exclusive-write; input string; Integral equations;
                 Optimal algorithms; Optimization; parallel; parallel
                 algorithms; parallel machines; Parallel processing
                 systems; parallel random-access machine; Parentheses
                 matching problem; parentheses-matching; Parsing;
                 pattern recognition; polylog-time; PRAM model; Random
                 access storage; random-; Sequential algorithms; space
                 complexity; Subroutines; time complexity; time-optimal;
                 working space",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Ramesh:1994:RMR,
  author =       "R. Ramesh",
  title =        "{R}${}^2$-{M}: a reconfigurable rewrite machine",
  journal =      j-PARALLEL-PROCESS-LETT,
  volume =       "4",
  number =       "1-2",
  pages =        "171--180",
  month =        jun,
  year =         "1994",
  CODEN =        "PPLTEE",
  ISSN =         "0129-6264",
  bibdate =      "Mon Apr 14 10:50:40 MDT 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/parallelprocesslett.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Texas at Dallas",
  affiliationaddress = "Richardson, TX, USA",
  classification = "721.1; 722.1; 722.4; 723.1; 723.2; 921.4; 921.6;
                 C4210 (Formal logic); C4240 (Programming and algorithm
                 theory); C5220P (Parallel architecture); C7310
                 (Mathematics)",
  corpsource =   "Dept. of Comput. Sci., Texas Univ., Dallas, TX, USA",
  countrypub =   "Singapore",
  fjournal =     "Parallel Processing Letters",
  journal-URL =  "http://www.worldscientific.com/loi/ppl",
  journalabr =   "Parallel Process Lett",
  keywords =     "architecture; Boolean algebra; Cellular arrays;
                 Computation theory; Computational complexity;
                 Computational methods; Computer architecture; Data
                 handling; Data processing; Data storage equipment;
                 fixed capacity auxiliary memory units; formula
                 manipulation; Function evaluation; nonprocedural
                 programming languages; Normalization; parallel;
                 parallel architectures; Parallel architectures;
                 parallel pattern matching; Parallel processing systems;
                 Pattern matching; proving; R$^2$M; reconfigurable
                 architectures; reconfigurable rewrite machine;
                 Reconfigurable rewrite machine; rewriting systems;
                 symbol manipulation; symbolic computations; term
                 rewriting; Term rewriting; theorem; theorem proving;
                 Theorem proving; Trees (mathematics)",
  treatment =    "P Practical",
}

@Article{RaoKosaraju:1994:CSS,
  author =       "S. {Rao Kosaraju}",
  title =        "Computation of Squares in a String",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "146--150",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Sahinalp:1994:PAM,
  author =       "S. C. Sahinalp and U. Vishkin",
  title =        "On a Parallel-Algorithms Method for String Matching
                 Problems",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "778",
  pages =        "22--??",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:52:14 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Sakakibara:1994:RMR,
  author =       "Y. Sakakibara and M. Brown and R. Hughey and I. S.
                 Mian",
  title =        "Recent Methods for {RNA} Modeling Using Stochastic
                 Context-Free Grammars",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "289--306",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Sanchez-Couso:1994:ACA,
  author =       "J. R. Sanchez-Couso and M. I. Fernandez-Camacho",
  title =        "Average-case Analysis of Pattern-Matching in Trees
                 under the {BST} Probability Model",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "820",
  pages =        "178--??",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:52:14 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Senoussi:1994:QAT,
  author =       "H. Senoussi and A. Saoudi",
  title =        "A quadtree algorithm for template matching on a
                 pyramid computer",
  journal =      j-THEOR-COMP-SCI,
  volume =       "136",
  number =       "2",
  pages =        "387--417",
  day =          "29",
  month =        dec,
  year =         "1994",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:18:42 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1994&volume=136&issue=2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1990.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1994&volume=136&issue=2&aid=1661",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C1250 (Pattern
                 recognition); C4240C (Computational complexity)",
  corpsource =   "LIPN, Univ. de Paris-Nord, Villetaneuse, France",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "computational complexity; pattern matching; pyramid
                 computer; quadtree algorithm; quadtrees; template
                 matching; time complexity",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Sheng:1994:PMB,
  author =       "Ke-Ning Sheng and Joseph I. Naus",
  title =        "Pattern matching between two non-aligned random
                 sequences",
  journal =      j-BULL-MATH-BIOL,
  volume =       "56",
  number =       "6",
  pages =        "1143--1162",
  month =        nov,
  year =         "1994",
  CODEN =        "BMTBAP",
  DOI =          "https://doi.org/10.1007/BF02460290",
  ISSN =         "0092-8240 (print), 1522-9602 (electronic)",
  ISSN-L =       "0092-8240",
  bibdate =      "Wed Jun 28 16:16:34 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/bullmathbiol.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/BF02460290",
  acknowledgement = ack-nhfb,
  fjournal =     "Bulletin of Mathematical Biology",
  journal-URL =  "http://link.springer.com/journal/11538",
}

@Article{Simon:1994:SMA,
  author =       "I. Simon",
  title =        "String Matching Algorithms and Automata",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "812",
  pages =        "386--395",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "important results; TCS; theoretical computer science",
}

@Article{Siromoney:1994:ILW,
  author =       "Rani Siromoney and Lisa Mathew and V. R. Dare and K.
                 G. Subramanian",
  title =        "Infinite {Lyndon} words",
  journal =      j-INFO-PROC-LETT,
  volume =       "50",
  number =       "2",
  pages =        "101--104",
  day =          "22",
  month =        apr,
  year =         "1994",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q45 (68R15)",
  MRnumber =     "95f:68129",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Madras Christian Coll",
  affiliationaddress = "Madras, India",
  classification = "721.1; 723.1; 921.4; 922.1; C4210 (Formal logic);
                 C4220 (Automata theory)",
  conferenceyear = "1994",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Algorithms; Automata theory; automata theory; Cantor
                 space; Factorization; Formal languages; formal
                 languages; Homeomorphism; homeomorphism; infinite
                 Lyndon word; Infinite words; Lyndon words; Pattern
                 matching; Pattern recognition; prefix preserving Lyndon
                 words; Queue automata; queue automaton; Queueing
                 theory; Set theory; topological properties; Topology",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Smith:1994:TBM,
  author =       "P. D. Smith",
  title =        "On Tuning the {Boyer--Moore--Horspool} String
                 Searching Algorithm",
  journal =      j-SPE,
  volume =       "24",
  number =       "4",
  pages =        "435--436",
  month =        apr,
  year =         "1994",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380240408",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "algorithm design; Boyer--Moore string searching",
  onlinedate =   "30 Oct 2006",
}

@Book{Stephen:1994:SSA,
  author =       "Graham A. Stephen",
  title =        "String Searching Algorithms",
  volume =       "3",
  publisher =    pub-WORLD-SCI,
  address =      pub-WORLD-SCI:adr,
  pages =        "xii + 243",
  year =         "1994",
  ISBN =         "981-02-1829-X (hardcover)",
  ISBN-13 =      "978-981-02-1829-4 (hardcover)",
  LCCN =         "QA76.9.A43 S73 1994",
  bibdate =      "Sat Jul 14 17:06:23 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       "Lecture notes series on computing",
  abstract =     "String searching is a subject of both theoretical and
                 practical interest in computer science. This book
                 presents a bibliographic overview of the field and an
                 anthology of detailed descriptions of the principal
                 algorithms available. The aim is twofold: on the one
                 hand, to provide an easy-to-read comparison of the
                 available techniques in each area, and on the other, to
                 furnish the reader with a reference to in-depth
                 descriptions of the major algorithms. Topics covered
                 include methods for finding exact and approximate o
                 string matches, calculating `edit' distances between
                 strings, finding common \ldots{}",
  acknowledgement = ack-nhfb,
  libnote =      "Not yet in my library.",
  tableofcontents = "1: Introduction \\
                 2: String Matching \\
                 3: String Distance and Common Sequences \\
                 4: Suffix Trees \\
                 5: Approximate String Matching \\
                 6: Repeated Substrings \\
                 A: Asymptotic Notation \\
                 B: String Symbology",
}

@Article{Takaoka:1994:APM,
  author =       "T. Takaoka",
  title =        "Approximate Pattern Matching with Samples",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "834",
  pages =        "234--??",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 13 11:52:14 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Tang:1994:MMN,
  author =       "S. Tang and K. Zhang and X. Wu",
  title =        "Matching with Matrix Norm Minimization",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "807",
  pages =        "250--258",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "combinatorial pattern matching; CPM",
}

@Article{Wagman:1994:UIM,
  author =       "D. Wagman and M. Schneider and E. Shnaider",
  title =        "On the use of interval mathematics in fuzzy expert
                 systems",
  journal =      j-INT-J-INTELL-SYSTEMS,
  volume =       "9",
  number =       "2",
  pages =        "241--259",
  month =        feb,
  year =         "1994",
  CODEN =        "IJISED",
  ISSN =         "0884-8173 (print), 1098-111x (electronic)",
  ISSN-L =       "0884-8173",
  bibdate =      "Thu Dec 14 17:23:52 MST 1995",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Fuzzy expert systems attempt to model the cognitive
                 processes of human experts. They accomplish this by
                 capturing knowledge in the form of linguistic
                 propositions. Real-world problems dictate the need to
                 include mathematical knowledge as well. Pattern
                 matching is a critical part of the inference procedure
                 in expert systems. Matches are made between data
                 clauses, premise clauses, and conclusion clauses,
                 forming an inference chain. Preprocessing the clauses
                 may generate intervals of real numbers which are
                 compared in the fuzzy matching algorithm. These same
                 intervals may be used in arithmetic expressions. The
                 purpose of this article is to devise a method for
                 incorporating arithmetic expressions into inference
                 process of fuzzy expert systems. Interval arithmetic is
                 used to evaluate these expressions. Logical relations
                 between intervals are analyzed using probability
                 theory.",
  acknowledgement = ack-nhfb,
  affiliation =  "Harris Gov. Aerosp. Syst. Div., Melbourne, FL, USA",
  classification = "C1140 (Probability and statistics); C1230
                 (Artificial intelligence); C4210 (Formal logic); C6170
                 (Expert systems)",
  fjournal =     "International Journal of Intelligent Systems",
  keywords =     "Cognitive process; Conclusion clauses; Data clauses;
                 Fuzzy expert systems; Fuzzy matching algorithm; Human
                 experts; Inference procedure; Interval arithmetic;
                 Interval mathematics; Knowledge capture; Linguistic
                 proposition; Logical relations; Mathematical knowledge;
                 Pattern matching; Premise clauses; Probability theory",
  pubcountry =   "USA",
  thesaurus =    "Expert systems; Fuzzy logic; Inference mechanisms;
                 Knowledge acquisition; Probability; Uncertainty
                 handling",
}

@InProceedings{Wang:1994:CPDa,
  author =       "Jason Tsong-Li Wang and Gung-Wei Chirn and Thomas G.
                 Marr and Bruce Shapiro and Dennis Shasha and Kaizhong
                 Zhang",
  title =        "Combinatorial pattern discovery for scientific data:
                 some preliminary results",
  crossref =     "Snodgrass:1994:PAS",
  pages =        "115--125",
  year =         "1994",
  bibdate =      "Wed Oct 25 12:40:13 MDT 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/mod/191839/p115-wang/p115-wang.pdf;
                 http://www.acm.org/pubs/citations/proceedings/mod/191839/p115-wang/",
  abstract =     "Suppose you are given a set of natural entities (e.g.,
                 proteins, organisms, weather patterns, etc.) that
                 possess some important common externally observable
                 properties. You also have a structural description of
                 the entities (e.g., sequence, topological, or
                 geometrical data) and a distance metric. Combinatorial
                 pattern discovery is the activity of finding patterns
                 in the structural data that might explain these common
                 properties based on the metric. \par

                 This paper presents an example of combinatorial pattern
                 discovery: the discovery of patterns in protein
                 databases. The structural representation we consider
                 are strings and the distance metric is string edit
                 distance permitting variable length don't cares. Our
                 techniques incorporate string matching algorithms and
                 novel heuristics for discovery and optimization, most
                 of which generalize to other combinatorial structures.
                 Experimental results of applying the techniques to both
                 generated data and functionally related protein
                 families obtained from the Cold Spring Harbor
                 Laboratory show the effectiveness of the proposed
                 techniques. When we apply the discovered patterns to
                 perform protein classification, they give information
                 that is complementary to the best protein classifier
                 available today.",
  acknowledgement = ack-nhfb,
  generalterms = "Algorithms; Experimentation; Measurement;
                 Performance",
  subject =      "Information Systems --- Database Management ---
                 Systems (H.2.4): {\bf Query processing}; Theory of
                 Computation --- Analysis of Algorithms and Problem
                 Complexity --- Nonnumerical Algorithms and Problems
                 (F.2.2): {\bf Pattern matching}; Computer Applications
                 --- Life and Medical Sciences (J.3): {\bf Biology and
                 genetics}; Data --- Data Structures (E.1): {\bf Trees};
                 Mathematics of Computing --- Discrete Mathematics ---
                 Combinatorics (G.2.1)",
}

@Article{Wang:1994:CPDb,
  author =       "Jason Tsong-Li Wang and Gung-Wei Chirn and Thomas G.
                 Marr and Bruce Shapiro and Dennis Shasha and Kaizhong
                 Zhang",
  title =        "Combinatorial Pattern Discovery for Scientific Data:
                 Some Preliminary Results",
  journal =      j-SIGMOD,
  volume =       "23",
  number =       "2",
  pages =        "115--125",
  month =        jun,
  year =         "1994",
  CODEN =        "SRECD8",
  ISSN =         "0163-5808 (print), 1943-5835 (electronic)",
  ISSN-L =       "0163-5808",
  bibdate =      "Mon Jan 12 08:45:48 MST 2004",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigmod.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. and Inf. Sci., New Jersey Inst. of
                 Technol., Newark, NJ, USA",
  classification = "C1160 (Combinatorial mathematics); C1180
                 (Optimisation techniques); C1250 (Pattern recognition);
                 C7330 (Biology and medicine)",
  fjournal =     "SIGMOD Record (ACM Special Interest Group on
                 Management of Data)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J689",
  keywords =     "Combinatorial pattern discovery; Common externally
                 observable properties; Data mining; Discovery
                 heuristics; Distance metric; Natural entities;
                 Optimization heuristics; Protein classification;
                 Protein databases; Scientific data; String edit
                 distance; String matching algorithms; Structural
                 description; Variable-length don't cares",
  thesaurus =    "Biology computing; Combinatorial mathematics; Natural
                 sciences computing; Optimisation; Pattern recognition;
                 Proteins",
  xxcrossref =   "Anonymous:1994:ASI",
}

@MastersThesis{Weatherford:1994:HLP,
  author =       "Stephen Andrew Weatherford",
  title =        "High-level pattern-matching extensions to {C++} for
                 {Fortran} Program Manipulation in {Polaris}",
  type =         "Thesis (M.S)",
  school =       "University of Illinois at Urbana-Champaign",
  address =      "Urbana, IL, USA",
  pages =        "viii + 104",
  year =         "1994",
  bibdate =      "Sat Jan 27 13:40:57 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fortran3.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Weber:1994:APP,
  author =       "G. Weber and L. Knipping and H. Alt",
  title =        "An Application of Point Pattern Matching in
                 Astronautics",
  journal =      j-J-SYMBOLIC-COMP,
  volume =       "17",
  number =       "4",
  pages =        "321--340",
  month =        apr,
  year =         "1994",
  CODEN =        "JSYCEH",
  ISSN =         "0747-7171 (print), 1095-855X (electronic)",
  ISSN-L =       "0747-7171",
  bibdate =      "Wed Mar 19 13:51:24 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsymcomp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C7350 (Astronomy and astrophysics); C1250 (Pattern
                 recognition); C4260 (Computational geometry)",
  corpsource =   "Inst. fur Inf., Freie Univ., Berlin, Germany",
  fjournal =     "Journal of Symbolic Computation",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07477171",
  keywords =     "astronautics; astronomy computing; computational
                 geometry; constellations; incremental Delaunay
                 triangulation; pattern; point pattern matching;
                 recognition; satellite attitude determination; Special
                 Issue on Algorithms: Implementation, Libraries and Use;
                 star field sensors",
  treatment =    "A Application; P Practical",
}

@Article{Wright:1994:ASM,
  author =       "Alden H. Wright",
  title =        "Approximate String Matching using Within-word
                 Parallelism",
  journal =      j-SPE,
  volume =       "24",
  number =       "4",
  pages =        "337--362",
  month =        apr,
  year =         "1994",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "approximate string matching; approximate string
                 searching; DNA sequence matching; edit distance;
                 parallel algorithm; parallel computation;
                 pseudo-parallelism",
}

@Article{Akutsu:1995:ASM,
  author =       "Tatsuya Akutsu",
  title =        "Approximate string matching with don't care
                 characters",
  journal =      j-INFO-PROC-LETT,
  volume =       "55",
  number =       "5",
  pages =        "235--239",
  day =          "15",
  month =        sep,
  year =         "1995",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q20",
  MRnumber =     "96d:68079",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory); C6130
                 (Data handling techniques)",
  corpsource =   "Dept. of Comput. Sci., Gunma Univ., Japan",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  keywords =     "approximate string matching; don't care characters; k-
                 differences problem; pattern string; string matching;
                 text string",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Antimirov:1995:PDR,
  author =       "V. Antimirov",
  title =        "Partial Derivatives of Regular Expressions and Finite
                 Automata Constructions",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "900",
  pages =        "455--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Antimirov:1995:RER,
  author =       "Valentin M. Antimirov and Peter D. Mosses",
  title =        "Rewriting extended regular expressions",
  journal =      j-THEOR-COMP-SCI,
  volume =       "143",
  number =       "1",
  pages =        "51--72",
  day =          "29",
  month =        may,
  year =         "1995",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:19:06 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1995&volume=143&issue=1;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1995&volume=143&issue=1&aid=1726",
  acknowledgement = ack-nhfb,
  classification = "C1230 (Artificial intelligence); C4210L (Formal
                 languages and computational linguistics); C6170K
                 (Knowledge engineering techniques)",
  corpsource =   "CRIN, Inst. Nat. de Recherche en Inf. et Autom.,
                 Villers-les-Nancy, France",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "complete Horn-equational axiomatization; distributive
                 lattice; extended algebra; extended regular expressions
                 rewriting; Horn clauses; inference mechanisms;
                 intersection; logical inferences; monotonic operations;
                 regular events; rewriting systems; term-rewriting
                 techniques; valid equations",
  pubcountry =   "Netherlands",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Boyer:1995:BMT,
  author =       "R. S. Boyer and M. Kaufmann and J. S. Moore",
  title =        "The {Boyer--Moore} theorem prover and its interactive
                 enhancement",
  journal =      j-COMPUT-MATH-APPL,
  volume =       "29",
  number =       "2",
  pages =        "27--62",
  month =        jan,
  year =         "1995",
  CODEN =        "CMAPDK",
  ISSN =         "0898-1221 (print), 1873-7668 (electronic)",
  ISSN-L =       "0898-1221",
  bibdate =      "Wed Mar 1 19:11:26 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computmathappl1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/0898122194002157",
  acknowledgement = ack-nhfb,
  fjournal =     "Computers and Mathematics with Applications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/08981221",
}

@Article{Brazma:1995:LRE,
  author =       "A. Brazma",
  title =        "Learning of regular expressions by pattern matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "904",
  pages =        "392--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Breslauer:1995:ESM,
  author =       "D. Breslauer and L. Gasieniec",
  title =        "Efficient String Matching on Coded Texts",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "937",
  pages =        "27--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Breslauer:1995:FPS,
  author =       "Dany Breslauer",
  title =        "Fast parallel string prefix-matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "137",
  number =       "2",
  pages =        "269--278",
  day =          "23",
  month =        jan,
  year =         "1995",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:18:46 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1995&volume=137&issue=2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1995&volume=137&issue=2&aid=1811",
  acknowledgement = ack-nhfb,
  classification = "C4240P (Parallel programming and algorithm theory);
                 C6130 (Data handling techniques)",
  corpsource =   "Dept. of Comput. Sci., Aarhus Univ., Denmark",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "CRCW-PRAM algorithm; KMP failure function; parallel
                 algorithms; parallel string prefix-matching; string
                 matching",
  pubcountry =   "Netherlands",
  treatment =    "P Practical",
}

@Article{Bunke:1995:FAM,
  author =       "H. Bunke",
  title =        "Fast Approximate Matching of Words Against a
                 Dictionary",
  journal =      j-COMPUTING,
  volume =       "55",
  number =       "1",
  pages =        "75--89",
  month =        mar,
  year =         "1995",
  CODEN =        "CMPTA2",
  ISSN =         "0010-485X (print), 1436-5057 (electronic)",
  ISSN-L =       "0010-485X",
  MRclass =      "68Q20 (90C39)",
  MRnumber =     "96f:68050",
  bibdate =      "Fri Oct 15 15:40:49 MDT 1999",
  bibsource =    "Compendex database;
                 http://springerlink.metapress.com/openurl.asp?genre=journal&issn=0010-485X;
                 http://www.springer.at/springer.py?Page=40&Key=362&cat=3&id_journal=8;
                 https://www.math.utah.edu/pub/tex/bib/computing.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database; OCLC Contents1st database",
  URL =          "http://www.springer.at/springer.py?Page=10&Key=362&cat=300607/tocs/springer.py?Page=47&Key=340&cat=3&id_abstract=265&id_volume=21&id_journal=8",
  acknowledgement = ack-nhfb,
  classification = "721.1; 723.1; 723.2; 903.2; 903.3",
  fjournal =     "Computing",
  journal-URL =  "http://link.springer.com/journal/607",
  journalabr =   "Comput Vienna New York",
  keywords =     "Algorithms; Character sets; Computational methods;
                 Data processing; Dictionary lookup; Finite automata;
                 Finite state automaton; Information retrieval; Natural
                 language processing systems; Nearest neighbor search;
                 String edit distance; String matching; Terminology",
}

@Article{Bunke:1995:IAC,
  author =       "H. Bunke and J. Csirik",
  title =        "An improved algorithm for computing the edit distance
                 of run-length coded strings",
  journal =      j-INFO-PROC-LETT,
  volume =       "54",
  number =       "2",
  pages =        "93--96",
  day =          "28",
  month =        apr,
  year =         "1995",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C4240C (Computational complexity); C6130 (Data
                 handling techniques)",
  corpsource =   "Inst. f{\"u}r Informatik and Angewandte Math., Bern,
                 Switzerland",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  keywords =     "computational complexity; cost function; edit distance
                 computing; encoding; run-length coded strings; set-set
                 longest common subsequence problem; string matching",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@InProceedings{Chen:1995:FPM,
  author =       "Shenfeng Chen and J. H. Reif",
  title =        "Fast pattern matching for entropy bounded text",
  crossref =     "Storer:1995:DDC",
  pages =        "282--291",
  year =         "1995",
  DOI =          "https://doi.org/10.1109/DCC.1995.515518",
  bibdate =      "Tue Feb 5 07:37:21 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=515518",
  acknowledgement = ack-nhfb,
}

@InProceedings{Chen:1995:STP,
  author =       "Tzer-Shyong Chen and Feipei Lai and Rung-Ji Shang",
  title =        "A simple tree pattern matching algorithm for code
                 generator",
  crossref =     "IEEE:1995:PNA",
  pages =        "162--167",
  month =        "",
  year =         "1995",
  LCCN =         "????",
  bibdate =      "Wed Oct 30 05:42:27 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This paper describes a simple tree pattern matching
                 algorithm for the code generator of compilers. The
                 intermediate code (Register Transfer Language) is
                 matched with the tree-rewriting rules of the
                 instruction description which describes the target
                 architecture to generate the assembly code. The hashing
                 function is used in our system to transform a tree
                 pattern matching problem into a simple number
                 comparison. Compared with GNU C compiler (gcc), the
                 tree pattern matching time can be reduced by 69\% and
                 the compiler time by 6\%, and the space of the
                 instruction descriptions can be reduced by 4.10 times
                 on DLX and 2.14 on SPARC. The size of table, which is
                 necessary for the code generator, is quite small in our
                 method.",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Electr. Eng., Nat. Taiwan Univ., Taipei,
                 Taiwan",
  classification = "C4240 (Programming and algorithm theory); C6120
                 (File organisation); C6150C (Compilers, interpreters
                 and other processors)",
  keywords =     "Assembly code; Code generator; Compiler generator;
                 Compiler time; DLX; GNU C compiler; Hashing function;
                 Instruction description; Register Transfer Language;
                 SPARC; Tree pattern matching algorithm; Tree pattern
                 matching time; Tree-rewriting rules",
  thesaurus =    "Assembly language; Compiler generators; File
                 organisation; Pattern matching; Tree searching",
}

@Article{Chew:1995:GPM,
  author =       "L. P. Chew and D. Dor and A. Efrat and K. Kedem",
  title =        "Geometric Pattern Matching in $d$-Dimensional Space",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "979",
  pages =        "264--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Cho:1995:LHC,
  author =       "J.-W. Cho and S.-Y. Lee and C. H. Park",
  title =        "On-line Handwritten Character Recognition by a Hybrid
                 Method based on Neural Networks and Pattern Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "930",
  pages =        "926--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Choi:1995:TDP,
  author =       "Y. Choi and T. W. Lam",
  title =        "Two-Dimensional Pattern Matching on a Dynamic Library
                 of Texts",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "959",
  pages =        "530--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Chung:1995:FSM,
  author =       "K.-L. Chung",
  title =        "Fast String Matching Algorithms for Run-Length Coded
                 Strings",
  journal =      j-COMPUTING,
  volume =       "54",
  number =       "2",
  pages =        "119--125",
  month =        jun,
  year =         "1995",
  CODEN =        "CMPTA2",
  ISSN =         "0010-485X (print), 1436-5057 (electronic)",
  ISSN-L =       "0010-485X",
  MRclass =      "68Q20 (68Q22 90C39)",
  MRnumber =     "95m:68069",
  bibdate =      "Fri Oct 15 15:40:43 MDT 1999",
  bibsource =    "Compendex database;
                 http://springerlink.metapress.com/openurl.asp?genre=journal&issn=0010-485X;
                 http://www.springer.at/springer.py?Page=40&Key=362&cat=3&id_journal=8;
                 https://www.math.utah.edu/pub/tex/bib/computing.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database; OCLC Contents1st database",
  URL =          "http://www.springer.at/springer.py?Page=10&Key=362&cat=300607/tocs/springer.py?Page=47&Key=340&cat=3&id_abstract=244&id_volume=18&id_journal=8",
  acknowledgement = ack-nhfb,
  classification = "723.1; 723.2; 723.5",
  fjournal =     "Computing",
  journal-URL =  "http://link.springer.com/journal/607",
  journalabr =   "Comput Vienna New York",
  keywords =     "Algorithms; Data processing; Encoding (symbols);
                 Knuth--Morris--Pratt algorithm; Parallel algorithms;
                 Pattern recognition; Reconfigurable bus system; Run
                 length coded strings; Sequential algorithm; String
                 matching; Two dimensional mesh",
}

@Article{Cole:1995:TLB,
  author =       "Richard Cole and Ramesh Hariharan and Mike Paterson
                 and Uri Zwick",
  title =        "Tighter Lower Bounds on the Exact Complexity of String
                 Matching",
  journal =      j-SIAM-J-COMPUT,
  volume =       "24",
  number =       "1",
  pages =        "30--45",
  month =        feb,
  year =         "1995",
  CODEN =        "SMJCAT",
  DOI =          "https://doi.org/10.1137/S0097539793245829",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68Q25 (68R15 68U15)",
  MRnumber =     "96c:68084",
  MRreviewer =   "Helmut Alt",
  bibdate =      "Mon Nov 29 11:02:36 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/24/1;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://epubs.siam.org/sam-bin/dbq/article/24582",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@InProceedings{Consens:1995:AQT,
  author =       "Mariano P. Consens and Tova Milo",
  title =        "Algebras for querying text regions (extended
                 abstract)",
  crossref =     "ACM:1995:PPF",
  pages =        "11--22",
  year =         "1995",
  bibdate =      "Wed Oct 25 08:47:41 MDT 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pods/212433/p11-consens/p11-consens.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pods/212433/p11-consens/;
                 http://www.acm.org:80/pubs/citations/proceedings/pods/212433/p11-consens/",
  acknowledgement = ack-nhfb,
  annote =       "Held in conjunction with the 1995 ACM SIGMOD
                 international conference on management of data; Also
                 known as PODS 1995",
  keywords =     "ACM; database systems; documentation; languages;
                 performance; SIGACT; theory",
  subject =      "{\bf I.5.4} Computing Methodologies, PATTERN
                 RECOGNITION, Applications, Text processing. {\bf H.2.3}
                 Information Systems, DATABASE MANAGEMENT, Languages,
                 Query languages. {\bf F.2.2} Theory of Computation,
                 ANALYSIS OF ALGORITHMS AND PROBLEM COMPLEXITY,
                 Nonnumerical Algorithms and Problems, Pattern matching.
                 {\bf H.3.1} Information Systems, INFORMATION STORAGE
                 AND RETRIEVAL, Content Analysis and Indexing, Indexing
                 methods. {\bf I.1.0} Computing Methodologies, SYMBOLIC
                 AND ALGEBRAIC MANIPULATION, General.",
}

@Article{Corradini:1995:FAM,
  author =       "F. Corradini and R. {De Nicola} and A. Labella",
  title =        "Fully Abstract Models for Nondeterministic Regular
                 Expressions",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "962",
  pages =        "130--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Crochemore:1995:LTA,
  author =       "M. Crochemore and W. Rytter",
  title =        "On Linear-Time Alphabet-Independent $2$-Dimensional
                 Pattern Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "911",
  pages =        "220--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Crochemore:1995:SCT,
  author =       "Maxime Crochemore and Wojciech Rytter",
  title =        "Squares, Cubes, and Time-Space Efficient String
                 Searching",
  journal =      j-ALGORITHMICA,
  volume =       "13",
  number =       "5",
  pages =        "405--425",
  year =         "1995",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68Q20 (68Q25 68R15)",
  MRnumber =     "MR1323898 (96d:68080)",
  bibdate =      "Mon Jan 22 05:26:15 MST 2001",
  bibsource =    "dblp-journals-algorithmica.bib;
                 http://dblp.uni-trier.de/db/journals/algorithmica/algorithmica13.html#CrochemoreR95;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
  oldlabel =     "CrochemoreR95",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/algorithmica/CrochemoreR95",
}

@Article{Crochemore:1995:TDP,
  author =       "M. Crochemore and L. Gasieniec and W. Plandowski and
                 W. Rytter",
  title =        "Two-Dimensional Pattern Matching in Linear Time and
                 Small Space",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "900",
  pages =        "181--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{deRezende:1995:PSP,
  author =       "P. J. de Rezende and D. T. Lee",
  title =        "Point set pattern matching in {$d$}-dimensions",
  journal =      j-ALGORITHMICA,
  volume =       "13",
  number =       "4",
  pages =        "387--404",
  year =         "1995",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68T10 (52B55 68U05)",
  MRnumber =     "MR1318312 (96c:68173)",
  MRreviewer =   "Hans-Dietrich Hecker",
  bibdate =      "Mon Jan 22 05:34:09 MST 2001",
  bibsource =    "dblp-journals-algorithmica.bib;
                 http://dblp.uni-trier.de/db/journals/algorithmica/algorithmica13.html#RezendeL95;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
  oldlabel =     "RezendeL95",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/algorithmica/RezendeL95",
}

@Article{Dermouche:1995:FAS,
  author =       "A. Dermouche",
  title =        "A fast algorithm for string matching with mismatches",
  journal =      j-INFO-PROC-LETT,
  volume =       "55",
  number =       "2",
  pages =        "105--110",
  day =          "21",
  month =        jul,
  year =         "1995",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68R15 (68Q20 68U15)",
  MRnumber =     "1 344 788",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory); C6130
                 (Data handling techniques)",
  corpsource =   "Dept. of Comput. Sci., Glasgow Univ., UK",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  keywords =     "algorithm theory; alignments; errors; fast algorithm;
                 information retrieval; mismatches; numerical approach;
                 pattern matching; string matching; text searching; wild
                 cards",
  treatment =    "T Theoretical or Mathematical",
}

@InProceedings{Dubois:1995:EP,
  author =       "Catherine Dubois and Fran{\c{c}}ois Rouaix and Pierre
                 Weis",
  title =        "Extensional polymorphism",
  crossref =     "ACM:1995:CRP",
  pages =        "118--129",
  year =         "1995",
  bibdate =      "Mon May 3 12:52:30 MDT 1999",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/plan/199448/p118-dubois/",
  abstract =     "We present the extensional polymorphism, a framework
                 to type check ad hoc polymorphic functions. This
                 formalism is compatible with parametric polymorphism,
                 and supports a large class of functions defined by
                 structural pattern matching on types.",
  acknowledgement = ack-nhfb,
  keywords =     "algorithms; languages; verification",
  subject =      "{\bf D.3.3} Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Procedures, functions, and
                 subroutines. {\bf F.3.3} Theory of Computation, LOGICS
                 AND MEANINGS OF PROGRAMS, Studies of Program
                 Constructs, Functional constructs. {\bf F.3.3} Theory
                 of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Studies of Program Constructs, Type structure. {\bf
                 D.2.5} Software, SOFTWARE ENGINEERING, Testing and
                 Debugging. {\bf D.3.2} Software, PROGRAMMING LANGUAGES,
                 Language Classifications, ML.",
}

@InProceedings{Einwohner:1995:STI,
  author =       "T. H. Einwohner and Richard J. Fateman",
  title =        "Searching techniques for integral tables",
  crossref =     "Levelt:1995:IPI",
  pages =        "133--139",
  year =         "1995",
  bibdate =      "Thu Mar 12 08:42:30 MST 1998",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/issac.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/issac/220346/p133-einwohner/",
  abstract =     "We describe the design of data structures and a
                 computer program for storing a table of symbolic
                 indefinite or definite integrals and retrieving
                 user-requested integrals on demand. Typical times are
                 so short that a preliminary look-up attempt prior to
                 any algorithmic integration approach seems justified.
                 In one such test for a table with around 700 entries,
                 matches were found requiring an average of 2.8
                 milliseconds per request, on a Hewlett Packard 9000/712
                 workstation.",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Electr. Eng. and Comput. Sci., California
                 Univ., Berkeley, CA, USA",
  classification = "C4160 (Numerical integration and differentiation);
                 C6130 (Data handling techniques); C7310 (Mathematics
                 computing)",
  keywords =     "algebraic computation; Algorithmic integration, ISSAC;
                 algorithms; Data structures; design; Integral tables;
                 performance; symbolic computation; Symbolic indefinite
                 integrals",
  subject =      "{\bf I.1.2} Computing Methodologies, SYMBOLIC AND
                 ALGEBRAIC MANIPULATION, Algorithms, Algebraic
                 algorithms. {\bf I.1.3} Computing Methodologies,
                 SYMBOLIC AND ALGEBRAIC MANIPULATION, Languages and
                 Systems. {\bf F.2.2} Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Pattern matching. {\bf F.2.2}
                 Theory of Computation, ANALYSIS OF ALGORITHMS AND
                 PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Sorting and searching.",
  thesaurus =    "Data structures; Integration; Symbol manipulation;
                 Table lookup",
}

@Article{Eker:1995:ACM,
  author =       "S. M. Eker",
  title =        "Associative-Commutative Matching Via Bipartite Graph
                 Matching",
  journal =      j-COMP-J,
  volume =       "38",
  number =       "5",
  pages =        "381--399",
  month =        "????",
  year =         "1995",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/38.5.381",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Tue Dec 4 14:48:45 MST 2012",
  bibsource =    "http://comjnl.oxfordjournals.org/content/38/5.toc;
                 http://www3.oup.co.uk/computer_journal/Volume_38/Issue_05/Vol38_05.index.html;
                 https://www.math.utah.edu/pub/tex/bib/compj.bib;
                 https://www.math.utah.edu/pub/tex/bib/compj1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/38/5/381.full.pdf+html;
                 http://www3.oup.co.uk/computer_journal/Volume_38/Issue_05/Vol38_05.body.html#AbstractEker",
  acknowledgement = ack-nhfb,
  affiliation =  "INRIA Lorraine, Villers-les-Nancy, France",
  classcodes =   "C4210L (Formal languages and computational
                 linguistics); C1160 (Combinatorial mathematics); C1180
                 (Optimisation techniques); C4240 (Programming and
                 algorithm theory); C1250 (Pattern recognition)",
  classification = "C1160 (Combinatorial mathematics); C1180
                 (Optimisation techniques); C1250 (Pattern recognition);
                 C4210L (Formal languages and computational
                 linguistics); C4240 (Programming and algorithm
                 theory)",
  corpsource =   "INRIA Lorraine, Villers-les-Nancy, France",
  email-1 =      "eker@CSI.Sri.com",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  keywords =     "associative commutative; Associative commutative;
                 associative-commutative matching;
                 Associative-commutative matching; bipartite graph
                 matching; Bipartite graph matching; complete; Complete
                 matching substitutions; exhaustive search; Exhaustive
                 search; free function symbol; Free function symbol;
                 function symbols; Function symbols; graph matching
                 problems; Graph matching problems; graph theory;
                 matching substitutions; non pathological; Non
                 pathological problem instances; pattern matching;
                 problem instances; problems; rewriting systems; search;
                 search space; Search space; semi pure AC; Semi pure AC
                 systems; systems; term matching; Term matching;
                 variable assignments; Variable assignments",
  thesaurus =    "Graph theory; Pattern matching; Rewriting systems;
                 Search problems",
  treatment =    "T Theoretical or Mathematical",
}

@InProceedings{Farach:1995:SML,
  author =       "Martin Farach and Mikkel Thorup",
  title =        "String matching in {Lempel--Ziv} compressed strings",
  crossref =     "ACM:1995:PTS",
  pages =        "703--712",
  year =         "1995",
  bibdate =      "Wed Feb 20 18:34:02 MST 2002",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/stoc/;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/stoc/225058/p703-farach/p703-farach.pdf;
                 http://www.acm.org/pubs/citations/proceedings/stoc/225058/p703-farach/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Ferragina:1995:FDD,
  author =       "Paolo Ferragina and Roberto Grossi",
  title =        "A fully-dynamic data structure for external substring
                 search",
  crossref =     "ACM:1995:PTS",
  pages =        "693--702",
  year =         "1995",
  bibdate =      "Wed Feb 20 18:34:02 MST 2002",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/stoc/;
                 https://www.math.utah.edu/pub/tex/bib/stoc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/stoc/225058/p693-ferragina/p693-ferragina.pdf;
                 http://www.acm.org/pubs/citations/proceedings/stoc/225058/p693-ferragina/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Ferragina:1995:OLS,
  author =       "P. Ferragina and R. Grossi",
  title =        "Optimal on-line search and sublinear time update in
                 string matching",
  crossref =     "IEEE:1995:ASF",
  pages =        "604--612",
  year =         "1995",
  bibdate =      "Thu Apr 5 06:13:51 MDT 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Fricker:1995:ICI,
  author =       "Christine Fricker and Olivier Temam and William
                 Jalby",
  title =        "Influence of Cross-Interferences on Blocked Loops: a
                 Case Study with Matrix-Vector Multiply",
  journal =      j-TOPLAS,
  volume =       "17",
  number =       "4",
  pages =        "561--575",
  month =        jul,
  year =         "1995",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/210185.html",
  abstract =     "State-of-the art data locality optimizing algorithms
                 are targeted for local memories rather than for cache
                 memories. Recent work on cache interferences seems to
                 indicate that these phenomena can severely affect
                 blocked algorithms cache performance. Because of cache
                 conflicts, it is not possible to know the precise gain
                 brought by blocking. It is even difficult to determine
                 for which problem sizes blocking is useful. Computing
                 the actual optimal block size is difficult because
                 cache conflicts are highly irregular. In this article,
                 we illustrate the issue of precisely evaluating
                 cross-interferences in blocked loops with blocked
                 matrix-vector multiply. Most significant interference
                 phenomena are captured because unusual parameters such
                 as array base addresses are being considered. The
                 techniques used allow us to compute the precise
                 improvement due to blocking and the threshold value of
                 problem parameters for which the blocked loop should be
                 preferred. It is also possible to derive an expression
                 of the optimal block size as a function of problem
                 parameters. Finally, it is shown that a precise rather
                 than an approximate evaluation of cache conflicts is
                 sometimes necessary to obtain near-optimal
                 performance.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "measurement; performance",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf C.4}: Computer Systems
                 Organization, PERFORMANCE OF SYSTEMS, Modeling
                 techniques. {\bf B.3.2}: Hardware, MEMORY STRUCTURES,
                 Design Styles, Cache memories.",
}

@Article{Fu:1995:PMD,
  author =       "J. Fu",
  title =        "Pattern Matching in Directed Graphs",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "937",
  pages =        "64--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Galil:1995:CTO,
  author =       "Zvi Galil",
  title =        "A Constant-Time Optimal Parallel String-Matching
                 Algorithm",
  journal =      j-J-ACM,
  volume =       "42",
  number =       "4",
  pages =        "908--918",
  month =        jul,
  year =         "1995",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Tue Nov 28 07:53:44 1995",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0004-5411/210341.html",
  abstract =     "Given a pattern string, we describe a way to
                 preprocess it. We design a CRCW-PRAM constant time
                 optimal parallel algorithm for finding all occurrences
                 of the (preprocessed) pattern in any given text.",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  keywords =     "algorithms; theory",
  subject =      "{\bf F.2.2}: Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Computations on discrete
                 structures. {\bf F.2.2}: Theory of Computation,
                 ANALYSIS OF ALGORITHMS AND PROBLEM COMPLEXITY,
                 Nonnumerical Algorithms and Problems, Pattern matching.
                 {\bf F.1.2}: Theory of Computation, COMPUTATION BY
                 ABSTRACT DEVICES, Modes of Computation, Parallelism and
                 concurrency. {\bf F.1.1}: Theory of Computation,
                 COMPUTATION BY ABSTRACT DEVICES, Models of Computation,
                 Unbounded-action devices.",
}

@Article{Gasieniec:1995:CSS,
  author =       "L. Gasieniec and W. Plandowski and W. Rytter",
  title =        "Constant-Space String Matching with Smaller Number of
                 Comparisons: Sequential Sampling",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "937",
  pages =        "78--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Gasieniec:1995:ZMR,
  author =       "Leszek G{\k{a}}sieniec and Wojciech Plandowski and
                 Wojciech Rytter",
  title =        "The zooming method: a recursive approach to time-space
                 efficient string-matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "147",
  number =       "1--2",
  pages =        "19--30",
  day =          "07",
  month =        aug,
  year =         "1995",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:19:16 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1995&volume=147&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1995&volume=147&issue=1-2&aid=1883",
  acknowledgement = ack-nhfb,
  classification = "C4210L (Formal languages and computational
                 linguistics); C4240C (Computational complexity); C6130
                 (Data handling techniques)",
  corpsource =   "Inst. of Inf., Warsaw Univ., Poland",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "computational complexity; formal languages;
                 Galil-Seiferas algorithm; linear-time constant-space
                 algorithm; maximal suffix; nonordered alphabets;
                 ordered alphabets; preprocessing phase; recursive
                 approach; recursive functions; search problems;
                 searching phase; string matching; time-space efficient
                 string-matching; two-dimensional patterns; zooming
                 method",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
  xxauthor =     "L. Gasiemec and W. Plandowski and W. Rytter",
}

@Article{Giancarlo:1995:MDP,
  author =       "R. Giancarlo and R. Grossi",
  title =        "Multi-Dimensional Pattern Matching with Dimensional
                 Wildcards",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "937",
  pages =        "90--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Goedelbecker:1995:UG,
  author =       "Eric Goedelbecker",
  title =        "Using grep",
  journal =      j-LINUX-J,
  volume =       "18",
  pages =        "??--??",
  month =        oct,
  year =         "1995",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Fri Oct 9 08:35:26 MDT 1998",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue18/index.html;
                 https://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Moving from DOS? Discover the power of this Linux
                 utility.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Highland:1995:BRP,
  author =       "Harold Joseph Highland",
  title =        "Book Review: {{\booktitle{A Pattern Matching Model for
                 Misuse Intrusion Detection}}: Sandeep Kumar and Eugene
                 Spafford, Purdue University, West Lafayette, IN}",
  journal =      j-COMPUT-SECUR,
  volume =       "14",
  number =       "1",
  pages =        "28--28",
  month =        "????",
  year =         "1995",
  CODEN =        "CPSEDU",
  ISSN =         "0167-4048 (print), 1872-6208 (electronic)",
  ISSN-L =       "0167-4048",
  bibdate =      "Mon Sep 23 09:45:03 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computsecur1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.sciencedirect.com/science/article/pii/016740489596997H",
  acknowledgement = ack-nhfb,
  fjournal =     "Computers \& Security",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01674048",
}

@Article{Johansen:1995:LSM,
  author =       "Peter Johansen",
  title =        "On-line string matching with feedback",
  journal =      j-THEOR-COMP-SCI,
  volume =       "141",
  number =       "1--2",
  pages =        "53--67",
  day =          "17",
  month =        apr,
  year =         "1995",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:18:59 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1995&volume=141&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1995&volume=141&issue=1-2&aid=1852",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory); C6130
                 (Data handling techniques)",
  corpsource =   "Dept. of Comput. Sci., Copenhagen Univ., Denmark",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "feedback; one-character buffer; online operation;
                 online string matching; pattern matching; stable
                 behaviour; string matching; string pattern matcher;
                 unstable behaviour",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Karpinski:1995:PMS,
  author =       "M. Karpinski and W. Rytter and A. Shinohara",
  title =        "Pattern-Matching for Strings with Short Descriptions",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "937",
  pages =        "205--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Knight:1995:ARE,
  author =       "James R. Knight and Eugene W. Myers",
  title =        "Approximate Regular Expression Pattern Matching with
                 Concave Gap Penalties",
  journal =      j-ALGORITHMICA,
  volume =       "14",
  number =       "1",
  pages =        "85--121",
  year =         "1995",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68Q20 (68Q25)",
  MRnumber =     "MR1329817 (96d:68083)",
  bibdate =      "Mon Jan 22 05:30:54 MST 2001",
  bibsource =    "dblp-journals-algorithmica.bib;
                 http://dblp.uni-trier.de/db/journals/algorithmica/algorithmica14.html#KnightM95a;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
  oldlabel =     "KnightM95a",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/algorithmica/KnightM95a",
}

@Article{Knight:1995:SPM,
  author =       "James R. Knight and Eugene W. Myers",
  title =        "Super-Pattern Matching",
  journal =      j-ALGORITHMICA,
  volume =       "13",
  number =       "1--2",
  pages =        "211--243",
  year =         "1995",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "92D20 (68T10 92C40)",
  MRnumber =     "MR1304315 (95i:92003)",
  bibdate =      "Mon Jan 22 05:30:53 MST 2001",
  bibsource =    "dblp-journals-algorithmica.bib;
                 http://dblp.uni-trier.de/db/journals/algorithmica/algorithmica13.html#KnightM95;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
  oldlabel =     "KnightM95",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/algorithmica/KnightM95",
}

@Article{Konda:1995:SFD,
  author =       "Venkat Konda and Anup Kumar",
  title =        "A Systematic Framework for the Dependence Cycle
                 Removal in Practical Loops",
  journal =      j-J-PAR-DIST-COMP,
  volume =       "27",
  number =       "2",
  pages =        "157--171",
  month =        jun,
  year =         "1995",
  CODEN =        "JPDCER",
  DOI =          "https://doi.org/10.1006/jpdc.1995.1079",
  ISSN =         "0743-7315 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:18:57 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 https://www.math.utah.edu/pub/tex/bib/fortran3.bib;
                 https://www.math.utah.edu/pub/tex/bib/jpardistcomp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.idealibrary.com/links/doi/10.1006/jpdc.1995.1079/production;
                 http://www.idealibrary.com/links/doi/10.1006/jpdc.1995.1079/production/pdf",
  acknowledgement = ack-nhfb,
  classification = "C1250 (Pattern recognition); C6110P (Parallel
                 programming); C6140D (High level languages)",
  corpsource =   "Misubishi Electr. Res. Lab. Inc., Sunnyvale, CA, USA",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  keywords =     "cycle breaking transformations; dependence; dependence
                 cycle removal; dependence cycles; dependence testing;
                 DO loop model; formal theory; FORTRAN; loops; node;
                 output; parallel programming; pattern matching;
                 practical; replication; serial programs; standard
                 Fortran; systematic framework",
  treatment =    "P Practical",
}

@Article{Kucherov:1995:UGR,
  author =       "Gregory Kucherov and Micha{\"e}l Rusinowitch",
  title =        "Undecidability of ground reducibility for word
                 rewriting systems with variables",
  journal =      j-INFO-PROC-LETT,
  volume =       "53",
  number =       "4",
  pages =        "209--215",
  day =          "24",
  month =        feb,
  year =         "1995",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q42",
  MRnumber =     "1 327 587",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "Compendex database;
                 http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "CRIN and INRIA-Lorraine",
  affiliationaddress = "Vandoeuvre-les-Nancy, Fr",
  classification = "721.1; 723.1.1; 723.2; 921.4; C1250 (Pattern
                 recognition); C4210L (Formal languages and
                 computational linguistics)",
  corpsource =   "CRIN-INRIA Lorraine, Vandoeuvre-les-Nancy, France",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  journalabr =   "Inf Process Lett",
  keywords =     "Associative processing; Binary associative function;
                 binary associative function; Codes (symbols);
                 Computability and decidability; Computation theory;
                 Concatenation; concatenation; finitely many constant
                 symbols; Formal languages; formal languages; Ground
                 reducibility; ground reducibility; Pattern matching;
                 pattern matching; Pattern recognition; Reductive power;
                 Rewrite rules; rewriting systems; Set theory;
                 signature; Term rewriting systems; Undecidability;
                 variables; Word rewriting system with variables (WRSV);
                 word rewriting systems",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Kunen:1995:RTB,
  author =       "Kenneth Kunen",
  title =        "A {Ramsey} theorem in {Boyer--Moore} logic",
  journal =      j-J-AUTOM-REASON,
  volume =       "15",
  number =       "2",
  pages =        "217--235",
  month =        jun,
  year =         "1995",
  CODEN =        "JAREEW",
  DOI =          "https://doi.org/10.1007/BF00881917",
  ISSN =         "0168-7433 (print), 1573-0670 (electronic)",
  ISSN-L =       "0168-7433",
  bibdate =      "Sat Apr 2 10:49:47 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jautomreason.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/BF00881917",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Autom. Reason.",
  fjournal =     "Journal of Automated Reasoning",
  journal-URL =  "http://link.springer.com/journal/10817",
}

@Article{Lecroq:1995:ERS,
  author =       "Thierry Lecroq",
  title =        "Experimental Results on String Matching Algorithms",
  journal =      j-SPE,
  volume =       "25",
  number =       "7",
  pages =        "727--765",
  month =        jul,
  year =         "1995",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@Article{Lesk:1995:TDP,
  author =       "A. M. Lesk",
  title =        "Three-Dimensional Pattern Matching in Protein
                 Structure Analysis",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "937",
  pages =        "248--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Melichar:1995:ASM,
  author =       "B. Melichar",
  title =        "Approximate String Matching by Finite Automata",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "970",
  pages =        "342--349",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Sep 15 10:01:31 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "CAIP; computer analysis; IAPR; images; patterns",
}

@Article{Moore:1995:COA,
  author =       "Dennis Moore and W. F. Smyth",
  title =        "A correction to {``An optimal algorithm to compute all
                 the covers of a string''}",
  journal =      j-INFO-PROC-LETT,
  volume =       "54",
  number =       "2",
  pages =        "101--103",
  day =          "28",
  month =        apr,
  year =         "1995",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C1250 (Pattern
                 recognition)",
  corpsource =   "Sch. of Comput., Curtin Univ. of Technol., Bentley,
                 WA, Australia",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  keywords =     "combinatorial mathematics; COMPUTECOVERS; optimal
                 algorithm; pattern matching; subalgorithm",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{MuQqoz:1995:MTW,
  author =       "J. {Mu Qq oz}",
  title =        "Manual {TIG} Welding and Control Chart Advisor: a
                 Prototype Program in {Common Lisp} Using Pattern
                 Matching Techniques",
  journal =      "Quality Engineering",
  volume =       "7",
  number =       "2",
  pages =        "277--??",
  year =         "1995",
  CODEN =        "QUENE7",
  ISSN =         "0898-2112",
  bibdate =      "Tue Sep 28 07:51:05 MDT 1999",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/common-lisp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  journalabr =   "Qual Eng",
  keywords =     "Common Lisp",
}

@Article{MuThoz:1995:MTW,
  author =       "J. MuThoz",
  title =        "Manual {TIG} Welding and Control Chart Advisor: a
                 Prototype Program in {Common Lisp} Using Pattern
                 Matching Techniques",
  journal =      "Quality engineering",
  volume =       "7",
  number =       "2",
  pages =        "277--??",
  month =        "????",
  year =         "1995",
  ISSN =         "0898-2112",
  bibdate =      "Wed Aug 6 18:51:34 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/common-lisp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Myers:1995:AMC,
  author =       "Gene Myers",
  title =        "Approximately matching context-free languages",
  journal =      j-INFO-PROC-LETT,
  volume =       "54",
  number =       "2",
  pages =        "85--92",
  day =          "28",
  month =        apr,
  year =         "1995",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q20 (68Q45)",
  MRnumber =     "96d:68084",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C1250 (Pattern recognition); C4210L (Formal
                 languages and computational linguistics)",
  corpsource =   "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ,
                 USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  keywords =     "approximate pattern matching; Cocke-Younger-Kasami
                 algorithm; context-free languages; general comparison
                 cost models; pattern matching; sequence comparison",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Park:1995:SMH,
  author =       "K. Park and Dong Kyue Kim",
  title =        "String Matching in Hypertext",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "937",
  pages =        "318--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Petersen:1995:RPB,
  author =       "H. Petersen",
  title =        "A remark on a paper by {A. B. Matos}",
  journal =      j-THEOR-COMP-SCI,
  volume =       "141",
  number =       "1--2",
  pages =        "329--330",
  day =          "17",
  month =        apr,
  year =         "1995",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:18:59 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1995&volume=141&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  note =         "See \cite{Matos:1994:PSI}.",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1995&volume=141&issue=1-2&aid=1851",
  acknowledgement = ack-nhfb,
  classification = "C4210L (Formal languages and computational
                 linguistics)",
  corpsource =   "Fachbereich Inf., Hamburg Univ., Germany",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "context sensitive languages; context-sensitive
                 languages; word-lengths",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Pevzner:1995:MFA,
  author =       "Pavel A. Pevzner and M. S. Waterman",
  title =        "Multiple Filtration and Approximate Pattern Matching",
  journal =      j-ALGORITHMICA,
  volume =       "13",
  number =       "1--2",
  pages =        "135--154",
  year =         "1995",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "92D20 (68Q20)",
  MRnumber =     "MR1304312 (95g:92012)",
  bibdate =      "Mon Jan 22 05:33:34 MST 2001",
  bibsource =    "dblp-journals-algorithmica.bib;
                 http://dblp.uni-trier.de/db/journals/algorithmica/algorithmica13.html#PevznerW95;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
  oldlabel =     "PevznerW95",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/algorithmica/PevznerW95",
}

@Article{Pierre:1995:DVS,
  author =       "L. Pierre",
  title =        "Describing and verifying synchronous circuits with the
                 {Boyer--Moore} theorem prover",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "987",
  pages =        "35--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs1995b.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{RaoKosaraju:1995:PMC,
  author =       "S. {Rao Kosaraju}",
  title =        "Pattern Matching in Compressed Texts",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1026",
  pages =        "349--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Rauchwerger:1995:LTS,
  author =       "Lawrence Rauchwerger and David Padua",
  title =        "The {LRPD} test: speculative run-time parallelization
                 of loops with privatization and reduction
                 parallelization",
  journal =      j-SIGPLAN,
  volume =       "30",
  number =       "6",
  pages =        "218--232",
  month =        jun,
  year =         "1995",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:06 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/pldi/207110/index.html;
                 https://www.math.utah.edu/pub/tex/bib/fortran3.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/pldi/207110/p218-rauchwerger/",
  abstract =     "Current parallelizing compilers cannot identify a
                 significant fraction of parallelizable loops because
                 they have complex or statically insufficiently defined
                 access patterns. As parallelizable loops arise
                 frequently in practice, we advocate a novel framework
                 for their identification: speculatively execute the
                 loop as a doall, and apply a fully parallel data
                 dependence test to determine if it had any
                 cross-iteration dependences; if the test fails, then
                 the loop is re-executed serially. Since, from our
                 experience, a significant amount of the available
                 parallelism in Fortran programs can be exploited by
                 loops transformed through {\em privatization\/} and
                 {\em reduction parallelization\/}, our methods can
                 speculatively apply these transformations and then
                 check their validity at run-time. Another important
                 contribution of this paper is a novel method for {\em
                 reduction recognition\/} which goes beyond syntactic
                 pattern matching; it detects at run-time if the values
                 stored in an array participate in a reduction
                 operation, even if they are transferred through private
                 variables and/or are affected by statically
                 unpredictable control flow. We present experimental
                 results on loops from the PERFECT Benchmarks which
                 substantiate our claim that these techniques can yield
                 significant speedups which are often superior to those
                 obtainable by inspector/executor methods.",
  acknowledgement = ack-nhfb,
  affiliation =  "Illinois Univ., Urbana, IL, USA",
  annote =       "Published as part of the Proceedings of PLDI'95.",
  classification = "C6110P (Parallel programming); C6150C (Compilers,
                 interpreters and other processors); C6150G (Diagnostic,
                 testing, debugging and evaluating systems)",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "Access patterns; algorithms; Cross iteration
                 dependences; experimentation; Fortran programs; Fully
                 parallel data dependence test; languages; LRPD test;
                 Parallelizable loops; Parallelizing compilers; PERFECT
                 Benchmarks; performance; Private variables;
                 Privatization; Reduction parallelization; Reduction
                 recognition; Speculative run time parallelization;
                 Speculative run-time parallelization; Statically
                 unpredictable control flow; Syntactic pattern
                 matching",
  subject =      "{\bf D.1.3} Software, PROGRAMMING TECHNIQUES,
                 Concurrent Programming, Parallel programming. {\bf
                 D.3.4} Software, PROGRAMMING LANGUAGES, Processors,
                 Compilers. {\bf D.3.4} Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf F.3.3} Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS, Studies
                 of Program Constructs. {\bf D.3.4} Software,
                 PROGRAMMING LANGUAGES, Processors, Code generation.",
  thesaurus =    "Parallel programming; Parallelising compilers; Program
                 testing",
}

@Article{Ross:1995:FSS,
  author =       "John W. Ross",
  title =        "Fast String Searching",
  journal =      j-CCCUJ,
  volume =       "13",
  number =       "7",
  pages =        "63--??",
  month =        jul,
  year =         "1995",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Fri Aug 30 16:52:23 MDT 1996",
  bibsource =    "http://www.cuj.com/cbklist.htm;
                 https://www.math.utah.edu/pub/tex/bib/cccuj.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Sandberg:1995:COE,
  author =       "Jonathan S. Sandberg",
  title =        "Counting {OCR} errors in typeset text",
  journal =      "Proceedings of SPIE --- The International Society for
                 Optical Engineering",
  volume =       "2422",
  pages =        "184--195",
  year =         "1995",
  CODEN =        "PSISDG",
  ISBN =         "0-8194-1769-6",
  ISBN-13 =      "978-0-8194-1769-5",
  ISSN =         "0277-786X (print), 1996-756X (electronic)",
  LCCN =         "TS510.S63 v.2422",
  bibdate =      "Mon May 11 18:35:26 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/typeset.bib",
  abstract =     "Frequently object recognition accuracy is a key
                 component in the performance analysis of pattern
                 matching systems. In the past three years, the results
                 of numerous excellent and rigorous studies of OCR
                 system typeset-character accuracy (henceforth OCR
                 accuracy) have been published, encouraging performance
                 comparisons between a variety of OCR products and
                 technologies. These published figures are important;
                 OCR vendor advertisements in the popular trade
                 magazines lead readers to believe that published OCR
                 accuracy figures effect market share in the lucrative
                 OCR market. Curiously, a detailed review of many of
                 these OCR error occurrence counting results reveals
                 that they are not reproducible as published and they
                 are not strictly comparable due to larger variances in
                 the counts than would be expected by the sampling
                 variance. Naturally, since OCR accuracy is based on a
                 ratio of the number of OCR errors over the size of the
                 text searched for errors, imprecise OCR error
                 accounting leads to similar imprecision in OCR
                 accuracy. Some published papers use informal,
                 non-automatic, or intuitively correct OCR error
                 accounting. Still other published results present OCR
                 error accounting methods based on string matching
                 algorithms such as dynamic programming using
                 Levenshtein (edit) distance but omit critical
                 implementation details (such as the existence of
                 suspect markers in the OCR generated output or the
                 weights used in the dynamic programming minimization
                 procedure). The problem with not specifically revealing
                 the accounting method is that the number of errors
                 found by different methods are significantly different.
                 This paper identifies the basic accounting methods used
                 to measure OCR errors in typeset text and offers an
                 evaluation and comparison of the various accounting
                 methods.",
  acknowledgement = ack-nhfb,
  affiliation =  "Panasonic Technologies Inc., Princeton, NJ, USA",
  classification = "723.1; 723.4; 741.1; 921.6; 922.2",
  conference =   "Document Recognition II",
  journalabr =   "Proc SPIE Int Soc Opt Eng",
  keywords =     "Algorithms; Document recognition; Dynamic programming;
                 Error analysis; Image processing; Levenshtein distance;
                 Object recognition; Optical character recognition;
                 Pattern recognition; Sampling; Typeset text",
  meetingaddress = "San Jose, CA, USA",
  meetingdate2 = "Feb 6--7 1995",
  sponsor =      "SPIE --- Int Soc for Opt Engineering, Bellingham, WA
                 USA",
}

@Article{Schulzrinne:1995:DCC,
  author =       "H. Schulzrinne",
  title =        "Dynamic Configuration of Conferencing Applications
                 Using Pattern-Matching Multicast",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1018",
  pages =        "216--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Sekar:1995:APM,
  author =       "R. C. Sekar and R. Ramesh and I. V. Ramakrishnan",
  title =        "Adaptive Pattern Matching",
  journal =      j-SIAM-J-COMPUT,
  volume =       "24",
  number =       "6",
  pages =        "1207--1234",
  month =        dec,
  year =         "1995",
  CODEN =        "SMJCAT",
  DOI =          "https://doi.org/10.1137/S0097539793246252",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68Q20 (68N15 68Q25 68Q42)",
  MRnumber =     "96k:68083",
  bibdate =      "Mon Nov 29 11:02:48 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/24/6;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://epubs.siam.org/sam-bin/dbq/article/24625",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Sewell:1995:MCP,
  author =       "Roger F. Sewell and Richard Durbin",
  title =        "Method for Calculation of Probability of Matching a
                 Bounded Regular Expression in a Random Data String",
  journal =      j-J-COMPUT-BIOL,
  volume =       "2",
  number =       "1",
  pages =        "25--31",
  month =        jan,
  year =         "1995",
  CODEN =        "JCOBEM",
  DOI =          "https://doi.org/10.1089/cmb.1995.2.25",
  ISSN =         "1066-5277 (print), 1557-8666 (electronic)",
  ISSN-L =       "1066-5277",
  bibdate =      "Sat Jun 1 09:46:06 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputbiol.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.liebertpub.com/doi/abs/10.1089/cmb.1995.2.25;
                 https://www.liebertpub.com/doi/pdf/10.1089/cmb.1995.2.25",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational Biology",
  journal-URL =  "https://www.liebertpub.com/loi/cmb/",
  onlinedate =   "1 April 2009",
}

@Article{Sidi:1995:CAG,
  author =       "Avram Sidi",
  title =        "Convergence analysis for a generalized {Richardson}
                 extrapolation process with an application to the $
                 d^{(1)}$-transformation on convergent and divergent
                 logarithmic sequences",
  journal =      j-MATH-COMPUT,
  volume =       "64",
  number =       "212",
  pages =        "1627--1657",
  month =        oct,
  year =         "1995",
  CODEN =        "MCMPAF",
  ISSN =         "0025-5718 (print), 1088-6842 (electronic)",
  ISSN-L =       "0025-5718",
  MRclass =      "65B05",
  MRnumber =     "96a:65009",
  MRreviewer =   "De Hui Chen",
  bibdate =      "Tue Mar 25 15:38:13 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/mathcomp1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. Sci., Technion-Israel Inst. of
                 Technol., Haifa, Israel",
  classcodes =   "C4130 (Interpolation and function approximation)",
  corpsource =   "Dept. of Comput. Sci., Technion-Israel Inst. of
                 Technol., Haifa, Israel",
  fjournal =     "Mathematics of Computation",
  journal-URL =  "http://www.ams.org/mcom/",
  keywords =     "(mathematics); convergence analysis; d/sup (1)/
                 transformation; divergent; divergent logarithmic;
                 extensions; extrapolation; extrapolation table;
                 generalized Richardson extrapolation; GREP/sup (1)/;
                 infinite series; Levin-; logarithmic sequences;
                 numerical stability; oscillatory; process; sequences;
                 series; Sidi d/sup (1)/ transformation; stability
                 properties",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Sutinen:1995:UGL,
  author =       "E. Sutinen and J. Tarhio",
  title =        "On Using $q$-Gram Locations in Approximate String
                 Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "979",
  pages =        "327--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Wang:1995:PMP,
  author =       "Jason T. L. Wang and Kaizhong Zhang and Dennis
                 Shasha",
  title =        "Pattern matching and pattern discovery in scientific,
                 program, and document databases",
  journal =      j-SIGMOD,
  volume =       "24",
  number =       "2",
  pages =        "487--487",
  month =        may,
  year =         "1995",
  CODEN =        "SRECD8",
  ISSN =         "0163-5808 (print), 1943-5835 (electronic)",
  ISSN-L =       "0163-5808",
  bibdate =      "Mon Jan 12 08:45:52 MST 2004",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigmod.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/mod/223784/p487-wang/p487-wang.pdf;
                 http://www.acm.org/pubs/citations/proceedings/mod/223784/p487-wang/",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGMOD Record (ACM Special Interest Group on
                 Management of Data)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J689",
}

@Article{Webber:1995:OFP,
  author =       "Adam Webber",
  title =        "Optimization of Functional Programs by Grammar
                 Thinning",
  journal =      j-TOPLAS,
  volume =       "17",
  number =       "2",
  pages =        "293--330",
  month =        mar,
  year =         "1995",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fibquart.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/201067.html;
                 https://www.math.utah.edu/pub/tex/bib/fibquart.bib",
  abstract =     "We describe a new technique for optimizing first-order
                 functional programs. Programs are represented as graph
                 grammars, and optimization proceeds by counterexample:
                 when a graph generated by the grammar is found to
                 contain an unnecessary computation, the optimizer
                 attempts to reformulates the grammar so that it never
                 again generates any graph that contains that
                 counterexample. This kind of program reformulation
                 corresponds to an interesting problem on context-free
                 grammars. Our reformulation technique is derived from
                 an (approximate) solution to this CFG problem. An
                 optimizer called Thinner is the proof of concept for
                 this technique. Thinner is a fully automatic,
                 source-to-source optimizer for a Lisp-like language of
                 purely functional, first-order programs. Thinner
                 rediscovers a wide variety of common compiler
                 optimizations. It also finds other more exotic
                 transformations, including the well-known Fibonacci
                 reformulation and the Knuth--Morris--Pratt
                 optimization.",
  acknowledgement = ack-nhfb,
  ajournal =     "ACM Trans. Program. Lang. Syst.",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; theory",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.2}: Software,
                 PROGRAMMING LANGUAGES, Language Classifications,
                 Applicative languages. {\bf F.4.2}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Grammars and Other Rewriting Systems, Grammar types.",
}

@Article{Wu:1995:SAA,
  author =       "S. Wu and U. Manber and E. Myers",
  title =        "A Subquadratic Algorithm for Approximate Regular
                 Expression Matching",
  journal =      j-J-ALG,
  volume =       "19",
  number =       "3",
  pages =        "346--360",
  month =        nov,
  year =         "1995",
  CODEN =        "JOALDV",
  DOI =          "https://doi.org/10.1006/jagm.1995.1041",
  ISSN =         "0196-6774 (print), 1090-2678 (electronic)",
  ISSN-L =       "0196-6774",
  bibdate =      "Tue Dec 11 09:16:06 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jalg.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0196677485710413",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Algorithms",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01966774",
}

@Article{Yang:1995:LAP,
  author =       "Wuu Yang",
  title =        "On the Look-Ahead Problem in Lexical Analysis",
  journal =      j-ACTA-INFO,
  volume =       "32",
  number =       "5",
  pages =        "459--476",
  month =        "????",
  year =         "1995",
  CODEN =        "AINFA2",
  ISSN =         "0001-5903 (print), 1432-0525 (electronic)",
  ISSN-L =       "0001-5903",
  MRclass =      "68Q52 (68N20 68Q68)",
  MRnumber =     "96e:68083",
  bibdate =      "Sat Oct 9 17:51:40 MDT 1999",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Misc/HBP/ACTAI.bib;
                 ftp://ftp.ira.uka.de/pub/bibliography/Misc/SEL-HPC.bib;
                 http://link.springer-ny.com/link/service/journals/00236/tocs/t5032005.htm;
                 https://www.math.utah.edu/pub/tex/bib/actainfo.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  URL =          "http://cissun51.cis.nctu.edu.tw/~wuuyang/lookahead.ps.Z;
                 http://link.springer-ny.com/link/service/journals/00236/bibs/5032005/50320459.htm",
  abstract-URL = "http://cissun51.cis.nctu.edu.tw/~wuuyang/lookahead.abstract",
  acknowledgement = ack-nhfb,
  fjournal =     "Acta Informatica",
  journal-URL =  "http://www.springerlink.com/content/0001-5903",
  keywords =     "automata; regular expressions; suffix automata",
  scope =        "lex",
}

@Article{Yu:1995:DTA,
  author =       "Chansu Yu and Chita R. Das",
  title =        "Disjoint Task Allocation Algorithms for {MIN} Machines
                 with Minimal Conflicts",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "6",
  number =       "4",
  pages =        "373--387",
  month =        apr,
  year =         "1995",
  CODEN =        "ITDSEO",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Fri Nov 6 12:31:15 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/ieeetranspardistsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.computer.org/tpds/td1995/l0373abs.htm",
  acknowledgement = ack-nhfb,
  affiliation =  "Goldstar Co",
  affiliationaddress = "Seoul, S Korea",
  classification = "703.1; 721.3; 722.4; 723.1; 921.6; C4230M
                 (Multiprocessor interconnection); C5220P (Parallel
                 architecture); C5440 (Multiprocessing systems); C6150J
                 (Operating systems)",
  corpsource =   "Inf. Technol. R and D Lab., GoldStar Co., Seoul, South
                 Korea",
  fjournal =     "IEEE Transactions on Parallel and Distributed
                 Systems",
  journal-URL =  "http://www.computer.org/tpds/archives.htm",
  journalabr =   "IEEE Trans Parallel Distrib Syst",
  keywords =     "Algorithms; bit; Bit reversal matching patterns;
                 conflicts; delay; disjoint task allocation algorithms;
                 Disjoint task allocation algorithms; Dynamic
                 partitioning scheme; Electric network topology;
                 hypercube networks; hypercubes; Interconnection
                 networks; matching pattern; Microprocessor chips; MIN
                 machines; MIN-based multiprocessors; minimal; Minimal
                 conflicts; Multistage interconnection network;
                 multistage interconnection networks; Program
                 processors; renaming scheme; Resource allocation;
                 resource allocation; reversal matching pattern;
                 scheduling; system efficiency; Task allocation; task
                 miss ratio",
  treatment =    "A Application; P Practical",
}

@Article{Zobel:1995:FAM,
  author =       "J. Zobel and P. Dart",
  title =        "Finding approximate matches in large lexicons",
  journal =      j-SPE,
  volume =       "25",
  number =       "3",
  pages =        "331--345",
  month =        mar,
  year =         "1995",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Wed Sep 11 06:28:25 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spell.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. Sci., R. Melbourne Inst. of Technol.,
                 Vic., Australia",
  classification = "C1250 (Pattern recognition); C6130D (Document
                 processing techniques); C7250R (Information retrieval
                 techniques)",
  fjournal =     "Software---Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "Approximate matches; Approximate string matching;
                 Compressed inverted files; Index size; Large lexicons;
                 Lexicon indexes; Lexicon indexing techniques; N-grams;
                 Pattern matching; Permuted lexicons; Personal name
                 matching; Phonetic coding; Phonetic codings; Retrieval
                 effectiveness; Retrieval time; Soundex; Spelling
                 correction; String distance measures; String similarity
                 measures",
  language =     "English",
  pubcountry =   "UK",
  thesaurus =    "Indexing; Information retrieval; Pattern matching;
                 String matching; Word processing",
}

@Article{Abbott:1996:X,
  author =       "Paul Abbott",
  title =        "{{\tt In[]}} and {{\tt Out[]}}",
  journal =      j-MATHEMATICA-J,
  volume =       "6",
  number =       "3",
  pages =        "14--21",
  month =        "Summer",
  year =         "1996",
  CODEN =        "????",
  ISSN =         "1047-5974 (print), 1097-1610 (electronic)",
  ISSN-L =       "1047-5974",
  bibdate =      "Sat Nov 6 13:34:12 MDT 2010",
  bibsource =    "http://www.mathematica-journal.com/issue/v6i3/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.mathematica-journal.com/issue/v6i3/tutorials/inout/contents/63inandout.nb;
                 http://www.mathematica-journal.com/issue/v6i3/tutorials/inout/contents/63inout.pdf;
                 http://www.mathematica-journal.com/issue/v6i3/tutorials/inout/index.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Mathematica Journal",
  journal-URL =  "http://www.mathematica-journal.com/",
  keywords =     "AppleScript; Best Solution to an Overdetermined
                 System; D versus Derivative; Divergent NDSolve;
                 DSolveConstants; Grayscale Graphics Files; Inverse
                 Power Series; Matrix Differential Equation; Outer of
                 List; Pattern Matching; PiScale; Points on a
                 Hypersphere; Random and \$MachinePrecision; Random and
                 the Poisson Distribution",
}

@Article{Amir:1996:LSF,
  author =       "Amihood Amir and Gary Benson and Martin Farach",
  title =        "Let Sleeping Files Lie: Pattern Matching in
                 {Z}-Compressed Files",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "52",
  number =       "2",
  pages =        "299--307",
  month =        apr,
  year =         "1996",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1006/jcss.1996.0023",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:26:30 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000096900239",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Anonymous:1996:JBP,
  author =       "Anonymous",
  title =        "{Java}-based Pattern Matching",
  journal =      j-SUNEXPERT,
  volume =       "7",
  number =       "8",
  pages =        "74--74",
  month =        aug,
  year =         "1996",
  ISSN =         "1053-9239",
  bibdate =      "Sat Aug 17 09:35:58 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Describes {VanillaSearch}, a search class for {Java}
                 developers from {Thought, Inc.}.",
  acknowledgement = ack-nhfb,
  fjournal =     "SunExpert Magazine",
}

@Article{Anonymous:1996:JPM,
  author =       "Anonymous",
  title =        "{Java-based} Pattern Matching",
  journal =      j-SUNEXPERT,
  volume =       "7",
  number =       "8",
  pages =        "74--74",
  month =        aug,
  year =         "1996",
  ISSN =         "1053-9239",
  bibdate =      "Sat Aug 17 09:35:58 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Describes {VanillaSearch}, a search class for {Java}
                 developers from {Thought, Inc.}.",
  acknowledgement = ack-nhfb,
  fjournal =     "SunExpert Magazine",
}

@Article{Antimirov:1996:PDR,
  author =       "Valentin Antimirov",
  title =        "Partial derivatives of regular expressions and finite
                 automaton constructions",
  journal =      j-THEOR-COMP-SCI,
  volume =       "155",
  number =       "2",
  pages =        "291--319",
  day =          "11",
  month =        mar,
  year =         "1996",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:19:46 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1996&volume=155&issue=2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1996&volume=155&issue=2&aid=2123",
  acknowledgement = ack-nhfb,
  classification = "C4210L (Formal languages and computational
                 linguistics); C4220 (Automata theory); C4240
                 (Programming and algorithm theory)",
  corpsource =   "CRIN, Vandoeuvre-les-Nancy, France",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "algorithm; finite automata; finite automaton
                 constructions; finite partial derivative set; formal
                 languages; letters; nondeterministic finite automata;
                 partial derivatives; regular expressions; regular unit;
                 subterm; subterm concatenation; theorem proving; word
                 derivatives",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Arikati:1996:AAM,
  author =       "S. R. Arikati and A. Dessmark and A. Lingas and M.
                 Marathe",
  title =        "Approximation Algorithms for Maximum Two-Dimensional
                 Pattern Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1075",
  pages =        "348--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Aug 14 09:38:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@InProceedings{Atallah:1996:PMI,
  author =       "M. Atallah and Y. Genin and W. Szpankowski",
  title =        "Pattern matching image compression",
  crossref =     "Storer:1996:DDC",
  pages =        "??--??",
  year =         "1996",
  DOI =          "https://doi.org/10.1109/DCC.1996.488349",
  bibdate =      "Tue Feb 5 08:26:50 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=488349",
  acknowledgement = ack-nhfb,
}

@Article{Baeza-Yates:1996:FAA,
  author =       "R. Baeza-Yates and G. Navarro",
  title =        "A Faster Algorithm for Approximate String Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1075",
  pages =        "1--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Aug 14 09:38:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Baeza-Yates:1996:FAS,
  author =       "Ricardo A. Baeza-Yates and Luis O. Fuentes",
  title =        "A framework to animate string algorithms",
  journal =      j-INFO-PROC-LETT,
  volume =       "59",
  number =       "5",
  pages =        "241--244",
  day =          "9",
  month =        sep,
  year =         "1996",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory); C6110V
                 (Visual programming)",
  corpsource =   "Dept. de Ciencias de la Comput., Chile Univ.,
                 Santiago, Chile",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  keywords =     "algorithm animation system; algorithm theory; computer
                 animation; data generation tools; sequences of symbols;
                 string algorithms; string matching; string searching;
                 visual programming; visualization; Xaa",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Baeza-Yates:1996:FPA,
  author =       "Ricardo A. Baeza-Yates and Chris H. Perleberg",
  title =        "Fast and practical approximate string matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "59",
  number =       "1",
  pages =        "21--27",
  day =          "8",
  month =        jul,
  year =         "1996",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q25 (68Q20)",
  MRnumber =     "98b:68069",
  MRreviewer =   "Maxime Crochemore",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C1250 (Pattern recognition); C4240 (Programming and
                 algorithm theory); C6130 (Data handling techniques)",
  corpsource =   "Dept. de Ciencias de la Comput., Chile Univ.,
                 Santiago, Chile",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  keywords =     "approximate string matching; arithmetical operations;
                 linear worst case time; mismatches; partitioning;
                 pattern matching; string matching; string searching",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Baeza-Yates:1996:FTS,
  author =       "Richardo A. Baeza-Yates and Gaston H. Gonnet",
  title =        "Fast text searching for regular expressions or
                 automaton searching on tries",
  journal =      j-J-ACM,
  volume =       "43",
  number =       "6",
  pages =        "915--936",
  month =        nov,
  year =         "1996",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Fri Dec 27 15:34:59 MST 1996",
  bibsource =    "http://www.acm.org/pubs/contents/journals/jacm/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/jacm/235810.html",
  abstract =     "We present algorithms for efficient searching of
                 regular expressions on preprocessed text, using a
                 Patricia tree as a logical model for the index. We
                 obtain searching algorithms that run in logarithmic
                 expected time in the size of the text for a wide
                 subclass of regular expressions, and in sublinear
                 expected time for any regular expression. This is the
                 first such algorithm to be found with this
                 complexity.",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
}

@Article{Baeza-Yates:1996:UVS,
  author =       "R. Baeza-Yates",
  title =        "A Unified View to String Matching Algorithms",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1175",
  pages =        "1--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Fri Aug 22 11:59:49 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Baker:1996:PPM,
  author =       "Brenda S. Baker",
  title =        "Parameterized Pattern Matching: Algorithms and
                 Applications",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "52",
  number =       "1",
  pages =        "28--42",
  month =        feb,
  year =         "1996",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1006/jcss.1996.0003",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:26:29 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000096900033",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Boyer:1996:APO,
  author =       "Robert S. Boyer and Yuan Yu",
  title =        "Automated proofs of object code for a widely used
                 microprocessor",
  journal =      j-J-ACM,
  volume =       "43",
  number =       "1",
  pages =        "166--192",
  month =        jan,
  year =         "1996",
  CODEN =        "JACOAH",
  DOI =          "https://doi.org/10.1145/227595.227603",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Tue Sep 28 07:51:05 MDT 1999",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hoare-c-a-r.bib;
                 https://www.math.utah.edu/pub/tex/bib/common-lisp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Texas at Austin",
  affiliationaddress = "Austin, USA",
  classification = "721.1; 722.4; 723.1; 723.1.1; 921; 921.5",
  fjournal =     "Journal of the ACM",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  journalabr =   "J Assoc Comput Mach",
  keywords =     "Ada (programming language); Algorithms; Artificial
                 intelligence; Automated proofs; Binary codes; Binary
                 search; Boyer--Moore Theorem prover; C (programming
                 language); Common Lisp; Formal languages; Functions;
                 Hoare's Quick sort; Lisp (programming language);
                 Mathematical programming; Microprocessor chips; Object
                 code; Program compilers; Theorem proving; UNIX",
}

@Article{Breslauer:1996:OPC,
  author =       "Dany Breslauer and Ramesh Hariharan",
  title =        "Optimal parallel construction of minimal suffix and
                 factor automata",
  journal =      j-PARALLEL-PROCESS-LETT,
  volume =       "6",
  number =       "1",
  pages =        "35--44",
  month =        mar,
  year =         "1996",
  CODEN =        "PPLTEE",
  ISSN =         "0129-6264",
  bibdate =      "Mon Apr 14 10:50:40 MDT 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/parallelprocesslett.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Aarhus",
  classification = "721.1; 722.1; 722.4; 723.2; 921.5; C1160
                 (Combinatorial mathematics); C1180 (Optimisation
                 techniques); C4220 (Automata theory); C4240P (Parallel
                 programming and algorithm theory)",
  corpsource =   "Basic Res. in Comput. Sci., Aarhus Univ., Denmark",
  countrypub =   "Singapore",
  fjournal =     "Parallel Processing Letters",
  journal-URL =  "http://www.worldscientific.com/loi/ppl",
  journalabr =   "Parallel Process Lett",
  keywords =     "algorithms; data structure; Data structures; Factor
                 automata; factor automata; Finite automata; finite
                 automata; minimal suffix; minimisation; Online systems;
                 optimal; optimal parallel algorithm; optimal parallel
                 construction; optimisation; Optimization; parallel;
                 parallel algorithm theory; Parallel algorithms;
                 parallel suffix tree construction algorithm; Random
                 access storage; smallest deterministic finite automata;
                 string; string matching; Suffix tree; suffix tree;
                 trees (mathematics)",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Breslauer:1996:SCC,
  author =       "Dany Breslauer",
  title =        "Saving comparisons in the {Crochemore-Perrin} string
                 matching algorithm",
  journal =      j-THEOR-COMP-SCI,
  volume =       "158",
  number =       "1--2",
  pages =        "177--192",
  day =          "20",
  month =        may,
  year =         "1996",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:19:55 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1996&volume=158&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1996&volume=158&issue=1-2&aid=2006",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory); C4240C
                 (Computational complexity)",
  corpsource =   "Dept. of Comput. Sci., Aarhus Univ., Denmark",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "computational complexity; linear-time constant-space;
                 pattern preprocessing step; string matching;
                 string-matching algorithm",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Chen:1996:PCM,
  author =       "Zhi-Zhong Chen",
  title =        "Parallel constructions of maximal path sets and
                 applications to short superstrings",
  journal =      j-THEOR-COMP-SCI,
  volume =       "161",
  number =       "1--2",
  pages =        "1--21",
  day =          "15",
  month =        jul,
  year =         "1996",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:20:03 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1996&volume=161&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1996&volume=161&issue=1-2&aid=2051",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C4240P (Parallel
                 programming and algorithm theory)",
  corpsource =   "Dept. of Math. Sci., Tokyo Denki Univ., Saitama,
                 Japan",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "complexity; compression ratio; maximal path sets;
                 parallel algorithms; parallel approximation algorithms;
                 RNC algorithm; set theory; short superstrings; string
                 matching",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Cheng:1996:FHR,
  author =       "J.-M. Cheng and L. M. Duyanovich and D. J. Craft",
  title =        "A fast, highly reliable data compression chip and
                 algorithm for storage systems",
  journal =      j-IBM-JRD,
  volume =       "40",
  number =       "6",
  pages =        "603--613",
  month =        nov,
  year =         "1996",
  CODEN =        "IBMJAE",
  ISSN =         "0018-8646 (print), 2151-8556 (electronic)",
  ISSN-L =       "0018-8646",
  bibdate =      "Tue Mar 25 14:26:59 MST 1997",
  bibsource =    "http://www.research.ibm.com/journal/;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/ibmjrd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.almaden.ibm.com/journal/rd40-6.html#two",
  acknowledgement = ack-nhfb,
  classcodes =   "C5320C (Storage on moving magnetic media); C5320G
                 (Semiconductor storage)",
  corpsource =   "IBM Storage Syst. Div., San Jose, CA, USA",
  fjournal =     "IBM Journal of Research and Development",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5288520",
  keywords =     "algorithm; data compression; data compression chip;
                 data flow analysis; data flows; graph; hardware
                 execution; IBM; IBM computers; IBMLZ1 compression;
                 magnetic disc storage; match-length distribution;
                 overhead; pattern matching; storage management chips;
                 storage systems; system-integration; vertex coloring",
  treatment =    "P Practical",
  xxlibnote =    "Issue missing from UofUtah Marriott Library",
}

@Article{Christie:1996:SPB,
  author =       "David A. Christie",
  title =        "Sorting permutations by block-interchanges",
  journal =      j-INFO-PROC-LETT,
  volume =       "60",
  number =       "4",
  pages =        "165--169",
  day =          "25",
  month =        nov,
  year =         "1996",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q20 (68R05 92D20)",
  MRnumber =     "97i:68082",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C4240
                 (Programming and algorithm theory); C4240C
                 (Computational complexity)",
  corpsource =   "Dept. of Comput. Sci., Glasgow Univ., UK",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  keywords =     "block-interchange diameter; block-interchanges;
                 computational complexity; global rearrangements;
                 permutations; polynomial-time algorithm; sorting;
                 string comparison; string matching; symmetric group",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Colussi:1996:HCC,
  author =       "Livio Colussi and Laura Toniolo",
  title =        "How the character comparison order shapes the shift
                 function of on-line pattern matching algorithms",
  journal =      j-THEOR-COMP-SCI,
  volume =       "163",
  number =       "1--2",
  pages =        "117--144",
  day =          "30",
  month =        aug,
  year =         "1996",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:20:10 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1996&volume=163&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1996&volume=163&issue=1-2&aid=2078",
  acknowledgement = ack-nhfb,
  classification = "B6140C (Optical information, image and video signal
                 processing); C1250 (Pattern recognition)",
  corpsource =   "Dipartimento di Matematica Pura e Applicata, Padova
                 Univ., Italy",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "character comparison order; on-line pattern matching
                 algorithms; pattern matching; pattern preprocessing;
                 shift function; string matching; text search step;
                 uniform definition",
  pubcountry =   "Netherlands",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Colussi:1996:TSE,
  author =       "Livio Colussi and Alessia {De Col}",
  title =        "A time and space efficient data structure for string
                 searching on large texts",
  journal =      j-INFO-PROC-LETT,
  volume =       "58",
  number =       "5",
  pages =        "217--222",
  day =          "10",
  month =        jun,
  year =         "1996",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68P05",
  MRnumber =     "97d:68035",
  bibdate =      "Wed Nov 11 12:16:26 MST 1998",
  bibsource =    "http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classification = "C4240C (Computational complexity); C6120 (File
                 organisation)",
  corpsource =   "Dipartimento di Matematica Pura e Applicata, Padova
                 Univ., Italy",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  keywords =     "computational complexity; data structure; large texts;
                 search operation; string matching; string searching;
                 suffix array; suffix tree; tree data structure; tree
                 data structures",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Crochemore:1996:PMT,
  author =       "Maxime Crochemore and Thierry Lecroq",
  title =        "Pattern-matching and text-compression algorithms",
  journal =      j-COMP-SURV,
  volume =       "28",
  number =       "1",
  pages =        "39--41",
  month =        mar,
  year =         "1996",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/234313.234331",
  ISSN =         "0360-0300 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  bibdate =      "Thu Jun 19 09:50:59 MDT 2008",
  bibsource =    "http://www.acm.org/pubs/contents/journals/surveys/;
                 https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/citations/journals/surveys/1996-28-1/p39-crochemore/;
                 http://www.acm.org/pubs/toc/Abstracts/surveys/234331.html",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
  keywords =     "algorithms; analysis of algorithms and problem
                 complexity; nonnumerical algorithms and problems;
                 pattern matching.; theory; {\bf f.2.2}: theory of
                 computation",
  subject =      "{\bf F.2.2}: Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Pattern matching.",
}

@Article{Dawson:1996:PPU,
  author =       "Steven Dawson and C. R. Ramakrishnan and Steven Skiena
                 and Terrance Swift",
  title =        "Principles and practice of unification factoring",
  journal =      j-TOPLAS,
  volume =       "18",
  number =       "5",
  pages =        "528--563",
  month =        sep,
  year =         "1996",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Thu Jan 9 11:33:28 MST 1997",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/232722.html;
                 http://www.acm.org/pubs/toc/Abstracts/toplas/232722.html;
                 http://www.acm.org/pubs/toc/Abstracts/toplas/235455.html",
  abstract =     "The efficiency of resolution-based logic programming
                 languages, such as Prolog, depends critically on
                 selecting and executing sets of applicable clause heads
                 to resolve against subgoals. Traditional approaches to
                 this problem have focused on using indexing to
                 determine the smallest possible applicable set. Despite
                 their usefulness, these approaches ignore the
                 nondeterminism inherent in many programming languages
                 to the extent that they do not attempt to optimize
                 execution {\em after\/} the applicable set has been
                 determined. Unification factoring seeks to rectify this
                 omission by regarding the indexing and unification
                 phases of clause resolution as a single process. This
                 article formalizes that process through the
                 construction of {\em factoring automata}. A
                 polynomial-time algorithm is given for constructing
                 optimal factoring automata that preserve the clause
                 selection strategy of Prolog. More generally, when the
                 clause selection strategy is not fixed, constructing
                 such an optimal automaton is shown to be NP-complete,
                 solving an open trie minimization problem. Unification
                 factoring is implemented through a source code
                 transformation that preserves the full semantics of
                 Prolog. This transformation is specified in the
                 article, and using it, several well-known programs show
                 significant performance improvements across several
                 different systems. A prototype of unification factoring
                 is available by anonymous ftp.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages; measurement; theory;
                 verification",
  subject =      "{\bf F.1.1}: Theory of Computation, COMPUTATION BY
                 ABSTRACT DEVICES, Models of Computation, Automata. {\bf
                 D.1.6}: Software, PROGRAMMING TECHNIQUES, Logic
                 Programming. {\bf F.2.2}: Theory of Computation,
                 ANALYSIS OF ALGORITHMS AND PROBLEM COMPLEXITY,
                 Nonnumerical Algorithms and Problems. {\bf F.1.3}:
                 Theory of Computation, COMPUTATION BY ABSTRACT DEVICES,
                 Complexity Classes. {\bf I.2.2}: Computing
                 Methodologies, ARTIFICIAL INTELLIGENCE, Automatic
                 Programming, Program transformation. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors,
                 Optimization. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Compilers. {\bf F.1.1}: Theory
                 of Computation, COMPUTATION BY ABSTRACT DEVICES, Models
                 of Computation, Automata. {\bf F.2.2}: Theory of
                 Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
                 COMPLEXITY, Nonnumerical Algorithms and Problems,
                 Pattern matching.",
}

@Article{DeBosschere:1996:EFL,
  author =       "Koen {De Bosschere} and Jean-Marie Jacquet",
  title =        "Extending the $ \mu ${Log} Framework with Local and
                 Conditional Blackboard Operations",
  journal =      j-J-SYMBOLIC-COMP,
  volume =       "21",
  number =       "4/5/6",
  pages =        "669--698 (or 669--697??)",
  month =        apr # ", " # may # " \& " # jun,
  year =         "1996",
  CODEN =        "JSYCEH",
  ISSN =         "0747-7171 (print), 1095-855X (electronic)",
  ISSN-L =       "0747-7171",
  MRclass =      "68N17 (68Q10 68Q55 68T20)",
  MRnumber =     "1 420 916",
  bibdate =      "Sat May 10 15:54:09 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsymcomp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Parallel symbolic computation.",
  acknowledgement = ack-nhfb,
  classcodes =   "C6170K (Knowledge engineering techniques); C6110L
                 (Logic programming); C1250 (Pattern recognition); C1230
                 (Artificial intelligence)",
  corpsource =   "ELIS, Ghent Univ., Belgium",
  fjournal =     "Journal of Symbolic Computation",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07477171",
  keywords =     "blackboard architecture; blackboard communication;
                 blackboard operations; bottleneck; conditional access
                 primitives; local blackboards; logic programming;
                 matching; message naming conflicts; mu log framework;
                 pattern; pattern matching; PROLOG; Prolog;
                 unification",
  treatment =    "P Practical",
}

@Article{El-Mabrouk:1996:BMS,
  author =       "N. El-Mabrouk and M. Crochemore",
  title =        "{Boyer--Moore} Strategy to Efficient Approximate
                 String Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1075",
  pages =        "24--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Aug 14 09:38:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Fortnow:1996:RBI,
  author =       "Lance Fortnow and Martin Kummer",
  title =        "On resource-bounded instance complexity",
  journal =      j-THEOR-COMP-SCI,
  volume =       "161",
  number =       "1--2",
  pages =        "123--140",
  day =          "15",
  month =        jul,
  year =         "1996",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:20:03 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1996&volume=161&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1996&volume=161&issue=1-2&aid=2038",
  acknowledgement = ack-nhfb,
  classification = "C4240C (Computational complexity)",
  corpsource =   "Dept. of Comput. Sci., Chicago Univ., IL, USA",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "C-complexity; CD-complexity; computational complexity;
                 instance complexity; NP-hard; recursive set;
                 resource-bounded; shortest program; string; string
                 matching",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Fu:1996:APM,
  author =       "J. J. Fu",
  title =        "Approximate Pattern Matching in Directed Graphs",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1075",
  pages =        "373--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Aug 14 09:38:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Gittleman:1996:PSS,
  author =       "Arthur Gittleman",
  title =        "Predicting string search speed",
  journal =      j-ACM-J-EXP-ALGORITHMICS,
  volume =       "1",
  pages =        "2:1--2:??",
  month =        "????",
  year =         "1996",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/235141.235147",
  ISSN =         "1084-6654",
  ISSN-L =       "1084-6654",
  bibdate =      "Mon Oct 6 16:01:58 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jea.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "String search is fundamental in many text processing
                 applications. Sunday recently gave several algorithms
                 to find the first occurrence of a pattern string as a
                 substring of a text, providing experimental data from
                 searches in a text of about 200K characters to support
                 his claim that his algorithms are faster than the
                 standard Boyer--Moore algorithm. We present a
                 methodology for the average-case analysis of the
                 performance of string search algorithms---for such
                 algorithms, a worst-case analysis does not yield much
                 useful information, since the performance of the
                 algorithm is directly affected by such characteristics
                 as the size of the character set, the character
                 frequencies, and the structure of the text. Knuth
                 described a finite automaton which can be used to save
                 information about character comparisons. Baeza-Yates,
                 Gonnet, and Regnier gave a probabilistic analysis of
                 the worst- and average-case behavior of a string search
                 algorithm based upon such an automaton. We construct
                 Knuth automata to model Sunday's algorithms and use the
                 methods of Baeza-Yates et al. to obtain an average-case
                 analysis which confirms Sunday's experimental data.",
  acknowledgement = ack-nhfb,
  articleno =    "2",
  fjournal =     "Journal of Experimental Algorithmics (JEA)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J430",
}

@Article{Gostanza:1996:NLP,
  author =       "Pedro Palao Gostanza and Ricardo Pe{\~n}a and Manuel
                 N{\'u}{\~n}ez",
  title =        "A new look at pattern matching in abstract data
                 types",
  journal =      j-SIGPLAN,
  volume =       "31",
  number =       "6",
  pages =        "110--121",
  month =        jun,
  year =         "1996",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:20 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. de Inf. y Autom., Complutense Univ., Madrid,
                 Spain",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Guglielmo:1996:NLR,
  author =       "Eugene J. Guglielmo and Neil C. Rowe",
  title =        "Natural-Language Retrieval of Images Based on
                 Descriptive Captions",
  journal =      j-TOIS,
  volume =       "14",
  number =       "3",
  pages =        "237--267",
  month =        jul,
  year =         "1996",
  CODEN =        "ATISET",
  ISSN =         "1046-8188",
  ISSN-L =       "0734-2047",
  bibdate =      "Sat Jan 16 19:04:41 MST 1999",
  bibsource =    "Compendex database;
                 http://www.acm.org/pubs/tois/toc.html;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tois.bib",
  URL =          "http://www.acm.org:80/tois/abstracts/guglielmo.html",
  abstract =     "We describe a prototype intelligent information
                 retrieval system that uses natural-language
                 understanding to efficiently locate captioned data.
                 Multimedia data generally require captions to explain
                 their features and significance. Such descriptive
                 captions often rely on long nominal compounds (strings
                 of consecutive nouns) which create problems of
                 disambiguating word sense. In our system, captions and
                 user queries are parsed and interpreted to produce a
                 logical form, using a detailed theory of the meaning of
                 nominal compounds. A fine-grain match can then compare
                 the logical form of the query to the logical forms for
                 each caption. To improve system efficiency, we first
                 perform a coarse-grain match with index files, using
                 nouns and verbs extracted from the query. Our
                 experiments with randomly selected queries and captions
                 from an existing image library show an increase of 30\%
                 in precision and 50\% in recall over the keyphrase
                 approach currently used. Our processing times have a
                 media of seven seconds as compared to eight minutes for
                 the existing system, and our system is much easier to
                 use.",
  acknowledgement = ack-nhfb,
  affiliation =  "Monterey Bay Aquarium Research Inst (MBARI)",
  affiliationaddress = "Moss Landing, CA, USA",
  classification = "723.1.1; 723.2; 723.3; 723.4.1; 741; 903.3",
  fjournal =     "ACM Transactions on Information Systems (TOIS)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J779",
  journalabr =   "ACM Trans Inf Syst",
  keywords =     "Algorithms; Coarse grain match; Computational
                 linguistics; Database systems; Descriptive captions;
                 Fine grain match; Formal logic; Image processing;
                 Information retrieval systems; Intelligent information
                 retrieval system; Knowledge based systems; Knowledge
                 representation; Multimedia; Natural language processing
                 systems; Query languages",
}

@Article{Hirshfeld:1996:ULE,
  author =       "Yoram Hirshfeld",
  title =        "Undecidability of Language Equivalence for Generalized
                 Regular Expressions",
  journal =      j-FUND-INFO,
  volume =       "26",
  number =       "1",
  pages =        "95--102",
  month =        jan,
  year =         "1996",
  CODEN =        "FUMAAJ",
  DOI =          "https://doi.org/10.3233/FI-1996-2617",
  ISSN =         "0169-2968 (print), 1875-8681 (electronic)",
  ISSN-L =       "0169-2968",
  bibdate =      "Sat Mar 5 16:53:40 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fundinfo1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Fundamenta Informaticae",
  journal-URL =  "http://content.iospress.com/journals/fundamenta-informaticae",
}

@InProceedings{Howard:1996:LLC,
  author =       "P. G. Howard",
  title =        "Lossless and lossy compression of text images by soft
                 pattern matching",
  crossref =     "Storer:1996:DDC",
  pages =        "210--219",
  year =         "1996",
  DOI =          "https://doi.org/10.1109/DCC.1996.488326",
  bibdate =      "Tue Feb 5 08:26:50 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=488326",
  acknowledgement = ack-nhfb,
}

@Article{Idury:1996:MMP,
  author =       "Ramana M. Idury and Alejandro A. Sch{\"a}ffer",
  title =        "Multiple matching of parameterized patterns",
  journal =      j-THEOR-COMP-SCI,
  volume =       "154",
  number =       "2",
  pages =        "203--224",
  day =          "05",
  month =        feb,
  year =         "1996",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:19:42 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1996&volume=154&issue=2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1996&volume=154&issue=2&aid=1904",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C1250 (Pattern
                 recognition); C4220 (Automata theory); C4240
                 (Programming and algorithm theory)",
  corpsource =   "Dept. of Math., Univ. of Southern California, Los
                 Angeles, CA, USA",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "automata theory; changeable pattern set; deletions;
                 fixed patterns; insertions; multiple pattern matching
                 algorithms; parameterized patterns; parameterized
                 string matching; pattern matching; pattern matching
                 automata; pattern preprocessing; string matching;
                 suffix trees; text; trees (mathematics)",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Iliopoulos:1996:WTO,
  author =       "Costas S. Iliopoulos and Kunsoo Park",
  title =        "A work-time optimal algorithm for computing all string
                 covers",
  journal =      j-THEOR-COMP-SCI,
  volume =       "164",
  number =       "1--2",
  pages =        "299--310",
  day =          "10",
  month =        sep,
  year =         "1996",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:20:12 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1996&volume=164&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1996&volume=164&issue=1-2&aid=2255",
  acknowledgement = ack-nhfb,
  classification = "C4240C (Computational complexity); C4240P (Parallel
                 programming and algorithm theory)",
  corpsource =   "Dept. of Comput. Sci., King's Coll., London, UK",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "all-covers problem; computational complexity;
                 concatenations; CRCW PRAM algorithm; optimal algorithm;
                 parallel algorithms; regularity; repetitive structures;
                 string covers; string matching; time complexity",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{JaJa:1996:SSC,
  author =       "Joseph F. J{\'a}J{\'a} and Kwan Woo Ryu and Uzi
                 Vishkin",
  title =        "Sorting strings and constructing digital search trees
                 in parallel",
  journal =      j-THEOR-COMP-SCI,
  volume =       "154",
  number =       "2",
  pages =        "225--245",
  day =          "05",
  month =        feb,
  year =         "1996",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:19:42 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1996&volume=154&issue=2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1996&volume=154&issue=2&aid=1897",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C4240C
                 (Computational complexity); C4240P (Parallel
                 programming and algorithm theory)",
  corpsource =   "Inst. for Adv. Comput. Studies, Maryland Univ.,
                 College Park, MD, USA",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "alphabet; Arbitrary CRCW PRAM; circular string; Common
                 CRCW PRAM; computation model; computational complexity;
                 deterministic algorithm; deterministic algorithms;
                 digital search trees; lexicographic ordering;
                 optimal-work parallel algorithms; parallel algorithms;
                 randomised algorithms; randomized algorithm; single
                 processor; sorting; sorting strings; string matching;
                 strings; tree searching",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Jiang:1996:OWH,
  author =       "Tao Jiang and Ming Li",
  title =        "$k$ One-Way Heads Cannot Do String-Matching",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "53",
  number =       "3",
  pages =        "513--524",
  month =        dec,
  year =         "1996",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1006/jcss.1996.0084",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:26:32 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000096900847",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Jokinen:1996:CAS,
  author =       "Petteri Jokinen and Jorma Tarhio and Esko Ukkonen",
  title =        "A Comparison of Approximate String Matching
                 Algorithms",
  journal =      j-SPE,
  volume =       "26",
  number =       "12",
  pages =        "1439--1458",
  month =        dec,
  year =         "1996",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Thu Jul 29 15:11:09 MDT 1999",
  bibsource =    "http://www3.interscience.wiley.com/journalfinder.html;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract?ID=16782",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@InProceedings{Kaufmann:1996:IBMa,
  author =       "Matt Kaufmann and Paolo Pecchiari",
  title =        "Interaction with the {Boyer--Moore} Theorem Prover: a
                 Tutorial Study Using the Arithmetic--Geometric Mean
                 Theorem",
  crossref =     "Zhang:1996:AMI",
  pages =        "181--222",
  year =         "1996",
  DOI =          "https://doi.org/10.1007/978-94-009-1675-3_6",
  bibdate =      "Tue Mar 14 11:58:19 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/agm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-94-009-1675-3_6",
  acknowledgement = ack-nhfb,
  remark =       "This chapter presents a formal proof with the
                 Boyer--Moore Theorem Prover that the arithmetic mean of
                 a sequence of natural numbers is greater than or equal
                 to their geometric mean.",
}

@Article{Kaufmann:1996:IBMb,
  author =       "Matt Kaufmann and Paolo Pecchiari",
  title =        "Interaction with the {Boyer--Moore} theorem prover: A
                 tutorial study using the arithmetic--geometric mean
                 theorem",
  journal =      j-J-AUTOM-REASON,
  volume =       "16",
  number =       "1--2",
  pages =        "181--222",
  month =        mar,
  year =         "1996",
  CODEN =        "JAREEW",
  DOI =          "https://doi.org/10.1007/BF00244463",
  ISSN =         "0168-7433 (print), 1573-0670 (electronic)",
  ISSN-L =       "0168-7433",
  MRclass =      "68T15 (03B35)",
  MRnumber =     "1390909",
  bibdate =      "Tue Mar 14 07:52:56 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/agm.bib;
                 https://www.math.utah.edu/pub/tex/bib/jautomreason.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/BF00244463",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Autom. Reason.",
  fjournal =     "Journal of Automated Reasoning",
  journal-URL =  "http://link.springer.com/journal/10817",
  zzbibdate =    "Tue Aug 15 10:35:36 2017",
}

@InProceedings{Kontoyiannis:1996:SEE,
  author =       "I. Kontoyiannis and Y. M. Suhov",
  title =        "Stationary entrophy estimation via string matching",
  crossref =     "Storer:1996:DDC",
  pages =        "??--??",
  year =         "1996",
  DOI =          "https://doi.org/10.1109/DCC.1996.488376",
  bibdate =      "Tue Feb 5 08:26:50 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=488376",
  acknowledgement = ack-nhfb,
}

@Article{Lucarella:1996:VRE,
  author =       "Dario Lucarella and Antonella Zanzi",
  title =        "A Visual Retrieval Environment for Hypermedia
                 Information Systems",
  journal =      j-TOIS,
  volume =       "14",
  number =       "1",
  pages =        "3--29",
  month =        jan,
  year =         "1996",
  CODEN =        "ATISET",
  ISSN =         "1046-8188",
  ISSN-L =       "0734-2047",
  bibdate =      "Sat Jan 16 19:04:41 MST 1999",
  bibsource =    "Compendex database;
                 http://www.acm.org/pubs/tois/toc.html;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tois.bib",
  URL =          "http://www.acm.org:80/tois/abstracts/lucarella.html",
  abstract =     "A graph-based object model that may be used as a
                 uniform framework for direct manipulation of multimedia
                 information is presented. After motivating the need for
                 abstraction and structuring mechanisms in hypermedia
                 systems, the notion of perspective is introduced, which
                 is a form of data abstraction that acts as a user
                 interface to the system, providing control over the
                 visibility of the objects and their properties.
                 Presented is a visual retrieval environment that
                 effectively combines filtering, browsing, and
                 navigation to provide an integrated view of the
                 retrieval problem. Design and implementation issues are
                 outlined for MORF (Multimedia Object Retrieval
                 Environment), a prototype system relying on the
                 proposed model. The focus is on the main user interface
                 functionalities. Actual interaction sessions are
                 presented including schema creation, information
                 loading, and information retrieval.",
  acknowledgement = ack-nhfb,
  affiliation =  "Centro Ricerca di Automatica",
  affiliationaddress = "Milano, Italy",
  classification = "722.2; 723.2; 723.3; 723.5; 903.3; 903.4",
  fjournal =     "ACM Transactions on Information Systems (TOIS)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J779",
  journalabr =   "ACM Trans Inf Syst",
  keywords =     "Abstracting; Browsing; Computer simulation; Data
                 structures; Database systems; Graphical user
                 interfaces; Hypermedia information systems; Hypertext;
                 Information filtering; Information retrieval systems;
                 Information services; Information technology;
                 Interactive computer graphics; Multimedia; Multimedia
                 object retrieval environment; Pattern matching; Schema
                 graph; Subgraph; Systems analysis; Visual retrieval
                 environment; Visualization",
}

@Article{Marx:1996:PWA,
  author =       "Delia I. S. Marx and Phyllis G. Frankl",
  title =        "The path-wise approach to data flow testing with
                 pointer variables",
  journal =      j-SIGSOFT,
  volume =       "21",
  number =       "3",
  pages =        "135--146",
  month =        may,
  year =         "1996",
  CODEN =        "SFENDP",
  DOI =          "https://doi.org/10.1145/226295.226311",
  ISSN =         "0163-5948 (print), 1943-5843 (electronic)",
  ISSN-L =       "0163-5948",
  bibdate =      "Wed Aug 1 17:13:10 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigsoft1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This paper describes a new approach to performing data
                 flow testing on programs that use pointer variables and
                 a tool based on this approach. Our technique is based
                 on the observation that, under certain reasonable
                 assumptions, we can determine which dereferenced
                 pointers are aliased whenever control reaches a given
                 program point via a particular path. Furthermore, we
                 can group together paths which behave similarly and
                 represent them by regular expressions. The resulting
                 test requirements demand that the test data execute
                 representatives of particular sets of paths between
                 variable definitions and uses.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGSOFT Software Engineering Notes",
  journal-URL =  "https://dl.acm.org/citation.cfm?id=J728",
}

@Article{Matsushita:1996:FPM,
  author =       "M. Matsushita and M. Umano and I. Hatono and H.
                 Tamura",
  title =        "A Fast Pattern-Matching Algorithm Using Matching
                 Candidates for Production Systems",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1114",
  pages =        "646--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Oct 29 14:12:39 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Middendorf:1996:TDP,
  author =       "Martin Middendorf",
  title =        "Two-dimensional partitioning problems",
  journal =      j-THEOR-COMP-SCI,
  volume =       "164",
  number =       "1--2",
  pages =        "73--106",
  day =          "10",
  month =        sep,
  year =         "1996",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:20:12 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1996&volume=164&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1996&volume=164&issue=1-2&aid=2126",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C4240C
                 (Computational complexity); C6120 (File organisation);
                 C6130 (Data handling techniques)",
  corpsource =   "Inst. f{\"u}r Angewandte Inf. und Formale
                 Beschreibungsverfahren, Karlsruhe Univ., Germany",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "2 dimensional consecutive sets problem; complexity;
                 computational complexity; consecutive sets; scheduling;
                 set theory; storage management; storage organization;
                 string; string matching; two dimensional partitioning
                 problems",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Mossouni:1996:CSM,
  author =       "F. Mossouni and C. Lavault",
  title =        "{$N$}-Cube String Matching Algorithm with Long Texts",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1120",
  pages =        "328--340",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon Aug 25 16:23:54 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Moussouni:1996:DSM,
  author =       "F. Moussouni and C. Lavault",
  title =        "Distributed String Matching Algorithm on the
                 {$N$}-cube",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1123",
  pages =        "832--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Oct 29 14:12:39 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Muth:1996:AMS,
  author =       "R. Muth and U. Manber",
  title =        "Approximate Multiple String Search",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1075",
  pages =        "75--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Aug 14 09:38:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs1996a.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Nelson:1996:AAF,
  author =       "Mark R. Nelson",
  title =        "Algorithm Alley: Fast String Searches With Suffix
                 Trees",
  journal =      j-DDJ,
  volume =       "21",
  number =       "8",
  pages =        "115--??",
  month =        aug,
  year =         "1996",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Mon Sep 2 09:09:39 MDT 1996",
  bibsource =    "http://www.ddj.com/index/author/index.htm;
                 https://www.math.utah.edu/pub/tex/bib/dr-dobbs-1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Park:1996:ATD,
  author =       "K. Park",
  title =        "Analysis of Two-Dimensional Approximate Pattern
                 Matching Algorithms",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1075",
  pages =        "335--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Aug 14 09:38:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Raymond:1996:RRE,
  author =       "P. Raymond",
  title =        "Recognizing Regular Expressions by Means of Dataflow
                 Networks",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1099",
  pages =        "336--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Fri Sep 6 19:46:15 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Sadeh:1996:UDC,
  author =       "Ilan Sadeh",
  title =        "Universal Data Compression Algorithm Based on
                 Approximate String Matching",
  journal =      j-PROBAB-ENGRG-INFORM-SCI,
  volume =       "10",
  number =       "4",
  pages =        "465--486",
  month =        oct,
  year =         "1996",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1017/S0269964800004502",
  ISSN =         "0269-9648 (print), 1469-8951 (electronic)",
  ISSN-L =       "0269-9648",
  bibdate =      "Thu Aug 24 08:19:22 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/probab-engrg-inform-sci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.cambridge.org/core/product/F03252060CD00649B02534E0CF74CD68",
  acknowledgement = ack-nhfb,
  ajournal =     "Probab. Engrg. Inform. Sci.",
  fjournal =     "Probability in the Engineering and Informational
                 Sciences",
  journal-URL =  "http://www.journals.cambridge.org/jid_PES",
  onlinedate =   "01 July 2009",
}

@Article{Sanfeliu:1996:ERC,
  author =       "A. Sanfeliu and R. Alquezar",
  title =        "Efficient Recognition of a Class of Context-Sensitive
                 Languages Described by Augmented Regular Expressions",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1121",
  pages =        "1--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat Dec 21 09:47:26 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Seni:1996:GED,
  author =       "Giovanni Seni and V. Kripasundar and Rohini K.
                 Srihari",
  title =        "Generalizing edit distance to incorporate domain
                 information: handwritten text recognition as a case
                 study",
  journal =      j-PATTERN-RECOGN,
  volume =       "29",
  number =       "3",
  pages =        "405--414",
  month =        mar,
  year =         "1996",
  CODEN =        "PTNRA8",
  ISSN =         "0031-3203 (print), 1873-5142 (electronic)",
  ISSN-L =       "0031-3203",
  bibdate =      "Wed Jan 15 12:19:41 MST 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/spell.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "In this paper the Damerau-Levenshtein string
                 difference metric is generalized in two ways to more
                 accurately compensate for the types of errors that are
                 present in the script recognition domain. First, the
                 basic dynamic programming method for computing such a
                 measure is extended to allow for merges, splits and
                 two-letter substitutions. Second, edit operations are
                 refined into categories according to the effect they
                 have on the visual `appearance' of words. A set of
                 recognizer-independent constraints is developed to
                 reflect the severity of the information lost due to
                 each operation. These constraints are solved to assign
                 specific costs to the operations. Experimental results
                 on 2335 corrupted strings and a lexicon of 21,299 words
                 show higher correcting rates than with the original
                 form.",
  acknowledgement = ack-nhfb,
  affiliation =  "CEDAR\slash SUNY at Buffalo",
  affiliationaddress = "Buffalo, NY, USA",
  classification = "721.1; 723.2; 723.5; 921.5",
  fjournal =     "Pattern Recognition",
  journalabr =   "Pattern Recognit",
  keywords =     "Calculations; Character recognition; Constraint
                 theory; Damerau-Levenshtein metric; Dynamic
                 programming; Error correction; Image segmentation; Post
                 processing; Script recognition; Spelling error
                 correction; String distance; String matching; Text
                 editing; Word recognition",
}

@Article{Sestoft:1996:MPM,
  author =       "P. Sestoft",
  title =        "{ML} Pattern Match Compilation and Partial
                 Evaluation",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1110",
  pages =        "446--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Oct 29 14:12:39 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Shawe-Taylor:1996:FSM,
  author =       "John Shawe-Taylor",
  title =        "Fast string matching in stationary ergodic sources",
  journal =      j-COMBIN-PROBAB-COMPUT,
  volume =       "5",
  number =       "4",
  pages =        "415--427",
  month =        dec,
  year =         "1996",
  CODEN =        "CPCOFG",
  DOI =          "https://doi.org/10.1017/S0963548300002169",
  ISSN =         "0963-5483 (print), 1469-2163 (electronic)",
  ISSN-L =       "0963-5483",
  MRclass =      "68Q25 (68Q20)",
  MRnumber =     "MR1426434 (98c:68098)",
  MRreviewer =   "Colin J. H. McDiarmid",
  bibdate =      "Sat Nov 26 17:00:44 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/combinprobabcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  ajournal =     "Combin. Probab. Comput.",
  fjournal =     "Combinatorics, Probability and Computing",
  journal-URL =  "http://journals.cambridge.org/action/displayJournal?jid=CPC",
}

@Article{Shi:1996:SAM,
  author =       "F. Shi",
  title =        "Suffix Arrays for Multiple Strings: a Method for
                 On-line Multiple String Searches",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1179",
  pages =        "11--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Fri Aug 22 11:59:49 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs1996b.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Stojmenovic:1996:CTB,
  author =       "Ivan Stojmenovic",
  title =        "Constant Time {BSR} Solutions to Parenthesis Matching,
                 Tree Decoding, and Tree Reconstruction From Its
                 Traversals",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "7",
  number =       "2",
  pages =        "218--224",
  month =        feb,
  year =         "1996",
  CODEN =        "ITDSEO",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Fri Nov 6 12:31:15 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/ieeetranspardistsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.computer.org/tpds/td1996/l0218abs.htm",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Ottawa",
  affiliationaddress = "Ottawa, Ont, Can",
  classification = "722.1; 722.4; 723.1; 723.2; 921.6; C4240P (Parallel
                 programming and algorithm theory)",
  corpsource =   "Dept. of Comput. Sci., Ottawa Univ., Ont., Canada",
  fjournal =     "IEEE Transactions on Parallel and Distributed
                 Systems",
  journal-URL =  "http://www.computer.org/tpds/archives.htm",
  journalabr =   "IEEE Trans Parallel Distrib Syst",
  keywords =     "Binary tree; binary trees; Bistring representation;
                 bitstring representation; Broadcasting; broadcasting
                 with selective reduction; Broadcasting with selective
                 reduction; BSR solutions; Data storage equipment; Data
                 structures; decoding; Decoding; Integer sorting; next
                 tree shape; Number theory; parallel algorithms;
                 Parallel algorithms; parallel computation; parallel
                 prefix; Parallel prefix; Parallel processing systems;
                 Parallel random access machine; Parenthesis matching;
                 parenthesis matching; reconstruction; Sorting; sorting;
                 Storage allocation (computer); Transversals; tree; tree
                 decoding; Tree decoding; Tree reconstruction",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Sutinen:1996:FQS,
  author =       "E. Sutinen and J. Tarhio",
  title =        "Filtration with $q$-Samples in Approximate String
                 Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1075",
  pages =        "50--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Aug 14 09:38:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs1996a.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Sutinen:1996:FSA,
  author =       "E. Sutinen and J. Tarhio",
  title =        "Filtration with $q$-Samples in Approximate String
                 Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1075",
  pages =        "50--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Aug 14 09:38:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Takahashi:1996:UCN,
  author =       "Yoshikane Takahashi",
  title =        "A unified constructive network model for
                 problem-solving",
  journal =      j-THEOR-COMP-SCI,
  volume =       "156",
  number =       "1--2",
  pages =        "217--261",
  day =          "25",
  month =        mar,
  year =         "1996",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:19:48 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1996&volume=156&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1996&volume=156&issue=1-2&aid=2075",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C1180
                 (Optimisation techniques); C4240 (Programming and
                 algorithm theory); C5290 (Neural computing
                 techniques)",
  corpsource =   "NTT Commun. Sci. Labs., Yokosuka, Japan",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "algorithm theory; computation theory; constituent
                 functions set; constraint; neural net model; neural
                 nets; neural network model; optimisation; optimization
                 problem; pattern classification; pattern matching;
                 problem solving; programming theory; restrictive
                 conditions; traveling salesman problem; travelling
                 salesman problem; travelling salesman problems; unified
                 constructive network model; unified method",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Takaoka:1996:LRP,
  author =       "Tadao Takaoka",
  title =        "A left-to-right preprocessing computation for the
                 {Boyer--Moore} string matching algorithm",
  journal =      j-COMP-J,
  volume =       "39",
  number =       "5",
  pages =        "413--416",
  month =        "????",
  year =         "1996",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/39.5.413",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Tue Dec 4 14:48:47 MST 2012",
  bibsource =    "http://comjnl.oxfordjournals.org/content/39/5.toc;
                 http://www3.oup.co.uk/computer_journal/Volume_39/Issue_05/Vol39_05.index.html;
                 https://www.math.utah.edu/pub/tex/bib/compj.bib;
                 https://www.math.utah.edu/pub/tex/bib/compj1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/39/5/413.full.pdf+html;
                 http://www.oup.co.uk/jnls/list/comjnl/hdb/Volume_39/Issue_05/390413.sgm.abs.html;
                 http://www3.oup.co.uk/computer_journal/Volume_39/Issue_05/Vol39_05.body.html#AbstractTakaoka",
  acknowledgement = ack-nhfb,
  classcodes =   "C6130 (Data handling techniques); C4240C
                 (Computational complexity)",
  corpsource =   "Dept. of Comput. Sci., Ibaraki Univ., Japan",
  email-1 =      "takaoka@cis.ibaraki.ac.jp",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  keywords =     "BM algorithm; Boyer--Moore string; computational
                 complexity; d-table; dd-table; Horspool table; KMP
                 algorithm; left-to-right preprocessing computation;
                 linear; matching algorithm; offline processing; on the
                 fly; online; pattern matching; processing; random
                 pattern; shift tables; string matching; time",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Tuijn:1996:CCG,
  author =       "Chris Tuijn and Marc Gyssens",
  title =        "{CGOOD}, a categorical graph-oriented object data
                 model",
  journal =      j-THEOR-COMP-SCI,
  volume =       "160",
  number =       "1--2",
  pages =        "217--239",
  day =          "10",
  month =        jun,
  year =         "1996",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:20:01 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1996&volume=160&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1996&volume=160&issue=1-2&aid=2030",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C1250 (Pattern
                 recognition); C4250 (Database theory); C6120 (File
                 organisation); C6140D (High level languages); C6160J
                 (Object-oriented databases)",
  corpsource =   "Agfa-Gevaert N.V., Mortsel, Belgium",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "categorical approach; categorical constructs;
                 categorical graph oriented object data model; category
                 theory; CGOOD; data structures; functional abstraction;
                 graph category; graph theory; instance level;
                 morphisms; object oriented data model; object-oriented
                 databases; pattern matching; pattern matchings; query
                 language; query languages; relational database
                 operators; transitive closure; typed graphs; update
                 language",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Watson:1996:NRG,
  author =       "B. W. Watson",
  title =        "A New Regular Grammar Pattern Matching Algorithm",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1136",
  pages =        "364--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat Dec 21 09:47:26 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Watson:1996:TSM,
  author =       "B. W. Watson and G. Zwaan",
  title =        "A taxonomy of sublinear multiple keyword pattern
                 matching algorithms",
  journal =      j-SCI-COMPUT-PROGRAM,
  volume =       "27",
  number =       "2",
  pages =        "85--118",
  month =        sep,
  year =         "1996",
  CODEN =        "SCPGD4",
  ISSN =         "0167-6423 (print), 1872-7964 (electronic)",
  ISSN-L =       "0167-6423",
  MRclass =      "68Q20 (68Q25)",
  MRnumber =     "97e:68039",
  bibdate =      "Sun Oct 10 09:12:09 MDT 1999",
  bibsource =    "Compendex database;
                 http://www.sciencedirect.com/science/journal/01676423;
                 https://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  acknowledgement = ack-nhfb,
  affiliation =  "Eindhoven Univ of Technology",
  affiliationaddress = "Neth",
  classification = "716.1; 723; 903.1; 921.4",
  fjournal =     "Science of Computer Programming",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01676423",
  journalabr =   "Sci Comput Program",
  keywords =     "Algorithms; Classification (of information); Computer
                 aided analysis; Data processing; Graph theory;
                 Information analysis; Taxonomy; Trees (mathematics)",
}

@Article{Ziadi:1996:REL,
  author =       "Djelloul Ziadi",
  title =        "Regular expression for a language without empty word",
  journal =      j-THEOR-COMP-SCI,
  volume =       "163",
  number =       "1--2",
  pages =        "309--315",
  day =          "30",
  month =        aug,
  year =         "1996",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:20:10 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1996&volume=163&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1996&volume=163&issue=1-2&aid=2231",
  acknowledgement = ack-nhfb,
  classification = "C4210L (Formal languages and computational
                 linguistics)",
  corpsource =   "Lab. d'Inf., Rouen Univ., Mont-Saint-Aignan, France",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "formal language; formal languages; linear-time
                 algorithm; recursive definition; recursive functions;
                 regular expression",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Zuendorf:1996:GPM,
  author =       "A. Zuendorf",
  title =        "Graph Pattern Matching in {PROGRES}",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1073",
  pages =        "454--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Aug 14 09:38:08 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Amir:1997:IPM,
  author =       "Amihood Amir and Alberto Apostolico and Moshe
                 Lewenstein",
  title =        "Inverse Pattern Matching",
  journal =      j-J-ALG,
  volume =       "24",
  number =       "2",
  pages =        "325--339",
  month =        aug,
  year =         "1997",
  CODEN =        "JOALDV",
  DOI =          "https://doi.org/10.1006/jagm.1996.0850",
  ISSN =         "0196-6774 (print), 1090-2678 (electronic)",
  ISSN-L =       "0196-6774",
  bibdate =      "Tue Dec 11 09:16:44 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jalg.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0196677496908500",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Algorithms",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01966774",
}

@Article{Amir:1997:PMH,
  author =       "A. Amir and M. Lewenstein and N. Lewenstein",
  title =        "Pattern Matching in Hypertext",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1272",
  pages =        "160--??",
  year =         "1997",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Apr 28 08:51:33 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@InProceedings{Amir:1997:PMS,
  author =       "A. Amir and Y. Aumann and G. M. Landau and M.
                 Lewenstein and N. Lewenstein",
  title =        "Pattern matching with swaps",
  crossref =     "IEEE:1997:ASF",
  pages =        "144--153",
  year =         "1997",
  bibdate =      "Thu Apr 5 06:13:52 MDT 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:1997:BRMf,
  author =       "Anonymous",
  title =        "Book Review: {{\booktitle{Mastering regular
                 expressions: Powerful techniques for perl and other
                 tools}}: By Jeffrey E. F. Friedl. O'Reilly, Sebastopol,
                 CA. (1997). 342 pages. \$29.95}",
  journal =      j-COMPUT-MATH-APPL,
  volume =       "33",
  number =       "5",
  pages =        "129--129",
  month =        mar,
  year =         "1997",
  CODEN =        "CMAPDK",
  ISSN =         "0898-1221 (print), 1873-7668 (electronic)",
  ISSN-L =       "0898-1221",
  bibdate =      "Wed Mar 1 21:48:37 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computmathappl1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0898122197829343",
  acknowledgement = ack-nhfb,
  fjournal =     "Computers and Mathematics with Applications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/08981221",
}

@Article{Anonymous:1997:BRPj,
  author =       "Anonymous",
  title =        "Book Review: {{\booktitle{Pattern matching
                 algorithms}}: Edited by Alberto Apostolico and Zvi
                 Galil. Oxford University Press, New York, (1997). 377
                 pages. \$65.00}",
  journal =      j-COMPUT-MATH-APPL,
  volume =       "34",
  number =       "10",
  pages =        "138--139",
  month =        nov,
  year =         "1997",
  CODEN =        "CMAPDK",
  ISSN =         "0898-1221 (print), 1873-7668 (electronic)",
  ISSN-L =       "0898-1221",
  bibdate =      "Wed Mar 1 21:48:40 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computmathappl1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0898122197902352",
  acknowledgement = ack-nhfb,
  fjournal =     "Computers and Mathematics with Applications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/08981221",
}

@Book{Apostolico:1997:PMA,
  editor =       "Alberto Apostolico and Zvi Galil",
  title =        "Pattern matching algorithms",
  publisher =    pub-OXFORD,
  address =      pub-OXFORD:adr,
  pages =        "377",
  year =         "1997",
  ISBN =         "0-19-511367-5",
  ISBN-13 =      "978-0-19-511367-9",
  LCCN =         "QA76.9.A43 P38 1997",
  bibdate =      "Mon Mar 6 10:15:11 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.loc.gov/catdir/enhancements/fy0603/96049602-d.html;
                 http://www.loc.gov/catdir/enhancements/fy0603/96049602-t.html",
  abstract =     "This text provides an overview of the current state of
                 pattern matching as seen by specialists who have
                 devoted years of study to the field. It covers most of
                 the basic principles and presents material from the
                 frontier of research.",
  acknowledgement = ack-nhfb,
  subject =      "Computer algorithms; Combinatorial analysis;
                 COMPUTERS; Optical Data Processing.; Combinatorial
                 analysis.; Computer algorithms.; Combinat{\'o}ria.;
                 Algorithmus.; Mustererkennung.; Mustervergleich.",
  tableofcontents = "Off-line serial exact string searching / M.
                 Crochemore \\
                 Off-line parallel exact string searching / Z. Galil and
                 I. Yudkiewicz \\
                 On-line string searching / A. Apostolico \\
                 Serial computations of Levenshtein distances / D. S.
                 Hirschberg \\
                 Parallel computations of Levenshtein distances / A.
                 Apostolico and M. J. Atallah \\
                 Approximate string searching / G. M. Landau and U.
                 Vishkin \\
                 Dynamic programming: special cases / R. Giancarlo \\
                 Shortest common superstrings / M. Li and T. Jiang \\
                 Two dimensional matching / A. Amir and M. Farach \\
                 Suffix tree data structures for matrices / R. Giancarlo
                 and R. Grossi \\
                 Tree pattern matching / K. Zhang and D. Shasa",
}

@InProceedings{Atzeni:1997:CP,
  author =       "Paolo Atzeni and Giansalvatore Mecca",
  title =        "Cut and paste",
  crossref =     "ACM:1997:PPS",
  pages =        "144--153",
  year =         "1997",
  bibdate =      "Wed Oct 25 08:47:39 MDT 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pods/263661/p144-atzeni/p144-atzeni.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pods/263661/p144-atzeni/;
                 http://www.acm.org:80/pubs/citations/proceedings/pods/263661/p144-atzeni/",
  acknowledgement = ack-nhfb,
  keywords =     "documentation; languages; performance",
  subject =      "{\bf H.2.3} Information Systems, DATABASE MANAGEMENT,
                 Languages. {\bf C.2.1} Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, Network Architecture
                 and Design, Internet. {\bf I.7.2} Computing
                 Methodologies, DOCUMENT AND TEXT PROCESSING, Document
                 Preparation. {\bf H.5.2} Information Systems,
                 INFORMATION INTERFACES AND PRESENTATION, User
                 Interfaces. {\bf F.2.2} Theory of Computation, ANALYSIS
                 OF ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Pattern matching.",
}

@Article{Baeza-Yates:1997:MAS,
  author =       "R. Baeza-Yates and G. Navarro",
  title =        "Multiple Approximate String Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1272",
  pages =        "174--??",
  year =         "1997",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Apr 28 08:51:33 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@InProceedings{Bentley:1997:FAS,
  author =       "Jon L. Bentley and Robert Sedgewick",
  title =        "Fast Algorithms for Sorting and Searching Strings",
  crossref =     "ACM:1997:PEA",
  pages =        "360--369",
  year =         "1997",
  bibdate =      "Sat Sep 13 16:06:32 1997",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.cs.princeton.edu/~rs/strings/paper.pdf",
  abstract =     "We present theoretical algorithms for sorting and
                 searching multikey data, and derive from them practical
                 C implementations for applications in which keys are
                 character strings. The sorting algorithm blends
                 Quicksort and radix sort; it is competitive with the
                 best known C sort codes. The searching algorithm blends
                 tries and binary search trees; it is faster than
                 hashing and other commonly used search methods. The
                 basic ideas behind the algorithms date back at least to
                 the 1960s, but their practical utility has been
                 overlooked. We also present extensions to more complex
                 string problems, such as partial-match searching.",
  acknowledgement = ack-nhfb,
  affiliation =  "Bell Lab",
  affiliationaddress = "NJ, USA",
  classification = "723; 723.1; 723.1.1; 903.3; 921.4",
  conference =   "Proceedings of the 1996 8th Annual ACM--SIAM Symposium
                 on Discrete Algorithms",
  journalabr =   "Proc Annu ACM SIAM Symp Discrete Algorithms",
  keywords =     "Algorithms; C (programming language); Information
                 retrieval; Quicksort algorithms; Radix sort algorithms;
                 Searching algorithms; Sorting; Structured programming;
                 Trees (mathematics)",
  meetingaddress = "New Orleans, LA, USA",
  meetingdate =  "Jan 5--7 1997",
  meetingdate2 = "01/05--07/97",
  sponsor =      "ACM-SIAM",
}

@Article{Berman:1997:CPM,
  author =       "P. Berman and M. Karpinski and L. L. Larmore and W.
                 Plandowski",
  title =        "On the Complexity of Pattern Matching for Highly
                 Compressed Two-Dimensional Texts",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1264",
  pages =        "40--??",
  year =         "1997",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Fri Aug 22 11:59:49 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Bernecky:1997:PBI,
  author =       "Robert Bernecky and Michael Fitzpatrick",
  title =        "Programmer's Bookshelf: Inner Loops and Regular
                 Expressions",
  journal =      j-DDJ,
  volume =       "22",
  number =       "12",
  pages =        "141, 143",
  month =        dec,
  year =         "1997",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Fri Nov 28 17:26:40 MST 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This month, Robert examines Rick Booth's {\em Inner
                 Loops: A Sourcebook for Fast 32-bit Software
                 Development}, while Michael looks at Jeffrey Friedl's
                 {\em Mastering Regular Expressions}.",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Chang:1997:RED,
  author =       "Chia-Hsiang Chang and Robert Paige",
  title =        "From regular expressions to {DFA}'s using compressed
                 {NFA}'s",
  journal =      j-THEOR-COMP-SCI,
  volume =       "178",
  number =       "1--2",
  pages =        "1--36",
  day =          "30",
  month =        may,
  year =         "1997",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:20:54 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1997&volume=178&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1997&volume=178&issue=1-2&aid=2343",
  acknowledgement = ack-nhfb,
  classification = "C4210L (Formal languages and computational
                 linguistics); C4220 (Automata theory); C6110 (Systems
                 analysis and programming)",
  corpsource =   "Inst. of Inf. Sci., Acad. Sinica, Taipei, Taiwan",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "alphabet symbols; compressed NFAs; deterministic
                 automata; deterministic finite automata; DFAs; finite
                 automata; finite differencing; formal languages;
                 functional programming; functional programs;
                 nondeterministic finite automata; program
                 transformations; regular expressions; space
                 representation",
  pubcountry =   "Netherlands",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Misc{Charras:1997:ESM,
  author =       "Christian Charras and Thierry Lecroq",
  title =        "Exact String Matching Algorithms",
  howpublished = "Web site.",
  day =          "14",
  month =        jan,
  year =         "1997",
  bibdate =      "Thu Nov 14 10:14:24 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www-igm.univ-mlv.fr/~lecroq/string/index.html",
  acknowledgement = ack-nhfb,
  remark =       "This site compares 36 different algorithms for string
                 matching, and includes implementations in C.",
}

@Article{Clarke:1997:URE,
  author =       "Charles L. A. Clarke and Gordon V. Cormack",
  title =        "On the use of Regular Expressions for Searching Text",
  journal =      j-TOPLAS,
  volume =       "19",
  number =       "3",
  pages =        "413--426",
  month =        may,
  year =         "1997",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Thu Sep 11 18:32:35 MDT 1997",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/sgml.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/citations/journals/toplas/1997-19-3/p413-clarke/",
  abstract =     "The use of regular expressions for text search is
                 widely known and well understood. It is then surprising
                 that the standard techniques and tools prove to be of
                 limited use for searching structured text formatted
                 with SGML or similar markup languages. Our experience
                 with structured text search has caused us to reexamine
                 the current practice. The generally accepted rule of
                 ``leftmost longest match'' is an unfortunate choice and
                 is at the root of the difficulties. We instead propose
                 a rule which is semantically cleaner. This rule is
                 generally applicable to a variety of text search
                 applications, including source code analysis, and has
                 interesting properties in its own right. We have
                 written a publicly available search tool implementing
                 the theory in the article, which has proved valuable in
                 a variety of circumstances.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms",
  subject =      "{\bf D.3.2} Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Specialized application languages",
}

@InProceedings{Cole:1997:TPM,
  author =       "Richard Cole and Ramesh Hariharan",
  title =        "Tree pattern matching and subset matching in
                 randomized {$ O(n \log^3 m) $} time",
  crossref =     "ACM:1997:PTN",
  pages =        "66--75",
  year =         "1997",
  bibdate =      "Wed Feb 20 18:34:03 MST 2002",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/stoc/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/stoc/258533/p66-cole/p66-cole.pdf;
                 http://www.acm.org/pubs/citations/proceedings/stoc/258533/p66-cole/",
  acknowledgement = ack-nhfb,
}

@Article{Cole:1997:TUB,
  author =       "Richard Cole and Ramesh Hariharan",
  title =        "Tighter Upper Bounds on the Exact Complexity of String
                 Matching",
  journal =      j-SIAM-J-COMPUT,
  volume =       "26",
  number =       "3",
  pages =        "803--856",
  month =        jun,
  year =         "1997",
  CODEN =        "SMJCAT",
  DOI =          "https://doi.org/10.1137/S009753979324694X",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68R15 (68Q25 68U15)",
  MRnumber =     "1 448 636",
  bibdate =      "Mon Nov 29 11:03:08 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/26/3;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://epubs.siam.org/sam-bin/dbq/article/24694",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Crochemore:1997:CTR,
  author =       "Maxime Crochemore and Zvi Galil and Leszek
                 {G{\c{a}}sieniec} and Kunsoo Park and Wojciech Rytter",
  title =        "Constant-Time Randomized Parallel String Matching",
  journal =      j-SIAM-J-COMPUT,
  volume =       "26",
  number =       "4",
  pages =        "950--960",
  month =        aug,
  year =         "1997",
  CODEN =        "SMJCAT",
  DOI =          "https://doi.org/10.1137/S009753979528007X",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68Q22 (68Q25 68R15)",
  MRnumber =     "98c:68079",
  bibdate =      "Mon Nov 29 11:03:10 MST 2010",
  bibsource =    "Compendex database;
                 http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/26/4;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://epubs.siam.org/sam-bin/dbq/article/28007",
  acknowledgement = ack-nhfb,
  affiliation =  "Universit{\'e} de Marne-la-Vall{\'e}e",
  affiliationaddress = "Noisy le Grand, Fr",
  classification = "723.2; 921.5; 921.6; 922.1",
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
  journalabr =   "SIAM J Comput",
  keywords =     "Computational methods; Optimization; Parallel
                 algorithms; Parallel string matching; Probability;
                 Random processes; Randomized algorithm",
}

@Book{Friedl:1997:MRE,
  author =       "Jeffrey E. F. Friedl",
  title =        "Mastering regular expressions: powerful techniques for
                 {Perl} and other tools",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xxiv + 342",
  year =         "1997",
  ISBN =         "1-56592-257-3",
  ISBN-13 =      "978-1-56592-257-0",
  LCCN =         "QA76.73.P22 F75 1997; QA76.9.D3G728 1997",
  bibdate =      "Mon Apr 18 14:53:04 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib;
                 z3950.loc.gov:7090/Voyager",
  price =        "US\$29.95",
  series =       "A Nutshell handbook",
  URL =          "http://www.ora.com/catalog/regex/;
                 http://www.oreilly.com/catalog/9781565922570;
                 http://www.oreilly.com/catalog/regex",
  acknowledgement = ack-nhfb,
  subject =      "Perl (Computer program language)",
}

@Article{Friesenhahn:1997:EOU,
  author =       "Bob Friesenhahn",
  title =        "{Expect} Offers {Unix} Scripting --- Embeddable
                 language offers pattern-matching capabilities",
  journal =      j-BYTE,
  volume =       "22",
  number =       "4",
  pages =        "63--??",
  month =        apr,
  year =         "1997",
  CODEN =        "BYTEDJ",
  ISSN =         "0360-5280 (print), 1082-7838 (electronic)",
  ISSN-L =       "0360-5280",
  bibdate =      "Sat Apr 19 09:26:25 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "BYTE Magazine",
}

@Article{Fu:1997:DGP,
  author =       "James Jianghai Fu",
  title =        "Directed Graph Pattern Matching and Topological
                 Embedding",
  journal =      j-J-ALG,
  volume =       "22",
  number =       "2",
  pages =        "372--391",
  month =        feb,
  year =         "1997",
  CODEN =        "JOALDV",
  DOI =          "https://doi.org/10.1006/jagm.1996.0818",
  ISSN =         "0196-6774 (print), 1090-2678 (electronic)",
  ISSN-L =       "0196-6774",
  bibdate =      "Tue Dec 11 09:16:28 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jalg.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0196677496908184",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Algorithms",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01966774",
}

@Article{Gasieniec:1997:EIP,
  author =       "L. Gasieniec and P. Indyk and P. Krysta",
  title =        "External Inverse Pattern Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1264",
  pages =        "90--??",
  year =         "1997",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Fri Aug 22 11:59:49 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Giancarlo:1997:MDP,
  author =       "Raffaele Giancarlo and Roberto Grossi",
  title =        "Multi-Dimensional Pattern Matching with Dimensional
                 Wildcards: Data Structures and Optimal On-Line Search
                 Algorithms",
  journal =      j-J-ALG,
  volume =       "24",
  number =       "2",
  pages =        "223--265",
  month =        aug,
  year =         "1997",
  CODEN =        "JOALDV",
  DOI =          "https://doi.org/10.1006/jagm.1996.0844",
  ISSN =         "0196-6774 (print), 1090-2678 (electronic)",
  ISSN-L =       "0196-6774",
  bibdate =      "Tue Dec 11 09:16:44 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jalg.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0196677496908445",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Algorithms",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01966774",
}

@Book{Gusfield:1997:AST,
  author =       "Dan Gusfield",
  title =        "Algorithms on Strings, Trees, and Sequences: Computer
                 Science and Computational Biology",
  publisher =    pub-CAMBRIDGE,
  address =      pub-CAMBRIDGE:adr,
  pages =        "xviii + 534",
  year =         "1997",
  ISBN =         "0-521-58519-8 (hardcover)",
  ISBN-13 =      "978-0-521-58519-4 (hardcover)",
  LCCN =         "QA76.9.A43 G87 1997",
  bibdate =      "Thu Apr 26 13:23:11 MDT 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  price =        "US\$64.95",
  abstract =     "String algorithms are a traditional area of study in
                 computer science. In recent years their importance has
                 grown dramatically with the huge increase of
                 electronically stored text and of molecular sequence
                 data (DNA or protein sequences) produced by various
                 genome projects. This book is a general text on
                 computer algorithms for string processing. In addition
                 to pure computer science, the book contains extensive
                 discussions on biological problems that are cast as
                 string problems, and on methods developed to solve
                 them. It emphasises the fundamental ideas and
                 techniques central to today's applications. New
                 approaches to this complex material simplify methods
                 that up to now have been for the specialist alone. With
                 over 400 exercises to reinforce the material and
                 develop additional topics, the book is suitable as a
                 text for graduate or advanced undergraduate students in
                 computer science, computational biology, or
                 bio-informatics. Its discussion of current algorithms
                 and techniques also makes it a reference for
                 professionals.",
  acknowledgement = ack-nhfb,
  keywords =     "computer algorithms; molecular biology --- data
                 processing",
  shorttableofcontents = "I: Exact String Matching: The Fundamental
                 String Problem \\
                 / 1 \\
                 1: Exact Matching: Fundamental Preprocessing and First
                 Algorithms / 5 \\
                 2: Exact Matching: Classical Comparison-Based Methods /
                 16 \\
                 3: Exact Matching: A Deeper Look at Classical Methods.
                 / 35 \\
                 4: Seminumerical String Matching / 70 \\
                 II: Suffix Trees and Their Uses / 87 \\
                 5: Introduction to Suffix Trees / 89 \\
                 6: Linear-Time Construction of Suffix Trees / 94 \\
                 7: First Applications of Suffix Trees. / 122 \\
                 8: Constant-Time Lowest Common Ancestor Retrieval. /
                 181 \\
                 9: More Applications of Suffix Trees. / 196 \\
                 III: Inexact Matching, Sequence Alignment, Dynamic
                 Programming / 209 \\
                 10: Importance of (Sub)sequence Comparison in Molecular
                 Biology / 212 \\
                 11: Core String Edits, Alignments, and Dynamic
                 Programming. / 215 \\
                 12: Refining Core String Edits and Alignments. / 254
                 \\
                 13: Extending the Core Problems / 312 \\
                 14: Multiple String Comparison \\
                 The Holy Grail / 332 \\
                 15: Sequence Databases and Their Uses \\
                 The Mother Lode / 370IV: Currents, Cousins, and Cameos
                 / 393 \\
                 16: Maps, Mapping, Sequencing, and Superstrings / 395
                 \\
                 17: Strings and Evolutionary Trees / 447 \\
                 18: Three Short Topics / 480 \\
                 19: Models of Genome-Level Mutations / 492 \\
                 Epilogue \\
                 Where next? / 501 \\
                 Glossary / 524 \\
                 Index / 530",
  tableofcontents = "Dedication \\
                 Contents \\
                 Preface \\
                 I Exact String Matching: The Fundamental String Problem
                 \\
                 1 Exact Matching: Fundamental Preprocessing and First
                 Algorithms \\
                 1.1 The naive method \\
                 1.1.1. Early ideas for speeding up the naive method \\
                 1.2 The preprocessing approach \\
                 1.3 Fundamental preprocessing of the pattern \\
                 1.4 Fundamental preprocessing in linear time \\
                 The Z algorithm \\
                 1.5 The simplest linear-time exact matching algorithm
                 \\
                 1.5.1. Why continue? \\
                 1.6 Exercises \\
                 A digression on circular strings in DNA \\
                 2 Exact Matching: Classical Comparison-Based Methods
                 \\
                 2.1 Introduction \\
                 2.2 The Boyer--Moore Algorithm \\
                 2.2.1. Right-to-left scan \\
                 2.2.2. Bad character rule \\
                 2.2.3. The (strong) good suffix rule \\
                 2.2.4. Preprocessing for the good suffix rule \\
                 2.2.5. The good suffix rule in the search stage of
                 Boyer--Moore \\
                 2.2.6. The complete Boyer--Moore algorithm \\
                 2.3 The Knuth--Morris--Pratt algorithm \\
                 2.3.1. The Knuth--Morris--Pratt shift idea \\
                 The Knuth--Morris--Pratt shift rule \\
                 2.3.2. Preprocessing for Knuth--Morris--Pratt \\
                 2.3.3. A full implementation of Knuth--Morris--Pratt
                 \\
                 2.4 Real-time string matching \\
                 2.4.1. Converting Knuth--Morris--Pratt to a real-time
                 method \\
                 2.4.2. Preprocessing for real-time string matching \\
                 2.5 Exercises \\
                 3 Exact Matching: A Deeper Look at Classical Methods
                 \\
                 3.1 A Boyer--Moore variant with a ``simple'' linear
                 time bound \\
                 3.1.1. Key ideas \\
                 3.1.2. One phase in detail \\
                 3.1.3. Correctness and linear-time analysis \\
                 3.2 Cole's linear worst-case bound for Boyer--Moore \\
                 3.2.1. Cole's proof when the pattern does not occur in
                 the text \\
                 3.2.2. The case when the pattern does occur in the text
                 \\
                 3.2.3. Adding in the bad character rule \\
                 3.3 The original preprocessing for Knuth--Morris--Pratt
                 \\
                 3.3.1. The method does not use fundamental
                 preprocessing \\
                 3.3.2. The easy case \\
                 3.3.3. The general case \\
                 3.3.4. How to compute the optimized shift values \\
                 3.4 Exact matching with a set of patterns \\
                 3.4.1. Naive use of keyword trees for set matching \\
                 3.4.2. The speedup: generalizing Knuth--Morris--Pratt
                 \\
                 3.4.3. Failure functions for the keyword tree \\
                 3.4.4. The failure links speed up the search \\
                 3.4.5. Linear preprocessing for the failure function
                 \\
                 3.4.6. The full Aho--Corasick algorithm: relaxing the
                 substring assumption \\
                 3.5 Three applications of exact set matching \\
                 3.5.1. Matching against a DNA or protein library of
                 known patterns \\
                 3.5.2. Exact matching with wild cards \\
                 3.5.3. Two-dimensional exact matching \\
                 3.6 Regular expression pattern matching \\
                 3.6.1. Formal definitions \\
                 3.7 Exercises \\
                 4 Seminumerical String Matching \\
                 4.1 Arithmetic versus comparison-based methods \\
                 4.2 The Shift-And method \\
                 4.2.1. How to construct array M \\
                 4.2.2. Shift-And is effective for small patterns \\
                 4.2.3. agrep: The Shift-And method with errors \\
                 4.2.4. How to compute Mk \\
                 [contents lost] \ldots{}",
}

@Article{Harris:1997:SSP,
  author =       "Jason Harris",
  title =        "{Semantica}: Semantic Pattern Matching in
                 {Mathematica}",
  journal =      j-MATHEMATICA-J,
  volume =       "7",
  number =       "3",
  pages =        "??--??",
  month =        "????",
  year =         "1997",
  CODEN =        "????",
  ISSN =         "1047-5974 (print), 1097-1610 (electronic)",
  ISSN-L =       "1047-5974",
  bibdate =      "Sat Nov 6 13:34:20 MDT 2010",
  bibsource =    "http://www.mathematica-journal.com/issue/v0i0/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Mathematica Journal",
  journal-URL =  "http://www.mathematica-journal.com/",
}

@Article{Hemer:1997:RVD,
  author =       "D. Hemer and P. A. Lindsay",
  title =        "Reuse of Verified Design Templates Through Extended
                 Pattern Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1313",
  pages =        "495--??",
  year =         "1997",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Apr 28 08:51:33 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Howard:1997:TIC,
  author =       "P. G. Howard",
  title =        "Text Image Compression Using Soft Pattern Matching",
  journal =      j-COMP-J,
  volume =       "40",
  number =       "2--3",
  pages =        "146--156",
  month =        "????",
  year =         "1997",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/40.2_and_3.146",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Tue Dec 4 14:48:49 MST 2012",
  bibsource =    "http://comjnl.oxfordjournals.org/content/40/2--3.toc;
                 http://www3.oup.co.uk/computer_journal/Volume_40/Issue_02/Vol40_02.index.html;
                 https://www.math.utah.edu/pub/tex/bib/compj.bib;
                 https://www.math.utah.edu/pub/tex/bib/compj1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/40/2_and_3/146.full.pdf+html;
                 http://www.oup.co.uk/computer_journal/Volume_40/Issue_02/Vol40_02.body.html#AbstractHoward;
                 http://www3.oup.co.uk/computer_journal/Volume_40/Issue_02/Vol40_03.body.html#AbstractHoward",
  acknowledgement = ack-nhfb,
  email-1 =      "pgh@research.att.com",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
}

@Article{Hromkovic:1997:TRE,
  author =       "J. Hromkovic and S. Seibert and T. Wilke",
  title =        "Translating Regular Expressions into Small curly
                 epsilon-Free Nondeterministic Finite Automata",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1200",
  pages =        "55--??",
  year =         "1997",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Fri Aug 22 11:59:49 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Hume:1997:BRMa,
  author =       "Andrew Hume",
  title =        "Book Review: {{\booktitle{Mastering Regular
                 Expressions}}}",
  journal =      j-LOGIN,
  volume =       "22",
  number =       "5",
  pages =        "67--??",
  month =        jun,
  year =         "1997",
  CODEN =        "LOGNEM",
  ISSN =         "1044-6397",
  bibdate =      "Wed Aug 13 10:48:45 MDT 1997",
  bibsource =    "http://www.usenix.org/cgi-bin/sortbib.pl?-sA;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     ";login: the USENIX Association newsletter",
}

@Article{Hume:1997:BRMb,
  author =       "Andrew Hume",
  title =        "Book Review: {{\booktitle{Mastering Regular
                 Expressions}}}",
  journal =      j-LOGIN,
  volume =       "22",
  number =       "5",
  pages =        "67--??",
  month =        jun,
  year =         "1997",
  CODEN =        "LOGNEM",
  ISSN =         "1044-6397",
  bibdate =      "Wed Aug 13 10:48:45 MDT 1997",
  bibsource =    "http://www.usenix.org/cgi-bin/sortbib.pl?-sA;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/usenix1990.bib",
  acknowledgement = ack-nhfb,
}

@Article{Ibarra:1997:FPM,
  author =       "Louis Ibarra",
  title =        "Finding pattern matchings for permutations",
  journal =      j-INFO-PROC-LETT,
  volume =       "61",
  number =       "6",
  pages =        "293--295",
  day =          "24",
  month =        apr,
  year =         "1997",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68R05",
  MRnumber =     "97m:68159",
  bibdate =      "Sat Nov 7 17:55:51 MST 1998",
  bibsource =    "http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Iliopoulos:1997:CSF,
  author =       "Costas S. Iliopoulos and Dennis Moore and W. F.
                 Smyth",
  title =        "A characterization of the squares in a {Fibonacci}
                 string",
  journal =      j-THEOR-COMP-SCI,
  volume =       "172",
  number =       "1--2",
  pages =        "281--291",
  day =          "10",
  month =        feb,
  year =         "1997",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:20:35 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1997&volume=172&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/fibquart.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1997&volume=172&issue=1-2&aid=2344",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory)",
  corpsource =   "Dept. of Comput. Sci., King's Coll., London, UK",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "Abelian squares; algorithm theory; computation time;
                 computational complexity; encoding; Fibonacci string;
                 string matching; string pattern matching; worst-case
                 examples",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@InProceedings{Indyk:1997:DSC,
  author =       "P. Indyk",
  title =        "Deterministic superimposed coding with applications to
                 pattern matching",
  crossref =     "IEEE:1997:ASF",
  pages =        "127--136",
  year =         "1997",
  bibdate =      "Thu Apr 5 06:13:52 MDT 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Jouannaud:1997:ADT,
  author =       "Jean-Pierre Jouannaud and Mitsuhiro Okada",
  title =        "Abstract data type systems",
  journal =      j-THEOR-COMP-SCI,
  volume =       "173",
  number =       "2",
  pages =        "349--391",
  day =          "28",
  month =        feb,
  year =         "1997",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:20:40 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1997&volume=173&issue=2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1997&volume=173&issue=2&aid=2374",
  acknowledgement = ack-nhfb,
  classification = "C1250 (Pattern recognition); C4210 (Formal logic);
                 C6120 (File organisation)",
  corpsource =   "LRI, CNRS, Orsay, France",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "abstract data type systems; abstract data types;
                 Barendregt's cube; calculus of constructions;
                 first-order framework; higher-order rules; inductive
                 types; lambda calculus; pattern matching; polymorphic
                 lambda calculus; pure type systems",
  pubcountry =   "Netherlands",
  treatment =    "P Practical",
}

@Article{Karhumaeki:1997:PMP,
  author =       "J. Karhumaeki and W. Plandowski and W. Rytter",
  title =        "Pattern-Matching Problems for $2$-Dimensional Images
                 Described by Finite Automata",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1279",
  pages =        "245--??",
  year =         "1997",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Apr 28 08:51:33 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Karpinski:1997:EPM,
  author =       "Marek Karpinski and Wojciech Rytter and Ayumi
                 Shinohara",
  title =        "An Efficient Pattern-Matching Algorithm for Strings
                 with Short Descriptions",
  journal =      j-NORDIC-J-COMPUT,
  volume =       "4",
  number =       "2",
  pages =        "172--186",
  month =        "Summer",
  year =         "1997",
  CODEN =        "NJCOFR",
  ISSN =         "1236-6064",
  MRclass =      "68Q20 (68Q25)",
  MRnumber =     "1 460 443",
  bibdate =      "Fri Nov 13 16:14:15 MST 1998",
  bibsource =    "http://www.cs.helsinki.fi/njc/njc4.html;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.cs.helsinki.fi/njc/References/karpinskirs1997:172.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Nordic Journal of Computing",
}

@Article{Kucherov:1997:MSS,
  author =       "Gregory Kucherov and Micha{\"e}l Rusinowitch",
  title =        "Matching a set of strings with variable length don't
                 cares",
  journal =      j-THEOR-COMP-SCI,
  volume =       "178",
  number =       "1--2",
  pages =        "129--154",
  day =          "30",
  month =        may,
  year =         "1997",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:20:54 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1997&volume=178&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1997&volume=178&issue=1-2&aid=2297",
  acknowledgement = ack-nhfb,
  classification = "B6140C (Optical information, image and video signal
                 processing); C1250 (Pattern recognition); C4240
                 (Programming and algorithm theory); C6130 (Data
                 handling techniques)",
  corpsource =   "CNRS, INRIA-Lorraine, Villers-les-Nancy, France",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "data structure; directed acyclic word graph;
                 distinguished symbol; pattern matching; string
                 matching; strings matching; variable length don't
                 cares",
  pubcountry =   "Netherlands",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@Article{Leung:1997:UUM,
  author =       "Vitus J. Leung",
  title =        "The undecidability of the unrestricted modified edit
                 distance",
  journal =      j-THEOR-COMP-SCI,
  volume =       "180",
  number =       "1--2",
  pages =        "203--215",
  day =          "10",
  month =        jun,
  year =         "1997",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:20:59 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1997&volume=180&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1997&volume=180&issue=1-2&aid=2399",
  acknowledgement = ack-nhfb,
  classification = "C4210 (Formal logic); C4240 (Programming and
                 algorithm theory); C6130 (Data handling techniques)",
  corpsource =   "Dept. of Inf. and Comput. Sci., California Univ.,
                 Irvine, CA, USA",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "decidability; edit distance; insertions; modified edit
                 distance; sequences; string matching; substring
                 deletions; substring insertions; undecidability;
                 undecidable; unrestricted modified edit distance",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Lopresti:1997:BEM,
  author =       "Daniel Lopresti and Andrew Tomkins",
  title =        "Block edit models for approximate string matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "181",
  number =       "1",
  pages =        "159--179",
  day =          "15",
  month =        jul,
  year =         "1997",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:21:01 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1997&volume=181&issue=1;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1997&volume=181&issue=1&aid=2470",
  acknowledgement = ack-nhfb,
  classification = "C4240 (Programming and algorithm theory); C4240C
                 (Computational complexity); C6130 (Data handling
                 techniques)",
  conflocation = "Valparaiso, Chile; 3-7 April 1995",
  conftitle =    "Second International Symposium on Latin American
                 Theoretical Informatics",
  corpsource =   "Matsushita Inf. Technol. Lab., Panasonic Technol.
                 Inc., Princeton, NJ, USA",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "block edit distance; block edit models; computational
                 complexity; molecular biology; NP-complete; pen
                 computing; polynomial-time algorithms; string
                 matching",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Manber:1997:TCS,
  author =       "Udi Manber",
  title =        "A Text Compression Scheme That Allows Fast Searching
                 Directly in the Compressed File",
  journal =      j-TOIS,
  volume =       "15",
  number =       "2",
  pages =        "124--136",
  month =        apr,
  year =         "1997",
  CODEN =        "ATISET",
  ISSN =         "1046-8188",
  ISSN-L =       "0734-2047",
  bibdate =      "Sat Jan 16 19:04:41 MST 1999",
  bibsource =    "Compendex database;
                 http://www.acm.org/pubs/tois/toc.html;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tois.bib",
  URL =          "http://www.acm.org:80/tois/abstracts/manber.html",
  abstract =     "A new text compression scheme is presented in this
                 article. The main purpose of this scheme is to speed up
                 string matching by searching the compressed file
                 directly. The scheme requires no modification of the
                 string-matching algorithm, which is used as a black
                 box; any string-matching procedure can be used.
                 Instead, the pattern is modified; only the outcome of
                 the matching of the modified pattern against the
                 compressed file is decompressed. Since the compressed
                 file is smaller than the original file, the search is
                 faster both in terms of I/O time and processing time
                 than a search in the original file. For typical text
                 files, we achieve about 30\% reduction of space and
                 slightly less of search time. A 30\% space saving is
                 not competitive with good text compression schemes, and
                 thus should not be used where space is the predominant
                 concern. The intended applications of this scheme are
                 files that are searched often, such as catalogs,
                 bibliographic files, and address books. Such files are
                 typically not compressed, but with this scheme they can
                 remain compressed indefinitely, saving space while
                 allowing faster search at the same time. A particular
                 application to an information retrieval system that we
                 developed is also discussed.",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Arizona",
  affiliationaddress = "Tucson, AZ, USA",
  classification = "723; 723.2; 723.5; 903.3",
  fjournal =     "ACM Transactions on Information Systems (TOIS)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J779",
  journalabr =   "ACM Trans Inf Syst",
  keywords =     "Algorithms; Data compression; Information retrieval
                 systems; Pattern recognition; String matching
                 algorithms",
}

@Article{Margaritis:1997:VPA,
  author =       "K. G. Margaritis and D. J. Evans",
  title =        "A {VLSI} processor array for flexible string
                 matching",
  journal =      j-PARALLEL-ALGORITHMS-APPL,
  volume =       "11",
  number =       "1--2",
  pages =        "45--60",
  month =        may,
  year =         "1997",
  CODEN =        "PAAPEC",
  DOI =          "https://doi.org/10.1080/10637199708915586",
  ISSN =         "1063-7192",
  ISSN-L =       "1026-7689",
  MRclass =      "68Q35",
  MRnumber =     "MR1462306",
  bibdate =      "Fri Jul 11 06:45:43 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  URL =          "http://www.informaworld.com/smpp/content~content=a772742761",
  acknowledgement = ack-nhfb,
  fjournal =     "Parallel Algorithms and Applications",
  journal-URL =  "http://www.tandfonline.com/loi/gpaa20",
}

@Article{Matzen:1997:FLM,
  author =       "R. W. Matzen and K. M. George and G. E. Hedrick",
  title =        "A Formal Language Model for Parsing {SGML}",
  journal =      j-J-SYST-SOFTW,
  volume =       "36",
  number =       "2",
  pages =        "147--166",
  month =        feb,
  year =         "1997",
  CODEN =        "JSSODM",
  ISSN =         "0164-1212 (print), 1873-1228 (electronic)",
  ISSN-L =       "0164-1212",
  bibdate =      "Thu Sep 9 05:51:44 MDT 2010",
  bibsource =    "http://www.sciencedirect.com/science/journal/01641212;
                 https://www.math.utah.edu/pub/tex/bib/jsystsoftw.bib;
                 https://www.math.utah.edu/pub/tex/bib/sgml.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6130D (Document processing techniques); C6140D (High
                 level languages); C4210L (Formal languages and
                 computational linguistics); C4220 (Automata theory)",
  corpsource =   "Dept. of Comput. Sci., Oklahoma State Univ.,
                 Stillwater, OK, USA",
  fjournal =     "The Journal of systems and software",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01641212",
  keywords =     "context-free; context-free grammars; context-free
                 parsing methods; definition; document; document design;
                 document type definition; element declarations; finite
                 automata; formal language model; formal languages;
                 grammars; high-level syntax; international standard;
                 ISO 8879; language model; Markup Language; page
                 description languages; regular expressions; SGML
                 parsing; software standards; Standard Generalized;
                 static",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Mohri:1997:SMA,
  author =       "Mehryar Mohri",
  title =        "String-Matching with Automata",
  journal =      j-NORDIC-J-COMPUT,
  volume =       "4",
  number =       "2",
  pages =        "217--231",
  month =        "Summer",
  year =         "1997",
  CODEN =        "NJCOFR",
  ISSN =         "1236-6064",
  MRclass =      "68Q20 (68Q68)",
  MRnumber =     "1 460 445",
  bibdate =      "Fri Nov 13 16:14:15 MST 1998",
  bibsource =    "http://www.cs.helsinki.fi/njc/njc4.html;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.cs.helsinki.fi/njc/References/mohri1997:217.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Nordic Journal of Computing",
}

@Article{Morris:1997:GRB,
  author =       "Paul H. Morris and Ronald A. Gray and Robert E.
                 Filman",
  title =        "{GOTO} Removal Based on Regular Expressions",
  journal =      j-J-SOFTW-MAINT,
  volume =       "9",
  number =       "1",
  pages =        "47--66",
  month =        jan,
  year =         "1997",
  CODEN =        "JSMPEU",
  DOI =          "https://doi.org/10.1002/(SICI)1096-908X(199701)9:1<47::AID-SMR142>3.0.CO;2-V",
  ISSN =         "1040-550X (print), 1096-908X (electronic)",
  ISSN-L =       "1040-550X",
  bibdate =      "Wed Jan 31 08:40:17 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsoftwmaint.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Software Maintenance: Research and
                 Practice",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)2047-7481",
}

@Article{Muthukrishnan:1997:DFM,
  author =       "S. Muthukrishnan",
  title =        "Detecting False Matches in String-Matching
                 Algorithms",
  journal =      j-ALGORITHMICA,
  volume =       "18",
  number =       "4",
  pages =        "512--520",
  month =        aug,
  year =         "1997",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68Q22 (68U15)",
  MRnumber =     "MR1453412 (98c:68083)",
  bibdate =      "Fri Jan 6 11:38:08 MST 2006",
  bibsource =    "dblp-journals-algorithmica.bib;
                 http://dblp.uni-trier.de/db/journals/algorithmica/algorithmica18.html#Muthukrishnan97;
                 http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=18&issue=4;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=18&issue=4&spage=512",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
  oldlabel =     "Muthukrishnan97",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/algorithmica/Muthukrishnan97",
}

@Article{Nedjah:1997:OLR,
  author =       "N. Nedjah and C. D. Walter and S. E. Eldridge",
  title =        "Optimal Left-to-Right Pattern-Matching Automata",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1298",
  pages =        "273--??",
  year =         "1997",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Apr 28 08:51:33 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Prather:1997:REP,
  author =       "Ronald E. Prather",
  title =        "Regular expressions for program computations",
  journal =      j-AMER-MATH-MONTHLY,
  volume =       "104",
  number =       "2",
  pages =        "120--130",
  month =        feb,
  year =         "1997",
  CODEN =        "AMMYAE",
  ISSN =         "0002-9890 (print), 1930-0972 (electronic)",
  ISSN-L =       "0002-9890",
  MRclass =      "68N05 (68-03 68Q60)",
  MRnumber =     "1 437 413",
  bibdate =      "Tue Jun 22 10:29:34 MDT 1999",
  bibsource =    "http://www.jstor.org/journals/00029890.htm;
                 https://www.math.utah.edu/pub/tex/bib/amermathmonthly1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.maa.org/pubs/monthly_feb97_toc.html",
  abstract =     "Techniques are borrowed from the theory of regular
                 expressions and from the decomposition theory of
                 program flowgraphs to present a modified version of the
                 B{\"o}hm-Jacopini Theorem: To every program there
                 corresponds an equivalent structured program, i.e., one
                 involving only the repetition, selection, and sequence
                 constructs. A cubic graph model of programs is adopted
                 for this purpose, and examples of the various
                 constructions are provided.",
  acknowledgement = ack-nhfb,
  fjournal =     "American Mathematical Monthly",
  journal-URL =  "https://www.jstor.org/journals/00029890.htm",
}

@Article{Puxang:1997:BRB,
  author =       "K. Puxang",
  title =        "Book Review: {{\booktitle{Metamathematics, Machines,
                 and G{\"o}dels Proof}}, by N. Shankar}",
  journal =      j-SIGACT,
  volume =       "28",
  number =       "4",
  pages =        "16--19",
  month =        dec,
  year =         "1997",
  CODEN =        "SIGNDM",
  DOI =          "https://doi.org/10.1145/270563.571466",
  ISSN =         "0163-5700 (print), 1943-5827 (electronic)",
  ISSN-L =       "0163-5700",
  bibdate =      "Wed Mar 21 09:45:56 MDT 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigact.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See \cite{Shankar:1994:MMG}.",
  abstract =     "This book, first published in 1994, is derived from
                 the author's 1986 Ph.D. dissertation, one of the main
                 goals of which was to gauge the usefulness of automatic
                 theorem proving technology in constructing and
                 verifying proofs. The proofs chosen for this task were
                 G{\"o}del's first incompleteness theorem and the
                 Church--Rosser theorem of the lambda calculus. The
                 theorem prover used was the Boyer--Moore theorem prover
                 which can be obtained by ftp [1]. A manual for the
                 prover has been published as [2]. The author gives a
                 detailed account of the more important steps leading to
                 the mechanized verification of proofs of these
                 theorems. The theorem prover did not discover the
                 proofs but checked definitions and lemmas (about 2000
                 for the incompleteness theorem and supplied by the
                 author) that lead to the theorems.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGACT News",
  journal-URL =  "https://dl.acm.org/loi/sigact",
}

@Article{Reingold:1997:KMP,
  author =       "Edward M. Reingold and Kenneth J. Urban and David
                 Gries",
  title =        "{K-M-P} string matching revisited",
  journal =      j-INFO-PROC-LETT,
  volume =       "64",
  number =       "5",
  pages =        "217--223",
  day =          "23",
  month =        dec,
  year =         "1997",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  MRclass =      "68Q20 (68Q25)",
  MRnumber =     "1 492 846",
  bibdate =      "Sat Nov 7 17:55:56 MST 1998",
  bibsource =    "http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Ropelewski:1997:IGS,
  author =       "Alexander J. Ropelewski and Hugh B. {Nicholas, Jr.}
                 and David W. {Deerfield, II}",
  title =        "Implementation of Genetic Sequence Alignment Programs
                 on Supercomputers",
  journal =      j-J-SUPERCOMPUTING,
  volume =       "11",
  number =       "3",
  pages =        "237--253",
  month =        nov,
  year =         "1997",
  CODEN =        "JOSUED",
  DOI =          "https://doi.org/10.1023/A:1007955824098",
  ISSN =         "0920-8542 (print), 1573-0484 (electronic)",
  ISSN-L =       "0920-8542",
  bibdate =      "Wed Jul 6 12:13:07 MDT 2005",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0920-8542&volume=11&issue=3;
                 http://www.wkap.nl/issuetoc.htm/0920-8542+11+3+1997;
                 https://www.math.utah.edu/pub/tex/bib/jsuper.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0920-8542&volume=11&issue=3&spage=237;
                 http://www.wkap.nl/oasis.htm/144236",
  acknowledgement = ack-nhfb,
  classification = "C1180 (Optimisation techniques); C5220P (Parallel
                 architecture); C5440 (Multiprocessing systems); C5470
                 (Performance evaluation and testing)",
  corpsource =   "Biomed. Supercomput. Initiative, Supercomput. Center,
                 Pittsburgh, PA, USA",
  fjournal =     "The Journal of Supercomputing",
  journal-URL =  "http://link.springer.com/journal/11227",
  keywords =     "computer architecture; context sensitive alignments;
                 dynamic programming; genetic sequence alignment
                 programs; high performance computer architecture; high
                 performance computers; multiple sequence alignments;
                 parallel processing; performance evaluation; string
                 matching; supercomputers",
  pubcountry =   "Netherlands",
  treatment =    "A Application; P Practical",
}

@Article{Sagot:1997:MSC,
  author =       "Marie-France Sagot and Alain Viari and Henri Soldano",
  title =        "Multiple sequence comparison --- a peptide matching
                 approach",
  journal =      j-THEOR-COMP-SCI,
  volume =       "180",
  number =       "1--2",
  pages =        "115--137",
  day =          "10",
  month =        jun,
  year =         "1997",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:20:59 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1997&volume=180&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_sub/browse/browse.cgi?year=1997&volume=180&issue=1-2&aid=2340",
  acknowledgement = ack-nhfb,
  classification = "A4230S (Pattern recognition); A8715 (Molecular
                 biophysics); C1250 (Pattern recognition); C4240
                 (Programming and algorithm theory); C7330 (Biology and
                 medical computing)",
  corpsource =   "CNRS, Paris, France",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "algorithm theory; amino acids; biocomputing; biology
                 computing; consensus; multiple sequence comparison;
                 nontransitivity; pattern matching; peptide matching;
                 protein sequences; proteins; sequences",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Shields:1997:SMB,
  author =       "Paul C. Shields",
  title =        "String matching bounds via coding",
  journal =      j-ANN-PROBAB,
  volume =       "25",
  number =       "1",
  pages =        "329--336",
  month =        jan,
  year =         "1997",
  CODEN =        "APBYAE",
  ISSN =         "0091-1798 (print), 2168-894X (electronic)",
  ISSN-L =       "0091-1798",
  bibdate =      "Sun Apr 20 10:44:17 MDT 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/annprobab1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://projecteuclid.org/euclid.aop/1024404290",
  acknowledgement = ack-nhfb,
  fjournal =     "Annals of Probability",
  journal-URL =  "http://projecteuclid.org/all/euclid.aop",
}

@Article{Tarhio:1997:SMD,
  author =       "Jorma Tarhio and Hannu Peltola",
  title =        "String Matching in the {DNA} Alphabet",
  journal =      j-SPE,
  volume =       "27",
  number =       "7",
  pages =        "851--861",
  month =        jul,
  year =         "1997",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Thu Jul 29 15:11:24 MDT 1999",
  bibsource =    "http://www3.interscience.wiley.com/journalfinder.html;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract?ID=7320;
                 http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=7320&PLACEBO=IE.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@Article{Taylor:1997:WMR,
  author =       "Dave Taylor",
  title =        "The {Web} Master: Roll Your Own Search with grep",
  journal =      j-LOGIN,
  volume =       "22",
  number =       "4",
  pages =        "37--41",
  month =        aug,
  year =         "1997",
  CODEN =        "LOGNEM",
  ISSN =         "1044-6397",
  bibdate =      "Wed Aug 13 10:48:45 MDT 1997",
  bibsource =    "http://www.usenix.org/cgi-bin/sortbib.pl?-sA;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/usenix1990.bib",
  acknowledgement = ack-nhfb,
}

@Article{Teng:1997:ASS,
  author =       "Shang-Hua Teng and Frances F. Yao",
  title =        "Approximating Shortest Superstrings",
  journal =      j-SIAM-J-COMPUT,
  volume =       "26",
  number =       "2",
  pages =        "410--417",
  month =        apr,
  year =         "1997",
  CODEN =        "SMJCAT",
  DOI =          "https://doi.org/10.1137/S0097539794286125",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  MRclass =      "68Q25 (05C85)",
  MRnumber =     "97k:68084",
  bibdate =      "Mon Nov 29 11:03:06 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toc/SICOMP/26/2;
                 http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/26/2;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://epubs.siam.org/sam-bin/dbq/article/28612",
  acknowledgement = ack-nhfb,
  classification = "C1160 (Combinatorial mathematics); C1180
                 (Optimisation techniques); C4240C (Computational
                 complexity); C6130 (Data handling techniques); C7330
                 (Biology and medical computing)",
  corpsource =   "Dept. of Math., MIT, Cambridge, MA, USA",
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
  keywords =     "approximation algorithms; approximation theory;
                 biology computing; combinatorial mathematics;
                 computational complexity; data compression; DNA; DNA
                 sequencing; MAX SNP-hard; NP-hard; optimisation;
                 shortest-superstring problem; string matching;
                 substrings",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Umali:1997:BRM,
  author =       "Rick Umali",
  title =        "Book Review: Mastering Regular Expressions",
  journal =      j-LOGIN,
  volume =       "22",
  number =       "5",
  pages =        "66--67",
  month =        jun,
  year =         "1997",
  CODEN =        "LOGNEM",
  ISSN =         "1044-6397",
  bibdate =      "Wed Aug 13 10:48:45 MDT 1997",
  bibsource =    "http://www.usenix.org/cgi-bin/sortbib.pl?-sA;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     ";login: the USENIX Association newsletter",
}

@Article{Westly:1997:TTA,
  author =       "T. J. Westly",
  title =        "{TASH}: {Tcl Ada SHell}, an {Ada\slash Tcl} binding",
  journal =      j-SIGADA-LETTERS,
  volume =       "17",
  number =       "2",
  pages =        "82--91",
  month =        mar # "\slash " # apr,
  year =         "1997",
  CODEN =        "AALEE5",
  ISSN =         "1094-3641 (print), 1557-9476 (electronic)",
  ISSN-L =       "1094-3641",
  bibdate =      "Tue Sep 9 11:00:49 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigada.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "A binding to Tcl (Tool Command Language) from Ada is
                 described. The goal of this binding is to make
                 scripting language features, such as associative
                 arrays, regular expression matching and execution of
                 operating system commands that are available to an Ada
                 programmer and to allow a Tcl programmer to use Ada in
                 place of C where needed. This binding exploits several
                 new features of Ada 95 that make interfacing to C much
                 cleaner and more direct than Ada 83 (0 Refs.)",
  acknowledgement = ack-nhfb,
  classification = "C6115 (Programming support); C6140D (High level
                 languages); C6150E (General utility programs); C6150J
                 (Operating systems)",
  fjournal =     "ACM SIGAda Ada Letters",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J32",
  keywords =     "Ada; Ada 83; Ada 95; Ada/Tcl binding; application
                 program interfaces; associative arrays; authoring
                 languages; C interfacing; job control languages;
                 operating system command execution; regular expression
                 matching; scripting language features; TASH; Tcl Ada
                 Shell; Tool Command Language",
  treatment =    "P Practical",
}

@Article{Zajac:1997:GBM,
  author =       "R. Zajac and M. Vanni",
  title =        "Glossary-based {MT} engines in a multilingual
                 analyst's workstation architecture",
  journal =      j-MACH-TRANSL,
  volume =       "12",
  number =       "1--2",
  pages =        "131--151",
  month =        "????",
  year =         "1997",
  CODEN =        "MACTEZ",
  ISSN =         "0922-6567 (print), 1573-0573 (electronic)",
  ISSN-L =       "0922-6567",
  bibdate =      "Fri Apr 24 15:18:27 MDT 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unicode.bib",
  acknowledgement = ack-nhfb,
  classification = "C5220 (Computer architecture); C6130D (Document
                 processing techniques); C7820 (Humanities computing)",
  corpsource =   "Comput. Res. Lab., New Mexico State Univ., Las Cruces,
                 NM, USA",
  fjournal =     "Machine Translation",
  keywords =     "Arabic; bilingual phrasal dictionary; computer
                 architecture; document browsing; document handling;
                 English gloss; English-speaking analysts;
                 English-speaking Tipster document management toolkit;
                 extensible functionalities; fast information access;
                 foreign document; glossaries; glossary-based machine
                 translation engines; human resources; Japanese;
                 language translation; multilingual analysts;
                 multilingual information processing; natural language
                 processing; natural languages; near-real-time
                 translation; open multilingual architecture; open
                 systems; phrase pattern-matching; phrase-by-phrase
                 translation; Russian; Spanish; Temple project; text
                 editing; Tipster document management toolkit;
                 Unicode-based multilingual editor; user-controlled
                 language resources; workstation architecture;
                 workstations",
  pubcountry =   "Netherlands",
  treatment =    "P Practical",
}

@Article{Aceto:1998:QSE,
  author =       "Luca Aceto and Wan Fokkink and Anna
                 Ing{\'o}lfsd{\'o}ttir",
  title =        "On a question of {A. Salomaa}: {The} equational theory
                 of regular expressions over a singleton alphabet is not
                 finitely based",
  journal =      j-THEOR-COMP-SCI,
  volume =       "209",
  number =       "1--2",
  pages =        "163--178",
  day =          "06",
  month =        dec,
  year =         "1998",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:22:16 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1998&volume=209&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cas/tree/store/tcs/sub/1998/209/1-2/2640.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Amir:1998:ESCa,
  author =       "A. Amir and G. M. Landau and M. Lewenstein and N.
                 Lewenstein",
  title =        "Efficient Special Cases of Pattern Matching with
                 Swaps",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1448",
  pages =        "209--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Oct 10 14:40:24 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Amir:1998:ESCb,
  author =       "Amihood Amir and Gad M. Landau and Moshe Lewenstein
                 and Noa Lewenstein",
  title =        "Efficient special cases of pattern matching with
                 swaps",
  journal =      j-INFO-PROC-LETT,
  volume =       "68",
  number =       "3",
  pages =        "125--132",
  day =          "15",
  month =        nov,
  year =         "1998",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat Nov 7 17:56:02 MST 1998",
  bibsource =    "http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/ipl/cas_sub/browse/browse.cgi?year=1998&volume=68&issue=3&aid=2077",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Baeza-Yates:1998:FTD,
  author =       "Ricardo Baeza-Yates and Gonzalo Navarro",
  title =        "Fast Two-Dimensional Approximate Pattern Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1380",
  pages =        "341--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Feb 5 11:51:48 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1380.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1380/13800341.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1380/13800341.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@InProceedings{Barcaccia:1998:PMT,
  author =       "P. Barcaccia and A. Cresti and S. {De Agostino}",
  title =        "Pattern matching in text compressed with the {ID}
                 heuristic",
  crossref =     "Storer:1998:PDD",
  pages =        "113--118",
  year =         "1998",
  DOI =          "https://doi.org/10.1109/DCC.1998.672137",
  bibdate =      "Tue Feb 5 08:38:49 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=672137",
  acknowledgement = ack-nhfb,
}

@Article{Bidoit:1998:FST,
  author =       "N. Bidoit and S. {De Amo}",
  title =        "A first step towards implementing dynamic algebraic
                 dependences",
  journal =      j-THEOR-COMP-SCI,
  volume =       "190",
  number =       "2",
  pages =        "115--149",
  day =          "20",
  month =        jan,
  year =         "1998",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:21:29 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1998&volume=190&issue=2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cas/tree/store/tcs/sub/1998/190/2/2624.pdf",
  acknowledgement = ack-nhfb,
  classification = "C4250 (Database theory); C6110F (Formal methods);
                 C6130 (Data handling techniques)",
  conflocation = "Prague, Czech Republic; 11-13 Jan. 1995",
  conftitle =    "5th International Conference on Database Theory - ICDT
                 '95",
  corpsource =   "Univ. de Paris-Nord, Villetaneuse, France",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "Abiteboul/Vianu's transaction schemas; data integrity;
                 database theory; dynamic algebraic dependences; dynamic
                 constraints; formal specification; regular expression;
                 transaction-based specifications; transactions",
  pubcountry =   "Netherlands",
  sponsororg =   "Int. Thompson Publishing; IDOMENEUS; COMPULOG NET; et
                 al",
  treatment =    "P Practical",
}

@Article{Bose:1998:PMP,
  author =       "Prosenjit Bose and Jonathan F. Buss and Anna Lubiw",
  title =        "Pattern matching for permutations",
  journal =      j-INFO-PROC-LETT,
  volume =       "65",
  number =       "5",
  pages =        "277--283",
  day =          "13",
  month =        mar,
  year =         "1998",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat Nov 7 17:55:58 MST 1998",
  bibsource =    "http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Breslauer:1998:CCS,
  author =       "Dany Breslauer and Livio Colussi and Laura Toniolo",
  title =        "On the Comparison Complexity of the String
                 Prefix-Matching Problem",
  journal =      j-J-ALG,
  volume =       "29",
  number =       "1",
  pages =        "18--67",
  month =        oct,
  year =         "1998",
  CODEN =        "JOALDV",
  DOI =          "https://doi.org/10.1006/jagm.1998.0948",
  ISSN =         "0196-6774 (print), 1090-2678 (electronic)",
  ISSN-L =       "0196-6774",
  bibdate =      "Tue Dec 11 09:17:22 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jalg.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0196677498909488",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Algorithms",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01966774",
}

@Article{Bunke:1998:ADS,
  author =       "H. Bunke and M. Zumbuhl",
  title =        "Acquisition of {$2$-D} Shape Models from Scenes with
                 Overlapping Objects Using String Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1451",
  pages =        "200--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat Oct 10 14:40:24 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@InProceedings{Cardoze:1998:PMS,
  author =       "D. E. Cardoze and L. J. Schulman",
  title =        "Pattern matching for spatial point sets",
  crossref =     "IEEE:1998:ASF",
  pages =        "156--165",
  year =         "1998",
  bibdate =      "Thu Apr 5 06:13:53 MDT 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Charras:1998:VFS,
  author =       "C. Charras and T. Lecroq and J. D. Pehoushek",
  title =        "A Very Fast String Matching Algorithm for Small
                 Alphabets and Long Patterns",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1448",
  pages =        "55--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat Oct 10 14:40:24 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Chen:1998:EAS,
  author =       "S. W. Chen and S. T. Tung and C. Y. Fang and Shen
                 Cherng and Anil K. Jain",
  title =        "Extended Attributed String Matching for Shape
                 Recognition",
  journal =      j-COMP-VIS-IMAGE-UNDERSTANDING,
  volume =       "70",
  number =       "1",
  pages =        "36--50",
  month =        apr,
  year =         "1998",
  CODEN =        "CVIUF4",
  DOI =          "https://doi.org/10.1006/cviu.1998.0599",
  ISSN =         "1077-3142 (print), 1090-235X (electronic)",
  ISSN-L =       "1077-3142",
  bibdate =      "Wed Mar 8 08:53:22 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=cviu;
                 https://www.math.utah.edu/pub/tex/bib/cvgip.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.idealibrary.com/links/artid/cviu.1998.0599/production;
                 http://www.idealibrary.com/links/artid/cviu.1998.0599/production/pdf;
                 http://www.idealibrary.com/links/artid/cviu.1998.0599/production/ref",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Vision and Image Understanding",
  journal-URL =  "http://www.sciencedirect.com/science/journal/10773142",
}

@Article{Crochemore:1998:CTO,
  author =       "Maxime Crochemore and Leszek Gasieniec and Ramesh
                 Hariharan and S. Muthukrishnan and Wojciech Rytter",
  title =        "A Constant Time Optimal Parallel Algorithm for
                 Two-Dimensional Pattern Matching",
  journal =      j-SIAM-J-COMPUT,
  volume =       "27",
  number =       "3",
  pages =        "668--681",
  month =        jun,
  year =         "1998",
  CODEN =        "SMJCAT",
  DOI =          "https://doi.org/10.1137/S0097539795280068",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  bibdate =      "Mon Nov 29 11:03:22 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/27/3;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://epubs.siam.org/sam-bin/dbq/article/28006",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Crochemore:1998:TDP,
  author =       "Maxime Crochemore and Costas S. Iliopoulos and M.
                 Korda",
  title =        "Two-Dimensional Prefix String Matching and Covering on
                 Square Matrices",
  journal =      j-ALGORITHMICA,
  volume =       "20",
  number =       "4",
  pages =        "353--373",
  month =        apr,
  year =         "1998",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68Q20 (68R15)",
  MRnumber =     "MR1600826 (99f:68078)",
  MRreviewer =   "Ding Zhu Du",
  bibdate =      "Fri Jan 6 11:38:09 MST 2006",
  bibsource =    "dblp-journals-algorithmica.bib;
                 http://dblp.uni-trier.de/db/journals/algorithmica/algorithmica20.html#CrochemoreIK98;
                 http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=20&issue=4;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=20&issue=4&spage=353",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
  oldlabel =     "CrochemoreIK98",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/algorithmica/CrochemoreIK98",
}

@Article{DAndrea:1998:DEP,
  author =       "G. D'Andrea",
  title =        "Distance Evaluation in Pattern Matching Based on
                 Frontier Topological Graph",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1451",
  pages =        "132--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Oct 10 14:40:24 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Ellis:1998:REC,
  author =       "Duncan Ellis and Sameer Udeshi",
  title =        "A Regular Expression Class Library",
  journal =      j-CCCUJ,
  volume =       "16",
  number =       "5",
  pages =        "??--??",
  month =        may,
  year =         "1998",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:15 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/1998/9805/9805toc.htm?topic=articles;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Regular expressions are a great way to describe
                 patterns in text, with lots of applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@Article{Farach:1998:SML,
  author =       "Martin Farach and Mikkel Thorup",
  title =        "String Matching in {Lempel--Ziv} Compressed Strings",
  journal =      j-ALGORITHMICA,
  volume =       "20",
  number =       "4",
  pages =        "388--404",
  month =        apr,
  year =         "1998",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68Q25 (68P99)",
  MRnumber =     "MR1600834 (99a:68086)",
  bibdate =      "Fri Jan 6 11:38:09 MST 2006",
  bibsource =    "dblp-journals-algorithmica.bib;
                 http://dblp.uni-trier.de/db/journals/algorithmica/algorithmica20.html#FarachT98;
                 http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=20&issue=4;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=20&issue=4&spage=388",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
  oldlabel =     "FarachT98",
  remark =       "STOC'95. Part of this work was done while the first
                 author was visiting the University of Copenhagen; he
                 was supported in part by DIMACS (Center for Discrete
                 Mathematics and Theoretical Computer Science), a
                 National Science Foundation Science andi Technology
                 Center under NSF Contract STC-8809648. This work was
                 done while the second author was visiting DIMACS.",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/algorithmica/FarachT98",
}

@Article{Ferragina:1998:OLS,
  author =       "Paolo Ferragina and Roberto Grossi",
  title =        "Optimal On-Line Search and Sublinear Time Update in
                 String Matching",
  journal =      j-SIAM-J-COMPUT,
  volume =       "27",
  number =       "3",
  pages =        "713--736",
  month =        jun,
  year =         "1998",
  CODEN =        "SMJCAT",
  DOI =          "https://doi.org/10.1137/S0097539795286119",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  bibdate =      "Mon Nov 29 11:03:22 MST 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/27/3;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://epubs.siam.org/sam-bin/dbq/article/28611",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@InProceedings{Florescu:1998:QCC,
  author =       "Daniela Florescu and Alon Levy and Dan Suciu",
  title =        "Query Containment for Conjunctive Queries with Regular
                 Expressions",
  crossref =     "ACM:1998:PPA",
  pages =        "139--148",
  year =         "1998",
  bibdate =      "Wed Oct 25 08:47:40 MDT 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pods/275487/p139-florescu/p139-florescu.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pods/275487/p139-florescu/",
  acknowledgement = ack-nhfb,
}

@Article{Fredriksson:1998:RIF,
  author =       "K. Fredriksson and E. Ukkonen",
  title =        "A Rotation Invariant Filter for Two-Dimensional String
                 Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1448",
  pages =        "118--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat Oct 10 14:40:24 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Hagenah:1998:CFN,
  author =       "Christian Hagenah and Anca Muscholl",
  title =        "Computing $ \epsilon $-Free {NFA} from Regular
                 Expressions in {$ {O}(n \log^2 (n)) $} Time",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1450",
  pages =        "277--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Feb 5 11:52:35 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1450.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1450/14500277.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1450/14500277.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Huang:1998:CKM,
  author =       "Andy Huang",
  title =        "Computation of the {Knuth--Morris--Pratt} skip
                 tables",
  journal =      j-SIGACT,
  volume =       "29",
  number =       "3",
  pages =        "59--61",
  month =        sep,
  year =         "1998",
  CODEN =        "SIGNDM",
  DOI =          "https://doi.org/10.1145/300307.300313",
  ISSN =         "0163-5700 (print), 1943-5827 (electronic)",
  ISSN-L =       "0163-5700",
  bibdate =      "Wed Mar 21 09:45:56 MDT 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigact.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGACT News",
  journal-URL =  "https://dl.acm.org/loi/sigact",
}

@InProceedings{Indyk:1998:FAS,
  author =       "P. Indyk",
  title =        "Faster algorithms for string matching problems:
                 matching the convolution bound",
  crossref =     "IEEE:1998:ASF",
  pages =        "166--173",
  year =         "1998",
  bibdate =      "Thu Apr 5 06:13:53 MDT 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@InProceedings{Kida:1998:MPM,
  author =       "T. Kida and M. Takeda and A. Shinohara and M. Miyazaki
                 and S. Arikawa",
  title =        "Multiple pattern matching in {LZW} compressed text",
  crossref =     "Storer:1998:PDD",
  pages =        "103--112",
  year =         "1998",
  DOI =          "https://doi.org/10.1109/DCC.1998.672136",
  bibdate =      "Tue Feb 5 08:38:49 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=672136",
  acknowledgement = ack-nhfb,
}

@Book{Knuth:1998:SS,
  author =       "Donald E. Knuth",
  title =        "Sorting and Searching",
  volume =       "3",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  edition =      "Second",
  pages =        "xiv + 780",
  year =         "1998",
  ISBN =         "0-201-89685-0",
  ISBN-13 =      "978-0-201-89685-5",
  LCCN =         "QA76.6.K64 1997",
  bibdate =      "Sat Feb 27 11:11:53 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/texbook2.bib",
  price =        "US\$49.95",
  series =       "The Art of Computer Programming",
  acknowledgement = ack-nhfb,
  tableofcontents = "5: Sorting / 1 \\
                 *5.1. Combinatorial Properties of Permutations / 11 \\
                 *5.1.1. Inversions / 11 \\
                 *5.1.2. Permutations of a Multiset / 22 \\
                 *5.1.3. Runs / 35 \\
                 *5.1.4 Tableaux and Involutions / 47 \\
                 5.2. Internal sorting / 73 \\
                 5.2 l. Sorting by Insertion / 80 \\
                 5.2.2. Sorting by Exchanging / 105 \\
                 5.2.3. Sorting by Selection / 138 \\
                 5.2.4 Sorting by Merging / 158 \\
                 5.2 5. Sorting by Distribution / 168 \\
                 5.3. Optimum Sorting / 180 \\
                 5.3 l. Minimum-Comparison Sorting / 180 \\
                 *5.3.2. Minimum-Comparison Merging / 197 \\
                 *5.3.3. Minimum-Comparison Selection / 207 \\
                 *5.3.4. Networks for Sorting / 219 \\
                 5.4. External Sorting / 248 \\
                 5.4.1. Multiway Merging and Replacement Selection / 252
                 \\
                 *5.4.2. The Polyphase Merge / 267 \\
                 *5.4.3 The Cascade Merge / 288 \\
                 *5.4.4. Reading Tape Backwards / 299 \\
                 *5.4.5. The Oscillating Sort / 311 \\
                 *5.4.6. Practical Considerations for Tape Merging / 317
                 \\
                 *5.4.7. External Radix Sorting / 343 \\
                 *5.4.8. Two-Tape Sorting / 348 \\
                 *5.4.9 Disks and Drums / 356 \\
                 5.5. Summary, History, and Bibliography / 380 \\
                 6: Searching / 392 \\
                 6.1. Sequential Searching / 396 \\
                 6.2. Searching by Comparison of Keys / 409 \\
                 6.2.1. Searching an Ordered Table / 409 \\
                 6.2.2 Binary Tree Searching / 426 \\
                 6.2.3. Balanced Trees / 458 \\
                 6.2.4. Multiway Trees / 481",
}

@Article{Larsen:1998:REN,
  author =       "Kim S. Larsen",
  title =        "Regular expressions with nested levels of back
                 referencing form a hierarchy",
  journal =      j-INFO-PROC-LETT,
  volume =       "65",
  number =       "4",
  pages =        "169--172",
  day =          "27",
  month =        feb,
  year =         "1998",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat Nov 7 17:55:57 MST 1998",
  bibsource =    "http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Lecroq:1998:ESM,
  author =       "Thierry Lecroq",
  title =        "Experiments on String Matching in Memory Structures",
  journal =      j-SPE,
  volume =       "28",
  number =       "5",
  pages =        "561--568",
  month =        may,
  year =         "1998",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Thu Jul 29 15:11:46 MDT 1999",
  bibsource =    "http://www3.interscience.wiley.com/journalfinder.html;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract?ID=1796;
                 http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=1796&PLACEBO=IE.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@Article{Li:1998:HRE,
  author =       "X. Li and T. Zheng and J. Hou and J. Zhao",
  title =        "Hybrid Regular Expressions",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1386",
  pages =        "384--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Oct 10 14:40:24 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Liu:1998:IAS,
  author =       "Z. Liu and X. Du and N. Ishii",
  title =        "An Improved Adaptive String Searching Algorithm",
  journal =      j-SPE,
  volume =       "28",
  number =       "2",
  pages =        "191--198",
  month =        feb,
  year =         "1998",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/(SICI)1097-024X(199802)28:2<191::AID-SPE149>3.0.CO;2-2",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Thu Jul 29 15:11:39 MDT 1999",
  bibsource =    "http://www3.interscience.wiley.com/journalfinder.html;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract?ID=1775;
                 http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=1775&PLACEBO=IE.pdf",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "8 Jan 1999",
}

@Article{Madhavan:1998:ORT,
  author =       "M. Madhavan and P. Shankar",
  title =        "Optimal Regular Tree Pattern Matching Using Pushdown
                 Automata",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1530",
  pages =        "122--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Jan 5 08:21:58 MST 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Middendorf:1998:SCS,
  author =       "Martin Middendorf",
  title =        "Shortest common superstrings and scheduling with
                 coordinated starting times",
  journal =      j-THEOR-COMP-SCI,
  volume =       "191",
  number =       "1--2",
  pages =        "205--214",
  day =          "30",
  month =        jan,
  year =         "1998",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:21:31 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1998&volume=191&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cas/tree/store/tcs/sub/1998/191/1-2/2669.pdf",
  acknowledgement = ack-nhfb,
  classification = "C1290F (Systems theory applications in industry);
                 C4240 (Programming and algorithm theory); C4240C
                 (Computational complexity)",
  corpsource =   "Inst. fur Angewandte Inf. und Formale
                 Beschreibungsverfahren, Karlsruhe Univ., Germany",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "2-machine flow-shop; complexity; computational
                 complexity; coordinated starting times; NP-complete;
                 open-shop; scheduling; Shortest Common Superstring;
                 string matching; strings",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Mochizuki:1998:SSA,
  author =       "H. Mochizuki and M. Koyama and M. Shishibori and J.-i.
                 Aoe",
  title =        "A substring search algorithm in extendible hashing",
  journal =      j-INFO-SCI,
  volume =       "108",
  number =       "1",
  publisher =    "Elsevier Science",
  pages =        "13--30",
  month =        jul,
  year =         "1998",
  CODEN =        "ISIJBC",
  ISSN =         "0020-0255 (print), 1872-6291 (electronic)",
  ISSN-L =       "0020-0255",
  bibdate =      "Thu Nov 7 20:59:16 MST 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 Ingenta database",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Sciences",
  pagecount =    "18",
}

@Article{Myers:1998:FBV,
  author =       "G. Myers",
  title =        "A Fast Bit-Vector Algorithm for Approximate String
                 Matching Based on Dynamic Programming",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1448",
  pages =        "1--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat Oct 10 14:40:24 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Myers:1998:REA,
  author =       "E. G. Myers and P. Oliva and K. Guimaraes",
  title =        "Reporting Exit and Approximate Regular Expression
                 Matches",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1448",
  pages =        "91--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Oct 10 14:40:24 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Navarro:1998:BPA,
  author =       "G. Navarro and M. Raffinot",
  title =        "A Bit-Parallel Approach to Suffix Automata: Fast
                 Extended String Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1448",
  pages =        "14--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat Oct 10 14:40:24 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Navarro:1998:IAP,
  author =       "Gonzalo Navarro",
  title =        "Improved Approximate Pattern Matching on Hypertext",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1380",
  pages =        "352--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Feb 5 11:51:48 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1380.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1380/13800352.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1380/13800352.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Nedjah:1998:MDL,
  author =       "Nadia Nedjah",
  title =        "Minimal Deterministic Left-to-Right Pattern-Matching
                 Automata",
  journal =      j-SIGPLAN,
  volume =       "33",
  number =       "1",
  pages =        "40--47",
  month =        jan,
  year =         "1998",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:43 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@InProceedings{Nipkow:1998:VLA,
  author =       "Tobias Nipkow",
  editor =       "Jim Grundy and Malcolm Newey",
  booktitle =    "Theorem Proving in Higher Order Logics: {11th
                 International Conference, TPHOLs'98, Canberra,
                 Australia, September 27--October 1, 1998,
                 Proceedings}",
  title =        "Verified Lexical Analysis",
  volume =       "1479",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  bookpages =    "viii + 496",
  pages =        "1--15",
  year =         "1998",
  DOI =          "https://doi.org/10.1007/BFb0055126",
  ISBN =         "3-540-64987-5 (softcover), 3-540-49801-X (e-book)",
  ISBN-13 =      "978-3-540-64987-8 (softcover), 978-3-540-49801-8
                 (e-book)",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA76.9.A96 T655 1998",
  bibdate =      "Fri Sep 22 14:41:04 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/BFb0055125",
}

@Article{Otto:1998:EUW,
  author =       "Friedrich Otto and Paliath Narendran and Daniel J.
                 Dougherty",
  title =        "Equational unification and word unification, and
                 2nd-order equational unification",
  journal =      j-THEOR-COMP-SCI,
  volume =       "198",
  number =       "1--2",
  pages =        "1--47",
  day =          "30",
  month =        may,
  year =         "1998",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:21:48 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1998&volume=198&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cas/tree/store/tcs/sub/1998/198/1-2/2639.pdf",
  acknowledgement = ack-nhfb,
  classification = "C4210L (Formal languages and computational
                 linguistics)",
  corpsource =   "Fachbereich Math./Inf., Kassel Univ., Germany",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "decidability; equational matching; equational
                 unification; rewriting systems; string-rewriting
                 systems; term-rewriting systems; word matching
                 problem",
  pubcountry =   "Netherlands",
  treatment =    "T Theoretical or Mathematical",
}

@Article{Pajares:1998:PRL,
  author =       "G. Pajares and J. M. {De la Cruz} and J. A. Lopez",
  title =        "Pattern Recognition Learning Applied to Stereovision
                 Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1451",
  pages =        "997--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Oct 10 14:40:24 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Park:1998:ATD,
  author =       "Kunsoo Park",
  title =        "Analysis of two-dimensional approximate pattern
                 matching algorithms",
  journal =      j-THEOR-COMP-SCI,
  volume =       "201",
  number =       "1--2",
  pages =        "263--273",
  day =          "06",
  month =        jul,
  year =         "1998",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:21:54 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1998&volume=201&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cas/tree/store/tcs/sub/1998/201/1-2/2812.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Pitt:1998:VPJ,
  author =       "W. David Pitt",
  title =        "The Visitor Pattern and a {Java} Grep Utility",
  journal =      j-DDJ,
  volume =       "23",
  number =       "6",
  pages =        "30, 32, 93",
  month =        jun,
  year =         "1998",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Sat May 30 10:34:02 MDT 1998",
  bibsource =    "http://www.ddj.com/ddj/1998/1998_06/index.htm;
                 http://www.ddj.com/ftp/1998/1998_06/jgrep.txt;
                 http://www.ddj.com/ftp/1998/1998_06/jgrep.zip;
                 https://www.math.utah.edu/pub/tex/bib/dr-dobbs-1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/java.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Regnier:1998:CSP,
  author =       "Mireille R{\'e}gnier and Wojciech Szpankowski",
  title =        "Complexity of Sequential Pattern Matching Algorithms",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1518",
  pages =        "187--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Feb 5 11:53:15 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1518.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1518/15180187.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1518/15180187.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Reps:1998:MMT,
  author =       "Thomas Reps",
  title =        "``{Maximal}-munch'' tokenization in linear time",
  journal =      j-TOPLAS,
  volume =       "20",
  number =       "2",
  pages =        "259--273",
  month =        mar,
  year =         "1998",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 2 10:46:05 MST 1999",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org:80/pubs/citations/journals/toplas/1998-20-2/p259-reps/",
  abstract =     "The lexical-analysis (or scanning) phase of a compiler
                 attempts to partition an input string into a sequence
                 of tokens. The convention in most languages is that the
                 input is scanned left to right, and each token
                 identified is a ``maximal munch'' of the remaining
                 input---the {\em longest\/} prefix of the remaining
                 input that is a token of the language. Although most of
                 the standard compiler textbooks present a way to
                 perform maximal-munch tokenization, the algorithm they
                 describe is one that, for certain sets of token
                 definitions, can cause the scanner to exhibit quadratic
                 behavior in the worst case. In the article, we show
                 that maximal-munch tokenization can always be performed
                 in time linear in the size of the input.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; theory",
  subject =      "{\bf D.3.4} Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers. {\bf F.1.1} Theory of
                 Computation, COMPUTATION BY ABSTRACT DEVICES, Models of
                 Computation, Automata. {\bf F.2.2} Theory of
                 Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
                 COMPLEXITY, Nonnumerical Algorithms and Problems,
                 Pattern matching. {\bf I.5.4} Computing Methodologies,
                 PATTERN RECOGNITION, Applications, Text processing.",
}

@Article{Sima:1998:TN,
  author =       "Ji{\v{r}}{\'\i} {\v{S}}{\'\i}ma and Ji{\v{r}}{\'\i}
                 Wiedermann",
  title =        "Theory of neuromata",
  journal =      j-J-ACM,
  volume =       "45",
  number =       "1",
  pages =        "155--178",
  month =        jan,
  year =         "1998",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Fri Apr 10 17:54:32 MDT 1998",
  bibsource =    "http://www.acm.org/pubs/contents/journals/jacm/1998-45/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org:80/pubs/citations/journals/jacm/1998-45-1/p155-scaronima/",
  abstract =     "A finite automaton-the so-called neuromation, realized
                 by a finite discrete recurrent neural network, working
                 in parallel computation mode, is considered. Both the
                 size of neuromata (i.e., the number of neurons) and
                 their descriptional complexity (i.e., the number of
                 bits in the neuromaton representation) are studied. It
                 is proved that a constraint time delay of the
                 neuromaton output does not play a role within a
                 polynomial descriptional complexity. It is shown that
                 any regular language given by a regular expression of
                 length $n$ is recognized by a neuromaton with ($n$ )
                 neurons. Further, it is proved that this network size
                 is, in the worst case, optimal. On the other hand,
                 generally there is not an equivalent polynomial length
                 regular expression for a given neuromaton. Then, two
                 specialized constructions of neural acceptors of the
                 optimal descriptional complexity ($n$ ) for a single
                 $n$-bit string recognition are described. They both
                 require {$ O(n^{1 / 2}) $} neurons and either {$ O(n)
                 $} connections with constant weights or {$ O(n^{1 / 2})
                 $} edges with weights of the {$ O(2) $} size.
                 Furthermore, the concept of Hopfield languages is
                 introduced by means of so-called Hopfield neuromata
                 (i.e., of neural networks with symmetric weights). It
                 is proved that the class of Hopfield languages is
                 strictly contained in the class of regular languages.
                 The necessary and sufficient so-called Hopfield
                 condition stating when a regular language is a Hopfield
                 language, is formulated. A construction of a Hopfield
                 neuromaton is presented for a regular language
                 satisfying the Hopfield condition. The class of
                 Hopfield languages is shown to be closed under union,
                 intersection, concatenation and complement, and it is
                 not closed under iteration. Finally, the problem
                 whether a regular language given by a neuromaton (or by
                 a Hopfield acceptor) is nonempty, is proved to be
                 PSPACE-complete. As a consequence, the same result for
                 a neuromaton equivalence problem is achieved.",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  keywords =     "theory",
  subject =      "{\bf F.1.1} Theory of Computation, COMPUTATION BY
                 ABSTRACT DEVICES, Models of Computation, Automata. {\bf
                 F.1.1} Theory of Computation, COMPUTATION BY ABSTRACT
                 DEVICES, Models of Computation, Relations between
                 models. {\bf F.1.1} Theory of Computation, COMPUTATION
                 BY ABSTRACT DEVICES, Models of Computation,
                 Self-modifying machines. {\bf F.4.3} Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Formal Languages, Classes defined by grammars or
                 automata. {\bf F.4.3} Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Formal
                 Languages, Classes defined by resource-bounded
                 automata. {\bf F.4.3} Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Formal
                 Languages, Decision problems. {\bf F.4.3} Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Formal Languages, Operations on languages.",
}

@Book{Skiena:1998:ADM,
  author =       "Steven S. Skiena",
  title =        "The Algorithm Design Manual",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "xvi + 486",
  year =         "1998",
  ISBN =         "0-387-94860-0",
  ISBN-13 =      "978-0-387-94860-7",
  LCCN =         "QA76.9.A43S55 1997",
  bibdate =      "Tue Feb 10 10:51:27 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  price =        "US\$54.95",
  acknowledgement = ack-nhfb,
  tableofcontents = "Preface / vii \\
                 I. Techniques \\
                 1 Introduction to Algorithms / 3 \\
                 1.1 Correctness and Efficiency / 4 \\
                 1.1.1 Correctness / 5 \\
                 1.1.2 Efficiency / 9 \\
                 1.2 Expressing Algorithms / 9 \\
                 1.3 Keeping Score / 10 \\
                 1.3.1 The RAM Model of Computation / 10 \\
                 1.3.2 Best, Worst, and Average-Case Complexity / 11 \\
                 1.4 The Big Oh Notation / 13 \\
                 1.5 Growth Rates / 15 \\
                 1.6 Logarithms / 16 \\
                 1.7 Modeling the Problem / 18 \\
                 1.8 About the War Stories / 20 \\
                 1.9 War Story: Psychic Modeling / 21 \\
                 1.10 Exercises / 25 \\
                 2 Data Structures and Sorting / 27 \\
                 2.1 Fundamental Data Types / 28 \\
                 2.1.1 Containers / 28 \\
                 2.1.2 Dictionaries / 29 \\
                 2.1.3 Binary Search Trees / 30 \\
                 2.1.4 Priority Queues / 31 \\
                 2.2 Specialized Data Structures / 33 \\
                 2.3 Sorting / 33 \\
                 2.4 Applications of Sorting / 34 \\
                 2.5 Approaches to Sorting / 36 \\
                 2.5.1 Data Structures / 36 \\
                 2.5.2 Incremental Insertion / 36 \\
                 2.5.3 Divide and Conquer / 37 \\
                 2.5.4 Randomization / 37 \\
                 2.5.5 Bucketing Techniques / 38 \\
                 2.6 War Story: Stripping Triangulations / 39 \\
                 2.7 War Story: Mystery of the Pyramids / 43 \\
                 2.8 War Story: String `em Up / 46 \\
                 2.9 Exercises / 50 \\
                 3 Breaking Problems Down / 53 \\
                 3.1 Dynamic Programming / 54 \\
                 3.1.1 Fibonacci numbers / 54 \\
                 3.1.2 The Partition Problem / 56 \\
                 3.1.3 Approximate String Matching / 60 \\
                 3.1.4 Longest Increasing Sequence / 62 \\
                 3.1.5 Minimum Weight Triangulation / 64 \\
                 3.2 Limitations of Dynamic Programming / 65 \\
                 3.3 War Story: Evolution of the Lobster / 66 \\
                 3.4 War Story: What's Past Is Prolog / 69 \\
                 3.5 War Story: Text Compression for Bar Codes / 72 \\
                 3.6 Divide and Conquer / 75 \\
                 3.6.1 Fast Exponentiation / 75 \\
                 3.6.2 Binary Search / 76 \\
                 3.6.3 Square and Other Roots / 76 \\
                 3.7 Exercises / 77 \\
                 4 Graph Algorithms / 81 \\
                 4.1 The Friendship Graph / 82 \\
                 4.2 Data Structures for Graphs / 84 \\
                 4.3 War Story: Getting the Graph / 86 \\
                 4.4 Traversing a Graph / 88 \\
                 4.4.1 Breadth-First Search / 89 \\
                 4.4.2 Depth-First Search / 91 \\
                 4.5 Applications of Graph Traversal / 92 \\
                 4.5.1 Connected Components / 92 \\
                 4.5.2 Tree and Cycle Detection / 93 \\
                 4.5.3 Two-Coloring Graphs / 93 \\
                 4.5.4 Topological Sorting / 94 \\
                 4.5.5 Articulation Vertices / 95 \\
                 4.6 Modeling graph Problems / 95 \\
                 4.7 Minimum Spanning Trees / 97 \\
                 4.7.1 Prim's Algorithm / 98 \\
                 4.7.2 Kruskal's Algorithm / 99 \\
                 4.8 Shortest Paths / 100 \\
                 4.8.1 Dijkstra's Algorithm / 100 \\
                 4.8.2 All-Pairs Shortest Path / 102 \\
                 4.9 War Story: Nothing but Nets / 102 \\
                 4.10 War Story: Dialing for Documents / 105 \\
                 4.11 Exercises / 110 \\
                 5 Combinatorial Search and Heuristic Methods / 115 \\
                 5.1 Backtracking / 116 \\
                 5.1.1 Constructing All Subsets / 117 \\
                 5.1.2 Constructing All Permutations / 118 \\
                 5.1.3 Constructing All Paths in a Graph / 118 \\
                 5.2 Search Pruning / 119 \\
                 5.3 Bandwidth Minimization / 120 \\
                 5.4 War Story: Covering Chessboards / 122 \\
                 5.5 Heuristic Methods / 125 \\
                 5.5.1 Simulated Annealing / 125 \\
                 5.5.2 Neural Networks / 129 \\
                 5.5.3 Genetic Algorithms / 130 \\
                 5.6 War Story: Annealing Arrays / 131 \\
                 5.7 Parallel Algorithms / 134 \\
                 5.8 War Story: Going Nowhere fast / 135 \\
                 5.9 exercises / 136 \\
                 6 Intractable Problems anal Approximations / 139 \\
                 6.1 Problems and Reductions / 140 \\
                 6.2 Simple Reductions / 141 \\
                 6.2.1 Hamiltonian Cycle / 142 \\
                 6.2.2 Independent Set and Vertex Cover / 142 \\
                 6.2.3 Clique and Independent Set / 144 \\
                 6.3 Satisfiability / 144 \\
                 6.3.1 The Theory of NP-Completeness / 145 \\
                 6.3.2 Satisfyability / 146 \\
                 6.4 Difficult Reductions / 147 \\
                 6.4.1 Integer Programming / 147 \\
                 6.4.2 Vortex Cover / 149 \\
                 6.5 Other NP-Complete Problems / 151 \\
                 6.6 The Art of Proving Hardness / 152 \\
                 6.7 War Story: Hard Against the Clock / 154 \\
                 6.8 Approximation Algorithms / 156 \\
                 6.8.1 Approximating Vertex Cover / 157 \\
                 6.8.2 The Euclidean Traveling Salesman / 158 \\
                 6.9 Exercises / 160 \\
                 7 How to Design Algorithms / 163 \\
                 II. RESOURCES \\
                 8 A Catalog of Algorithmic Problems / 171 \\
                 8.1 Data Structures / 174 \\
                 8.1.1 Dictionaries / 175 \\
                 8.1.2 Priority Queues / 180 \\
                 8.1.3 Suffix Trees and Arrays / 183 \\
                 8.1.4 Graph Data Structures / 187 \\
                 8.1.5 Set Data Structures / 191 \\
                 8.1.6 Kd-Trees / 194 \\
                 8.2 Numerical Problems / 197 \\
                 8.2.1 Solving Linear Equations / 199 \\
                 8.2.2 Bandwidth Reduction / 202 \\
                 8.2.3 Matrix Multiplication / 204 \\
                 8.2.4 Determinants and Permanents / 207 \\
                 8.2.5 Constrained and Unconstrained Optimization / 209
                 \\
                 8.2.6 Linear Programming / 213 \\
                 8.2.7 Random Number Generation / 217 \\
                 8.2.8 Factoring and Primality Testing / 221 \\
                 8.2.9 Arbitrary-Precision Arithmetic / 224 \\
                 8.2.10 Knapsack Problem / 228 \\
                 8.2.11 Discrete Fourier Transform / 232 \\
                 8.3 Combinatorial Problems / 235 \\
                 8.3.1 Sorting / 236 \\
                 8.3.2 Searching / 240 \\
                 8.3.3 Median and Selection / 244 \\
                 8.3.4 Generating Permutations / 246 \\
                 8.3.5 Generating Subsets / 250 \\
                 8.3.6 Generating Partitions / 253 \\
                 8.3.7 Generating Graphs / 257 \\
                 8.3.8 Calendrical Calculations / 261 \\
                 8.3.9 Job Scheduling / 263 \\
                 8.3.10 Satisfiability / 266 \\
                 8.4 Graph Problems: Polynomiai-Time / 269 \\
                 8.4.1 Connected Components / 270 \\
                 8.4.2 Topological Sorting / 273 \\
                 8.4.3 Minimum Spanning Tree / 275 \\
                 8.4.4 Shortest Path / 279 \\
                 8.4.5 Transitive Closure and Reduction / 284 \\
                 8.4.6 Matching / 287 \\
                 8.4.7 Eulerian Cycle / Chinese Postman / 291 \\
                 8.4.8 Edge and Vertex Connectivity / 294 \\
                 8.4.9 Network Flow / 297 \\
                 8.4.10 Drawing Grains Nicely / 301 \\
                 8.4.11 Drawing Trees / 305 \\
                 8.4.12 Planarity Detection and Embedding / 308 \\
                 8.5 Graph Problems: Hard Problems / 311 \\
                 8.5.1 Clique / 312 \\
                 8.5.2 Independent Set / 315 \\
                 8.5.3 Vertex Cover / 317 \\
                 8.5.4 Traveling salesman Problem / 319 \\
                 8.5.5 Hamiltonian Cycle / 323 \\
                 8.5.6 Graph Partition / 326 \\
                 8.5.7 Vertex Coloring / 329 \\
                 8.5.8 Edge Coloring / 333 \\
                 8.5.9 Graph Isomorphism / 335 \\
                 8.5.10 Steiner Tree / 339 \\
                 8.5.11 Feedback Edge/ vertex Set / 343 \\
                 8.6 Computational Geometry / 345 \\
                 8.6.1 Robust geometric Primitives / 347 \\
                 8.6.2 Convex Hull / 351 \\
                 8.6.3 Triangulation / 355 \\
                 8.6.4 Voronoi Diagrams / 358 \\
                 8.6.5 Nearest Neighbor Search / 361 \\
                 8.6.6 Range Search / 364 \\
                 8.6.7 Point Location / 367 \\
                 8.6.8 Intersection Detection / 370 \\
                 8.6.9 Bin Packing / 374 \\
                 8.6.10 Medial-Axis Transformation / 377 \\
                 8.6.11 Polygon Partitioning / 380 \\
                 8.6.12 Simplifying Polygons / 383 \\
                 8.6.13 Shape Similarity / 386 \\
                 8.6.14 Motion Planning / 389 \\
                 8.6.15 Maintaining Line Arrangements / 392 \\
                 8.6.16 Minkowski Sum / 395 \\
                 8.7 Set and String Problems / 397 \\
                 8.7.1 Set Cover / 398 \\
                 8.7.2 Set Packing / 401 \\
                 8.7.3 String Matching / 403 \\
                 8.7.4 Approximate String Matching / 406 \\
                 8.7.5 Text Compression / 410 \\
                 8.7.6 Cryptography / 414 \\
                 8.7.7 Finite State Machine Minimization / 418 \\
                 8.7.8 Longest Common Substring / 422 \\
                 8.7.9 Shortest Common Superstring / 425 \\
                 9 Algorithmic Resources / 427 \\
                 9.1 Software Systems / 427 \\
                 9.1.1 LEDA / 428 \\
                 9.1.2 Netlib / 428 \\
                 9.1.3 The Stanford GraphBase / 429 \\
                 9.1.4 Combinatorica / 430 \\
                 9.1.5 Algorithm Animations with XTango / 430 \\
                 9.1.6 Programs From Books / 431 \\
                 9.2 Data Sources / 433 \\
                 9.3 Textbooks / 434 \\
                 9.4 On-Line Resources / 435 \\
                 9.4.1 Literature / 436 \\
                 9.4.2 People / 436 \\
                 9.4.3 Software / 437 \\
                 9.5 Professional Consulting Services / 437 \\
                 Bibliography / 439 \\
                 Index / 463",
}

@Article{Vujovic:1998:EAF,
  author =       "N. Vujovic and D. Brzakovic",
  title =        "Evaluation of an Algorithm for Finding a Match of a
                 Distorted Texture Pattern in a Large Image Database",
  journal =      j-TOIS,
  volume =       "16",
  number =       "1",
  pages =        "31--60",
  month =        jan,
  year =         "1998",
  CODEN =        "ATISET",
  ISSN =         "1046-8188",
  ISSN-L =       "0734-2047",
  bibdate =      "Sat Jan 16 19:04:41 MST 1999",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tois.bib",
  abstract =     "Evaluation of an algorithm for finding a match for a
                 random texture pattern in a large image database is
                 presented. The algorithm was designed assuming that the
                 random pattern may be subject to misregistration
                 relative to its representation in the database and
                 assuming that it may have missing parts. The potential
                 applications involve authentication of legal documents,
                 bank notes, or credit cards, where thin fibers are
                 embedded randomly into the document medium during
                 medium fabrication. The algorithm achieves image
                 matching by a three-step hierarchical procedure, which
                 starts by matching parts of fiber patterns while
                 solving the misregistration problem and ends up by
                 matching complete fiber patterns. Performance of the
                 algorithm is studied both theoretically and
                 experimentally. Theoretical analysis includes the
                 study. of the probability that two documents have the
                 same pattern, and the probability of the algorithm
                 establishing a wrong match, as well as the algorithm's
                 performance in terms of processing time. Experiments
                 involving over 250,000 trials using databases of
                 synthetic documents, containing up to 100,000
                 documents, were used to confirm theoretical
                 predictions. In addition, experiments involving a
                 database containing real images were conducted in order
                 to confirm that the algorithm has potential in real
                 applications.",
  acknowledgement = ack-nhfb,
  affiliation =  "Lehigh Univ",
  affiliationaddress = "Bethlehem, PA, USA",
  classification = "723.3; 731.1",
  fjournal =     "ACM Transactions on Information Systems (TOIS)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J779",
  journalabr =   "ACM Trans Inf Syst",
  keywords =     "Algorithms; Database systems; Identification (control
                 systems); Image database; Image matching; Image
                 processing",
}

@InProceedings{Alzina:1999:PMI,
  author =       "M. Alzina and W. Szpankowski and A. Grama",
  title =        "{$2$D}-pattern matching image and video compression",
  crossref =     "Storer:1999:DPD",
  pages =        "424--433",
  year =         "1999",
  DOI =          "https://doi.org/10.1109/DCC.1999.755692",
  bibdate =      "Tue Feb 5 08:44:09 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=755692",
  acknowledgement = ack-nhfb,
}

@Article{Baeza-Yates:1999:FAS,
  author =       "Ricardo A. Baeza-Yates and Gonzalo Navarro",
  title =        "Faster Approximate String Matching",
  journal =      j-ALGORITHMICA,
  volume =       "23",
  number =       "2",
  pages =        "127--158",
  month =        feb,
  year =         "1999",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68Q25 (68P10 68U15)",
  MRnumber =     "MR1658489 (2000f:68051)",
  MRreviewer =   "Maxime Crochemore",
  bibdate =      "Fri Jan 6 11:38:10 MST 2006",
  bibsource =    "dblp-journals-algorithmica.bib;
                 http://dblp.uni-trier.de/db/journals/algorithmica/algorithmica23.html#Baeza-YatesN99;
                 http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=23&issue=2;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  URL =          "http://link.springer.de/link/service/journals/00453/bibs/23n2p127.html;
                 http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=23&issue=2&spage=127",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
  oldlabel =     "Baeza-YatesN99",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/algorithmica/Baeza-YatesN99",
}

@InProceedings{Calvanese:1999:RRE,
  author =       "Diego Calvanese and Giuseppe {De Giacomo} and Maurizio
                 Lenzerini and Moshe Y. Vardi",
  title =        "Rewriting of Regular Expressions and Regular Path
                 Queries",
  crossref =     "ACM:1999:PEA",
  pages =        "194--204",
  year =         "1999",
  bibdate =      "Wed Oct 25 08:47:40 MDT 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 OCLC Proceedings database",
  URL =          "http://www.acm.org/pubs/articles/proceedings/pods/303976/p194-calvanese/p194-calvanese.pdf;
                 http://www.acm.org/pubs/citations/proceedings/pods/303976/p194-calvanese/",
  acknowledgement = ack-nhfb,
}

@Article{Cameron:1999:RXS,
  author =       "Robert D. Cameron",
  title =        "{REX}: {XML} Shallow Parsing with Regular
                 Expressions",
  journal =      j-MARKUP-LANG,
  volume =       "1",
  number =       "3",
  pages =        "61--88",
  month =        "Summer",
  year =         "1999",
  CODEN =        "MLTPFG",
  ISSN =         "1099-6621 (print), 1537-2626 (electronic)",
  ISSN-L =       "1099-6621",
  bibdate =      "Sun Oct 29 15:12:04 MST 2000",
  bibsource =    "http://mitpress.mit.edu/journal-home.tcl?issn=10996621;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Markup languages: theory \& practice",
}

@Article{Corradini:1999:MNR,
  author =       "Flavio Corradini and Rocco {De Nicola} and Anna
                 Labella",
  title =        "Models of Nondeterministic Regular Expressions",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "59",
  number =       "3",
  pages =        "412--449",
  month =        dec,
  year =         "1999",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1006/jcss.1999.1636",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:26:39 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000099916367",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Crochemore:1999:CSS,
  author =       "Maxime Crochemore and Leszek Ga{\c{s}}ieniec and
                 Wojciech Rytter",
  title =        "Constant-space string-matching in sublinear average
                 time",
  journal =      j-THEOR-COMP-SCI,
  volume =       "218",
  number =       "1",
  pages =        "197--203",
  day =          "28",
  month =        apr,
  year =         "1999",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:22:35 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1999&volume=218&issue=1;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cas/tree/store/tcs/sub/1999/218/1/3068.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Crochemore:1999:FPM,
  author =       "Maxime Crochemore and A. Czumaj and L. Gs{\k{a}}ieniec
                 and T. Lecroq and W. Plandowski and W. Rytter",
  title =        "Fast practical multi-pattern matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "71",
  number =       "3--4",
  pages =        "107--113",
  day =          "27",
  month =        aug,
  year =         "1999",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon Jan 26 09:55:58 2004",
  bibsource =    "http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.elsevier.nl/gej-ng/10/23/20/49/28/26/abstract.html;
                 http://www.elsevier.nl/gej-ng/10/23/20/49/28/26/article.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@TechReport{Davis:1999:URE,
  author =       "Mark Davis",
  title =        "{Unicode} Regular Expression Guidelines",
  type =         "{Unicode} Technical Report",
  number =       "18",
  institution =  pub-UNICODE,
  address =      pub-UNICODE-SAN-JOSE:adr,
  edition =      "5.0",
  day =          "23",
  month =        nov,
  year =         "1999",
  bibdate =      "Tue Apr 18 12:23:24 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unicode.bib",
  URL =          "http://www.unicode.org/unicode/reports/tr18/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Ferragina:1999:MMD,
  author =       "Paolo Ferragina and S. Muthukrishnan and Mark de
                 Berg",
  title =        "Multi-method dispatching: a geometric approach with
                 applications to string matching problems",
  crossref =     "ACM:1999:PTF",
  pages =        "483--491",
  year =         "1999",
  bibdate =      "Wed Feb 20 18:34:04 MST 2002",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/stoc/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/stoc/301250/p483-ferragina/p483-ferragina.pdf;
                 http://www.acm.org/pubs/citations/proceedings/stoc/301250/p483-ferragina/",
  acknowledgement = ack-nhfb,
}

@Article{Ferragina:1999:SBT,
  author =       "Paolo Ferragina and Roberto Grossi",
  title =        "The string {B}-tree: a new data structure for string
                 search in external memory and its applications",
  journal =      j-J-ACM,
  volume =       "46",
  number =       "2",
  pages =        "236--280",
  month =        mar,
  year =         "1999",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Tue May 25 18:51:21 MDT 1999",
  bibsource =    "http://www.acm.org/pubs/contents/journals/jacm/1999-46/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org:80/pubs/citations/journals/jacm/1999-46-2/p236-ferragina/",
  abstract =     "We introduce a new text-indexing data structure, the
                 {\em String B-Tree}, that can be seen as a link between
                 some traditional external-memory and string-matching
                 data structures. In a short phrase, it is a combination
                 of B-trees and Patricia tries for internal-node indices
                 that is made more effective by adding extra pointers to
                 speed up search and update operations. Consequently,
                 the String B-Tree overcomes the theoretical limitations
                 of inverted files, B-trees, prefix B-trees, suffix
                 arrays, compacted tries and suffix trees. String
                 B-trees have the same worst-case performance as B-trees
                 but they manage unbounded-length strings and perform
                 much more powerful search operations such as the ones
                 supported by suffix trees. String B-trees are also
                 effective in main memory (RAM model) because they
                 improve the online suffix tree search on a dynamic set
                 of strings. They also can be successfully applied to
                 database indexing and software duplication.",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  keywords =     "algorithms; design",
  subject =      "{\bf B.3.2} Hardware, MEMORY STRUCTURES, Design
                 Styles, Mass storage. {\bf B.4.2} Hardware,
                 INPUT/OUTPUT AND DATA COMMUNICATIONS, Input/Output
                 Devices. {\bf D.4.2} Software, OPERATING SYSTEMS,
                 Storage Management, Secondary storage. {\bf E.1} Data,
                 DATA STRUCTURES. {\bf E.5} Data, FILES,
                 Sorting/searching. {\bf F.2.2} Theory of Computation,
                 ANALYSIS OF ALGORITHMS AND PROBLEM COMPLEXITY,
                 Nonnumerical Algorithms and Problems, Pattern matching.
                 {\bf F.2.2} Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Sorting and searching. {\bf
                 H.2.4} Information Systems, DATABASE MANAGEMENT,
                 Systems, Textual databases. {\bf H.3.1} Information
                 Systems, INFORMATION STORAGE AND RETRIEVAL, Content
                 Analysis and Indexing, Dictionaries. {\bf H.3.1}
                 Information Systems, INFORMATION STORAGE AND RETRIEVAL,
                 Content Analysis and Indexing, Indexing methods. {\bf
                 H.3.3} Information Systems, INFORMATION STORAGE AND
                 RETRIEVAL, Information Search and Retrieval. {\bf
                 H.3.7} Information Systems, INFORMATION STORAGE AND
                 RETRIEVAL, Digital Libraries.",
}

@Article{Ferragina:1999:SSC,
  author =       "Paolo Ferragina and Fabrizio Luccio",
  title =        "String Search in Coarse-Grained Parallel Computers",
  journal =      j-ALGORITHMICA,
  volume =       "24",
  number =       "3--4",
  pages =        "177--194",
  month =        aug,
  year =         "1999",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68W10 (68P10 68W40)",
  MRnumber =     "MR1687307 (2000h:68240)",
  MRreviewer =   "G. P. Bhattacharjee",
  bibdate =      "Fri Jan 6 11:38:11 MST 2006",
  bibsource =    "dblp-journals-algorithmica.bib;
                 http://dblp.uni-trier.de/db/journals/algorithmica/algorithmica24.html#FerraginaL99;
                 http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=24&issue=3;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  URL =          "http://link.springer.de/link/service/journals/00453/bibs/24n3p177.html;
                 http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=24&issue=3&spage=177",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
  oldlabel =     "FerraginaL99",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/algorithmica/FerraginaL99",
}

@InProceedings{Garofalakis:1999:SSP,
  author =       "Minos N. Garofalakis and Rajeev Rastogi and Kyuseok
                 Shim",
  title =        "{SPIRIT}: Sequential Pattern Mining with Regular
                 Expression Constraints",
  crossref =     "Atkinson:1999:PTF",
  pages =        "223--234",
  year =         "1999",
  bibdate =      "Fri Jan 12 07:50:37 MST 2001",
  bibsource =    "http://www.vldb.org/dblp/db/conf/vldb/vldb99.html;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldb.bib; OCLC
                 Proceedings database",
  URL =          "http://www.vldb.org/dblp/db/conf/vldb/GarofalakisRS99.html",
  acknowledgement = ack-nhfb,
  authorurl =    "http://www.vldb.org/dblp/db/indices/a-tree/g/Garofalakis:Minos_N=.html;
                 http://www.vldb.org/dblp/db/indices/a-tree/r/Rastogi:Rajeev.html;
                 http://www.vldb.org/dblp/db/indices/a-tree/s/Shim:Kyuseok.html",
}

@InProceedings{Gasieniec:1999:AOF,
  author =       "L. Gasieniec and W. Rytter",
  title =        "Almost-optimal fully {LZW}-compressed pattern
                 matching",
  crossref =     "Storer:1999:DPD",
  pages =        "316--325",
  year =         "1999",
  DOI =          "https://doi.org/10.1109/DCC.1999.755681",
  bibdate =      "Tue Feb 5 08:44:09 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=755681",
  acknowledgement = ack-nhfb,
}

@Article{Harrison:1999:LRP,
  author =       "Brian Harrison and Philip Hendrickson and Murel
                 {Warren, Jr.} and Lee Kamentsky and Ron Gutman and
                 Brenton Hoff and Martin Handwerker and Tom Culliton and
                 Aspi Havewala",
  title =        "Letters: Real Programmer's Hate {Cobol}; 1984;
                 {Hilbert} Curves; Grepping and Globbing; Testing {Java}
                 Classes; The Version Control Process",
  journal =      j-DDJ,
  volume =       "24",
  number =       "9",
  pages =        "10, 12",
  month =        sep,
  year =         "1999",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Thu Nov 9 06:25:04 MST 2000",
  bibsource =    "http://www.ddj.com/;
                 https://www.math.utah.edu/pub/tex/bib/dr-dobbs-1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/java.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Henrich:1999:OQC,
  author =       "A. Henrich and S. Jamin",
  title =        "On the Optimization of Queries Containing Regular Path
                 Expressions",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1649",
  pages =        "58--??",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon Sep 13 16:57:02 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Hume:1999:DSR,
  author =       "Andrew Hume",
  title =        "The Dark Side of Regular Expressions",
  journal =      j-LOGIN,
  volume =       "24",
  number =       "2",
  pages =        "??--??",
  month =        apr,
  year =         "1999",
  CODEN =        "LOGNEM",
  ISSN =         "1044-6397",
  bibdate =      "Tue Apr 11 06:42:47 MDT 2006",
  bibsource =    "http://www.usenix.org/publications/login/contents/contents.apr99.html;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.usenix.org/publications/login/1999-4/reg_exp.html",
  acknowledgement = ack-nhfb,
  fjournal =     ";login: the USENIX Association newsletter",
}

@Article{Karkkainen:1999:THD,
  author =       "Juha K{\"a}rkk{\"a}inen and Esko Ukkonen",
  title =        "Two- and Higher-Dimensional Pattern Matching in
                 Optimal Expected Time",
  journal =      j-SIAM-J-COMPUT,
  volume =       "29",
  number =       "2",
  pages =        "571--589",
  month =        apr,
  year =         "1999",
  CODEN =        "SMJCAT",
  DOI =          "https://doi.org/10.1137/S0097539794275872",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  bibdate =      "Sat Jan 22 13:21:36 MST 2000",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/29/2;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://epubs.siam.org/sam-bin/dbq/article/27587",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@InCollection{Kernighan:1999:RE,
  author =       "Brian W. Kernighan and Rob Pike",
  title =        "Regular Expressions",
  crossref =     "Kernighan:1999:PP",
  chapter =      "9.2",
  pages =        "222--227",
  year =         "1999",
  bibdate =      "Sat Nov 07 16:38:10 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Kernighan:1999:REL,
  author =       "Brian W. Kernighan and Rob Pike",
  title =        "Regular Expressions: Languages, Algorithms, Software",
  journal =      j-DDJ,
  volume =       "24",
  number =       "4",
  pages =        "19--22",
  month =        apr,
  year =         "1999",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Wed Mar 3 06:30:11 MST 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/dr-dobbs-1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
  note =         "See also
                 \cite{Thompson:1968:PTR,Cox:2007:REM,Cox:2009:REM,Cox:2010:REM,Cox:2012:REM}",
  URL =          "http://www.ddj.com/ftp/1999/1999_04/regexp.txt;
                 http://www.ddj.com/ftp/1999/1999_04/regexp.zip;
                 http://www.drdobbs.com/architecture-and-design/regular-expressions/184410904;
                 http://www.drdobbs.com/architecture-and-design/regular-expressions/architecture-and-design/sourcecode/regular-expressions/30200909;
                 http://www.drdobbs.com/architecture-and-design/regular-expressions/architecture-and-design/sourcecode/regular-expressions/30200910",
  abstract =     "Regular expressions, one of the most broadly
                 applicable of programmer's tools, provide a compact and
                 expressive notation for describing patterns of text.
                 They are also algorithmically interesting, easy to
                 implement, and highly useful. Additional resources
                 include regexp.txt (listings) and regexp.zip (source
                 code).",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Kida:1999:SAP,
  author =       "Takuya Kida and Masayuki Takeda and Ayumi Shinohara
                 and Setsuo Arikawa",
  title =        "Shift-And Approach to Pattern Matching in {LZW}
                 Compressed Text",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1645",
  pages =        "1--??",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Feb 5 11:54:24 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1645.htm;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1645/16450001.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1645/16450001.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Kim:1999:ASP,
  author =       "Sun Kim and Alberto Maria Segre",
  title =        "{AMASS}: a Structured Pattern Matching Approach to
                 Shotgun Sequence Assembly",
  journal =      j-J-COMPUT-BIOL,
  volume =       "6",
  number =       "2",
  pages =        "163--186",
  month =        jan,
  year =         "1999",
  CODEN =        "JCOBEM",
  DOI =          "https://doi.org/10.1089/cmb.1999.6.163",
  ISSN =         "1066-5277 (print), 1557-8666 (electronic)",
  ISSN-L =       "1066-5277",
  bibdate =      "Sat Jun 1 09:46:44 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputbiol.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.liebertpub.com/doi/abs/10.1089/cmb.1999.6.163;
                 https://www.liebertpub.com/doi/pdf/10.1089/cmb.1999.6.163",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational Biology",
  journal-URL =  "https://www.liebertpub.com/loi/cmb/",
  onlinedate =   "7 May 2009",
}

@Article{Kim:1999:NSP,
  author =       "Sun Kim",
  title =        "A new string-pattern matching algorithm using
                 partitioning and hashing efficiently",
  journal =      j-ACM-J-EXP-ALGORITHMICS,
  volume =       "4",
  pages =        "2:1--2:??",
  month =        "????",
  year =         "1999",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/347792.347803",
  ISSN =         "1084-6654",
  ISSN-L =       "1084-6654",
  bibdate =      "Mon Oct 6 16:02:52 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/jea.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "In this paper, we present a new string-pattern
                 matching algorithm that partitions the text into
                 segments of the input pattern length and searches for
                 pattern occurrences using a simple hashing scheme.
                 Unlike the well known Boyer--Moore style algorithm, our
                 algorithm does not compute variable shift length, thus
                 providing a conceptually simpler way to search for
                 patterns. Empirical evaluation shows that our algorithm
                 runs significantly faster than Sunday's and Horspool's
                 extensions of the Boyer--Moore algorithm. The notion of
                 the non-occurrence heuristic used in our algorithm,
                 together with a text partitioning scheme, leads to a
                 simplified scheme for searching for pattern
                 occurrences, thus yielding better run time
                 performance.",
  acknowledgement = ack-nhfb,
  articleno =    "2",
  fjournal =     "Journal of Experimental Algorithmics (JEA)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J430",
}

@Article{Kyatkin:1999:PMC,
  author =       "Alexander B. Kyatkin and Gregory S. Chirikjian",
  title =        "Pattern Matching as a Correlation on the Discrete
                 Motion Group",
  journal =      j-COMP-VIS-IMAGE-UNDERSTANDING,
  volume =       "74",
  number =       "1",
  pages =        "22--35",
  month =        apr,
  year =         "1999",
  CODEN =        "CVIUF4",
  DOI =          "https://doi.org/10.1006/cviu.1999.0745",
  ISSN =         "1077-3142 (print), 1090-235X (electronic)",
  ISSN-L =       "1077-3142",
  bibdate =      "Wed Mar 8 08:53:31 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=cviu;
                 https://www.math.utah.edu/pub/tex/bib/cvgip.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.idealibrary.com/links/artid/cviu.1999.0745/production;
                 http://www.idealibrary.com/links/artid/cviu.1999.0745/production/pdf;
                 http://www.idealibrary.com/links/artid/cviu.1999.0745/production/ref",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Vision and Image Understanding",
  journal-URL =  "http://www.sciencedirect.com/science/journal/10773142",
}

@Article{Laird:1999:REN,
  author =       "Cameron Laird and Kathryn Soraiz",
  title =        "Regular Expressions: New choices for scripting:
                 Language designers offer novel possibilities for
                 scripting developers",
  journal =      j-SUNWORLD-ONLINE,
  volume =       "5",
  number =       "2",
  pages =        "??--??",
  month =        feb,
  year =         "1999",
  ISSN =         "1091-8914",
  bibdate =      "Thu Feb 04 05:54:54 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Discusses new scripting languages: Ficl, FIJI, Rebol,
                 Ruby and WebL. Ficl is a descendant of Forth. FIJI is
                 real Forth, but with objects that are Java objects, and
                 with full access to Java.",
  URL =          "http://www.sunworld.com/swol-02-1999/swol-02-regex.html?0202a",
  acknowledgement = ack-nhfb,
  fjournal =     "SunWorld online",
}

@PhdThesis{Larsson:1999:SSM,
  author =       "N. Jesper Larsson",
  title =        "Structures of string matching and data compression",
  type =         "{Ph.D.} thesis",
  school =       "Lunds Universitet",
  address =      "Lund, Sweden",
  pages =        "130",
  year =         "1999",
  ISBN =         "91-628-3685-4",
  ISBN-13 =      "978-91-628-3685-6",
  LCCN =         "????",
  bibdate =      "Fri Feb 1 08:42:55 MST 2013",
  bibsource =    "http://search.proquest.com/;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://search.proquest.com/docview/304568808",
  acknowledgement = ack-nhfb,
  advisor =      "Hui Long Duan",
  classification = "0984: Computer science",
  dissertation-thesis-number = "C801205",
  subject =      "Computer science",
}

@Article{Myers:1999:FBV,
  author =       "Gene Myers",
  title =        "A fast bit-vector algorithm for approximate string
                 matching based on dynamic programming",
  journal =      j-J-ACM,
  volume =       "46",
  number =       "3",
  pages =        "395--415",
  month =        may,
  year =         "1999",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Tue Sep 7 12:04:29 MDT 1999",
  bibsource =    "http://www.acm.org/pubs/contents/journals/jacm/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org:80/pubs/citations/journals/jacm/1999-46-3/p395-myers/",
  abstract =     "The approximate string matching problem is to find all
                 locations at which a query of length $m$ matches a
                 substring of a text of length $n$ with $k$-or-fewer
                 differences. Simple and practical bit-vector algorithms
                 have been designed for this problem, most notably the
                 one used in {\em agrep}. These algorithms compute a bit
                 representation of the current state-set of the
                 $k$-difference automaton for the query, and
                 asymptotically run in either {$ O(n m / w) $} or {$ O(n
                 m \log \sigma / w) $} time where $w$ is the word size
                 of the machine (e.g., 32 or 64 in practice), and
                 [sigma] is the size of the pattern alphabet. Here we
                 present an algorithm of comparable simplicity that
                 requires only {$ O(n m / w) $} time by virtue of
                 computing a bit representation of the {\em
                 relocatable\/} dynamic programming matrix for the
                 problem. Thus, the algorithm's performance is
                 independent of $k$, and it is found to be more
                 efficient than the previous results for many choices of
                 $k$ and small $m$. Moreover, because the algorithm is
                 not dependent on $k$, it can be used to rapidly compute
                 blocks of the dynamic programming matrix as in the
                 4-Russians algorithm of Wu et al. (1996). This gives
                 rise to an {$ O(k n / w) $} expected-time algorithm for
                 the case where $m$ may be arbitrarily large. In
                 practice this new algorithm, that computes a region of
                 the dynamic programming (d.p.) matrix $w$ entries at a
                 time using the basic algorithm as a subroutine is
                 significantly faster than our previous 4-Russians
                 algorithm, that computes the same region 4 or 5 entries
                 at a time using table lookup. This performance
                 improvement yields a code that is either superior or
                 competitive with {\em all\/} existing algorithms except
                 for some filtration algorithms that are superior when $
                 k / m $ is sufficiently small.",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  keywords =     "design",
  subject =      "{\bf G.4} Mathematics of Computing, MATHEMATICAL
                 SOFTWARE. {\bf H.3.3} Information Systems, INFORMATION
                 STORAGE AND RETRIEVAL, Information Search and
                 Retrieval.",
}

@Article{Navarro:1999:FMD,
  author =       "Gonzalo Navarro and Ricardo Baeza-Yates",
  title =        "Fast Multi-dimensional Approximate Pattern Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1645",
  pages =        "243--??",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Feb 5 11:54:24 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1645.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1645/16450243.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1645/16450243.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Navarro:1999:FRE,
  author =       "Gonzalo Navarro and Mathieu Raffinot",
  title =        "Fast Regular Expression Search",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1668",
  pages =        "198--212",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon Feb 4 12:03:08 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1668.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1668/16680198.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1668/16680198.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Navarro:1999:GPA,
  author =       "Gonzalo Navarro and Mathieu Raffinot",
  title =        "A General Practical Approach to Pattern Matching over
                 {Ziv--Lempel} Compressed Text",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1645",
  pages =        "14--??",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Feb 5 11:54:24 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1645.htm;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1645/16450014.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1645/16450014.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Navarro:1999:NIM,
  author =       "Gonzalo Navarro and Ricardo Baeza-Yates",
  title =        "A New Indexing Method for Approximate String
                 Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1645",
  pages =        "163--??",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Feb 5 11:54:24 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1645.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1645/16450163.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1645/16450163.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Navarro:1999:VFS,
  author =       "Gonzalo Navarro and Ricardo Baeza-Yates",
  title =        "Very fast and simple approximate string matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "72",
  number =       "1--2",
  pages =        "65--70",
  day =          "29",
  month =        oct,
  year =         "1999",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Oct 12 06:44:14 MDT 2000",
  bibsource =    "http://www.elsevier.com:80/inca/publications/store/5/0/5/6/1/2/;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.elsevier.nl/gej-ng/29/28/24/60/27/33/abstract.html;
                 http://www.elsevier.nl/gej-ng/29/28/24/60/27/33/article.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Nedjah:1999:EAD,
  author =       "Nadia Nedjah and Colin D. Walter and Stephen E.
                 Eldridge",
  title =        "Efficient automata-driven pattern-matching for
                 equational programs",
  journal =      j-SPE,
  volume =       "29",
  number =       "9",
  pages =        "793--813",
  day =          "25",
  month =        jul,
  year =         "1999",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Thu Jul 29 15:12:27 MDT 1999",
  bibsource =    "http://www3.interscience.wiley.com/journalfinder.html;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract?ID=62501864;
                 http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=62501864&PLACEBO=IE.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@Article{Preoteasa:1999:RBU,
  author =       "Viorel Preoteasa",
  title =        "A Relation Between Unambiguous Regular Expressions and
                 Abstract Data Types",
  journal =      j-FUND-INFO,
  volume =       "40",
  number =       "1",
  pages =        "53--77",
  month =        oct,
  year =         "1999",
  CODEN =        "FUMAAJ",
  DOI =          "https://doi.org/10.3233/FI-1999-40104",
  ISSN =         "0169-2968 (print), 1875-8681 (electronic)",
  ISSN-L =       "0169-2968",
  bibdate =      "Sat Mar 5 16:56:58 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fundinfo1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Fundamenta Informaticae",
  journal-URL =  "http://content.iospress.com/journals/fundamenta-informaticae",
}

@Article{Prins:1999:ICF,
  author =       "Jan F. Prins and Siddhartha Chatterjee and Martin
                 Simons",
  title =        "Irregular computations in {Fortran} --- expression and
                 implementation strategies",
  journal =      j-SCI-PROG,
  volume =       "7",
  number =       "3--4",
  pages =        "313--326",
  year =         "1999",
  CODEN =        "SCIPEV",
  ISSN =         "1058-9244 (print), 1875-919X (electronic)",
  ISSN-L =       "1058-9244",
  bibdate =      "Thu Mar 28 11:20:56 MST 2002",
  bibsource =    "http://www.iospress.nl/site/html/10589244.html;
                 https://www.math.utah.edu/pub/tex/bib/fortran3.bib;
                 https://www.math.utah.edu/pub/tex/bib/sciprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 OCLC Article1st database",
  URL =          "http://iospress.metapress.com/app/home/contribution.asp%3Fwasp=53f7mftrrm4r73yyrqau%26referrer=parent%26backto=issue%2C10%2C12%3Bjournal%2C6%2C9%3Blinkingpublicationresults%2C1%2C1",
  acknowledgement = ack-nhfb,
  fjournal =     "Scientific Programming",
  journal-URL =  "http://iospress.metapress.com/content/1058-9244",
}

@Article{Raita:1999:GSD,
  author =       "Timo Raita",
  title =        "On guards and symbol dependencies in substring
                 search",
  journal =      j-SPE,
  volume =       "29",
  number =       "11",
  pages =        "931--941",
  month =        sep,
  year =         "1999",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/(SICI)1097-024X(199909)29:11<931::AID-SPE264>3.0.CO;2-X",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat Sep 18 18:25:59 MDT 1999",
  bibsource =    "http://www3.interscience.wiley.com/journalfinder.html;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract?ID=63501200;
                 http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=63501200&PLACEBO=IE.pdf",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "2 Sep 1999",
}

@Book{Robbins:1999:UND,
  author =       "Arnold Robbins",
  title =        "{UNIX} in a Nutshell: a Desktop Quick Reference for
                 {SVR4} and {Solaris 7}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Third",
  pages =        "xvi + 598",
  year =         "1999",
  ISBN =         "1-56592-427-4 (paperback)",
  ISBN-13 =      "978-1-56592-427-7 (paperback)",
  LCCN =         "QA76.76.O63 R623 1999",
  bibdate =      "Wed Nov 17 09:10:28 1999",
  bibsource =    "http://www.oreilly.com/catalog/;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  price =        "US\$24.95",
  URL =          "http://www.oreilly.com/catalog/unixnut3",
  abstract =     "\booktitle{Unix in a Nutshell} includes thorough
                 coverage of Unix System V Release 4 and Solaris 7.
                 Author Arnold Robbins has added the latest information
                 about: sixty new Unix commands; shell syntax (sh, csh,
                 and the 1988 and 1993 versions of ksh); regular
                 expressions; vi and ex commands, as well as newly
                 updated Emacs information; sed and awk commands; troff
                 and related commands and macros, with a new section on
                 refer; make, RCS (Version 5.7), and SCCS commands; and
                 obsolete commands. In addition, there is a new Unix
                 bibliography to guide the reader to further reading
                 about the Unix environment. If you currently use Unix
                 SVR4, or if you're a Solaris user, you'll want this
                 book.",
  acknowledgement = ack-nhfb,
  tableofcontents = "Part I: Commands and Shells \\
                 1: Introduction \\
                 2: Unix Commands \\
                 3: The Unix Shell: An Overview \\
                 4: The Bourne Shell and Korn Shell \\
                 5: The C Shell \\
                 Part II: Text Editing and Processing \\
                 6: Pattern Matching \\
                 7: The Emacs Editor \\
                 8: The vi Editor \\
                 9: The ex Editor \\
                 10: The sed Editor \\
                 11: The awk Programming Language \\
                 Part III: Text Formatting \\
                 12: nroff and troff \\
                 13: mm Macros \\
                 14: ms Macros \\
                 15: me Macros \\
                 16: man Macros \\
                 17: troff Preprocessors \\
                 Part IV: Software Development \\
                 18: The Source Code Control System \\
                 19: The Revision Control System \\
                 20: The make Utility \\
                 Appendix A: ASCII Character Set \\
                 Appendix B: Obsolete Commands",
}

@Book{Robbins:1999:UNS,
  author =       "Arnold Robbins",
  title =        "{UNIX} in a Nutshell: a Desktop Quick Reference for
                 {SVR4} and {Solaris 7}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Third",
  pages =        "xvi + 598",
  year =         "1999",
  ISBN =         "1-56592-427-4 (paperback)",
  ISBN-13 =      "978-1-56592-427-7 (paperback)",
  LCCN =         "QA76.76.O63 R623 1999",
  bibdate =      "Wed Nov 17 09:10:28 1999",
  bibsource =    "http://www.oreilly.com/catalog/;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  price =        "US\$24.95",
  URL =          "http://www.oreilly.com/catalog/unixnut3",
  abstract =     "\booktitle{Unix in a Nutshell} includes thorough
                 coverage of Unix System V Release 4 and Solaris 7.
                 Author Arnold Robbins has added the latest information
                 about: sixty new Unix commands; shell syntax (sh, csh,
                 and the 1988 and 1993 versions of ksh); regular
                 expressions; vi and ex commands, as well as newly
                 updated Emacs information; sed and awk commands; troff
                 and related commands and macros, with a new section on
                 refer; make, RCS (Version 5.7), and SCCS commands; and
                 obsolete commands. In addition, there is a new Unix
                 bibliography to guide the reader to further reading
                 about the Unix environment. If you currently use Unix
                 SVR4, or if you're a Solaris user, you'll want this
                 book.",
  acknowledgement = ack-nhfb,
  tableofcontents = "Part I: Commands and Shells \\
                 1: Introduction \\
                 2: Unix Commands \\
                 3: The Unix Shell: An Overview \\
                 4: The Bourne Shell and Korn Shell \\
                 5: The C Shell \\
                 Part II: Text Editing and Processing \\
                 6: Pattern Matching \\
                 7: The Emacs Editor \\
                 8: The vi Editor \\
                 9: The ex Editor \\
                 10: The sed Editor \\
                 11: The awk Programming Language \\
                 Part III: Text Formatting \\
                 12: nroff and troff \\
                 13: mm Macros \\
                 14: ms Macros \\
                 15: me Macros \\
                 16: man Macros \\
                 17: troff Preprocessors \\
                 Part IV: Software Development \\
                 18: The Source Code Control System \\
                 19: The Revision Control System \\
                 20: The make Utility \\
                 Appendix A: ASCII Character Set \\
                 Appendix B: Obsolete Commands",
}

@Article{Rooijackers:1999:TCG,
  author =       "Jan Rooijackers",
  title =        "Take Command: grep: Searching for Words",
  journal =      j-LINUX-J,
  volume =       "60",
  pages =        "??--??",
  month =        apr,
  year =         "1999",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Thu Jun 3 06:33:59 MDT 1999",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue60/index.html;
                 https://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Schwartz:1999:CRE,
  author =       "Randal Schwartz",
  title =        "Compiling Regular Expressions",
  journal =      j-SYS-ADMIN,
  volume =       "8",
  number =       "10",
  pages =        "39--40, 42",
  month =        oct,
  year =         "1999",
  CODEN =        "SYADE7",
  ISSN =         "1061-2688",
  bibdate =      "Sat Sep 18 19:04:11 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.samag.com/",
  abstract =     "Schwartz provides some tips for streamlining the
                 compilation of regular expressions.",
  acknowledgement = ack-nhfb,
  fjournal =     "Sys admin: the journal for UNIX system
                 administrators",
}

@Article{Shibata:1999:PMT,
  author =       "Yusuke Shibata and Masayuki Takeda and Ayumi Shinohara
                 and Setsuo Arikawa",
  title =        "Pattern Matching in Text Compressed by Using
                 Antidictionaries",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1645",
  pages =        "37--??",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Feb 5 11:54:24 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1645.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1645/16450037.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1645/16450037.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Sidi:1999:FCS,
  author =       "Avram Sidi",
  title =        "Further convergence and stability results for the
                 generalized {Richardson} extrapolation process {GREP}
                 $^{(1)}$ with an application to the {$D$}
                 $^{(1)}$-transformation for infinite integrals",
  journal =      j-J-COMPUT-APPL-MATH,
  volume =       "112",
  number =       "1--2",
  pages =        "269--290",
  day =          "30",
  month =        nov,
  year =         "1999",
  CODEN =        "JCAMDI",
  ISSN =         "0377-0427 (print), 1879-1778 (electronic)",
  ISSN-L =       "0377-0427",
  bibdate =      "Sat Feb 25 12:43:32 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputapplmath1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0377042799902261",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational and Applied Mathematics",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03770427",
}

@Article{Soufi:1999:TSR,
  author =       "L. Soufi",
  title =        "Type Specification by Regular Expressions",
  journal =      j-J-UCS,
  volume =       "5",
  number =       "9",
  pages =        "622--631",
  day =          "28",
  month =        sep,
  year =         "1999",
  CODEN =        "????",
  ISSN =         "0948-695X (print), 0948-6968 (electronic)",
  ISSN-L =       "0948-6968",
  bibdate =      "Thu Oct 12 14:21:59 MDT 2000",
  bibsource =    "http://www.jucs.org/jucs;
                 https://www.math.utah.edu/pub/tex/bib/jucs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.jucs.org/jucs_5_9/type_specification_by_regular",
  acknowledgement = ack-nhfb,
  fjournal =     "J.UCS: Journal of Universal Computer Science",
  journal-URL =  "http://www.jucs.org/jucs",
}

@Article{Sperberg-McQueen:1999:SRE,
  author =       "C. M. Sperberg-McQueen",
  title =        "Squib: Regular Expression for Dates",
  journal =      j-MARKUP-LANG,
  volume =       "1",
  number =       "4",
  pages =        "20--26",
  month =        "Fall",
  year =         "1999",
  CODEN =        "MLTPFG",
  ISSN =         "1099-6621 (print), 1537-2626 (electronic)",
  ISSN-L =       "1099-6621",
  bibdate =      "Sun Oct 29 14:49:51 MST 2000",
  bibsource =    "http://mitpress.mit.edu/journal-home.tcl?issn=10996621;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Markup languages: theory \& practice",
}

@Article{Spinellis:1999:DPO,
  author =       "Diomidis Spinellis",
  title =        "Declarative peephole optimization using string pattern
                 matching",
  journal =      j-SIGPLAN,
  volume =       "34",
  number =       "2",
  pages =        "47--50",
  month =        feb,
  year =         "1999",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:59 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/bibnet/authors/s/spinellis-diomidis.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Spinellis:1999:TCD,
  author =       "Diomidis Spinellis",
  title =        "Technical Correspondence: Declarative Peephole
                 Optimization Using String Pattern Matching",
  journal =      j-SIGPLAN,
  volume =       "34",
  number =       "2",
  pages =        "47--51",
  month =        feb,
  year =         "1999",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 26 17:06:07 MDT 2000",
  bibsource =    "http://ftp.informatik.rwth-aachen.de/dblp/db/journals/sigplan/sigplan34.html;
                 https://www.math.utah.edu/pub/bibnet/authors/s/spinellis-diomidis.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ftp.informatik.rwth-aachen.de/dblp/db/indices/a-tree/s/Spinellis:Diomidis.html",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Visser:1999:SPM,
  author =       "Eelco Visser",
  title =        "Strategic Pattern Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1631",
  pages =        "30--??",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Feb 5 11:54:17 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1631.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1631/16310030.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1631/16310030.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Wendling:1999:PRS,
  author =       "L. Wendling and J. Desachy",
  title =        "Pattern Recognition of Strong Graphs Based on
                 Possibilistic $c$-means and $k$-formulae Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1566",
  pages =        "180--189",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Sep 14 06:09:05 MDT 1999",
  bibsource =    "ftp://ftp.math.utah.edu/pub/tex/bib/lncs1999a.bib;
                 https://www.math.utah.edu/pub/tex/bib/cryptography1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
  keywords =     "artificial intelligence; fuzzy logic; IJCAI",
}

@Article{Ziadi:1999:OPA,
  author =       "Djelloul Ziadi and Jean-Marc Champarnaud",
  title =        "An optimal parallel algorithm to convert a regular
                 expression into its {Glushkov} automaton",
  journal =      j-THEOR-COMP-SCI,
  volume =       "215",
  number =       "1--2",
  pages =        "69--87",
  day =          "28",
  month =        feb,
  year =         "1999",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 19 22:22:26 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/tcs/cas_free/browse/browse.cgi?year=1999&volume=215&issue=1-2;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs1995.bib",
  URL =          "http://www.elsevier.com/cas/tree/store/tcs/sub/1999/215/1-2/2667.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@TechReport{Anonymous:19xx:URE,
  author =       "Anonymous",
  title =        "{Unicode} Regular Expression Guidelines",
  type =         "{Unicode} Technical Report",
  number =       "18",
  institution =  pub-UNICODE,
  address =      pub-UNICODE-SAN-JOSE:adr,
  year =         "19xx",
  bibdate =      "Fri May 08 15:52:51 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unicode.bib",
  note =         "In progress.",
  URL =          "http://www.unicode.org/unicode/reports/techreports.html",
  acknowledgement = ack-nhfb,
}

@TechReport{Ritchie:19xx:IHQ,
  author =       "Dennis Ritchie",
  title =        "An incomplete history of the {QED} Text Editor",
  type =         "Report",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  year =         "19xx",
  bibdate =      "Tue Mar 27 15:10:56 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://plan9.bell-labs.com/who/dmr/qed.html",
  acknowledgement = ack-nhfb,
  keywords =     "regular expressions; Unicode; UTF-8",
}

@Article{Allauzen:2000:SOS,
  author =       "Cyril Allauzen and Mathieu Raffinot",
  title =        "Simple Optimal String Matching Algorithm",
  journal =      j-J-ALG,
  volume =       "36",
  number =       "1",
  pages =        "102--116",
  month =        jul,
  year =         "2000",
  CODEN =        "JOALDV",
  DOI =          "https://doi.org/10.1006/jagm.2000.1087",
  ISSN =         "0196-6774 (print), 1090-2678 (electronic)",
  ISSN-L =       "0196-6774",
  bibdate =      "Tue Dec 11 09:18:17 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jalg.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0196677400910873",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Algorithms",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01966774",
}

@Article{Amir:2000:PMH,
  author =       "Amihood Amir and Moshe Lewenstein and Noa Lewenstein",
  title =        "Pattern Matching in Hypertext",
  journal =      j-J-ALG,
  volume =       "35",
  number =       "1",
  pages =        "82--99",
  month =        apr,
  year =         "2000",
  CODEN =        "JOALDV",
  DOI =          "https://doi.org/10.1006/jagm.1999.1063",
  ISSN =         "0196-6774 (print), 1090-2678 (electronic)",
  ISSN-L =       "0196-6774",
  bibdate =      "Tue Dec 11 09:18:09 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jalg.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0196677499910635",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Algorithms",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01966774",
}

@Article{Amir:2000:PMS,
  author =       "Amihood Amir and Yonatan Aumann and Gad M. Landau and
                 Moshe Lewenstein and Noa Lewenstein",
  title =        "Pattern Matching with Swaps",
  journal =      j-J-ALG,
  volume =       "37",
  number =       "2",
  pages =        "247--266",
  month =        nov,
  year =         "2000",
  CODEN =        "JOALDV",
  DOI =          "https://doi.org/10.1006/jagm.2000.1120",
  ISSN =         "0196-6774 (print), 1090-2678 (electronic)",
  ISSN-L =       "0196-6774",
  bibdate =      "Tue Dec 11 09:18:28 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jalg.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0196677400911209",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Algorithms",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01966774",
}

@Article{Bakar:2000:ERE,
  author =       "Zainab Abu Bakar and Tengku Mohd T. Sembok and
                 Mohammed Yusoff",
  title =        "An evaluation of retrieval effectiveness using
                 spelling-correction and string-similarity matching
                 methods on {Malay} texts",
  journal =      j-J-AM-SOC-INF-SCI,
  volume =       "51",
  number =       "8",
  pages =        "691--706",
  month =        "????",
  year =         "2000",
  CODEN =        "AISJB6",
  DOI =          "https://doi.org/10.1002/(SICI)1097-4571(2000)51:8<691::AID-ASI20>3.0.CO%3B2-U",
  ISSN =         "0002-8231 (print), 1097-4571 (electronic)",
  ISSN-L =       "0002-8231",
  bibdate =      "Fri Sep 11 09:04:41 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jasis.bib;
                 https://www.math.utah.edu/pub/tex/bib/spell.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the American Society for Information
                 Science",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)2330-1643",
  onlinedate =   "28 Apr 2000",
}

@Book{Bentley:2000:PP,
  author =       "Jon Louis Bentley",
  title =        "Programming Pearls",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  edition =      "Second",
  pages =        "xi + 239",
  year =         "2000",
  ISBN =         "0-201-65788-0 (paperback), 0-13-449802-X (e-book),
                 0-13-449805-4",
  ISBN-13 =      "978-0-201-65788-3 (paperback), 978-0-13-449802-7
                 (e-book), 978-0-13-449805-8",
  LCCN =         "QA76.6 .B454 2000",
  bibdate =      "Fri Jul 12 17:17:23 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/css.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  price =        "US\$24.95",
  abstract =     "Just as natural pearls grow from grains of sand that
                 irritate oysters, programming pearls have grown from
                 real problems that have irritated real programmers.
                 With origins beyond solid engineering, in the realm of
                 insight and creativity, Bentley's pearls offer unique
                 and clever solutions to those nagging problems.
                 Illustrated by programs designed as much for fun as for
                 instruction, the book is filled with lucid and witty
                 descriptions of practical programming techniques and
                 fundamental design principles. It is not at all
                 surprising that \booktitle{Programming Pearls} has been
                 so highly valued by programmers at every level of
                 experience.",
  acknowledgement = ack-nhfb,
  shorttableofcontents = "Part I: Preliminaries / 1 \\
                 Column 1: Cracking the Oyster / 3 \\
                 Column 2: Aha! Algorithms / 11 \\
                 Column 3: Data Structures Programs / 21 \\
                 Column 4: Writing Correct Programs / 33 \\
                 Column 5: A Small Matter of Programming / 45 \\
                 Part II: Performance / 59 \\
                 Column 6: Perspective on Performance / 61 \\
                 Column 7: The Back of the Envelope / 67 \\
                 Column 8: Algorithm Design Techniques / 77 \\
                 Column 9: Code Tuning / 87 \\
                 Column 10: Squeezing Space / 99 \\
                 Part III: The Product / 113 \\
                 Column 11: Sorting / 115 \\
                 Column 12: A Sample Problem / 125 \\
                 Column 13: Searching / 133 \\
                 Column 14: Heaps / 147 \\
                 Column 15: Strings of Pearls / 161 \\
                 Epilog to the First Edition / 175 \\
                 Epilog to the Second Edition / 177 \\
                 Appendix 1: A Catalog of Algorithms / 179 \\
                 Appendix 2: An Estimation Quiz / 183 \\
                 Appendix 3: Cost Models for Time and Space / 185 \\
                 Appendix 4: Rules for Code Tuning / 191 \\
                 Appendix 5: C++ Classes for Searching / 197 \\
                 Hints for Selected Problems / 201 \\
                 Solutions to Selected Problems / 205 \\
                 Index / 233",
  tableofcontents = "Part I: Preliminaries / 1 \\
                 Column 1: Cracking the Oyster / 3 \\
                 A Friendly Conversation \\
                 Precise Problem Statement \\
                 Program Design \\
                 Implementation Sketch \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Column 2: Aha! Algorithms / 11 \\
                 Three Problems \\
                 Ubiquitous Binary Search \\
                 The Power of Primitives \\
                 Getting It Together: Sorting \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Implementing an Anagram Program \\
                 Column 3: Data Structures Programs / 21 \\
                 A Survey Program \\
                 Form-Letter Programming \\
                 An Array of Examples \\
                 Structuring Data \\
                 Powerful Tools for Specialized Data \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Column 4: Writing Correct Programs / 33 \\
                 The Challenge of Binary Search \\
                 Writing the Program \\
                 Understanding the Program \\
                 Principles \\
                 The Roles of Program Verification \\
                 Problems \\
                 Further Reading \\
                 Column 5: A Small Matter of Programming / 45 \\
                 From Pseudocode to C \\
                 A Test Harness \\
                 The Art of Assertion \\
                 Automated Testing \\
                 Timing \\
                 The Complete Program \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Debugging \\
                 Part II: Performance / 59 \\
                 Column 6: Perspective on Performance / 61 \\
                 A Case Study \\
                 Design Levels \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Column 7: The Back of the Envelope / 67 \\
                 Basic Skills \\
                 Performance Estimates Safety Factors \\
                 Little's Law \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Quick Calculations in Everyday Life \\
                 Column 8: Algorithm Design Techniques / 77 \\
                 The Problem and a Simple Algorithm \\
                 Two Quadratic Algorithms \\
                 A Divide-and-Conquer Algorithm \\
                 A Scanning Algorithm \\
                 What Does It Matter? \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Column 9: Code Tuning / 87 \\
                 A Typical Story \\
                 A First Aid Sampler \\
                 Major Surgery --- Binary Search \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Column 10: Squeezing Space / 99 \\
                 The Key --- Simplicity \\
                 An Illustrative Problem \\
                 Techniques for Data Space \\
                 Techniques for Code Space \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 A Big Squeeze \\
                 Part III: The Product / 113 \\
                 Column 11: Sorting / 115 \\
                 Insertion Sort \\
                 A Simple Quicksort \\
                 Better Quicksorts \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Column 12: A Sample Problem / 125 \\
                 The Problem \\
                 One Solution \\
                 The Design Space \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Column 13: Searching / 133 \\
                 The Interface \\
                 Linear Structures \\
                 Binary Search Trees \\
                 Structures for Integers \\
                 Principles \\
                 Problems Further Reading \\
                 A Real Searching Problem \\
                 Column 14: Heaps / 147 \\
                 The Data Structure \\
                 Two Critical Functions \\
                 Priority Queues \\
                 A Sorting Algorithm \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Column 15: Strings of Pearls / 161 \\
                 Words \\
                 Phrases \\
                 Generating Text \\
                 Principles \\
                 Problems \\
                 Further Reading \\
                 Epilog to the First Edition / 175 \\
                 Epilog to the Second Edition / 177 \\
                 Appendix 1: A Catalog of Algorithms / 179 \\
                 Appendix 2: An Estimation Quiz / 183 \\
                 Appendix 3: Cost; Models for Time and Space / 185 \\
                 Appendix 4: Rules for Code Tuning / 191 \\
                 Appendix 5: C++ Classes for Searching / 197 \\
                 Hints for Selected Problems / 201 \\
                 Solutions to Selected Problems / 205 \\
                 Index / 233",
}

@Article{Berry:2000:CBM,
  author =       "David Berry",
  title =        "Combining {Boyer--Moore} String Search with Regular
                 Expressions",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "6",
  pages =        "??--??",
  month =        jun,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0006/0006toc.htm?topic=articles;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Some text searches are fast and some are flexible.
                 This one is both.",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@Article{Bertossi:2000:RNS,
  author =       "A. A. Bertossi and A. Mei",
  title =        "A Residue Number System on Reconfigurable Mesh with
                 Applications to Prefix Sums and Approximate String
                 Matching",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "11",
  number =       "11",
  pages =        "1186--1199",
  month =        nov,
  year =         "2000",
  CODEN =        "ITDSEO",
  DOI =          "https://doi.org/10.1109/71.888638",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Fri Nov 9 11:38:59 MST 2007",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fparith.bib;
                 https://www.math.utah.edu/pub/tex/bib/ieeetranspardistsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://dlib.computer.org/td/books/td2000/pdf/l1186.pdf;
                 http://ieeexplore.ieee.org/xpl/tocresult.jsp?isnumber=19224;
                 http://www.computer.org/tpds/td2000/l1186abs.htm",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Parallel and Distributed
                 Systems",
  journal-URL =  "http://www.computer.org/tpds/archives.htm",
  keywords =     "residue arithmetic; residue number system",
  summary =      "Several new number representations based on a residue
                 number system are presented which use the smallest
                 prime numbers as moduli and are suited for parallel
                 computations on a reconfigurable mesh architecture. The
                 bit model of linear reconfigurable \ldots{}",
}

@Article{Buneman:2000:UQL,
  author =       "Peter Buneman and Mary F. Fernandez and Dan Suciu",
  title =        "{UnQL}: a query language and algebra for
                 semistructured data based on structural recursion",
  journal =      j-VLDB-J,
  volume =       "9",
  number =       "1",
  pages =        "76--110",
  month =        mar,
  year =         "2000",
  CODEN =        "VLDBFR",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Mon Jun 23 10:50:52 MDT 2008",
  bibsource =    "http://ftp.informatik.rwth-aachen.de/dblp/db/journals/vldb/vldb9.html;
                 http://link.springer.de/link/service/journals/00778/tocs/t0009001.htm;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  note =         "Electronic edition.",
  URL =          "http://ftp.informatik.rwth-aachen.de/dblp/db/indices/a-tree/b/Buneman:Peter.html;
                 http://ftp.informatik.rwth-aachen.de/dblp/db/indices/a-tree/f/Fernandez:Mary_F=.html;
                 http://ftp.informatik.rwth-aachen.de/dblp/db/indices/a-tree/s/Suciu:Dan.html;
                 http://link.springer.de/link/service/journals/00778/bibs/0009001/00090076.htm;
                 http://link.springer.de/link/service/journals/00778/papers/0009001/00090076.pdf",
  abstract =     "This paper presents structural recursion as the basis
                 of the syntax and semantics of query languages for
                 semistructured data and XML. We describe a simple and
                 powerful query language based on pattern matching and
                 show that it can be expressed using structural
                 recursion, which is introduced as a top-down, recursive
                 function, similar to the way XSL is defined on XML
                 trees. On cyclic data, structural recursion can be
                 defined in two equivalent ways: as a recursive function
                 which evaluates the data top-down and remembers all its
                 calls to avoid infinite loops, or as a bulk evaluation
                 which processes the entire data in parallel using only
                 traditional relational algebra operators. The latter
                 makes it possible for optimization techniques in
                 relational queries to be applied to structural
                 recursion. We show that the composition of two
                 structural recursion queries can be expressed as a
                 single such query, and this is used as the basis of an
                 optimization method for mediator systems. Several other
                 formal properties are established: structural recursion
                 can be expressed in first-order logic extended with
                 transitive closure; its data complexity is PTIME; and
                 over relational data it is a conservative extension of
                 the relational calculus. The underlying data model is
                 based on value equality, formally defined with
                 bisimulation. Structural recursion is shown to be
                 invariant with respect to value equality.",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
  keywords =     "optimization; query language; semistructured data;
                 structural recursion; XML; XSL",
}

@Article{Calsavara:2000:JQH,
  author =       "Alexandre Pereira Calsavara",
  title =        "{Java Q\&A}: How Can {I} Extend {Java}'s Search
                 Capabilities?",
  journal =      j-DDJ,
  volume =       "25",
  number =       "12",
  pages =        "141--142, 144, 146",
  month =        dec,
  year =         "2000",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Wed Nov 8 15:09:25 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.ddj.com/ftp/2000/2000_12/jqa0012.zip",
  abstract =     "String searching is a basic operation for just about
                 any application. Alexandre presents a small class that
                 uses regular expressions to add powerful string search
                 capabilities to Java. Additional resources include
                 jqa0012.zip (source code).",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Ciancarini:2000:UCL,
  author =       "P. Ciancarini and F. Franz{\'e} and C. Mascolo",
  title =        "Using a coordination language to specify and analyze
                 systems containing mobile components",
  journal =      j-TOSEM,
  volume =       "9",
  number =       "2",
  pages =        "167--198",
  month =        apr,
  year =         "2000",
  CODEN =        "ATSMER",
  ISSN =         "1049-331X (print), 1557-7392 (electronic)",
  ISSN-L =       "1049-331X",
  bibdate =      "Fri Apr 20 08:21:35 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tosem.bib",
  URL =          "http://www.acm.org/pubs/articles/journals/tosem/2000-9-2/p167-ciancarini/p167-ciancarini.pdf;
                 http://www.acm.org/pubs/citations/journals/tosem/2000-9-2/p167-ciancarini/",
  abstract =     "New computing paradigms for network-aware applications
                 need specification languages able to deal with the
                 features of mobile code-based systems. A coordination
                 language provides a formal framework in which the
                 interaction of active entities can be expressed. A
                 coordination language deals with the creation and
                 destruction of code or complex agents, their
                 communication activities, as well as their distribution
                 and mobility in space. We show how the coordination
                 language PoliS offers a flexible basis for the
                 description and the automatic analysis of architectures
                 of systems including mobile entities. Polis is based on
                 multiple tuple spaces and offers a basis for defining,
                 studying, and controlling mobility as it allows
                 decoupling mobile entities from their environments both
                 in space and in time. The pattern-matching mechanism
                 adopted for communication helps in abstracting from
                 addressing issues. We have developed a model-checking
                 technique for the automatic analysis of PoliS
                 specifications. In the article we show how this
                 technique can be applied to mobile code-based systems",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Software Engineering and
                 Methodology",
  generalterms = "Design; Languages; Verification",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J790",
  subject =      "Software --- Software Engineering ---
                 Requirements/Specifications (D.2.1); Software ---
                 Software Engineering --- Software/Program Verification
                 (D.2.4): {\bf Model checking}; Software --- Programming
                 Languages --- Formal Definitions and Theory (D.3.1):
                 {\bf Semantics}; Software --- Programming Languages ---
                 Language Classifications (D.3.2): {\bf Concurrent,
                 distributed, and parallel languages}",
}

@Article{Dorohonceanu:2000:AAP,
  author =       "Bogdan Dorohonceanu and Craig Nevill-Manning",
  title =        "Algorithm Alley: {A} Practical Suffix-Tree
                 Implementation for String Searches",
  journal =      j-DDJ,
  volume =       "25",
  number =       "7",
  pages =        "133--136, 140",
  month =        jul,
  year =         "2000",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Thu Nov 9 08:25:16 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/dr-dobbs-2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.ddj.com/ftp/2000/2000_07/aa700.txt;
                 http://www.ddj.com/ftp/2000/2000_07/aa700.zip",
  abstract =     "Suffix trees are used for string searches. Our authors
                 describe how to build a generalized suffix tree data
                 structure using as few hardware resources as possible
                 while still approaching the time complexity derived in
                 theory. Additional resources include aa700.txt
                 (listings) and aa700.zip (source code).",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://www.ddj.com/",
}

@Article{Dube:2000:EBP,
  author =       "Danny Dub{\'e} and Marc Feeley",
  title =        "Efficiently building a parse tree from a regular
                 expression",
  journal =      j-ACTA-INFO,
  volume =       "37",
  number =       "2",
  pages =        "121--144",
  month =        sep,
  year =         "2000",
  CODEN =        "AINFA2",
  ISSN =         "0001-5903 (print), 1432-0525 (electronic)",
  ISSN-L =       "0001-5903",
  bibdate =      "Thu Sep 28 06:00:12 MDT 2000",
  bibsource =    "http://link.springer-ny.com/link/service/journals/00236/tocs/t0037002.htm;
                 https://www.math.utah.edu/pub/tex/bib/actainfo.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/journals/00236/bibs/0037002/00370121.htm;
                 http://link.springer-ny.com/link/service/journals/00236/papers/0037002/00370121.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Acta Informatica",
  journal-URL =  "http://www.springerlink.com/content/0001-5903",
}

@Article{Dwelly:2000:XRP,
  author =       "Andrew Dwelly",
  title =        "{XML}, Reflective Pattern Matching, and {Java}",
  journal =      j-DDJ,
  volume =       "25",
  number =       "6",
  pages =        "46, 49--52, 54",
  month =        jun,
  year =         "2000",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Thu Nov 9 08:25:15 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/sgml2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.ddj.com/ftp/2000/2000_06/marius05.zip;
                 http://www.ddj.com/ftp/2000/2000_06/xmljava.txt",
  abstract =     "Although the pattern matching available in Hex, the
                 program Andrew presents here, is relatively simple, it
                 is still powerful enough to perform sophisticated XML
                 document processing. Additional resources include
                 xmljava.txt (listings) and marius05.zip (source
                 code).",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Farach-Colton:2000:SCS,
  author =       "Martin Farach-Colton and Paolo Ferragina and S.
                 Muthukrishnan",
  title =        "On the sorting-complexity of suffix tree
                 construction",
  journal =      j-J-ACM,
  volume =       "47",
  number =       "6",
  pages =        "987--1011",
  year =         "2000",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Wed Jan 10 19:20:14 MST 2001",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/citations/journals/jacm/2000-47-6/p987-farach-colton/",
  abstract =     "The suffix tree of a string is the fundamental data
                 structure of combinatorial pattern matching. We present
                 a recursive technique for building suffix trees that
                 yields optimal algorithms in different computational
                 models. Sorting is an inherent bottleneck in building
                 suffix trees and our algorithms match the sorting lower
                 bound. Specifically, we present the following results.
                 (1) Weiner [1973], who introduced the data structure,
                 gave an optimal {$ O(n) $}-time algorithm for building
                 the suffix tree of an $n$-character string drawn from a
                 constant-size alphabet. In the comparison model, there
                 is a trivial $ (n \log n) $-time lower bound based on
                 sorting, and Weiner's algorithm matches this bound. For
                 integer alphabets, the fastest known algorithm is the
                 {$ O(n \log n) $} time comparison-based algorithm, but
                 no super-linear lower bound is known. Closing this gap
                 is the main open question in stringology. We settle
                 this open problem by giving a linear time reduction to
                 sorting for building suffix trees. Since sorting is a
                 lower-bound for building suffix trees, this algorithm
                 is time-optimal in every alphabet mode. In particular,
                 for an alphabet consisting of integers in a polynomial
                 range we get the first known linear-time algorithm. (2)
                 All previously known algorithms for building suffix
                 trees exhibit a marked absence of locality of
                 reference, and thus they tend to elicit many page
                 faults (I/Os) when indexing very long strings. They are
                 therefore unsuitable for building suffix trees in
                 secondary storage devices, where I/Os dominate the
                 overall computational cost. We give a linear-I/O
                 reduction to sorting for suffix tree construction.
                 Since sorting is a trivial I/O-lower bound for building
                 suffix trees, our algorithm is I/O-optimal.",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  generalterms = "Algorithms; Design; Theory",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  keywords =     "DAM model; external-memory data structures; RAM model;
                 sorting complexity; suffix array; suffix tree",
  subject =      "Software --- Operating Systems --- Storage Management
                 (D.4.2): {\bf Main memory}; Software --- Operating
                 Systems --- Storage Management (D.4.2): {\bf Secondary
                 storage}; Data --- Data Structures (E.1): {\bf Trees};
                 Data --- Files (E.5): {\bf Sorting/searching}; Theory
                 of Computation --- Computation by Abstract Devices ---
                 Models of Computation (F.1.1); Theory of Computation
                 --- Analysis of Algorithms and Problem Complexity ---
                 Nonnumerical Algorithms and Problems (F.2.2): {\bf
                 Pattern matching}; Theory of Computation --- Analysis
                 of Algorithms and Problem Complexity --- Nonnumerical
                 Algorithms and Problems (F.2.2): {\bf Sorting and
                 searching}; Information Systems --- Information Storage
                 and Retrieval --- Content Analysis and Indexing
                 (H.3.1): {\bf Indexing methods}",
}

@Article{Forax:2000:RTP,
  author =       "R{\'e}mi Forax and Gilles Roussel",
  title =        "Recursive Types and Pattern-Matching in {Java}",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1799",
  pages =        "147--??",
  year =         "2000",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Fri Feb 1 09:16:18 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1799.htm;
                 https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1799/17990147.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1799/17990147.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Gorman:2000:PCT,
  author =       "Ian E. Gorman",
  title =        "Parsing Complex Text Structures",
  journal =      j-DDJ,
  volume =       "25",
  number =       "6",
  pages =        "90, 92--98",
  month =        jun,
  year =         "2000",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Thu Nov 9 08:25:15 MST 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.ddj.com/ftp/2000/2000_06/parse.txt;
                 http://www.ddj.com/ftp/2000/2000_06/parse.zip",
  abstract =     "A pattern language that includes recursive patterns
                 and conditional pattern matching can handle complex
                 text structures without supplementary programming. Ian
                 uses the OmniMark pattern language from OmniMark
                 Technologies to do a job that might otherwise be done
                 with tools like lex and yacc. Additional resources
                 include parse.txt (listings) and parse.zip (source
                 code).",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@InProceedings{Grossi:2000:CSA,
  author =       "Roberto Grossi and Jeffrey Scott Vitter",
  title =        "Compressed suffix arrays and suffix trees with
                 applications to text indexing and string matching
                 (extended abstract)",
  crossref =     "ACM:2000:PTS",
  pages =        "397--406",
  year =         "2000",
  bibdate =      "Wed Feb 20 18:35:45 MST 2002",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/stoc/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/stoc/335305/p397-grossi/p397-grossi.pdf;
                 http://www.acm.org/pubs/citations/proceedings/stoc/335305/p397-grossi/",
  acknowledgement = ack-nhfb,
}

@Article{Holub:2000:ASM,
  author =       "Jan Holub and Bo{\v{r}}ivoj Melichar",
  title =        "Approximate string matching using factor automata",
  journal =      j-THEOR-COMP-SCI,
  volume =       "249",
  number =       "2",
  pages =        "305--311",
  day =          "28",
  month =        oct,
  year =         "2000",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Oct 31 11:38:54 MST 2000",
  bibsource =    "http://www.elsevier.com/locate/issn/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2000.bib",
  URL =          "http://www.elsevier.nl/gej-ng/10/41/16/184/23/24/abstract.html;
                 http://www.elsevier.nl/gej-ng/10/41/16/184/23/24/article.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Hosoya:2000:RET,
  author =       "Haruo Hosoya and J{\'e}r{\^o}me Vouillon and Benjamin
                 C. Pierce",
  title =        "Regular expression types for {XML}",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "9",
  pages =        "11--22",
  month =        sep,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Nov 7 16:57:22 MST 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/icfp/;
                 https://www.math.utah.edu/pub/tex/bib/sgml2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/fp/351240/p11-hosoya/p11-hosoya.pdf;
                 http://www.acm.org/pubs/citations/proceedings/fp/351240/p11-hosoya/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Howland:2000:REC,
  author =       "Eric Howland and David Niergarth",
  title =        "Regular expressions for checking dates",
  journal =      j-MARKUP-LANG,
  volume =       "2",
  number =       "2",
  pages =        "126--132",
  month =        "Spring",
  year =         "2000",
  CODEN =        "MLTPFG",
  ISSN =         "1099-6621 (print), 1537-2626 (electronic)",
  ISSN-L =       "1099-6621",
  bibdate =      "Wed Feb 20 11:44:31 MST 2002",
  bibsource =    "http://mitpress.mit.edu/journal-home.tcl?issn=10996621;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://mitpress.mit.edu/catalog/item/default.asp?sid=3108FA5E-91BB-480F-9930-C1C27725EAB8&ttype=6&tid=6855",
  acknowledgement = ack-nhfb,
  fjournal =     "Markup languages: theory \& practice",
}

@Article{Hung:2000:IVI,
  author =       "Ted Hung and Susan H. Rodger",
  title =        "Increasing visualization and interaction in the
                 automata theory course",
  journal =      j-SIGCSE,
  volume =       "32",
  number =       "1",
  pages =        "6--10",
  month =        mar,
  year =         "2000",
  CODEN =        "SIGSD3",
  DOI =          "https://doi.org/10.1145/331795.331800",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Mon Nov 19 10:05:03 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigcse2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "In this paper we describe how to increase the
                 visualization and interaction in the automata theory
                 course through the use of the tools JFLAP and
                 P{\^a}t{\'e}. We also describe new features in these
                 tools that allow additional visualization and
                 interaction. New features in JFLAP include the addition
                 of regular expressions and exploring their conversion
                 from and to nondeterministic finite automata (NFA), and
                 increasing the interaction in the conversion of
                 automata to grammars. New features in P{\^a}t{\'e}
                 include the display of a parse tree while parsing
                 unrestricted grammars, and improved interaction with
                 parsing and the transformation of grammars.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Jagadish:2000:ODM,
  author =       "H. V. Jagadish and Olga Kapitskaia and Raymond T. Ng
                 and Divesh Srivastava",
  title =        "One-dimensional and multi-dimensional substring
                 selectivity estimation",
  journal =      j-VLDB-J,
  volume =       "9",
  number =       "3",
  pages =        "214--230",
  month =        dec,
  year =         "2000",
  CODEN =        "VLDBFR",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Mon Jun 23 10:50:54 MDT 2008",
  bibsource =    "http://link.springer.de/link/service/journals/00778/tocs/t0009003.htm;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  URL =          "http://link.springer.de/link/service/journals/00778/bibs/0009003/00090214.htm;
                 http://link.springer.de/link/service/journals/00778/papers/0009003/00090214.pdf",
  abstract =     "With the increasing importance of XML, LDAP
                 directories, and text-based information sources on the
                 Internet, there is an ever-greater need to evaluate
                 queries involving (sub)string matching. In many cases,
                 matches need to be on multiple attributes/dimensions,
                 with correlations between the multiple dimensions.
                 Effective query optimization in this context requires
                 good selectivity estimates. In this paper, we use
                 pruned count-suffix trees (PSTs) as the basic data
                 structure for substring selectivity estimation. For the
                 1-D problem, we present a novel technique called MO
                 (Maximal Overlap). We then develop and analyze two 1-D
                 estimation algorithms, MOC and MOLC, based on MO and a
                 constraint-based characterization of all possible
                 completions of a given PST. For the $k$-D problem, we
                 first generalize PSTs to multiple dimensions and
                 develop a space- and time-efficient probabilistic
                 algorithm to construct $k$-D PSTs directly. We then
                 show how to extend MO to multiple dimensions. Finally,
                 we demonstrate, both analytically and experimentally,
                 that MO is both practical and substantially superior to
                 competing algorithms.",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
  keywords =     "maximal overlap; pruned count-suffix tree; short
                 memory property; string selectivity",
}

@Article{Karhumaki:2000:PMP,
  author =       "Juhani Karhum{\"a}ki and Wojciech Plandowski and
                 Wojciech Rytter",
  title =        "Pattern-Matching Problems for Two-Dimensional Images
                 Described by Finite Automata",
  journal =      j-NORDIC-J-COMPUT,
  volume =       "7",
  number =       "1",
  pages =        "1--??",
  month =        "Spring",
  year =         "2000",
  CODEN =        "NJCOFR",
  ISSN =         "1236-6064",
  bibdate =      "Fri Oct 13 05:25:17 MDT 2000",
  bibsource =    "http://www.cs.helsinki.fi/njc/njc7.html;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.cs.helsinki.fi/njc/References/karhumakipr2000:1.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Nordic Journal of Computing",
}

@Article{Katoen:2000:PMA,
  author =       "Joost-Pieter Katoen and Albert Nymeyer",
  title =        "Pattern-matching algorithms based on term rewrite
                 systems",
  journal =      j-THEOR-COMP-SCI,
  volume =       "238",
  number =       "1--2",
  pages =        "439--464",
  day =          "6",
  month =        may,
  year =         "2000",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Oct 31 11:38:18 MST 2000",
  bibsource =    "http://www.elsevier.com/locate/issn/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2000.bib",
  URL =          "http://www.elsevier.nl/gej-ng/10/41/16/172/21/34/abstract.html;
                 http://www.elsevier.nl/gej-ng/10/41/16/172/21/34/article.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Kuri:2000:PMB,
  author =       "Josu{\'e} Kuri and Gonzalo Navarro and Ludovic M{\'e}
                 and Laurent Heye",
  title =        "A Pattern Matching Based Filter for Audit Reduction
                 and Fast Detection of Potential Intrusions",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1907",
  pages =        "17--??",
  year =         "2000",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Fri Feb 1 09:17:04 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1907.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1907/19070017.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1907/19070017.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@InProceedings{Laurikari:2000:NTT,
  author =       "V. Laurikari",
  booktitle =    "{Seventh International Symposium on String Processing
                 and Information Retrieval, 2000. SPIRE 2000. 27--29
                 September 2000, A Curu{\~n}a, Spain. Proceedings}",
  title =        "{NFAs} with tagged transitions, their conversion to
                 deterministic automata and application to regular
                 expressions",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  bookpages =    "ix + 261",
  pages =        "181--187",
  year =         "2000",
  DOI =          "https://doi.org/10.1109/SPIRE.2000.878194",
  ISBN =         "0-7695-0746-8, 0-7695-0747-6 (case), 0-7695-0748-4
                 (microfiche)",
  ISBN-13 =      "978-0-7695-0746-0, 978-0-7695-0747-7 (case),
                 978-0-7695-0748-4 (microfiche)",
  LCCN =         "QA76.9.T48 I59 2000",
  bibdate =      "Tue Mar 27 15:05:43 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Madhavan:2000:EGG,
  author =       "Maya Madhavan and Priti Shankar and Siddhartha Rai and
                 U. Ramakrishna",
  title =        "Extending {Graham-Glanville} techniques for optimal
                 code generation",
  journal =      j-TOPLAS,
  volume =       "22",
  number =       "6",
  pages =        "973--1001",
  year =         "2000",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Wed Jul 25 13:55:50 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/articles/journals/toplas/2000-22-6/p973-madhavan/p973-madhavan.pdf;
                 http://www.acm.org/pubs/citations/journals/toplas/2000-22-6/p973-madhavan/",
  abstract =     "We propose a new technique for constructing
                 code-generator generators, which combines the
                 advantages of the Graham-Glanville parsing technique
                 and the bottom-up tree parsing approach. Machine
                 descriptions are similar to Yacc specifications. The
                 construction effectively generates a pushdown automaton
                 as the matching device. This device is able to handle
                 ambiguous grammars, and can be used to generate locally
                 optimal code without the use of heuristics. Cost
                 computations are performed at preprocessing time. The
                 class of regular tree grammars augmented with costs
                 that can be handled by our system properly includes
                 those that can be handled by bottom-up systems based on
                 finite-state tree parsing automata. Parsing time is
                 linear in the size of the subject tree. We have tested
                 the system on specifications for some systems and
                 report table sizes.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  generalterms = "Algorithms; Languages",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "code-generator generator; optimal code generation;
                 tree pattern matching",
  subject =      "Software --- Programming Languages --- Processors
                 (D.3.4): {\bf Code generation}; Software ---
                 Programming Languages --- Processors (D.3.4): {\bf
                 Retargetable compilers}; Software --- Programming
                 Languages --- Processors (D.3.4): {\bf Translator
                 writing systems and compiler generators}",
}

@Article{Muthukrishnan:2000:SOP,
  author =       "S. Muthukrishnan",
  title =        "Simple Optimal Parallel Multiple Pattern Matching",
  journal =      j-J-ALG,
  volume =       "34",
  number =       "1",
  pages =        "1--13",
  month =        jan,
  year =         "2000",
  CODEN =        "JOALDV",
  DOI =          "https://doi.org/10.1006/jagm.1999.1015",
  ISSN =         "0196-6774 (print), 1090-2678 (electronic)",
  ISSN-L =       "0196-6774",
  bibdate =      "Tue Dec 11 09:18:01 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jalg.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0196677499910155",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Algorithms",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01966774",
}

@Article{Navarro:2000:FFS,
  author =       "Gonzalo Navarro and Mathieu Raffinot",
  title =        "Fast and flexible string matching by combining
                 bit-parallelism and suffix automata",
  journal =      j-ACM-J-EXP-ALGORITHMICS,
  volume =       "5",
  pages =        "4:1--4:??",
  month =        "????",
  year =         "2000",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/351827.384246",
  ISSN =         "1084-6654",
  ISSN-L =       "1084-6654",
  bibdate =      "Mon Oct 6 16:03:09 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jea.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The most important features of a string matching
                 algorithm are its efficiency and its flexibility.
                 Efficiency has traditionally received more attention,
                 while flexibility in the search pattern is becoming a
                 more and more important issue. Most classical string
                 matching algorithms are aimed at quickly finding an
                 exact pattern in a text, being Knuth--Morris--Pratt
                 (KMP) and the Boyer--Moore (BM) family the most famous
                 ones. A recent development uses deterministic 'suffix
                 automata' to design new optimal string matching
                 algorithms, e.g. BDM and TurboBDM. Flexibility has been
                 addressed quite separately by the use of
                 'bit-parallelism', which simulates automata in their
                 nondeterministic form by using bits and exploiting the
                 intrinsic parallelism inside the computer word, e.g.
                 the Shift-Or algorithm. Those algorithms are extended
                 to handle classes of characters and errors in the
                 pattern and/or in the text, their drawback being their
                 inability to skip text characters. In this paper we
                 merge bit-parallelism and suffix automata, so that a
                 nondeterministic suffix automaton is simulated using
                 bit-parallelism. The resulting algorithm, called BNDM,
                 obtains the best from both worlds. It is much simpler
                 to implement than BDM and nearly as simple as Shift-Or.
                 It inherits from Shift-Or the ability to handle
                 flexible patterns and from BDM the ability to skip
                 characters. BNDM is 30\%-40\% faster than BDM and up to
                 7 times faster than Shift-Or. When compared to the
                 fastest existing algorithms on exact patterns (which
                 belong to the BM family), BNDM is from 20\% slower to 3
                 times faster, depending on the alphabet size. With
                 respect to flexible pattern searching, BNDM is by far
                 the fastest technique to deal with classes of
                 characters and is competitive to search allowing
                 errors. In particular, BNDM seems very adequate for
                 computational biology applications, since it is the
                 fastest algorithm to search on DNA sequences and
                 flexible searching is an important problem in that
                 area. As a theoretical development related to flexible
                 pattern matching, we introduce a new automaton to
                 recognize suffixes of patterns with classes of
                 characters. To the best of our knowledge, this
                 automaton has not been studied before.",
  acknowledgement = ack-nhfb,
  articleno =    "4",
  fjournal =     "Journal of Experimental Algorithmics (JEA)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J430",
}

@Article{Navarro:2000:IAP,
  author =       "Gonzalo Navarro",
  title =        "Improved approximate pattern matching on hypertext",
  journal =      j-THEOR-COMP-SCI,
  volume =       "237",
  number =       "1--2",
  pages =        "455--463",
  day =          "28",
  month =        apr,
  year =         "2000",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Oct 31 11:38:15 MST 2000",
  bibsource =    "http://www.elsevier.com/locate/issn/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2000.bib",
  URL =          "http://www.elsevier.nl/gej-ng/10/41/16/171/21/45/abstract.html;
                 http://www.elsevier.nl/gej-ng/10/41/16/171/21/45/article.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@TechReport{Pike:2000:TES,
  author =       "Rob Pike",
  title =        "The Text Editor {\tt sam}",
  type =         "{World-Wide Web} document",
  institution =  inst-CSRC,
  address =      inst-CSRC:adr,
  pages =        "30",
  day =          "7",
  month =        jun,
  year =         "2000",
  bibdate =      "Tue Nov 29 10:02:15 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://plan9.bell-labs.com/sys/doc/sam/sam.pdf",
  abstract =     "Sam is an interactive multi-file text editor intended
                 for bitmap displays. A textual command language
                 supplements the mouse-driven, cut-and-paste interface
                 to make complex or repetitive editing tasks easy to
                 specify. The language is characterized by the
                 composition of regular expressions to describe the
                 structure of the text being modified. The treatment of
                 files as a database, with changes logged as atomic
                 transactions, guides the implementation and makes a
                 general `undo' mechanism straightforward.\par

                 Sam is implemented as two processes connected by a
                 low-bandwidth stream, one process handling the display
                 and the other the editing algorithms. Therefore it can
                 run with the display process in a bitmap terminal and
                 the editor on a local host, with both processes on a
                 bitmap-equipped host, or with the display process in
                 the terminal and the editor in a remote host. By
                 suppressing the display process, it can even run
                 without a bitmap terminal.\par

                 This paper is reprinted from {\em Software Practice and
                 Experience}, Vol 17, number 11, pp. 813--845, November
                 1987. The paper has not been updated for the Plan 9
                 manuals. Although Sam has not changed much since the
                 paper was written, the system around it certainly has.
                 Nonetheless, the description here still stands as the
                 best introduction to the editor.",
  acknowledgement = ack-nhfb,
}

@Book{Quigley:2000:LSE,
  author =       "Ellie Quigley",
  title =        "{Linux} shells by example",
  publisher =    pub-PHPTR,
  address =      pub-PHPTR:adr,
  pages =        "xviii + 761",
  year =         "2000",
  ISBN =         "0-13-014711-7",
  ISBN-13 =      "978-0-13-014711-0",
  LCCN =         "QA76.76.O63 Q538 2000",
  bibdate =      "Wed Mar 13 13:43:08 MDT 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/linux.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  series =       "Open source technology series",
  acknowledgement = ack-nhfb,
  subject =      "Linux; Operating systems (Computers)",
  tableofcontents = "1.1. Why Linux? / 1 \\
                 1.1.1. What Is POSIX? / 2 \\
                 1.2. Definition and Function of a Shell / 2 \\
                 1.2.1. Three Major UNIX Shells / 3 \\
                 1.2.2. Major Linux Shells / 4 \\
                 1.2.3. History of the Shells / 5 \\
                 1.2.4. What Shells This Book Covers / 6 \\
                 1.2.5. Uses of a Shell / 6 \\
                 1.2.6. Responsibilities of the Shell / 6 \\
                 1.3. System Startup and the Login Shell / 7 \\
                 1.3.1. Parsing the Command Line / 8 \\
                 1.3.2. Types of Commands / 8 \\
                 1.4. Processes and the Shell / 9 \\
                 1.4.1. What Is a Process? / 9 \\
                 1.4.2. What Is a System Call? / 9 \\
                 1.4.3. What Processes Are Running? / 11 \\
                 1.4.4. System Calls for Creating and Terminating
                 Processes / 12 \\
                 1.5. Environment and Inheritance / 16 \\
                 1.5.1. Ownership / 16 \\
                 1.5.2. File Creation Mask / 16 \\
                 1.5.3. Changing Ownership and Permissions / 17 \\
                 1.5.4. Working Directory / 20 \\
                 1.5.5. Variables / 20 \\
                 1.5.6. Redirection and Pipes / 21 \\
                 1.5.7. Shell and Signals / 28 \\
                 1.6. Executing Commands from Scripts / 30 \\
                 1.6.1. Sample Scripts. Comparing Shells / 31 \\
                 1.6.2. TC Shell Script / 31 \\
                 1.6.3. C Shell Script / 33 \\
                 1.6.4. Bourne Again Shell Script / 34 \\
                 1.6.5. Bourne Shell Script / 36 \\
                 1.6.6. Korn Shell Script / 38 \\
                 Chapter 2. Linux Tool Box / 41 \\
                 2.1. Regular Expressions / 41 \\
                 2.1.2. Regular Expression Metacharacters / 43 \\
                 2.2. Combining Regular Expression Metacharacters / 49
                 \\
                 2.2.1. More Regular Expression Metacharacters / 50 \\
                 Chapter 3. Grep Family (Gun and Sons) / 55 \\
                 3.1. Grep Command / 55 \\
                 3.1.1. Meaning of grep / 55 \\
                 3.1.2. How grep Works / 56 \\
                 3.1.3. Basic and Extended Regular Expressions / 57 \\
                 3.1.4. grep and Exit Status / 61 \\
                 3.1.5. Regular grep Examples (grep, grep -G) / 61 \\
                 3.2. Extended grep (grep -E or egrep) / 68 \\
                 3.2.1. Extended grep Examples (egrep and grep -E) / 70
                 \\
                 3.2.2. Anomalies with Regular and Extended Variants of
                 grep / 73 \\
                 3.3. Fixed grep (grep -F and fgrep) / 76 \\
                 3.4. Recursive grep (rgrep) / 77 \\
                 3.5. grep with Pipes / 77 \\
                 3.6. grep with Options / 77 \\
                 3.6.1. Gnu grep Options Examples / 82 \\
                 3.6.2. Regular grep Review (grep -G) / 88 \\
                 3.6.3. egrep and grep -E Review / 89 \\
                 Chapter 4. Streamlined Editor / 93 \\
                 4.1. What Is sed? / 93 \\
                 4.2. Versions of sed / 93 \\
                 4.3. How Does sed Work? / 94 \\
                 4.4. Addressing / 94 \\
                 4.5. Commands and Options / 95 \\
                 4.6. Error Messages and Exit Status / 98 \\
                 4.6.1. Metacharacters / 99 \\
                 4.7. sed Examples / 100 \\
                 4.7.1. Printing. The p Command (and the --quiet option)
                 / 100 \\
                 4.7.2. Deleting. The d Command / 102 \\
                 4.7.3. Substitution. The s Command / 103 \\
                 4.7.4. Range of Selected Lines. The Comma / 106 \\
                 4.7.5. Multiple Edits. The e Command / 107 \\
                 4.7.6. Reading from Files. The r Command / 108 \\
                 4.7.7. Writing to Files. The w Command / 109 \\
                 4.7.8. Appending. The a Command / 109 \\
                 4.7.9. Inserting. The i Command / 110 \\
                 4.7.10. Next. The n Command / 111 \\
                 4.7.11. Transform. The y Command / 111 \\
                 4.7.12. Quit. The q Command / 112 \\
                 4.7.13. Holding and Getting. The h and g Commands / 113
                 \\
                 4.7.14. Holding and Exchanging. The h and x Commands /
                 117 \\
                 4.8. sed Scripting / 117 \\
                 4.8.1. sed Script Examples / 118 \\
                 Chapter 5. Gawk Utility. Gawk as a Linux Tool / 125 \\
                 5.1. What's awk? What's nawk? What's gawk? / 125 \\
                 5.1.1. What Does awk Stand for? / 125 \\
                 5.1.2. Which awk? / 126 \\
                 5.2. awk's Format / 127 \\
                 5.2.1. Input from Files / 127 \\
                 5.2.2. Input from Commands / 128 \\
                 5.2.3. awk Command-Line Options / 129 \\
                 5.3. Formatting Output / 131 \\
                 5.3.1. Print Function / 131 \\
                 5.3.2. OFMT Variable / 133 \\
                 5.3.3. Printf Function / 133 \\
                 5.4. awk Commands from within a File / 136 \\
                 5.5. Records and Fields / 138 \\
                 5.5.1. Records / 138 \\
                 5.5.2. Fields / 139 \\
                 5.5.3. Field Separators / 140 \\
                 5.6. Patterns and Actions / 142 \\
                 5.6.1. Patterns / 142 \\
                 5.6.2. Actions / 143 \\
                 5.7. Regular Expressions / 144 \\
                 5.7.1. Match Operator / 148 \\
                 5.8. awk Commands in a Script File / 149 \\
                 5.9.1. Simple Pattern Matching / 150 \\
                 5.9.2. Simpler Actions / 151 \\
                 5.9.3. Regular Expressions in Pattern and Action
                 Combinations / 154 \\
                 5.9.4. Input Field Separators / 157 \\
                 5.9.5. awk Scripting / 160 \\
                 Chapter 6. Gawk Utility. Evaluating Expressions / 163
                 \\
                 6.1. Comparison Expressions / 163 \\
                 6.1.1. Relational Operators / 163 \\
                 6.1.2. Conditional Expressions / 164 \\
                 6.1.3. Computation / 165 \\
                 6.1.4. Compound Patterns / 166 \\
                 6.1.5. Range Patterns / 167 \\
                 6.1.6. A Data Validation Program / 168 \\
                 6.2.1. Equality Testing / 169 \\
                 6.2.2. Relational Operators / 170 \\
                 6.2.3. Logical Operators / 172 \\
                 6.2.4. Logical Not Operator / 173 \\
                 6.2.5. Arithmetic Operators / 173 \\
                 6.2.6. Range Operator / 176 \\
                 6.2.7. Conditional Operator / 177 \\
                 6.2.8. Assignment Operators / 177 \\
                 Chapter 7. Gawk Utility. Gawk Programming / 181 \\
                 7.1. Variables / 181 \\
                 7.1.1. Numeric and String Constants / 181 \\
                 7.1.2. User-Defined Variables / 182 \\
                 7.1.3. Begin Patterns / 186 \\
                 7.1.4. End Patterns / 187 \\
                 7.2. Redirection and Pipes / 187 \\
                 7.2.1. Output Redirection / 187 \\
                 7.2.2. Input Redirection (getline) / 188 \\
                 7.3. Pipes / 190 \\
                 7.4. Closing Files and Pipes / 191 \\
                 7.5.1. Increment and Decrement Operators / 192 \\
                 7.5.2. Built-In Variables / 194 \\
                 7.5.3. BEGIN Patterns / 198 \\
                 7.5.4. END Patterns / 200 \\
                 7.5.5. awk Script with BEGIN and END / 201 \\
                 7.5.6. Printf Function / 202 \\
                 7.5.7. Redirection and Pipes / 204 \\
                 7.5.8. Opening and Closing a Pipe / 204 \\
                 7.6. Conditional Statements / 207 \\
                 7.6.1. if Statements / 207 \\
                 7.6.2. if/else Statements / 207 \\
                 7.6.3. if/else else if Statements / 208 \\
                 7.7. Loops / 210 \\
                 7.7.1. while Loop / 210 \\
                 7.7.2. for Loop / 210 \\
                 7.7.3. Loop Control / 211 \\
                 7.8. Program Control Statements / 212 \\
                 7.8.1. next Statement / 212 \\
                 7.8.2. exit Statement / 212 \\
                 7.9. Arrays / 213 \\
                 7.9.1. Subscripts for Associative Arrays / 213 \\
                 7.9.2. Processing Command Arguments in awk / 220 \\
                 7.10. awk Built-In Functions / 222 \\
                 7.10.1. String Functions / 222 \\
                 7.10.2. Time Functions / 227 \\
                 7.10.3. Built-In Arithmetic Functions / 229 \\
                 7.10.4. Integer Function / 230 \\
                 7.10.5. Random Number Generator / 230 \\
                 7.11. User-Defined Functions / 231 \\
                 7.13. Odds and Ends / 239 \\
                 7.13.1. Fixed Fields / 239 \\
                 7.13.2. Bundling and Unbundling Files / 242 \\
                 7.13.3. Multiline Records / 243 \\
                 7.13.4. Generating Form Letters / 244 \\
                 7.13.5. Interaction with the Shell / 247 \\
                 7.14.1. String Functions / 248 \\
                 7.14.2. Command Line Arguments / 252 \\
                 7.14.3. Reading Input (getline) / 253 \\
                 7.14.4. Control Functions / 255 \\
                 7.14.5. User-Defined Functions / 256 \\
                 Chapter 8. Interactive Bash Shell / 259 \\
                 8.1.1. Versions of Bash / 259 \\
                 8.1.2. Startup / 260 \\
                 8.1.3. Environment / 262 \\
                 8.1.4. Setting Bash Options with the Built-In set and
                 shopt Commands / 270 \\
                 8.1.5. Prompts / 275 \\
                 8.1.6. Command Line / 281 \\
                 8.1.7. Job Control / 288 \\
                 8.2. Command Line Shortcuts / 291 \\
                 8.2.1. Command and Filename Completion / 291 \\
                 8.2.2. History / 292 \\
                 8.2.3. Accessing Commands from the History File / 293
                 \\
                 8.2.4. Readline Library and Binding Keys / 306 \\
                 8.2.5. Aliases / 314 \\
                 8.2.6. Manipulating the Directory Stack / 315 \\
                 8.2.7. Metacharacters (Wildcards) / 317 \\
                 8.2.8. Filename Substitution (Globbing) / 318 \\
                 8.3. Variables / 327 \\
                 8.3.1. Local Variables and Scope / 328 \\
                 8.3.2. Environment Variables / 331 \\
                 8.3.3. Quoting / 350 \\
                 8.3.4. Command Substitution / 353 \\
                 8.3.5. Arithmetic Expansion / 356 \\
                 8.3.6. Order of Expansion / 357 \\
                 8.3.7. Arrays (Versions 2.x) / 357 \\
                 8.3.8. Functions (Introduction) / 360 \\
                 8.3.9. Standard I/O and Redirection / 363 \\
                 8.3.10. Pipes / 368 \\
                 8.3.11. Here Document and Redirecting Input / 370 \\
                 8.3.12. Shell Invocation Options / 372 \\
                 8.3.13. Set Command and Options / 373 \\
                 8.3.14. Shopt Command and Options / 375 \\
                 8.3.15. Shell Built-In Commands / 377 \\
                 Chapter 9. Programming with the Bash Shell / 385 \\
                 9.1.1. Steps in Creating a Shell Script / 385 \\
                 9.2. Reading User Input / 388 \\
                 9.2.1. Variables (Review) / 388 \\
                 9.2.2. Read Command / 388 \\
                 9.3. Arithmetic / 391 \\
                 9.3.1. Integers (declare and let Commands) / 391 \\
                 9.3.2. Floating Point Arithmetic / 395 \\
                 9.4. Positional Parameters and Command Line Arguments /
                 396 \\
                 9.4.1. Positional Parameters / 396 \\
                 9.4.2. Set Command and Positional Parameters / 397 \\
                 9.5. Conditional Constructs and Flow Control / 401 \\
                 9.5.1. Exit Status / 401 \\
                 9.5.2. Built-In test Command / 402 \\
                 9.5.3. If Command / 407 \\
                 9.5.4. If/else Command / 413 \\
                 9.5.5. If/elif/else Command / 415 \\
                 9.5.6. File Testing / 418 \\
                 9.5.7. Null Command / 420 \\
                 9.5.8. Case Command / 422 \\
                 9.6. Looping Commands / 425 \\
                 9.6.1. For Command / 425 \\
                 9.6.2. While Command / 430 \\
                 9.6.3. Until Command / 433 \\
                 9.6.4. Select Command and Menus / 435 \\
                 9.6.5. Looping Commands / 440 \\
                 9.6.6. I/O Redirection and Subshells / 446 \\
                 9.6.7. IFS and Loops / 449 \\
                 9.7. Functions / 450 \\
                 9.7.1. Function Arguments and the Return Value / 452
                 \\
                 9.7.2. Functions and the source (or dot) Command / 455
                 \\
                 9.8. Trapping Signals / 459 \\
                 9.9. Debugging / 464 \\
                 9.10. Processing Command Line Options with getopts /
                 466 \\
                 9.11. Eval Command and Parsing the Command Line / 472
                 \\
                 9.12. Bash Options / 474 \\
                 9.12.1. Shell Invocation Options / 474 \\
                 9.12.2. Set Command and Options / 476 \\
                 9.12.3. Shopt Command and Options / 479 \\
                 9.13. Shell Built-In Commands / 480 \\
                 9.14. Bash Shell Lab Exercises / 483 \\
                 Chapter 10. Interactive TC Shell / 491 \\
                 10.1.1. Versions of tcsh / 491 \\
                 10.1.2. Startup / 492 \\
                 10.2. TC Shell Environment / 494 \\
                 10.2.1. Initialization Files / 494 \\
                 10.2.2. Search Path / 499 \\
                 10.2.3. Shell Prompts / 500 \\
                 10.2.4. Command Line / 504 \\
                 10.3. Command Line Shortcuts / 508 \\
                 10.3.1. History / 508",
}

@Article{Senellart:2000:FPM,
  author =       "Jean Senellart",
  title =        "Fast pattern matching in indexed texts",
  journal =      j-THEOR-COMP-SCI,
  volume =       "237",
  number =       "1--2",
  pages =        "239--262",
  day =          "28",
  month =        apr,
  year =         "2000",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Oct 31 11:38:15 MST 2000",
  bibsource =    "http://www.elsevier.com/locate/issn/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2000.bib",
  URL =          "http://www.elsevier.nl/gej-ng/10/41/16/171/21/33/abstract.html;
                 http://www.elsevier.nl/gej-ng/10/41/16/171/21/33/article.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Shankar:2000:NAL,
  author =       "Priti Shankar and Amitranjan Gantait and A. R. Yuvaraj
                 and Maya Madhavan",
  title =        "A new algorithm for linear regular tree pattern
                 matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "242",
  number =       "1--2",
  pages =        "125--142",
  day =          "6",
  month =        jul,
  year =         "2000",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Oct 31 11:38:32 MST 2000",
  bibsource =    "http://www.elsevier.com/locate/issn/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2000.bib",
  URL =          "http://www.elsevier.nl/gej-ng/10/41/16/176/21/28/abstract.html;
                 http://www.elsevier.nl/gej-ng/10/41/16/176/21/28/article.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Shibata:2000:SPM,
  author =       "Yusuke Shibata and Takuya Kida and Shuichi Fukamachi
                 and Masayuki Takeda and Ayumi Shinohara and Takeshi
                 Shinohara and Setsuo Arikawa",
  title =        "Speeding Up Pattern Matching by Text Compression",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1767",
  pages =        "306--??",
  year =         "2000",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Fri Feb 1 09:16:10 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1767.htm;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1767/17670306.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1767/17670306.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Shibuya:2000:GST,
  author =       "Tetsuo Shibuya",
  title =        "Generalization of a Suffix Tree for {RNA} Structural
                 Pattern Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1851",
  pages =        "393--??",
  year =         "2000",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Sep 10 19:08:43 MDT 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1851.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1851/18510393.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1851/18510393.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Sidi:2000:GRE,
  author =       "Avram Sidi",
  title =        "The generalized {Richardson} extrapolation process {$
                 {\rm GREP}^{(1)} $} and computation of derivatives of
                 limits of sequences with applications to the $
                 d^{(1)}$-transformation",
  journal =      j-J-COMPUT-APPL-MATH,
  volume =       "122",
  number =       "1--2",
  pages =        "251--273",
  day =          "1",
  month =        oct,
  year =         "2000",
  CODEN =        "JCAMDI",
  ISSN =         "0377-0427 (print), 1879-1778 (electronic)",
  ISSN-L =       "0377-0427",
  bibdate =      "Sat Feb 25 12:43:36 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputapplmath2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0377042700003629",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational and Applied Mathematics",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03770427",
}

@Article{SilvadeMoura:2000:FFW,
  author =       "Edleno {Silva de Moura} and Gonzalo Navarro and Nivio
                 Ziviani and Ricardo Baeza-Yates",
  title =        "Fast and flexible word searching on compressed text",
  journal =      j-TOIS,
  volume =       "18",
  number =       "2",
  pages =        "113--139",
  month =        apr,
  year =         "2000",
  CODEN =        "ATISET",
  ISSN =         "1046-8188",
  ISSN-L =       "0734-2047",
  bibdate =      "Tue Sep 26 09:34:01 MDT 2000",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tois/;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tois.bib",
  URL =          "http://www.acm.org/pubs/citations/journals/tois/2000-18-2/p113-silva_de_moura/",
  abstract =     "We present a fast compression technique for natural
                 language texts. The novelties are that (1)
                 decompression of arbitrary portions of the text can be
                 done very efficiently, (2) exact search for words and
                 phrases can be done on the compressed text directly,
                 using any known sequential pattern-matching algorithm,
                 and (3) word-based approximate and extended search can
                 also be done efficiently without any decoding. The
                 compression scheme uses a semistatic word-based model
                 and a Huffman code where the coding alphabet is
                 byte-oriented rather than bit-oriented. We compress
                 typical English texts to about 30\% of their original
                 size, against 40\% and 35\% for {\em Compress\/} and
                 {\em Gzip}, respectively. Compression time is close to
                 that of {\em Compress\/} and approximately half of the
                 time of {\em Gzip}, and decompression time is lower
                 than that of {\em Gzip\/} and one third of that of {\em
                 Compress}. We present three algorithms to search the
                 compressed text. They allow a large number of
                 variations over the basic word and phrase search
                 capability, such as sets of characters, arbitrary
                 regular expressions, and approximate matching.
                 Separators and stopwords can be discarded at search
                 time without significantly increasing the cost. When
                 searching for simple words, the experiments show that
                 running our algorithms on a compressed text is twice as
                 fast as running the best existing software on the
                 uncompressed version of the same text. When searching
                 complex or approximate patterns, our algorithms are up
                 to 8 times faster than the search on uncompressed text.
                 We also discuss the impact of our technique in inverted
                 files pointing to logical blocks and argue for the
                 possibility of keeping the text compressed all the
                 time, decompressing only for displaying purposes.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Information Systems (TOIS)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J779",
  keywords =     "compressed pattern matching; natural language text
                 compression; word searching; word-based Huffman
                 coding",
  subject =      "Data --- Coding and Information Theory (E.4): {\bf
                 Data compaction and compression}; Information Systems
                 --- Information Storage and Retrieval --- Information
                 Search and Retrieval (H.3.3): {\bf Search process}",
}

@Article{Trabalka:2000:RSP,
  author =       "Marek Trabalka and M{\'a}ria Bielikov{\'a}",
  title =        "Realization of Syntactic Parser for Inflectional
                 Language Using {XML} and Regular Expressions",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1902",
  pages =        "63--??",
  year =         "2000",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Sep 10 19:08:45 MDT 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1902.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1902/19020063.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1902/19020063.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Allauzen:2001:EES,
  author =       "Cyril Allauzen and Maxime Crochemore and Mathieu
                 Raffinot",
  title =        "Efficient Experimental String Matching by Weak Factor
                 Recognition",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2089",
  pages =        "51--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat Feb 2 13:04:48 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2089.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2089/20890051.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2089/20890051.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Manual{Anonymous:2001:MLP,
  author =       "Anonymous",
  title =        "{\tt matchlib} --- library for pattern matching",
  organization = inst-MUPAD,
  address =      inst-MUPAD:adr,
  pages =        "4",
  day =          "25",
  month =        jul,
  year =         "2001",
  bibdate =      "Tue Oct 18 07:51:24 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.math.utah.edu/pub/mupad/doc/pdf_help.zip#matchlib.pdf",
  acknowledgement = ack-nhfb,
}

@Article{Arikati:2001:AAM,
  author =       "Srinivasa R. Arikati and Anders Dessmark and Andrzej
                 Lingas and Madhav V. Marathe",
  title =        "Approximation algorithms for maximum two-dimensional
                 pattern matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "255",
  number =       "1--2",
  pages =        "51--62",
  day =          "28",
  month =        mar,
  year =         "2001",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Apr 17 08:40:28 MDT 2001",
  bibsource =    "http://www.elsevier.com/locate/issn/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2000.bib",
  URL =          "http://www.elsevier.nl../23/abstract.html;
                 http://www.elsevier.nl/gej-ng/10/41/16/197/21/23/article.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Atallah:2001:RAA,
  author =       "M. J. Atallah and F. Chyzak and P. Dumas",
  title =        "A Randomized Algorithm for Approximate String
                 Matching",
  journal =      j-ALGORITHMICA,
  volume =       "29",
  number =       "3",
  pages =        "468--486",
  month =        mar,
  year =         "2001",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s004530010062",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68W20 (68W05)",
  MRnumber =     "MR1799271 (2002h:68240)",
  bibdate =      "Fri Jan 6 11:38:13 MST 2006",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=29&issue=3;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=29&issue=3&spage=468",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Bunke:2001:TBG,
  author =       "H. Bunke and S. G{\"u}nter and X. Jiang",
  title =        "Towards Bridging the Gap between Statistical and
                 Structural Pattern Recognition: Two New Concepts in
                 Graph Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2013",
  pages =        "1--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:03:31 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2013.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2013/20130001.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2013/20130001.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Champarnaud:2001:CEA,
  author =       "Jean-Marc Champarnaud and Djelloul Ziadi",
  title =        "Computing the Equation Automaton of a Regular
                 Expression in {$ O(s^2) $} Space and Time",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2089",
  pages =        "157--168",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:04:48 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2089.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2089/20890157.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2089/20890157.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Champarnaud:2001:ISI,
  author =       "Jean-Marc Champarnaud",
  title =        "Implicit Structures to Implement {NFA}'s from Regular
                 Expressions",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2088",
  pages =        "80--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:04:47 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2088.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2088/20880080.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2088/20880080.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Fenwick:2001:FSM,
  author =       "Peter Fenwick",
  title =        "Fast string matching for multiple searches",
  journal =      j-SPE,
  volume =       "31",
  number =       "9",
  pages =        "815--833",
  day =          "25",
  month =        jul,
  year =         "2001",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.367",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat Jul 14 12:28:46 MDT 2001",
  bibsource =    "http://www.interscience.wiley.com/jpages/0038-0644;
                 http://www3.interscience.wiley.com/journalfinder.html;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract/78505028/START;
                 http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=78505028&PLACEBO=IE.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@Article{Fenwick:2001:SPP,
  author =       "Peter Fenwick",
  title =        "Some perils of performance prediction: a case study on
                 pattern matching",
  journal =      j-SPE,
  volume =       "31",
  number =       "9",
  pages =        "835--843",
  day =          "25",
  month =        jul,
  year =         "2001",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.392",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat Jul 14 12:28:46 MDT 2001",
  bibsource =    "http://www.interscience.wiley.com/jpages/0038-0644;
                 http://www3.interscience.wiley.com/journalfinder.html;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract/78505029/START;
                 http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=78505029&PLACEBO=IE.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@Article{Garai:2001:CGA,
  author =       "Gautam Garai and B. B. Chaudhuri",
  title =        "A Cascaded Genetic Algorithm for Efficient
                 Optimization and Pattern Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2013",
  pages =        "32--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:03:31 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2013.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2013/20130032.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2013/20130032.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Gasieniec:2001:TSE,
  author =       "Leszek Gasieniec and Igor Potapov",
  title =        "Time\slash Space Efficient Compressed Pattern
                 Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2138",
  pages =        "138--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:05:40 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2138.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2138/21380138.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2138/21380138.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Golomshtok:2001:FTS,
  author =       "Alex Golomshtok and Yefim Nodelman",
  title =        "Fuzzy Text Searches with {\tt agrep} and {\tt afind}",
  journal =      j-SYS-ADMIN,
  volume =       "10",
  number =       "6",
  pages =        "14, 16, 18, 20, 22",
  month =        jun,
  year =         "2001",
  CODEN =        "SYADE7",
  ISSN =         "1061-2688",
  bibdate =      "Wed May 16 05:57:06 MDT 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.samag.com/",
  abstract =     "Golomshtok shows how to use Perl and fuzzy string
                 matching to develop powerful tools.",
  acknowledgement = ack-nhfb,
  fjournal =     "Sys admin: the journal for UNIX system
                 administrators",
}

@Article{Grobauer:2001:PEP,
  author =       "Bernd Grobauer and Julia L. Lawall",
  title =        "Partial Evaluation of Pattern Matching in Strings,
                 revisited",
  journal =      j-NORDIC-J-COMPUT,
  volume =       "8",
  number =       "4",
  pages =        "437--462",
  month =        "Winter",
  year =         "2001",
  CODEN =        "NJCOFR",
  ISSN =         "1236-6064",
  bibdate =      "Wed Dec 24 09:23:55 MST 2003",
  bibsource =    "http://www.cs.helsinki.fi/njc/njc8.html;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.cs.helsinki.fi/njc/References/grobauer2001:437.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Nordic Journal of Computing",
}

@Book{Hanegan:2001:CCS,
  author =       "Kevin Hanegan",
  title =        "Custom {CGI} scripting with {Perl}",
  publisher =    pub-WILEY,
  address =      pub-WILEY:adr,
  pages =        "xxvii + 276",
  year =         "2001",
  ISBN =         "0-471-01379-X (e-book), 0-471-39597-8",
  ISBN-13 =      "978-0-471-01379-2 (e-book), 978-0-471-39597-3",
  LCCN =         "QA76.73.P22 H36 2001eb",
  bibdate =      "Wed Mar 13 13:43:08 MDT 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  subject =      "Perl (Computer program language); CGI (Computer
                 network protocol); Web sites; Design; COMPUTERS;
                 Programming Languages; JavaScript; VBScript; Electronic
                 books",
  tableofcontents = "Why Is CGI Useful? \\
                 Client/Server Applications \\
                 The HTTP Protocol \\
                 The CGI Process \\
                 Is CGI Dead? \\
                 The CGI Framework \\
                 Pros and Cons of Hosting Your Own Web Server \\
                 Hardware Concerns \\
                 Choosing a Platform \\
                 Choosing Web Server Software \\
                 What to Ask Your Web Hosting Company \\
                 Installing a CGI Script \\
                 Selecting a Text Editor \\
                 Uploading Your Files \\
                 Getting around on Your Web Server \\
                 Installing Your First CGI Script \\
                 Perl Building Blocks \\
                 Introduction to Perl \\
                 Origin of Perl \\
                 About the Language \\
                 Why Use Perl? \\
                 Perl Competitors \\
                 Writing Perl \\
                 Designing Your First Perl Script for the Internet \\
                 Using the Print Statement \\
                 Using the Print Function \\
                 Using the Here Document \\
                 Using q and qq \\
                 Using Variables \\
                 Scalar Variables \\
                 List Arrays \\
                 Statements and Conditionals \\
                 Conditional Control Statements \\
                 Looping Control Statements \\
                 Using Subroutines \\
                 Subroutine Basics \\
                 Return Values \\
                 Pattern Matching \\
                 The Match Operator \\
                 Grouping and Memory \\
                 Substitutions \\
                 File Input and Output \\
                 Creating a New File \\
                 File Tests \\
                 File Functions \\
                 Opening and Closing Files \\
                 Reading a File \\
                 Writing to a File \\
                 Appending to a File \\
                 File Permissions \\
                 File Locking \\
                 Working with HTML Forms \\
                 Post \\
                 Get \\
                 Using cgi-lib.pl \\
                 Using CGI.pm \\
                 Page Redirection \\
                 Using Hidden Fields \\
                 Using Databases \\
                 How Relational Databases Work \\
                 SQL \\
                 Using the DBI Module \\
                 Communicating with the Database \\
                 Interacting with Your Operating System",
}

@Article{Hazez:2001:MTC,
  author =       "Slim Ben Hazez",
  title =        "Modeling Textual Context in Linguistic Pattern
                 Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2004",
  pages =        "93--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:03:22 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2004.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2004/20040093.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2004/20040093.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Heitsch:2001:GPM,
  author =       "Christine E. Heitsch",
  title =        "Generalized Pattern Matching and the Complexity of
                 Unavoidability Testing",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2089",
  pages =        "219--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:04:48 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2089.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2089/20890219.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2089/20890219.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Book{Hopcroft:2001:IAT,
  author =       "John E. (John Edward) Hopcroft and Rajeev Motwani and
                 Jeffrey D. (Jeffrey David) Ullman",
  title =        "Introduction to Automata Theory, Languages, and
                 Computation",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  edition =      "Second",
  pages =        "xiv + 521",
  year =         "2001",
  ISBN =         "0-201-44124-1 (paperback), 0-321-21029-8
                 (International edition paperback)",
  ISBN-13 =      "978-0-201-44124-6 (paperback), 978-0-321-21029-6
                 (International edition paperback)",
  LCCN =         "QA267 .H56 2001",
  bibdate =      "Wed Sep 9 09:37:41 MDT 2020",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  subject =      "Machine theory; Formal languages; Computational
                 complexity; Computational complexity; Formal languages;
                 Machine theory",
  tableofcontents = "Automata: the methods and the madness \\
                 Finite automata \\
                 Regular expressions and languages \\
                 Properties of regular languages \\
                 Context-free grammars and languages \\
                 Pushdown automata \\
                 Properties of context-free languages \\
                 Introduction to turning machines \\
                 Undecidability \\
                 Intractable problems \\
                 Additional classes of problems",
}

@Article{Hori:2001:FPM,
  author =       "Hideaki Hori and Shinichi Shimozono and Masayuki
                 Takeda and Ayumi Shinohara",
  title =        "Fragmentary Pattern Matching: Complexity, Algorithms
                 and Applications for Analyzing Classic Literary Works",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2223",
  pages =        "719--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:07:08 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2223.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2223/22230719.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2223/22230719.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Hosoya:2001:REP,
  author =       "Haruo Hosoya and Benjamin Pierce",
  title =        "Regular expression pattern matching for {XML}",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "3",
  pages =        "67--80",
  month =        mar,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:23 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/popl/;
                 https://www.math.utah.edu/pub/tex/bib/sgml2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/plan/360204/p67-hosoya/p67-hosoya.pdf;
                 http://www.acm.org/pubs/citations/proceedings/plan/360204/p67-hosoya/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Hromkovic:2001:TRE,
  author =       "Juraj Hromkovic and Sebastian Seibert and Thomas
                 Wilke",
  title =        "Translating Regular Expressions into Small $ \epsilon
                 $-Free Nondeterministic Finite Automata",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "62",
  number =       "4",
  pages =        "565--588",
  month =        jun,
  year =         "2001",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1006/jcss.2001.1748",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:26:44 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000001917489",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Book{IEEE:2001:ISRa,
  author =       "{IEEE}",
  title =        "{IEEE Std 1003.1-2001 Standard for Information
                 Technology --- Portable Operating System Interface
                 (POSIX) Base Definitions, Issue 6}",
  publisher =    pub-IEEE-STD,
  address =      pub-IEEE-STD:adr,
  pages =        "xliv + 448",
  year =         "2001",
  ISBN =         "1-85912-247-7 (UK), 1-931624-07-0 (US), 0-7381-3047-8
                 (print), 0-7381-3010-9 (PDF), 0-7381-3129-6 (CD-ROM)",
  ISBN-13 =      "978-1-85912-247-1 (UK), 978-1-931624-07-7 (US),
                 978-0-7381-3047-7 (print), 978-0-7381-3010-1 (PDF),
                 978-0-7381-3129-0 (CD-ROM)",
  LCCN =         "????",
  bibdate =      "Thu May 09 05:06:12 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/css.bib;
                 https://www.math.utah.edu/pub/tex/bib/ieeestd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Revision of IEEE Std 1003.1-1996 and IEEE Std
                 1003.2-1992) Open Group Technical Standard Base
                 Specifications, Issue 6.",
  abstract =     "This standard defines a standard operating system
                 interface and environment, including a command
                 interpreter (or shell), and common utility programs to
                 support applications portability at the source code
                 level. It is the single common revision to IEEE Std
                 1003.1-1996, IEEE Std 1003.2-1992, and the Base
                 Specifications of The Open Group Single UNIX
                 Specification, Version 2.",
  acknowledgement = ack-nhfb,
  keywords =     "application program interface (API); argument;
                 asynchronous; basic regular expression (BRE); batch
                 job; batch system; built-in utility; byte; child;
                 command language interpreter; CPU; extended regular
                 expression (ERE); FIFO; file access control mechanism;
                 input/output (I/O); job control; network; parent;
                 portable operating system interface (POSIX); shell;
                 stream; string; synchronous; system; thread; X/Open
                 System Interface (XSI)",
}

@Book{IEEE:2001:ISRb,
  author =       "{IEEE}",
  key =          "IEEE",
  title =        "{IEEE Std 1003.1-2001 Standard for Information
                 Technology --- Portable Operating System Interface
                 (POSIX) System Interfaces, Issue 6}",
  publisher =    pub-IEEE-STD,
  address =      pub-IEEE-STD:adr,
  pages =        "xxx + 1690",
  year =         "2001",
  ISBN =         "1-85912-247-7 (UK), 1-931624-07-0 (US), 0-7381-3094-4
                 (invalid checksum??) (print), 0-7381-3010-9 (PDF),
                 0-7381-3129-6 (CD-ROM)",
  ISBN-13 =      "978-1-85912-247-1 (UK), 978-1-931624-07-7 (US),
                 978-0-7381-3094-1 (print), 978-0-7381-3010-1 (PDF),
                 978-0-7381-3129-0 (CD-ROM)",
  LCCN =         "????",
  bibdate =      "Thu May 09 05:06:12 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/css.bib;
                 https://www.math.utah.edu/pub/tex/bib/ieeestd.bib;
                 https://www.math.utah.edu/pub/tex/bib/mathcw.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Revision of IEEE Std 1003.1-1996 and IEEE Std
                 1003.2-1992, Open Group Technical Standard Base
                 Specifications, Issue 6.",
  abstract =     "This standard defines a standard operating system
                 interface and environment, including a command
                 interpreter (or shell), and common utility programs to
                 support applications portability at the source code
                 level. It is the single common revision to IEEE Std
                 1003.1-1996, IEEE Std 1003.2-1992, and the Base
                 Specifications of The Open Group Single UNIX
                 Specification, Version 2.",
  acknowledgement = ack-nhfb,
  keywords =     "application program interface (API); argument;
                 asynchronous; basic regular expression (BRE); batch
                 job; batch system; built-in utility; byte; child;
                 command language interpreter; CPU; extended regular
                 expression (ERE); FIFO; file access control mechanism;
                 input/output (I/O); job control; network; parent;
                 portable operating system interface (POSIX); shell;
                 stream; string; synchronous; system; thread; X/Open
                 System Interface (XSI)",
  xxauthor =     "{IEEE}",
  zz-isbn =      "1-85912-247-7 (UK), 1-931624-07-0 (US), 0-7381-3094-4
                 (print), 0-7381-3010-9 (PDF), 0-7381-3129-6 (CD-ROM)",
}

@Book{IEEE:2001:ISRc,
  author =       "{IEEE}",
  title =        "{IEEE Std 1003.1-2001 Standard for Information
                 Technology --- Portable Operating System Interface
                 (POSIX) Shell and Utilities, Issue 6}",
  publisher =    pub-IEEE-STD,
  address =      pub-IEEE-STD:adr,
  pages =        "xxxii + 1090",
  year =         "2001",
  ISBN =         "1-85912-247-7 (UK), 1-931624-07-0 (US), 0-7381-3050-8
                 (print), 0-7381-3010-9 (PDF), 0-7381-3129-6 (CD-ROM).",
  ISBN-13 =      "978-1-85912-247-1 (UK), 978-1-931624-07-7 (US),
                 978-0-7381-3050-7 (print), 978-0-7381-3010-1 (PDF),
                 978-0-7381-3129-0 (CD-ROM).",
  LCCN =         "????",
  bibdate =      "Thu May 09 05:06:12 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/css.bib;
                 https://www.math.utah.edu/pub/tex/bib/ieeestd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Revision of IEEE Std 1003.1-1996 and IEEE Std
                 1003.2-1992) Open Group Technical Standard Base
                 Specifications, Issue 6.",
  abstract =     "This standard defines a standard operating system
                 interface and environment, including a command
                 interpreter (or shell), and common utility programs to
                 support applications portability at the source code
                 level. It is the single common revision to IEEE Std
                 1003.1-1996, IEEE Std 1003.2-1992, and the Base
                 Specifications of The Open Group Single UNIX
                 Specification, Version 2.",
  acknowledgement = ack-nhfb,
  keywords =     "application program interface (API); argument;
                 asynchronous; basic regular expression (BRE); batch
                 job; batch system; built-in utility; byte; child;
                 command language interpreter; CPU; extended regular
                 expression (ERE); FIFO; file access control mechanism;
                 input/output (I/O); job control; network; parent;
                 portable operating system interface (POSIX); shell;
                 stream; string; synchronous; system; thread; X/Open
                 System Interface (XSI)",
}

@Book{IEEE:2001:ISRd,
  author =       "{IEEE}",
  title =        "{IEEE Std 1003.1-2001 Standard for Information
                 Technology --- Portable Operating System Interface
                 (POSIX) Rationale (Informative)}",
  publisher =    pub-IEEE-STD,
  address =      pub-IEEE-STD:adr,
  pages =        "xxxiv + 310",
  year =         "2001",
  ISBN =         "1-85912-247-7 (UK), 1-931624-07-0 (US), 0-7381-3048-6
                 (print), 0-7381-3010-9 (PDF), 0-7381-3129-6 (CD-ROM)",
  ISBN-13 =      "978-1-85912-247-1 (UK), 978-1-931624-07-7 (US),
                 978-0-7381-3048-4 (print), 978-0-7381-3010-1 (PDF),
                 978-0-7381-3129-0 (CD-ROM)",
  LCCN =         "????",
  bibdate =      "Thu May 09 05:06:12 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/css.bib;
                 https://www.math.utah.edu/pub/tex/bib/ieeestd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Revision of IEEE Std 1003.1-1996 and IEEE Std
                 1003.2-1992) Open Group Technical Standard Base
                 Specifications, Issue 6.",
  abstract =     "This standard defines a standard operating system
                 interface and environment, including a command
                 interpreter (or shell), and common utility programs to
                 support applications portability at the source code
                 level. It is the single common revision to IEEE Std
                 1003.1-1996, IEEE Std 1003.2-1992, and the Base
                 Specifications of The Open Group Single UNIX
                 Specification, Version 2.",
  acknowledgement = ack-nhfb,
  keywords =     "application program interface (API); argument;
                 asynchronous; basic regular expression (BRE); batch
                 job; batch system; built-in utility; byte; child;
                 command language interpreter; CPU; extended regular
                 expression (ERE); FIFO; file access control mechanism;
                 input/output (I/O); job control; network; parent;
                 portable operating system interface (POSIX); shell;
                 stream; string; synchronous; system; thread; X/Open
                 System Interface (XSI)",
}

@Book{IEEE:2001:ISSa,
  author =       "{IEEE}",
  title =        "{IEEE Std 1003.1-2001 Standard for Information
                 Technology --- Portable Operating System Interface
                 (POSIX) Base Definitions, Issue 6}",
  publisher =    pub-IEEE-STD,
  address =      pub-IEEE-STD:adr,
  pages =        "xliv + 448",
  year =         "2001",
  ISBN =         "1-85912-247-7 (UK), 1-931624-07-0 (US), 0-7381-3047-8
                 (print), 0-7381-3010-9 (PDF), 0-7381-3129-6 (CD-ROM)",
  ISBN-13 =      "978-1-85912-247-1 (UK), 978-1-931624-07-7 (US),
                 978-0-7381-3047-7 (print), 978-0-7381-3010-1 (PDF),
                 978-0-7381-3129-0 (CD-ROM)",
  LCCN =         "????",
  bibdate =      "Thu May 09 05:06:12 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/css.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Revision of IEEE Std 1003.1-1996 and IEEE Std
                 1003.2-1992 Open Group Technical Standard Base
                 Specifications, Issue 6.",
  abstract =     "This standard defines a standard operating system
                 interface and environment, including a command
                 interpreter (or shell), and common utility programs to
                 support applications portability at the source code
                 level. It is the single common revision to IEEE Std
                 1003.1-1996, IEEE Std 1003.2-1992, and the Base
                 Specifications of The Open Group Single UNIX
                 Specification, Version 2.",
  acknowledgement = ack-nhfb,
  keywords =     "application program interface (API); argument;
                 asynchronous; basic regular expression (BRE); batch
                 job; batch system; built-in utility; byte; child;
                 command language interpreter; CPU; extended regular
                 expression (ERE); FIFO; file access control mechanism;
                 input/output (I/O); job control; network; parent;
                 portable operating system interface (POSIX); shell;
                 stream; string; synchronous; system; thread; X/Open
                 System Interface (XSI)",
}

@Book{IEEE:2001:ISSb,
  author =       "{IEEE}",
  key =          "IEEE",
  title =        "{IEEE Std 1003.1-2001 Standard for Information
                 Technology --- Portable Operating System Interface
                 (POSIX) System Interfaces, Issue 6}",
  publisher =    pub-IEEE-STD,
  address =      pub-IEEE-STD:adr,
  pages =        "xxx + 1690",
  year =         "2001",
  ISBN =         "1-85912-247-7 (UK), 1-931624-07-0 (US), 0-7381-3094-X
                 (print), 0-7381-3010-9 (PDF), 0-7381-3129-6 (CD-ROM)",
  ISBN-13 =      "978-1-85912-247-1 (UK), 978-1-931624-07-7 (US),
                 978-0-7381-3094-1 (print), 978-0-7381-3010-1 (PDF),
                 978-0-7381-3129-0 (CD-ROM)",
  LCCN =         "????",
  bibdate =      "Thu May 09 05:06:12 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/css.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Revision of IEEE Std 1003.1-1996 and IEEE Std
                 1003.2-1992, Open Group Technical Standard Base
                 Specifications, Issue 6.",
  abstract =     "This standard defines a standard operating system
                 interface and environment, including a command
                 interpreter (or shell), and common utility programs to
                 support applications portability at the source code
                 level. It is the single common revision to IEEE Std
                 1003.1-1996, IEEE Std 1003.2-1992, and the Base
                 Specifications of The Open Group Single UNIX
                 Specification, Version 2.",
  acknowledgement = ack-nhfb,
  keywords =     "application program interface (API); argument;
                 asynchronous; basic regular expression (BRE); batch
                 job; batch system; built-in utility; byte; child;
                 command language interpreter; CPU; extended regular
                 expression (ERE); FIFO; file access control mechanism;
                 input/output (I/O); job control; network; parent;
                 portable operating system interface (POSIX); shell;
                 stream; string; synchronous; system; thread; X/Open
                 System Interface (XSI)",
}

@Book{IEEE:2001:ISSc,
  author =       "{IEEE}",
  title =        "{IEEE Std 1003.1-2001 Standard for Information
                 Technology --- Portable Operating System Interface
                 (POSIX) Shell and Utilities, Issue 6}",
  publisher =    pub-IEEE-STD,
  address =      pub-IEEE-STD:adr,
  pages =        "xxxii + 1090",
  year =         "2001",
  ISBN =         "1-85912-247-7 (UK), 1-931624-07-0 (US), 0-7381-3050-8
                 (print), 0-7381-3010-9 (PDF), 0-7381-3129-6 (CD-ROM).",
  ISBN-13 =      "978-1-85912-247-1 (UK), 978-1-931624-07-7 (US),
                 978-0-7381-3050-7 (print), 978-0-7381-3010-1 (PDF),
                 978-0-7381-3129-0 (CD-ROM).",
  LCCN =         "????",
  bibdate =      "Thu May 09 05:06:12 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/css.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Revision of IEEE Std 1003.1-1996 and IEEE Std
                 1003.2-1992 Open Group Technical Standard Base
                 Specifications, Issue 6.",
  abstract =     "This standard defines a standard operating system
                 interface and environment, including a command
                 interpreter (or shell), and common utility programs to
                 support applications portability at the source code
                 level. It is the single common revision to IEEE Std
                 1003.1-1996, IEEE Std 1003.2-1992, and the Base
                 Specifications of The Open Group Single UNIX
                 Specification, Version 2.",
  acknowledgement = ack-nhfb,
  keywords =     "application program interface (API); argument;
                 asynchronous; basic regular expression (BRE); batch
                 job; batch system; built-in utility; byte; child;
                 command language interpreter; CPU; extended regular
                 expression (ERE); FIFO; file access control mechanism;
                 input/output (I/O); job control; network; parent;
                 portable operating system interface (POSIX); shell;
                 stream; string; synchronous; system; thread; X/Open
                 System Interface (XSI)",
}

@Book{IEEE:2001:ISSd,
  author =       "{IEEE}",
  title =        "{IEEE Std 1003.1-2001 Standard for Information
                 Technology --- Portable Operating System Interface
                 (POSIX) Rationale (Informative)}",
  publisher =    pub-IEEE-STD,
  address =      pub-IEEE-STD:adr,
  pages =        "xxxiv + 310",
  year =         "2001",
  ISBN =         "1-85912-247-7 (UK), 1-931624-07-0 (US), 0-7381-3048-6
                 (print), 0-7381-3010-9 (PDF), 0-7381-3129-6 (CD-ROM)",
  ISBN-13 =      "978-1-85912-247-1 (UK), 978-1-931624-07-7 (US),
                 978-0-7381-3048-4 (print), 978-0-7381-3010-1 (PDF),
                 978-0-7381-3129-0 (CD-ROM)",
  LCCN =         "????",
  bibdate =      "Thu May 09 05:06:12 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/css.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Revision of IEEE Std 1003.1-1996 and IEEE Std
                 1003.2-1992 Open Group Technical Standard Base
                 Specifications, Issue 6.",
  abstract =     "This standard defines a standard operating system
                 interface and environment, including a command
                 interpreter (or shell), and common utility programs to
                 support applications portability at the source code
                 level. It is the single common revision to IEEE Std
                 1003.1-1996, IEEE Std 1003.2-1992, and the Base
                 Specifications of The Open Group Single UNIX
                 Specification, Version 2.",
  acknowledgement = ack-nhfb,
  keywords =     "application program interface (API); argument;
                 asynchronous; basic regular expression (BRE); batch
                 job; batch system; built-in utility; byte; child;
                 command language interpreter; CPU; extended regular
                 expression (ERE); FIFO; file access control mechanism;
                 input/output (I/O); job control; network; parent;
                 portable operating system interface (POSIX); shell;
                 stream; string; synchronous; system; thread; X/Open
                 System Interface (XSI)",
}

@Article{Iliopoulos:2001:MSA,
  author =       "Costas S. Iliopoulos and Laurent Mouchard and Yoan J.
                 Pinzon",
  title =        "The Max-Shift Algorithm for Approximate String
                 Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2141",
  pages =        "13--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat Feb 2 13:05:43 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2141.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2141/21410013.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2141/21410013.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Book{Johnson:2001:ECL,
  author =       "Steven Johnson",
  title =        "Emergence: the connected lives of ants, brains,
                 cities, and software",
  publisher =    "Scribner",
  address =      "New York, NY, USA",
  pages =        "288",
  year =         "2001",
  ISBN =         "0-684-86875-X, 0-684-86876-8 (paperback)",
  ISBN-13 =      "978-0-684-86875-2, 978-0-684-86876-9 (paperback)",
  LCCN =         "Q325 .J65 2001",
  bibdate =      "Wed Mar 13 13:43:08 MDT 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Emergence is what happens when an interconnected
                 system of relatively simple elements self-organizes to
                 form more intelligent, more adaptive higher-level
                 behavior. It's a bottom-up model rather than being
                 engineered by a general or a master planner, emergence
                 begins at the ground level. Systems that at first
                 glance seem vastly different--ant colonies, human
                 brains, cities, immune systems--all turn out to follow
                 the rules of emergence. In each of these systems,
                 agents residing on one scale start producing behavior
                 that lies a scale above them: ants create colonies,
                 urbanites create neighborhoods. Author Steven Johnson
                 takes readers on an eye-opening intellectual journey
                 from the discovery of emergence to its applications. He
                 introduces us to our everyday surroundings, offering
                 surprising examples of feedback, self-organization, and
                 adaptive learning. Drawing upon evolutionary theory,
                 urban studies, neuroscience, and computer games,
                 Emergence is a guidebook to one of the key components
                 of twenty-first-century culture. Until recently,
                 Johnson explains, the disparate philosophers of
                 emergence have worked to interpret the world. But today
                 they are starting to change it. This book is the
                 riveting story of that change and what it means for the
                 future.",
  acknowledgement = ack-nhfb,
  subject =      "Self-organizing systems; Swarm intelligence; Systems
                 engineering; Zelforganiserende systemen; Software;
                 Syst\`emes auto-organis\'es; Intelligence collective;
                 Ing{\'e}nierie des syst{\`e}mes; Selbstorganisation",
  tableofcontents = "Introduction: Here Comes Everybody! / 11 \\
                 1. The Myth of the Ant Queen / 29 \\
                 2. Street Level / 73 \\
                 3. The Pattern Match / 101 \\
                 4. Listening to Feedback / 130 \\
                 5. Control Artist / 163 \\
                 6. The Mind Readers / 195 \\
                 7. See What Happens / 227",
}

@Article{Kannan:2001:FFG,
  author =       "Parivallal Kannan and Shankar Balachandran and Dinesh
                 Bhatia",
  title =        "{fGREP} --- Fast Generic Routing Demand Estimation for
                 Placed {FPGA} Circuits",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2147",
  pages =        "37--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:05:49 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2147.htm;
                 https://www.math.utah.edu/pub/tex/bib/lncs2001c.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2147/21470037.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2147/21470037.pdf",
  acknowledgement = ack-nhfb,
}

@Article{Kida:2001:MPM,
  author =       "Takuya Kida and Tetsuya Matsumoto and Masayuki Takeda
                 and Ayumi Shinohara and Setsuo Arikawa",
  title =        "Multiple Pattern Matching Algorithms on Collage
                 System",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2089",
  pages =        "193--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:04:48 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2089.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2089/20890193.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2089/20890193.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Kim:2001:FRQ,
  author =       "Harksoo Kim and Kyungsun Kim and Jungyun Seo and Gary
                 Geunbae Lee",
  title =        "A Fast and Reliable Question-Answering System Based on
                 Predictive Answer Indexing and Lexico-Syntactic Pattern
                 Matching",
  journal =      j-INT-J-COMP-PROC-ORIENTAL-LANG,
  volume =       "14",
  number =       "4",
  pages =        "341--??",
  year =         "2001",
  CODEN =        "????",
  ISSN =         "0219-4279",
  bibdate =      "Thu Jan 15 07:02:34 MST 2004",
  bibsource =    "http://ejournals.wspc.com.sg/ijcpol/;
                 https://www.math.utah.edu/pub/tex/bib/ijcpol.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Computer Processing of
                 Oriental Languages (IJCPOL)",
}

@InProceedings{Klein:2001:PMH,
  author =       "S. T. Klein and D. Shapira",
  title =        "Pattern matching in {Huffman} encoded texts",
  crossref =     "Storer:2001:DPD",
  pages =        "449--458",
  year =         "2001",
  DOI =          "https://doi.org/10.1109/DCC.2001.917176",
  bibdate =      "Tue Feb 5 14:07:00 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=917176",
  acknowledgement = ack-nhfb,
}

@MastersThesis{Laurikari:2001:ESA,
  author =       "V. Laurikari",
  title =        "Efficient submatch addressing for regular
                 expressions",
  type =         "{Master's} thesis",
  school =       "Helsinki University of Technology",
  address =      "Helsinki, Finland",
  year =         "2001",
  bibdate =      "Wed Sep 09 10:05:41 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
}

@Article{LeFessant:2001:OPM,
  author =       "Fabrice {Le Fessant} and Luc Maranget",
  title =        "Optimizing Pattern Matching",
  journal =      j-SIGPLAN,
  volume =       "36",
  number =       "10",
  pages =        "26--37",
  month =        oct,
  year =         "2001",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:31 MST 2003",
  bibsource =    "http://cristal.inria.fr/ICFP2001/program.html;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://cristal.inria.fr/ICFP2001/Abstracts/8.html",
  acknowledgement = ack-nhfb,
  annote =       "International Conference on Functional Programming
                 (ICFP01), Firenze, Italy, 3--5 September 2001.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@InProceedings{Li:2001:IQX,
  author =       "Quanzhong Li and Bongki Moon",
  title =        "Indexing and Querying {XML} Data for Regular Path
                 Expressions",
  crossref =     "Apers:2001:PTS",
  pages =        "361--370",
  year =         "2001",
  bibdate =      "Thu Feb 21 17:51:12 MST 2002",
  bibsource =    "http://www.vldb.org/dblp/db/conf/vldb/vldb2001.html;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldb.bib",
  URL =          "http://www.vldb.org/conf/2001/P361.pdf",
  acknowledgement = ack-nhfb,
  annote =       "link",
  authorurl =    "http://www.vldb.org/dblp/db/indices/a-tree/l/Li:Quanzhong.html;
                 http://www.vldb.org/dblp/db/indices/a-tree/m/Moon:Bongki.html",
}

@Article{Maddock:2001:REC,
  author =       "John Maddock",
  title =        "Regular Expressions In {C++}",
  journal =      j-DDJ,
  volume =       "26",
  number =       "10",
  pages =        "21--22, 24, 26",
  month =        oct,
  year =         "2001",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Tue Feb 12 05:21:40 MST 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.ddj.com/ftp/2001/2001_10/regexpp3.txt;
                 http://www.ddj.com/ftp/2001/2001_10/regexpp3.zip",
  abstract =     "Regex++ is a regular expression engine that makes C++
                 as versatile for text processing as script-based
                 languages like Awk and Perl. Additional resources
                 include {\tt regexpp3.txt} (listings) and {\tt
                 regexpp3.zip} (source code).",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{McCarty:2001:LN,
  author =       "Ron McCarty",
  title =        "A Look at {\tt ngrep}",
  journal =      j-SYS-ADMIN,
  volume =       "10",
  number =       "5",
  pages =        "75--76",
  month =        may,
  year =         "2001",
  CODEN =        "SYADE7",
  ISSN =         "1061-2688",
  bibdate =      "Mon Apr 16 18:53:13 MDT 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/sysadmin.bib",
  URL =          "http://www.samag.com/",
  acknowledgement = ack-nhfb,
}

@InProceedings{Mitarai:2001:CPM,
  author =       "S. Mitarai and M. Hirao and T. Matsumoto and A.
                 Shinohara and M. Takeda and S. Arikawa",
  title =        "Compressed pattern matching for {SEQUITUR}",
  crossref =     "Storer:2001:DPD",
  pages =        "469--478",
  year =         "2001",
  DOI =          "https://doi.org/10.1109/DCC.2001.917178",
  bibdate =      "Tue Feb 5 14:07:00 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=917178",
  acknowledgement = ack-nhfb,
}

@Article{Mongelli:2001:PPM,
  author =       "H. Mongelli and S. W. Song",
  title =        "Parallel Pattern Matching with Scaling",
  journal =      j-PARALLEL-PROCESS-LETT,
  volume =       "11",
  number =       "1",
  pages =        "125--??",
  month =        mar,
  year =         "2001",
  CODEN =        "PPLTEE",
  ISSN =         "0129-6264",
  bibdate =      "Sat Feb 23 19:27:51 MST 2002",
  bibsource =    "http://ejournals.wspc.com.sg/ppl/ppl.shtml;
                 https://www.math.utah.edu/pub/tex/bib/parallelprocesslett.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Parallel Processing Letters",
  journal-URL =  "http://www.worldscientific.com/loi/ppl",
}

@Article{Navarro:2001:CDR,
  author =       "Gonzalo Navarro and Mathieu Raffinot",
  title =        "Compact {DFA} Representation for Fast Regular
                 Expression Search",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2141",
  pages =        "1--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:05:43 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2141.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2141/21410001.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2141/21410001.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@InProceedings{Navarro:2001:FAS,
  author =       "G. Navarro and T. Kida and M. Takeda and A. Shinohara
                 and S. Arikawa",
  title =        "Faster approximate string matching over compressed
                 text",
  crossref =     "Storer:2001:DPD",
  pages =        "459--468",
  year =         "2001",
  DOI =          "https://doi.org/10.1109/DCC.2001.917177",
  bibdate =      "Tue Feb 5 14:07:00 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=917177",
  acknowledgement = ack-nhfb,
}

@Article{Navarro:2001:GTA,
  author =       "Gonzalo Navarro",
  title =        "A guided tour to approximate string matching",
  journal =      j-COMP-SURV,
  volume =       "33",
  number =       "1",
  pages =        "31--88",
  month =        mar,
  year =         "2001",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/375360.375365",
  ISSN =         "0360-0300 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  bibdate =      "Thu Jun 19 10:15:39 MDT 2008",
  bibsource =    "http://www.acm.org/pubs/contents/journals/surveys/;
                 http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/articles/journals/surveys/2001-33-1/p31-navarro/p31-navarro.pdf;
                 http://www.acm.org/pubs/citations/journals/surveys/2001-33-1/p31-navarro/",
  abstract =     "We survey the current techniques to cope with the
                 problem of string matching that allows errors. This is
                 becoming a more and more relevant issue for many fast
                 growing areas such as information retrieval and
                 computational biology. We focus on online searching and
                 mostly on edit distance, explaining the problem and its
                 relevance, its statistical behavior, its history and
                 current developments, and the central ideas of the
                 algorithms and their complexities. We present a number
                 of experiments to compare the performance of the
                 different algorithms and show which are the best
                 choices. We conclude with some directions for future
                 work and open problems.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Computing Surveys",
  generalterms = "Algorithms",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
  keywords =     "edit distance; Levenshtein distance; online string
                 matching; text searching allowing errors",
  subject =      "Theory of Computation --- Analysis of Algorithms and
                 Problem Complexity --- Nonnumerical Algorithms and
                 Problems (F.2.2): {\bf Computations on discrete
                 structures}; Information Systems --- Information
                 Storage and Retrieval --- Information Search and
                 Retrieval (H.3.3): {\bf Search process}",
}

@Article{Navarro:2001:IAA,
  author =       "G. Navarro and R. Baeza-Yates",
  title =        "Improving an Algorithm for Approximate Pattern
                 Matching",
  journal =      j-ALGORITHMICA,
  volume =       "30",
  number =       "4",
  pages =        "473--502",
  month =        oct,
  year =         "2001",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-001-0034-6",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68W05 (68P10)",
  MRnumber =     "MR1829492 (2002c:68102)",
  bibdate =      "Fri Jan 6 11:38:14 MST 2006",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=30&issue=4;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  note =         "Algorithm engineering",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=30&issue=4&spage=473",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Navarro:2001:NGF,
  author =       "Gonzalo Navarro",
  title =        "{NR-grep}: a fast and flexible pattern-matching tool",
  journal =      j-SPE,
  volume =       "31",
  number =       "13",
  pages =        "1265--1312",
  day =          "10",
  month =        nov,
  year =         "2001",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.411",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Fri Feb 22 12:06:59 MST 2002",
  bibsource =    "http://www.interscience.wiley.com/jpages/0038-0644;
                 http://www3.interscience.wiley.com/journalfinder.html;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract/85512195/START;
                 http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=85512195&PLACEBO=IE.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@Article{Navarro:2001:RES,
  author =       "Gonzalo Navarro",
  title =        "Regular Expression Searching over {Ziv--Lempel}
                 Compressed Text",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2089",
  pages =        "1--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:04:48 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2089.htm;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2089/20890001.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2089/20890001.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Papadias:2001:AST,
  author =       "Dimitris Papadias and Nikos Mamoulis and Vasilis
                 Delis",
  title =        "Approximate spatio-temporal retrieval",
  journal =      j-TOIS,
  volume =       "19",
  number =       "1",
  pages =        "53--96",
  year =         "2001",
  CODEN =        "ATISET",
  ISSN =         "1046-8188",
  ISSN-L =       "0734-2047",
  bibdate =      "Tue Apr 17 08:17:10 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tois.bib",
  URL =          "http://www.acm.org/pubs/articles/journals/tois/2001-19-1/p53-papadias/p53-papadias.pdf;
                 http://www.acm.org/pubs/citations/journals/tois/2001-19-1/p53-papadias/",
  abstract =     "This paper proposes a framework for the handling of
                 spatio-temporal queries with inexact matches, using the
                 concept of relation similarity. We initially describe a
                 binary string encoding for 1D relations that permits
                 the automatic derivation of similarity measures. We
                 then extend this model to various granularity levels
                 and many dimensions, and show that reasoning on
                 spatio-temporal structure is significantly facilitated
                 in the new framework. Finally, we provide algorithms
                 and optimization methods for four types of queries: (i)
                 object retrieval based on some spatio-temporal
                 relations with respect to a reference object, (ii)
                 spatial joins, i.e., retrieval of object pairs that
                 satisfy some input relation, (iii) structural queries,
                 which retrieve configurations matching a particular
                 spatio-temporal structure, and (iv) special cases of
                 motion queries. Considering the current large
                 availability of multidimensional data and the
                 increasing need for flexible query-answering
                 mechanisms, our techniques can be used as the core of
                 spatio-temporal query processors.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Information Systems (TOIS)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J779",
  subject =      "Information Systems --- Database Management ---
                 Physical Design (H.2.2): {\bf Access methods};
                 Information Systems --- Database Management --- Systems
                 (H.2.4): {\bf Multimedia databases}; Information
                 Systems --- Database Management --- Database
                 Applications (H.2.8): {\bf Spatial databases and GIS}",
}

@Article{Pol:2001:PST,
  author =       "Koos Pol",
  title =        "A Powerful Search Tool for {ASCII} Files",
  journal =      j-SYS-ADMIN,
  volume =       "10",
  number =       "6",
  pages =        "49--51",
  month =        jun,
  year =         "2001",
  CODEN =        "SYADE7",
  ISSN =         "1061-2688",
  bibdate =      "Wed May 16 05:57:06 MDT 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.samag.com/",
  abstract =     "Pol shows how to create a search tool using Perl
                 regular expressions.",
  acknowledgement = ack-nhfb,
  fjournal =     "Sys admin: the journal for UNIX system
                 administrators",
}

@Article{Saliba:2001:BRB,
  author =       "George Saliba",
  title =        "Book Review: {{\booktitle{The Diffusion of Greco-Roman
                 Medicine into the Middle East and the Caucasus}} by
                 John A. C. Greppin; Emilie Savage-Smith; John L.
                 Gueriguian}",
  journal =      j-ISIS,
  volume =       "92",
  number =       "4",
  pages =        "763--764",
  month =        dec,
  year =         "2001",
  CODEN =        "ISISA4",
  ISSN =         "0021-1753 (print), 1545-6994 (electronic)",
  ISSN-L =       "0021-1753",
  bibdate =      "Tue Jul 30 21:30:30 MDT 2013",
  bibsource =    "http://www.jstor.org/action/showPublication?journalCode=isis;
                 http://www.jstor.org/stable/i355236;
                 https://www.math.utah.edu/pub/tex/bib/isis2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.jstor.org/stable/3080358",
  acknowledgement = ack-nhfb,
  fjournal =     "Isis",
  journal-URL =  "http://www.jstor.org/journal/isis",
}

@Article{Singh:2001:PMN,
  author =       "Sameer Singh and Jonathan Fieldsend",
  title =        "Pattern Matching and Neural Networks Based Hybrid
                 Forecasting System",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2013",
  pages =        "72--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:03:31 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2013.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2013/20130072.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2013/20130072.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Sittampalam:2001:HOP,
  author =       "Ganesh Sittampalam and Oege de Moor",
  title =        "Higher-Order Pattern Matching for Automatically
                 Applying Fusion Transformations",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2053",
  pages =        "218--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:04:09 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2053.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2053/20530218.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2053/20530218.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Snow:2001:IAL,
  author =       "Ray Snow",
  title =        "An Information Assembly Line In {Perl}",
  journal =      j-DDJ,
  volume =       "26",
  number =       "6",
  pages =        "72, 76, 78, 80, 82",
  month =        jun,
  year =         "2001",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Thu Jun 7 06:07:16 MDT 2001",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/internet2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.ddj.com/ftp/2001/2001_06/infoline.txt",
  abstract =     "How would you go about organizing thousands of daily
                 news stories from hundreds of Internet-based sources?
                 Ray turned to Perl's pattern-matching capabilities to
                 cull, tag, sort, and present all the news that's fit.
                 Additional resources include infoline.txt (listings).",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Squillante:2001:AQU,
  author =       "Mark S. Squillante and Baffelly Woo and Li Zhang",
  title =        "Analysis of queues under correlated arrivals with
                 applications to {Web} server performance",
  journal =      j-SIGMETRICS,
  volume =       "28",
  number =       "4",
  pages =        "41--43",
  month =        mar,
  year =         "2001",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/544397.544413",
  ISSN =         "0163-5999 (print), 1557-9484 (electronic)",
  ISSN-L =       "0163-5999",
  bibdate =      "Thu Jun 26 11:34:13 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigmetrics.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The complexity of many high-volume Web sites often
                 makes it difficult to mathematically analyze various
                 performance measures. Since these complex behaviors can
                 have a significant impact on performance, it is
                 important to capture them in sufficient detail in the
                 analysis of the corresponding queueing systems. We
                 consider the access logs from a particular class of
                 high-volume Web sites serving dynamic content to obtain
                 a better understanding of the complexities of user
                 request patterns in such environments. Our analysis
                 demonstrates that these arrival patterns exhibit strong
                 dependence structures which can be accurately
                 represented by an arrival process with strong
                 (short-range) correlations, at least for the class of
                 Web sites motivating our study [2]. Based on these
                 results, we develop a methodology for approximating
                 this class of dependent arrival processes by a set of
                 phase-type distributions. Our approach consists of
                 formulating and solving a nonlinear optimization
                 problem that fits a set of dependent stochastic models
                 to approximate the interarrival time patterns from the
                 data, which includes matching the autocorrelation
                 function. To evaluate the effectiveness of our
                 approach, we conduct a large number of statistical
                 tests and experiments showing that our methodology
                 provides an excellent match between the real user
                 request data and the fitted approximate arrival
                 process. Given this dependent arrival process as input,
                 we then derive an exact matrix-analytic analysis of a
                 general multi-server queue under two server queueing
                 disciplines. This analysis yields results that provide
                 significant reductions in the numerical computation
                 required to solve the queueing models. To demonstrate
                 the accuracy of the performance measures obtained under
                 these methods, a large number of experiments were
                 performed and detailed comparisons were made between
                 the sojourn time measures from our analysis and the
                 corresponding measures obtained from simulation of the
                 queueing system under the actual user request data.
                 These results show both sets of performance measures to
                 be in excellent agreement, with relative errors
                 consistently less than 5\%, and further demonstrate the
                 robustness of our approach. We also conduct a set of
                 numerical experiments that exploit our matrix-analytic
                 analysis and its computational efficiency, which are
                 then used to establish some important results for
                 multi-server queues under dependent arrival processes.
                 This includes the notion of effective stability where
                 the point at which the mean sojourn time of the queue
                 exceeds a large constant (e.g., 1000) multiplied by the
                 mean service time occurs well before the theoretical
                 stability condition for the queue. Due to space
                 limitations, we simply summarize a subset of our
                 results in this extended abstract. We refer the
                 interested reader to [1] for additional details,
                 references and results.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGMETRICS Performance Evaluation Review",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J618",
}

@Article{Thompson:2001:DDS,
  author =       "Paul M. Thompson and Michael S. Mega and Christine
                 Vidal and Judith L. Rapoport and Arthur W. Toga",
  title =        "Detecting Disease-Specific Patterns of Brain Structure
                 Using Cortical Pattern Matching and a Population-Based
                 Probabilistic Brain Atlas",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2082",
  pages =        "488--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:04:40 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2082.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2082/20820488.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2082/20820488.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{vanNoord:2001:ERE,
  author =       "Gertjan van Noord and Dale Gerdemann",
  title =        "An Extendible Regular Expression Compiler for
                 Finite-State Approaches in Natural Language
                 Processing",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2214",
  pages =        "122--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:07:01 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2214.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2214/22140122.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2214/22140122.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Viksna:2001:PMP,
  author =       "Juris V{\=\i}ksna and David Gilbert",
  title =        "Pattern Matching and Pattern Discovery Algorithms for
                 Protein Topologies",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2149",
  pages =        "98--111",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:05:52 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2149.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2149/21490098.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2149/21490098.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Vilares:2001:AVP,
  author =       "Manuel Vilares and Francisco J. Ribadas and Victor M.
                 Darriba",
  title =        "Approximate {VLDC} Pattern Matching in Shared-Forest",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2004",
  pages =        "483--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:03:22 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2004.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2004/20040483.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2004/20040483.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Voss:2001:APP,
  author =       "K. Voss and H. Suesse",
  title =        "Affine Point Pattern Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2191",
  pages =        "155--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:06:34 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2191.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2191/21910155.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2191/21910155.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Yamamoto:2001:NRA,
  author =       "Hiroaki Yamamoto",
  title =        "A New Recognition Algorithm for Extended Regular
                 Expressions",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2223",
  pages =        "257--??",
  year =         "2001",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Feb 2 13:07:08 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2223.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2223/22230257.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2223/22230257.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Abouelhoda:2002:OES,
  author =       "Mohamed Ibrahim Abouelhoda and Enno Ohlebusch and
                 Stefan Kurtz",
  title =        "Optimal Exact String Matching Based on Suffix Arrays",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2476",
  pages =        "31--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat Nov 30 20:57:37 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2476.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.de/link/service/series/0558/bibs/2476/24760031.htm;
                 http://link.springer.de/link/service/series/0558/papers/2476/24760031.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@InProceedings{Adjeroh:2002:PMB,
  author =       "D. Adjeroh and A. Mukherjee and T. Bell and M. Powell
                 and N. Zhang",
  title =        "Pattern matching in {BWT}-transformed text",
  crossref =     "Storer:2002:DPD",
  pages =        "??--??",
  year =         "2002",
  DOI =          "https://doi.org/10.1109/DCC.2002.999988",
  bibdate =      "Tue Feb 5 14:07:05 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=999988",
  acknowledgement = ack-nhfb,
  keywords =     "Burrows--Wheeler Transform (BWT)",
}

@Article{Amer-Yahia:2002:TPQ,
  author =       "S. Amer-Yahia and S. Cho and L. V. S. Lakshmanan and
                 D. Srivastava",
  title =        "Tree pattern query minimization",
  journal =      j-VLDB-J,
  volume =       "11",
  number =       "4",
  pages =        "315--331",
  month =        dec,
  year =         "2002",
  CODEN =        "VLDBFR",
  DOI =          "https://doi.org/10.1007/s00778-002-0076-7",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Mon Jun 23 10:51:03 MDT 2008",
  bibsource =    "http://link.springer.de/link/service/journals/00778/tocs/t2011004.htm;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  URL =          "http://link.springer.de/link/service/journals/00778/bibs/2011004/20110315.htm;
                 http://link.springer.de/link/service/journals/00778/papers/2011004/20110315.pdf",
  abstract =     "Tree patterns form a natural basis to query
                 tree-structured data such as XML and LDAP. To improve
                 the efficiency of tree pattern matching, it is
                 essential to quickly identify and eliminate redundant
                 nodes in the pattern. In this paper, we study tree
                 pattern minimization both in the absence and in the
                 presence of integrity constraints (ICs) on the
                 underlying tree-structured database. In the absence of
                 ICs, we develop a polynomial-time query minimization
                 algorithm called CIM, whose efficiency stems from two
                 key properties: (i) a node cannot be redundant unless
                 its children are; and (ii) the order of elimination of
                 redundant nodes is immaterial. When ICs are considered
                 for minimization, we develop a technique for query
                 minimization based on three fundamental operations:
                 augmentation (an adaptation of the well-known chase
                 procedure), minimization (based on homomorphism
                 techniques), and reduction. We show the surprising
                 result that the algorithm, referred to as ACIM,
                 obtained by first augmenting the tree pattern using
                 ICs, and then applying CIM, always finds the unique
                 minimal equivalent query. While ACIM is polynomial
                 time, it can be expensive in practice because of its
                 inherent non-locality. We then present a fast
                 algorithm, CDM, that identifies and eliminates local
                 redundancies due to ICs, based on propagating
                 ``information labels'' up the tree pattern. CDM can be
                 applied prior to ACIM for improving the minimization
                 efficiency. We complement our analytical results with
                 an experimental study that shows the effectiveness of
                 our tree pattern minimization techniques.",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
  keywords =     "query minimization; tree patterns; XML",
}

@Article{Andrews:2002:KCD,
  author =       "Larry Andrews",
  title =        "Keyword Correction from a Dictionary",
  journal =      j-CCCUJ,
  volume =       "20",
  number =       "6",
  pages =        "14--??",
  month =        jun,
  year =         "2002",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:37 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2002/0206/0206toc.htm?topic=articles;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Have your computer understand what you mean, not just
                 what you say, with this effective string matching
                 algorithm.",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@Article{Anonymous:2002:MSS,
  author =       "Moishe Halibard and Moshe Rubin",
  title =        "A Multiple Substring Search Algorithm",
  journal =      j-CCCUJ,
  volume =       "20",
  number =       "6",
  pages =        "6--??",
  month =        jun,
  year =         "2002",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:37 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2002/0206/0206toc.htm?topic=articles;
                 https://www.math.utah.edu/pub/tex/bib/cccuj2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "You will surely find this generalization of {\tt
                 find\_first\_of} for multiple substrings both elegant
                 and useful. What's more, it's very efficient.",
  acknowledgement = ack-nhfb,
}

@Article{Asarin:2002:TRE,
  author =       "Eugene Asarin and Paul Caspi and Oded Maler",
  title =        "Timed regular expressions",
  journal =      j-J-ACM,
  volume =       "49",
  number =       "2",
  pages =        "172--206",
  month =        mar,
  year =         "2002",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Thu Apr 25 17:35:56 MDT 2002",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
}

@Article{Bartolini:2002:SMM,
  author =       "Ilaria Bartolini and Paolo Ciaccia and Marco Patella",
  title =        "String Matching with Metric Trees Using an Approximate
                 Distance",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2476",
  pages =        "271--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat Nov 30 20:57:37 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2476.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.de/link/service/series/0558/bibs/2476/24760271.htm;
                 http://link.springer.de/link/service/series/0558/papers/2476/24760271.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@InProceedings{Bell:2002:SBC,
  author =       "T. Bell and M. Powell and A. Mukherjee and D.
                 Adjeroh",
  title =        "Searching {BWT} compressed text with the
                 {Boyer--Moore} algorithm and binary search",
  crossref =     "Storer:2002:DPD",
  pages =        "112--121",
  year =         "2002",
  DOI =          "https://doi.org/10.1109/DCC.2002.999949",
  bibdate =      "Tue Feb 5 14:07:05 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=999949",
  acknowledgement = ack-nhfb,
  keywords =     "Burrows--Wheeler Transform (BWT)",
}

@Article{Bergeron:2002:VAA,
  author =       "A. Bergeron and S. Hamel",
  title =        "Vector Algorithms for Approximate String Matching",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "13",
  number =       "1",
  pages =        "53--??",
  year =         "2002",
  CODEN =        "IFCSEN",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Tue Jan 27 08:06:51 MST 2004",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Berman:2002:CPM,
  author =       "Piotr Berman and Marek Karpinski and Lawrence L.
                 Larmore and Wojciech Plandowski and Wojciech Rytter",
  title =        "On the Complexity of Pattern Matching for Highly
                 Compressed Two-Dimensional Texts",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "65",
  number =       "2",
  pages =        "332--350",
  month =        sep,
  year =         "2002",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1006/jcss.2002.1852",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:26:48 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000002918520",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@TechReport{Bollinger:2002:UFO,
  author =       "Terry Bollinger",
  title =        "Use of {Free and Open-Source Software} ({FOSS}) in the
                 {U.S. Department of Defense}: Version: 1.2",
  type =         "Mitre report",
  number =       "MP 02 W0000101",
  institution =  "MITRE Corporation",
  pages =        "160",
  day =          "28",
  month =        oct,
  year =         "2002",
  bibdate =      "Wed Oct 30 08:48:57 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cryptography2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.egovos.org/pdf/dodfoss.pdf",
  acknowledgement = ack-nhfb,
  annote =       "About 100 pages of this report are devoted to exhibits
                 of the licenses of the various open source packages
                 discussed in the report.",
  keywords =     "ACE; ACE ORB (TAO); ACID; AMANDA; Apache; Autoconf;
                 Automake; bash; Bastille; BIND; C++ Boost; CIS
                 Benchmarks; Colt; Condor; COPS; Crack; CVS; CVW;
                 Cygwin; DDD; DjVuLibre; EADSIM; Emacs; eTrust; Expect;
                 FreeBSD; GateD; gawk (awk); GCC; GDB; Ghostscript;
                 GNAT; GnuPG; gnuplot; grep; h2n; HOSTS; ImageMagick;
                 JADE; Jakarta; Jaxen; JBoss; JDOM; Jikes; jSIP; Kaffe;
                 LaTeX; Linux; Linux (Red Hat); Linux firewalls; Lsof;
                 m4; Majordomo; make; Maxima; MIMEsweeper; MRTG; MTR;
                 MySQL; Nessus; NetBSD; NetSaint; nload; Nmap; ntop;
                 NTP; Octave; OpenBSD; OpenMap; OpenOffice; OpenSSH;
                 OpenSSL; Perl; Perl CGI scripts; PerLDAP; PHP;
                 PingScan; Procmail; Qmail; R; RealSecure; RRDtool;
                 RTLinux; RWhois; RXVT; Samba; SARA; SATAN; Saxon; SCA;
                 sed; SELinux; Sendmail; SNARE; Snort; Squid; Tcl/Tk;
                 TCP Wrappers; Tomcat; Top; Tripwire; VisAD; VOCAL; VTK;
                 Webmin; WebTAS; Weka; WU-FTPD; Xalan; Xerces; XFree86;
                 XGobi; Xpatch; zlib; Zope",
}

@Article{Boyer:2002:LDS,
  author =       "John Boyer and Andrew D. Todd and Jason Trenough and
                 Doug Farrell",
  title =        "Letters: Defective Sign-and-Encrypt and Healthcare
                 Woes and {J2EE} Cache and Pool and {Regex++}",
  journal =      j-DDJ,
  volume =       "27",
  number =       "2",
  pages =        "10--10",
  month =        feb,
  year =         "2002",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Tue Feb 12 05:21:41 MST 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cryptography2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/dr-dobbs-2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  journal-URL =  "http://www.ddj.com/",
}

@InProceedings{Bruno:2002:HTJ,
  author =       "Nicolas Bruno and Nick Koudas and Divesh Srivastava",
  title =        "Holistic twig joins: optimal {XML} pattern matching",
  crossref =     "Franklin:2002:PAS",
  pages =        "310--321",
  year =         "2002",
  bibdate =      "Fri Oct 31 08:03:02 MST 2003",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/sgml2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Calvanese:2002:RRE,
  author =       "Diego Calvanese and Giuseppe {De Giacomo} and Maurizio
                 Lenzerini and Moshe Y. Vardi",
  title =        "Rewriting of Regular Expressions and Regular Path
                 Queries",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "64",
  number =       "3",
  pages =        "443--465",
  month =        may,
  year =         "2002",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1006/jcss.2001.1805",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:26:47 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000001918057",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Chakaravarthy:2002:PCS,
  author =       "Venkatesan T. Chakaravarthy and Rajasekar
                 Krishnamurthy",
  title =        "The Problem of Context Sensitive String Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2373",
  pages =        "64--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Sep 10 19:09:57 MDT 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2373.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2373/23730064.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2373/23730064.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Champarnaud:2002:ETI,
  author =       "J.-M. Champarnaud",
  title =        "Evaluation of Three Implicit Structures to Implement
                 Nondeterministic Automata From Regular Expressions",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "13",
  number =       "1",
  pages =        "99--??",
  year =         "2002",
  CODEN =        "IFCSEN",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Tue Jan 27 08:06:51 MST 2004",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@InProceedings{Chan:2002:RTE,
  author =       "Chee Yong Chan and Minos N. Garofalakis and Rajeev
                 Rastogi",
  title =        "{RE-Tree}: An Efficient Index Structure for Regular
                 Expressions",
  crossref =     "Bernstein:2002:VPT",
  pages =        "263--274",
  year =         "2002",
  bibdate =      "Mon Dec 22 18:34:16 MST 2003",
  bibsource =    "http://www.vldb.org/dblp/db/conf/vldb/vldb2002.html;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldb.bib",
  URL =          "http://www.vldb.org/conf/2002/S08P02.pdf",
  acknowledgement = ack-nhfb,
  annote =       "link",
  authorurl =    "http://www.vldb.org/dblp/db/indices/a-tree/c/Chan:Chee_Yong.html;
                 http://www.vldb.org/dblp/db/indices/a-tree/g/Garofalakis:Minos_N=.html;
                 http://www.vldb.org/dblp/db/indices/a-tree/r/Rastogi:Rajeev.html",
}

@Article{Chauve:2002:TPMa,
  author =       "Cedric Chauve",
  title =        "Tree Pattern Matching for Linear Static Terms",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2476",
  pages =        "160--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Nov 30 20:57:37 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2476.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.de/link/service/series/0558/bibs/2476/24760160.htm;
                 http://link.springer.de/link/service/series/0558/papers/2476/24760160.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Chauve:2002:TPMb,
  author =       "Cedric Chauve",
  title =        "Tree pattern matching with a more general notion of
                 occurrence of the pattern",
  journal =      j-INFO-PROC-LETT,
  volume =       "82",
  number =       "4",
  pages =        "197--201",
  day =          "31",
  month =        may,
  year =         "2002",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon Jan 26 08:44:28 MST 2004",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Chavez:2002:MIA,
  author =       "Edgar Ch{\'a}vez and Gonzalo Navarro",
  title =        "A Metric Index for Approximate String Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2286",
  pages =        "181--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Sep 10 19:09:12 MDT 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2286.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2286/22860181.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2286/22860181.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Chung:2002:TPO,
  author =       "Tae-Sun Chung and Hyoung-Joo Kim",
  title =        "A two phase optimization technique for {XML} queries
                 with multiple regular path expressions",
  journal =      j-J-SYST-SOFTW,
  volume =       "64",
  number =       "3",
  pages =        "183--193",
  day =          "15",
  month =        dec,
  year =         "2002",
  CODEN =        "JSSODM",
  ISSN =         "0164-1212 (print), 1873-1228 (electronic)",
  ISSN-L =       "0164-1212",
  bibdate =      "Sat Oct 25 07:14:11 MDT 2003",
  bibsource =    "http://www.sciencedirect.com/science/journal/01641212;
                 https://www.math.utah.edu/pub/tex/bib/jsystsoftw.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "The Journal of systems and software",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01641212",
}

@Article{Cole:2002:ASM,
  author =       "Richard Cole and Ramesh Hariharan",
  title =        "Approximate String Matching: a Simpler Faster
                 Algorithm",
  journal =      j-SIAM-J-COMPUT,
  volume =       "31",
  number =       "6",
  pages =        "1761--1782",
  month =        dec,
  year =         "2002",
  CODEN =        "SMJCAT",
  DOI =          "https://doi.org/10.1137/S0097539700370527",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  bibdate =      "Tue Oct 22 17:49:41 MDT 2002",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/31/6;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://epubs.siam.org/sam-bin/dbq/article/37052",
  abstract =     "We give two algorithms for finding all approximate
                 matches of a pattern in a text, where the edit distance
                 between the pattern and the matching text substring is
                 at most k. The first algorithm, which is quite simple,
                 runs in time {$ O(\frac {nk^3}{m} + n + m) $} on all
                 patterns except $k$-break periodic strings (defined
                 later). The second algorithm runs in time {$ O(\frac
                 {nk^4}{m} + n + m) $} on $k$-break periodic patterns.
                 The two classes of patterns are easily distinguished in
                 {$ O(m) $} time.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Crochemore:2002:ASM,
  author =       "M. Crochemore and C. Iliopoulos and C. Makris and W.
                 Rytter and A. Tsakalidis and K. Tsichlas",
  title =        "Approximate String Matching with Gaps",
  journal =      j-NORDIC-J-COMPUT,
  volume =       "9",
  number =       "1",
  pages =        "54--??",
  month =        "Spring",
  year =         "2002",
  CODEN =        "NJCOFR",
  ISSN =         "1236-6064",
  bibdate =      "Wed Dec 24 09:24:58 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Nordic Journal of Computing",
}

@Article{Forest:2002:WCE,
  author =       "Julien Forest",
  title =        "A Weak Calculus with Explicit Operators for Pattern
                 Matching and Substitution",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2378",
  pages =        "174--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Sep 10 19:09:59 MDT 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2378.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2378/23780174.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2378/23780174.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Fredriksson:2002:FSM,
  author =       "Kimmo Fredriksson",
  title =        "Faster String Matching with Super-Alphabets",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2476",
  pages =        "44--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat Nov 30 20:57:37 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2476.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.de/link/service/series/0558/bibs/2476/24760044.htm;
                 http://link.springer.de/link/service/series/0558/papers/2476/24760044.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Fredriksson:2002:OEF,
  author =       "Kimmo Fredriksson and Gonzalo Navarro and Esko
                 Ukkonen",
  title =        "Optimal Exact and Fast Approximate Two Dimensional
                 Pattern Matching Allowing Rotations",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2373",
  pages =        "235--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Sep 10 19:09:57 MDT 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2373.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2373/23730235.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2373/23730235.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Book{Friedl:2002:MRE,
  author =       "Jeffrey E. F. Friedl",
  title =        "Mastering Regular Expressions",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Second",
  pages =        "xxii + 460",
  year =         "2002",
  ISBN =         "0-596-00289-0",
  ISBN-13 =      "978-0-596-00289-3",
  LCCN =         "QA76.73.P22 F75 2002; QA76.9.T48 F75 2002",
  bibdate =      "Mon Apr 18 15:04:47 MDT 2005",
  bibsource =    "http://www.oreilly.com/catalog/prdindex.html;
                 https://www.math.utah.edu/pub/tex/bib/css.bib;
                 https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib;
                 z3950.loc.gov:7090/Voyager",
  price =        "US\$39.95",
  URL =          "http://www.oreilly.com/catalog/9780596002893;
                 http://www.oreilly.com/catalog/regex2",
  acknowledgement = ack-nhfb,
  keywords =     "computer programming",
  publishersummary = "Regular expressions are an extremely powerful tool
                 for manipulating text and data. They are now standard
                 features in a wide range of languages and popular
                 tools, including Perl, Java, VB.NET and C\# (and any
                 language using the {.NET} Framework), PHP, Python,
                 Ruby, Tcl, MySQL, awk, and Emacs.\par

                 If you don't use regular expressions yet, you will
                 discover in this book a whole new world of mastery over
                 your data. If you already use them, you'll appreciate
                 this book's unprecedented detail and breadth of
                 coverage.",
  subject =      "Text processing (Computer science); Programming
                 languages (Electronic computers); Electronic data
                 processing",
}

@Article{Genest:2002:PMM,
  author =       "Blaise Genest and Anca Muscholl",
  title =        "Pattern Matching and Membership for Hierarchical
                 Message Sequence Charts",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2286",
  pages =        "326--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Sep 10 19:09:12 MDT 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2286.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2286/22860326.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2286/22860326.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Giavitto:2002:PMR,
  author =       "Jean-Louis Giavitto and Olivier Michel and Julien
                 Cohen",
  title =        "Pattern-matching and rewriting rules for group indexed
                 data structures",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "12",
  pages =        "76--87",
  month =        dec,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:23:11 MDT 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Gonnet:2002:SMP,
  author =       "Gaston H. Gonnet",
  title =        "String Matching Problems from Bioinformatics Which
                 Still Need Better Solutions Extended Abstract",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2476",
  pages =        "27--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat Nov 30 20:57:37 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2476.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.de/link/service/series/0558/bibs/2476/24760027.htm;
                 http://link.springer.de/link/service/series/0558/papers/2476/24760027.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Hannay:2002:ITC,
  author =       "David G. Hannay",
  title =        "Interactive tools for computation theory",
  journal =      j-SIGCSE,
  volume =       "34",
  number =       "4",
  pages =        "68--70",
  month =        dec,
  year =         "2002",
  CODEN =        "SIGSD3",
  DOI =          "https://doi.org/10.1145/820127.820169",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:56:58 MST 2012",
  bibsource =    "DBLP;
                 http://dblp.uni-trier.de/db/journals/sigcse/sigcse34.html#Hannay02;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigcse2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "ftp://ftp.math.utah.edu/pub/mirrors/ftp.ira.uka.de/bibliography/Misc/DBLP/2002.bib",
  abstract =     "The web-based simulations encompass the six core
                 abstract models of computation: finite-state, pushdown
                 and Turing machines as well as regular expressions,
                 context-free grammars, and recursive functions. All six
                 simulations come packaged with predefined
                 machines/expressions/grammars/functions. Users can also
                 create machines, expressions, grammars, and functions
                 from scratch. Each machine simulation traces arbitrary
                 input as processed by the machine. The regular
                 expression simulator tests if an entered list of words
                 is part of the language of a regular expression, and
                 generates random words represented by an expression.
                 The context-free grammar simulator also generates words
                 in the corresponding language. Finally, one can trace
                 the evaluation of functions to a user-specified depth
                 of recursion.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Harada:2002:PMM,
  author =       "Lilian Harada",
  title =        "Pattern Matching over Multi-attribute Data Streams",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2476",
  pages =        "187--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Nov 30 20:57:37 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2476.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.de/link/service/series/0558/bibs/2476/24760187.htm;
                 http://link.springer.de/link/service/series/0558/papers/2476/24760187.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Hunt:2002:DIL,
  author =       "Ela Hunt and Malcolm P. Atkinson and Robert W.
                 Irving",
  title =        "Database indexing for large {DNA} and protein sequence
                 collections",
  journal =      j-VLDB-J,
  volume =       "11",
  number =       "3",
  pages =        "256--271",
  month =        nov,
  year =         "2002",
  CODEN =        "VLDBFR",
  DOI =          "https://doi.org/10.1007/s007780200064",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Mon Jun 23 10:51:02 MDT 2008",
  bibsource =    "http://link.springer.de/link/service/journals/00778/tocs/t2011003.htm;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  note =         "Special issue VLDB best papers 2001.",
  URL =          "http://link.springer.de/link/service/journals/00778/bibs/2011003/20110256.htm;
                 http://link.springer.de/link/service/journals/00778/papers/2011003/20110256.pdf",
  abstract =     "Our aim is to develop new database technologies for
                 the approximate matching of unstructured string data
                 using indexes. We explore the potential of the suffix
                 tree data structure in this context. We present a new
                 method of building suffix trees, allowing us to build
                 trees in excess of RAM size, which has hitherto not
                 been possible. We show that this method performs in
                 practice as well as the {$ O(n) $} method of Ukkonen
                 [70]. Using this method we build indexes for 200 Mb of
                 protein and 300 Mbp of DNA, whose disk-image exceeds
                 the available RAM. We show experimentally that suffix
                 trees can be effectively used in approximate string
                 matching with biological data. For a range of query
                 lengths and error bounds the suffix tree reduces the
                 size of the unoptimised {$ O(m n) $} dynamic
                 programming calculation required in the evaluation of
                 string similarity, and the gain from indexing increases
                 with index size. In the indexes we built this reduction
                 is significant, and less than 0.3\% of the expected
                 matrix is evaluated. We detail the requirements for
                 further database and algorithmic research to support
                 efficient use of large suffix indexes in biological
                 applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
  keywords =     "approximate matching; biological sequence; database
                 index; suffix tree",
}

@Article{Hyyro:2002:FBP,
  author =       "Heikki Hyyr{\"o} and Gonzalo Navarro",
  title =        "Faster Bit-Parallel Approximate String Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2373",
  pages =        "203--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Sep 10 19:09:57 MDT 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2373.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2373/23730203.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2373/23730203.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Ilie:2002:CNOa,
  author =       "Lucian Ilie and Sheng Yu",
  title =        "Constructing {{\em NFA}}s by Optimal Use of Positions
                 in Regular Expressions",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2373",
  pages =        "279--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Sep 10 19:09:57 MDT 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2373.htm;
                 https://www.math.utah.edu/pub/tex/bib/lncs2002c.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2373/23730279.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2373/23730279.pdf",
  acknowledgement = ack-nhfb,
}

@Article{Ilie:2002:CNOb,
  author =       "Lucian Ilie and Sheng Yu",
  title =        "Constructing {{\em NFA}}s by Optimal Use of Positions
                 in Regular Expressions",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2373",
  pages =        "279--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Sep 10 19:09:57 MDT 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2373.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2373/23730279.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2373/23730279.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{KleinOsowski:2002:MNS,
  author =       "A. J. KleinOsowski and D. J. Lilja",
  title =        "{MinneSPEC}: A New {SPEC} Benchmark Workload for
                 Simulation-Based Computer Architecture Research",
  journal =      j-IEEE-COMPUT-ARCHIT-LETT,
  volume =       "1",
  number =       "1",
  pages =        "7--7",
  month =        jan,
  year =         "2002",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1109/L-CA.2002.8",
  ISSN =         "1556-6056 (print), 1556-6064 (electronic)",
  ISSN-L =       "1556-6056",
  bibdate =      "Fri Jun 21 05:49:19 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeecomputarchitlett.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Computer architects must determine how to most
                 effectively use finite computational resources when
                 running simulations to evaluate new architectural
                 ideas. To facilitate efficient simulations with a range
                 of benchmark programs, we have developed the MinneSPEC
                 input set for the SPEC CPU 2000 benchmark suite. This
                 new workload allows computer architects to obtain
                 simulation results in a reasonable time using existing
                 simulators. While the MinneSPEC workload is derived
                 from the standard SPEC CPU 2000 work load, it is a
                 valid benchmark suite in and of itself for
                 simulation-based research. MinneSPEC also may be used
                 to run large numbers of simulations to find ``sweet
                 spots'' in the evaluation parameters pace. This small
                 number of promising design points subsequently may be
                 investigated in more detail with the full SPEC
                 reference workload. In the process of developing the
                 MinneSPEC datasets, we quantify its differences in
                 terms of function-level execution patterns, instruction
                 mixes, and memory behaviors compared to the SPEC
                 programs when executed with the reference inputs. We
                 find that for some programs, the MinneSPEC profiles
                 match the SPEC reference dataset program behavior very
                 closely. For other programs, however, the MinneSPEC
                 inputs produce significantly different program
                 behavior. The MinneSPEC workload has been recognized by
                 SPEC and is distributed with Version 1.2 and higher of
                 the SPEC CPU 2000 benchmark suite.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Computer Architecture Letters",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=10208",
  keywords =     "Computational modeling; Computer architecture;
                 Computer simulation",
}

@Article{Krodel:2002:RLD,
  author =       "M. Kr{\"o}del and K.-D. Kuhnert",
  title =        "Reinforcement Learning to Drive a Car by Pattern
                 Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2449",
  pages =        "322--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Nov 30 20:57:27 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2449.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.de/link/service/series/0558/bibs/2449/24490322.htm;
                 http://link.springer.de/link/service/series/0558/papers/2449/24490322.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Kupferman:2002:IAM,
  author =       "Orna Kupferman and Sharon Zuhovitzky",
  title =        "An Improved Algorithm for the Membership Problem for
                 Extended Regular Expressions",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2420",
  pages =        "446--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Nov 30 20:57:18 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2420.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.de/link/service/series/0558/bibs/2420/24200446.htm;
                 http://link.springer.de/link/service/series/0558/papers/2420/24200446.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Lee:2002:EPM,
  author =       "Sangjun Lee and Dongseop Kwon and Sukho Lee",
  title =        "Efficient Pattern Matching of Time Series Data",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2358",
  pages =        "586--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Sep 10 19:09:48 MDT 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2358.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2358/23580586.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2358/23580586.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Liu:2002:JIA,
  author =       "J. Liu and A. C. Myers",
  title =        "{JMatch}: Iterable Abstract Pattern Matching for
                 {Java}",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2562",
  pages =        "110--127",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Feb 11 05:32:25 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 Ingenta database",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Lutz:2002:BRB,
  author =       "Michael J. Lutz",
  title =        "Bookshelf: Risk-Based Approach to Mission-Critical
                 Software Testing; The {TLA+} Specification Language
                 Primer [{Specifying Systems: The TLA+ Language and
                 Tools for Hardware and Software Engineers}];
                 Interpolation Tutorial [{Nonuniform Sampling: Theory
                 and Practice}]; Pattern-Matching Toolkit [{Flexible
                 Pattern Matching in Strings: Practical On-Line Search
                 Algorithms for Texts and Biological Sequences}]",
  journal =      j-COMPUTER,
  volume =       "35",
  number =       "9",
  pages =        "81--81",
  month =        sep,
  year =         "2002",
  CODEN =        "CPTRB4",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Fri Dec 12 19:31:51 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computer2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://csdl.computer.org/dl/mags/co/2002/09/r9081.htm;
                 http://csdl.computer.org/dl/mags/co/2002/09/r9081.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
}

@Article{Makinen:2002:LSB,
  author =       "Veli M{\"a}kinen and Esko Ukkonen",
  title =        "Local Similarity Based Point-Pattern Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2373",
  pages =        "115--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Sep 10 19:09:57 MDT 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2373.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2373/23730115.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2373/23730115.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Michailidis:2002:PSL,
  author =       "Panagiotis D. Michailidis and Konstantinos G.
                 Margaritis",
  title =        "A Performance Study of Load Balancing Strategies for
                 Approximate String Matching on an {MPI} Heterogeneous
                 System Environment",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2474",
  pages =        "432--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Nov 30 20:57:35 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2474.htm;
                 https://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.de/link/service/series/0558/bibs/2474/24740432.htm;
                 http://link.springer.de/link/service/series/0558/papers/2474/24740432.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Morris:2002:AGJ,
  author =       "D. S. Morris",
  title =        "Automatically grading {Java} programming assignments
                 via reflection, inheritance, and regular expressions",
  journal =      j-FRONTIERS-EDU-CONF,
  volume =       "1",
  number =       "??",
  pages =        "T3G-22--??",
  year =         "2002",
  CODEN =        "PFECDR",
  ISSN =         "0190-5848",
  bibdate =      "Tue Jan 28 10:12:35 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 Ingenta database",
  acknowledgement = ack-nhfb,
  fjournal =     "Frontiers in Education Conference",
}

@Book{Navarro:2002:FPM,
  author =       "Gonzalo Navarro and Mathieu Raffinot",
  title =        "Flexible pattern matching in strings: practical
                 on-line search algorithms for texts and biological
                 sequences",
  publisher =    pub-CAMBRIDGE,
  address =      pub-CAMBRIDGE:adr,
  pages =        "x + 221",
  year =         "2002",
  ISBN =         "0-521-81307-7 (hardcover)",
  ISBN-13 =      "978-0-521-81307-5 (hardcover)",
  LCCN =         "QA76.9.A43 N38 2002",
  bibdate =      "Sat Mar 5 11:23:16 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.dcc.uchile.cl/~gnavarro/FPMbook/;
                 http://www.loc.gov/catdir/description/cam022/2001043704.html;
                 http://www.loc.gov/catdir/toc/cam023/2001043704.html",
  acknowledgement = ack-nhfb,
  author-dates = "1969--",
  subject =      "Computer algorithms; Database searching",
  tableofcontents = "1 Introduction / 1 \\
                 1.1 Why this book? Our aim and focus / 1 \\
                 1.2 Overview / 3 \\
                 1.3 Basic concepts / 8 \\
                 1.3.1 Bit-parallelism and bit operations / 8 \\
                 1.3.2 Labeled rooted tree, trie / 9 \\
                 1.3.3 Automata / 11 \\
                 1.3.4 Complexity notations / 12 \\
                 2 String matching / 15 \\
                 2.1 Basic concepts / 15 \\
                 2.2 Prefix based approach / 17 \\
                 2.2.1 Knuth--Morris--Pratt idea / 18 \\
                 2.2.2 Shift--And/Shift--Or algorithm / 19 \\
                 2.3 Suffix based approach / 22 \\
                 2.3.1 Boyer--Moore idea / 22 \\
                 2.3.2 Horspool algorithm / 25 \\
                 2.4 Factor based approach / 27 \\
                 2.4.1 Backward Dawg Matching idea / 28 \\
                 2.4.2 Backward Nondeterministic Dawg Matching algorithm
                 / 29 \\
                 2.4.3 Backward Oracle Matching algorithm / 34 \\
                 2.5 Experimental map / 38 \\
                 2.6 Other algorithms and references / 39 \\
                 3 Multiple string matching / 41 \\
                 3.1 Basic concepts / 45 \\
                 3.2 Prefix based approach / 45 \\
                 3.2.1 Multiple Shift--And algorithm / 45 \\
                 3.2.2 Basic Aho--Corasick algorithm / 49 \\
                 3.2.3 Advanced Aho--Corasick algorithm / 54 \\
                 3.3 Suffix based approach / 54 \\
                 3.3.1 Commentz--Walter idea / 55 \\
                 3.3.2 Set Horspool algorithm / 56 \\
                 3.3.3 Wu--Manber algorithm / 59 \\
                 3.4 Factor based approach / 62 \\
                 3.4.1 Multiple BNDM algorithm / 63 \\
                 3.4.2 Set Backward Dawg Matching idea / 68 \\
                 3.4.3 Set Backward Oracle Matching algorithm / 69 \\
                 3.5 Experimental maps / 74 \\
                 3.6 Other algorithms and references / 74 \\
                 4 Extended string matching / 77 \\
                 4.1 Basic concepts / 77 \\
                 4.2 Classes of characters / 78 \\
                 4.2.1 Classes in the pattern / 78 \\
                 4.2.2 Classes in the text / 80 \\
                 4.3 Bounded length gaps / 81 \\
                 4.3.l Extending Shift--And / 82 \\
                 4.3.2 Extending BNDM / 84 \\
                 4.4 Optional characters / 87 \\
                 4.5 Wild cards and repeatable characters / 89 \\
                 4.5.1 Extended Shift--And / 91 \\
                 4.5.2 Extended BNDM / 93 \\
                 4.6 Multipattern searching / 96 \\
                 4.7 Other algorithms and references / 97 \\
                 5 Regular expression matching / 99 \\
                 5.1 Basic concepts / 99 \\
                 5.2 Building an NFA / 102 \\
                 5.2.1 Thompson automaton / 102 \\
                 5.2.2 Glushkov automaton / 105 \\
                 5.3 Classical approaches to regular expression
                 searching / 111 \\
                 5.3.1 Thompson's NFA simulation / 111 \\
                 5.3.2 Using a deterministic automaton / 111 \\
                 5.3.3 A hybrid approach / 115 \\
                 5.4 Bit-parallel algorithms / 117 \\
                 5.4.1 Bit-parallel Thompson / 118 \\
                 5.4.2 Bit-parallel Glushkov / 122 \\
                 5.5 Filtration approaches / 125 \\
                 5.5.1 Multistring matching approach / 126 \\
                 5.5.2 Gnu's heuristic based on necessary factors / 130
                 \\
                 5.5.3 An approach based on BNDM / 131 \\
                 5.6 Experimental map / 137 \\
                 5.7 Other algorithms and references / 139 \\
                 5.8 Building a parse tree / 139 \\
                 6 Approximate matching / 145 \\
                 6.1 Basic concepts / 145 \\
                 6.2 Dynamic programming algorithms / 146 \\
                 6.2.1 Computing edit distance / 146 \\
                 6.2.2 Text searching / 147 \\
                 6.2.3 Improving the average case / 148 \\
                 6.2.4 Other algorithms based on dynamic programming /
                 150 \\
                 6.3 Algorithms based on automata / 150 \\
                 6.4 Bit-parallel algorithms / 152 \\
                 6.4.1 Parallelizing the NFA / 152 \\
                 6.4.2 Parallelizing the DP matrix / 158 \\
                 6.5 Algorithms for fast filtering the text / 162 \\
                 6.5.1 Partitioning into k + 1 pieces / 163 \\
                 6.5.2 Approximate BNDM / 166 \\
                 6.5.3 Other filtration algorithms / 170 \\
                 6.6 Multipattern approximate searching / 171 \\
                 6.6.1 A hashing based algorithm for one error / 171 \\
                 6.6.2 Partitioning into k + 1 pieces / 173 \\
                 6.6.3 Superimposed automata / 174 \\
                 6.7 Searching for extended strings and regular
                 expressions / 175 \\
                 6.7.1 A dynamic programming based approach / 176 \\
                 6.7.2 A Four-Russians approach / 178 \\
                 6.7.3 A bit-parallel approach / 180 \\
                 6.8 Experimental map / 181 \\
                 6.9 Other algorithms and references / 183 \\
                 7 Conclusion / 185 \\
                 7.1 Available software / 185 \\
                 7.1.1 Gnu Grep / 185 \\
                 7.1.2 Wu and Manber's Agrep / 186 \\
                 7.1.3 Navarro's Nrgrep / 187 \\
                 7.1.4 Mehldau and Myers' Anrep / 188 \\
                 7.1.5 Other resources for computational biology / 189
                 \\
                 7.2 Other books / 190 \\
                 7.2.1 Books on string matching / 190 \\
                 7.2.2 Books on computational biology / 192 \\
                 7.3 Other resources / 193 \\
                 7.3.1 Journals / 193 \\
                 7.3.2 Conferences / 193 \\
                 7.3.3 On-line resources / 194 \\
                 7.4 Related topics / 194 \\
                 7.4.1 Indexing / 195 \\
                 7.4.2 Searching compressed text / 196 \\
                 7.4.3 Repeats and repetitions / 199 \\
                 7.4.4 Pattern matching in two and more dimensions / 200
                 \\
                 7.4.5 Tree pattern matching / 202 \\
                 7.4.6 Sequence comparison / 203 \\
                 7.4.7 Meaningful string occurrences / 205 \\
                 Bibliography / 207 \\
                 Index / 219",
}

@Article{Nedjah:2002:ECD,
  author =       "Nadia Nedjah and Luiza de Macedo Mourelle",
  title =        "Efficient concise deterministic pattern-matching
                 automata for ambiguous patterns",
  journal =      j-SIGPLAN,
  volume =       "37",
  number =       "2",
  pages =        "57--67",
  month =        feb,
  year =         "2002",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 15 12:22:59 MDT 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Nedjah:2002:OAP,
  author =       "Nadia Nedjah and Luiza de Macedo Mourelle",
  title =        "Optimal Adaptive Pattern Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2358",
  pages =        "768--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Sep 10 19:09:48 MDT 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2358.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2358/23580768.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2358/23580768.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Nedjah:2002:PMC,
  author =       "Nadia Nedjah and Luiza {De Macedo Mourelle}",
  title =        "Pattern Matching Code Minimization in Rewriting-Based
                 Programming Languages",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "13",
  number =       "6",
  pages =        "873--??",
  month =        dec,
  year =         "2002",
  CODEN =        "IFCSEN",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Thu Jan 6 06:10:32 MST 2005",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Park:2002:EQP,
  author =       "Chang-Won Park and Chin-Wan Chung",
  title =        "An effective query pruning technique for multiple
                 regular path expressions",
  journal =      j-J-SYST-SOFTW,
  volume =       "64",
  number =       "3",
  pages =        "219--233",
  day =          "15",
  month =        dec,
  year =         "2002",
  CODEN =        "JSSODM",
  ISSN =         "0164-1212 (print), 1873-1228 (electronic)",
  ISSN-L =       "0164-1212",
  bibdate =      "Sat Oct 25 07:14:11 MDT 2003",
  bibsource =    "http://www.sciencedirect.com/science/journal/01641212;
                 https://www.math.utah.edu/pub/tex/bib/jsystsoftw.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "The Journal of systems and software",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01641212",
}

@Article{Petersen:2002:MPR,
  author =       "Holger Petersen",
  title =        "The Membership Problem for Regular Expressions with
                 Intersection Is Complete in {LOGCFL}",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2285",
  pages =        "513--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Sep 10 19:09:12 MDT 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2285.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2285/22850513.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2285/22850513.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Book{Quigley:2002:USE,
  author =       "Ellie Quigley",
  title =        "{UNIX} Shells by Example",
  publisher =    pub-PHPTR,
  address =      pub-PHPTR:adr,
  edition =      "Third",
  pages =        "xix + 1015",
  year =         "2002",
  ISBN =         "0-13-066538-X (paperback)",
  ISBN-13 =      "978-0-13-066538-6 (paperback)",
  LCCN =         "QA76.76.O63 Q54 2002",
  bibdate =      "Tue Sep 17 05:57:21 MDT 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/linux.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "Learn shell programming hands-on, with the new Third
                 Edition of the world's \#1 UNIX shells tutorial and
                 reference! --- Comprehensive coverage of all five
                 leading UNIX shells --- including extensive new
                 coverage of bash and tcsh! --- Teaches by examples
                 proven in Ellie Quigley's legendary Silicon Valley
                 shell programming courses! --- CD-ROM contains all
                 source code and data files used in the book --- an
                 extraordinary resource for every UNIX shell programmer.
                 \booktitle{UNIX Shells by Example}, Third Edition is
                 your complete, step-by-step guide to all five essential
                 UNIX shells --- bash, tcsh, C, Bourne, and Korn --- and
                 all three essential UNIX shell programming utilities,
                 awk, sed and grep. This new Third Edition is better
                 than ever, with hundreds of completely updated,
                 classroom-proven examples from Silicon Valley's top
                 UNIX and Linux instructor, Ellie Quigley. Starting with
                 the basics, Quigley gets you all the way to
                 expert-level techniques. Along the way, you'll learn
                 what UNIX shells are, what they do, and how they
                 integrate with other UNIX utilities and processes.
                 You'll master creating, running, and debugging shell
                 scripts; using grep, egrep and ggrep; working with sed,
                 and much more. This edition contains extensive new
                 coverage of bash and tcsh, as well as hundreds of
                 updated and classroom-tested examples for all five
                 leading shells. It contains hands-on exercises for
                 every topic, an appendix with detailed syntax listings,
                 comparison charts, and much more. For all.",
  acknowledgement = ack-nhfb,
  keywords =     "UNIX (computer file); UNIX shells",
  tableofcontents = "1: Introduction to UNIX Shells \\
                 2: The UNIX Toolbox \\
                 3: The grep Family \\
                 4: sed, the Streamlined Editor \\
                 5: The awk Utility: awk as a UNIX Tool \\
                 6: The awk Utility: awk Programming Constructs \\
                 7: The awk Utility: awk Programming \\
                 8: The Interactive Bourne Shell \\
                 9: The C Shell \\
                 10: The Korn Shell \\
                 11: The Interactive bash Shell \\
                 12: Programming with the bash Shell \\
                 13: The Interactive TC Shell \\
                 A: Useful UNIX Utilities for Shell Programmers \\
                 B: Comparison of the Shells \\
                 C: Steps for Using Quoting Correctly",
}

@InProceedings{Rautio:2002:SMSa,
  author =       "J. Rautio and J. Tanninen and J. Tarhio",
  title =        "String matching with stopper compression",
  crossref =     "Storer:2002:DPD",
  pages =        "??--??",
  year =         "2002",
  DOI =          "https://doi.org/10.1109/DCC.2002.1000012",
  bibdate =      "Tue Feb 5 14:07:05 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1000012",
  acknowledgement = ack-nhfb,
}

@Article{Rautio:2002:SMSb,
  author =       "Jussi Rautio and Jani Tanninen and Jorma Tarhio",
  title =        "String Matching with Stopper Encoding and Code
                 Splitting",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2373",
  pages =        "42--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Sep 10 19:09:57 MDT 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2373.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2373/23730042.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2373/23730042.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Robles-Kelly:2002:SED,
  author =       "Antonio Robles-Kelly and Edwin R. Hancock",
  title =        "String Edit Distance, Random Walks and Graph
                 Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2396",
  pages =        "104--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Sep 10 19:10:12 MDT 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2396.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2396/23960104.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2396/23960104.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Sarmiento:2002:SAS,
  author =       "Evan Sarmiento",
  title =        "Systems Administration with {\tt scsh}",
  journal =      j-SYS-ADMIN,
  volume =       "11",
  number =       "1",
  pages =        "16, 18--22",
  month =        jan,
  year =         "2002",
  CODEN =        "SYADE7",
  ISSN =         "1061-2688",
  bibdate =      "Fri Feb 08 11:17:41 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Sarmiento introduces a package called {\tt scsh} (the
                 Scheme shell), which provides a set of macros for the
                 Scheme programming language adding the ability to call
                 on all standard UNIX system calls and add regular
                 expressions.",
  acknowledgement = ack-nhfb,
  fjournal =     "Sys admin: the journal for UNIX system
                 administrators",
}

@Article{Sidi:2002:NCR,
  author =       "Avram Sidi",
  title =        "New convergence results on the generalized
                 {Richardson} extrapolation process {GREP$^{(1)}$} for
                 logarithmic sequences",
  journal =      j-MATH-COMPUT,
  volume =       "71",
  number =       "240",
  pages =        "1569--1596",
  month =        oct,
  year =         "2002",
  CODEN =        "MCMPAF",
  ISSN =         "0025-5718 (print), 1088-6842 (electronic)",
  ISSN-L =       "0025-5718",
  bibdate =      "Fri Nov 22 10:22:25 MST 2002",
  bibsource =    "http://www.ams.org/mcom/2002-71-240;
                 https://www.math.utah.edu/pub/tex/bib/mathcomp2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.ams.org/journal-getitem?pii=S0025-5718-01-01384-9;
                 http://www.ams.org/mcom/2002-71-240/S0025-5718-01-01384-9/S0025-5718-01-01384-9.dvi;
                 http://www.ams.org/mcom/2002-71-240/S0025-5718-01-01384-9/S0025-5718-01-01384-9.pdf;
                 http://www.ams.org/mcom/2002-71-240/S0025-5718-01-01384-9/S0025-5718-01-01384-9.ps;
                 http://www.ams.org/mcom/2002-71-240/S0025-5718-01-01384-9/S0025-5718-01-01384-9.tex",
  acknowledgement = ack-nhfb,
  fjournal =     "Mathematics of Computation",
  journal-URL =  "http://www.ams.org/mcom/",
}

@Article{Stomp:2002:CSP,
  author =       "Frank Stomp",
  title =        "Correctness of substring-preprocessing in
                 {Boyer--Moore}'s pattern matching algorithm",
  journal =      j-THEOR-COMP-SCI,
  volume =       "290",
  number =       "1",
  pages =        "59--78",
  month =        oct,
  year =         "2002",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Wed Nov 20 18:15:29 MST 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Takeda:2002:PTF,
  author =       "Masayuki Takeda and Satoru Miyamoto and Takuya Kida
                 and Ayumi Shinohara and Shuichi Fukamachi and Takeshi
                 Shinohara and Setsuo Arikawa",
  title =        "Processing Text Files as Is: Pattern Matching over
                 Compressed Texts, Multi-byte Character Texts, and
                 Semi-structured Texts",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2476",
  pages =        "170--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Nov 30 20:57:37 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2476.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.de/link/service/series/0558/bibs/2476/24760170.htm;
                 http://link.springer.de/link/service/series/0558/papers/2476/24760170.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Vialette:2002:PMP,
  author =       "St{\'e}phane Vialette",
  title =        "Pattern Matching Problems over $2$-Interval Sets",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "2373",
  pages =        "53--??",
  year =         "2002",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Sep 10 19:09:57 MDT 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t2373.htm;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/2373/23730053.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/2373/23730053.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Ager:2003:FPE,
  author =       "Mads Sig Ager and Olivier Danvy and Henning Korsholm
                 Rohde",
  title =        "Fast partial evaluation of pattern matching in
                 strings",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "10",
  pages =        "243--249",
  month =        oct,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Dec 22 16:55:47 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Baba:2003:NRA,
  author =       "K. Baba and A. Shinohara and M. Takeda and S. Inenaga
                 and S. Arikawa",
  title =        "A Note on Randomized Algorithm for String Matching
                 with Mismatches",
  journal =      j-NORDIC-J-COMPUT,
  volume =       "10",
  number =       "1",
  pages =        "2--??",
  month =        "Spring",
  year =         "2003",
  CODEN =        "NJCOFR",
  ISSN =         "1236-6064",
  bibdate =      "Wed Dec 24 09:24:58 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Selected papers of the Prague Stringology Conference
                 (PSC'02), September 23--24, 2002.",
  acknowledgement = ack-nhfb,
  fjournal =     "Nordic Journal of Computing",
}

@Article{Benedikt:2003:DRF,
  author =       "Michael Benedikt and Leonid Libkin and Thomas
                 Schwentick and Luc Segoufin",
  title =        "Definable relations and first-order query languages
                 over strings",
  journal =      j-J-ACM,
  volume =       "50",
  number =       "5",
  pages =        "694--751",
  month =        sep,
  year =         "2003",
  CODEN =        "JACOAH",
  DOI =          "https://doi.org/10.1145/876638.876642",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Mon Sep 8 17:55:23 MDT 2003",
  bibsource =    "http://portal.acm.org/; http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We study analogs of classical relational calculus in
                 the context of strings. We start by studying string
                 logics. Taking a classical model-theoretic approach, we
                 fix a set of string operations and look at the
                 resulting collection of definable relations. These form
                 an algebra---a class of $n$-ary relations for every
                 $n$, closed under projection and Boolean operations. We
                 show that by choosing the string vocabulary carefully,
                 we get string logics that have desirable properties:
                 computable evaluation and normal forms. We identify
                 five distinct models and study the differences in their
                 model-theory and complexity of evaluation. We identify
                 a subset of these models that have additional
                 attractive properties, such as finite VC dimension and
                 quantifier elimination.\par

                 Once you have a logic, the addition of free predicate
                 symbols gives you a string query language. The
                 resulting languages have attractive closure properties
                 from a database point of view: while SQL does not allow
                 the full composition of string pattern-matching
                 expressions with relational operators, these logics
                 yield compositional query languages that can capture
                 common string-matching queries while remaining
                 tractable. For each of the logics studied in the first
                 part of the article, we study properties of the
                 corresponding query languages. We give bounds on the
                 data complexity of queries, extend the normal form
                 results from logics to queries, and show that the
                 languages have corresponding algebras expressing safe
                 queries.",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
}

@Article{Buchsbaum:2003:FPM,
  author =       "Adam L. Buchsbaum and Glenn S. Fowler and Balachannder
                 Kirishnamurthy and Kiem-Phong Vo and Jia Wang",
  title =        "Fast prefix matching of bounded strings",
  journal =      j-ACM-J-EXP-ALGORITHMICS,
  volume =       "8",
  pages =        "1.3:1--1.3:??",
  month =        "????",
  year =         "2003",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/996546.996550",
  ISSN =         "1084-6654",
  ISSN-L =       "1084-6654",
  bibdate =      "Mon Oct 6 16:04:56 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jea.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Longest Prefix Matching (LPM) is the problem of
                 finding which string from a given set is the longest
                 prefix of another, given string. LPM is a core problem
                 in many applications, including IP routing, network
                 data clustering, and telephone network management.
                 These applications typically require very fast matching
                 of bounded strings, i.e., strings that are short and
                 based on small alphabets. We note a simple
                 correspondence between bounded strings and natural
                 numbers that maps prefixes to nested intervals so that
                 computing the longest prefix matching a string is
                 equivalent to finding the shortest interval containing
                 its corresponding integer value. We then present {\em
                 retries}, a fast and compact data structure for LPM on
                 general alphabets. Performance results show that
                 retries often outperform previously published data
                 structures for IP look-up. By extending LPM to general
                 alphabets, retries admit new applications that could
                 not exploit prior LPM solutions designed for IP
                 look-ups.",
  acknowledgement = ack-nhfb,
  articleno =    "1.3",
  fjournal =     "Journal of Experimental Algorithmics (JEA)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J430",
  keywords =     "IP routing; prefix matching; table look-up; tries",
}

@Article{Campeanu:2003:FSP,
  author =       "Cezar C{\^a}mpeanu and Kai Salomaa and Sheng Yu",
  title =        "A Formal Study of Practical Regular Expressions",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "14",
  number =       "6",
  pages =        "1007--??",
  month =        dec,
  year =         "2003",
  CODEN =        "IFCSEN",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Thu Jan 06 08:16:34 2005",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Chan:2003:RTE,
  author =       "Chee-Yong Chan and Minos Garofalakis and Rajeev
                 Rastogi",
  title =        "{RE}-tree: an efficient index structure for regular
                 expressions",
  journal =      j-VLDB-J,
  volume =       "12",
  number =       "2",
  pages =        "102--119",
  month =        aug,
  year =         "2003",
  CODEN =        "VLDBFR",
  DOI =          "https://doi.org/10.1007/s00778-003-0094-0",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Mon Jun 23 10:51:06 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  abstract =     "Due to their expressive power, regular expressions
                 (REs) are quickly becoming an integral part of language
                 specifications for several important application
                 scenarios. Many of these applications have to manage
                 huge databases of RE specifications and need to provide
                 an effective matching mechanism that, given an input
                 string, quickly identifies the REs in the database that
                 match it. In this paper, we propose the RE-tree, a
                 novel index structure for large databases of RE
                 specifications. Given an input query string, the
                 RE-tree speeds up the retrieval of matching REs by
                 focusing the search and comparing the input string with
                 only a small fraction of REs in the database. Even
                 though the RE-tree is similar in spirit to other
                 tree-based structures that have been proposed for
                 indexing multidimensional data, RE indexing is
                 significantly more challenging since REs typically
                 represent infinite sets of strings with no well-defined
                 notion of spatial locality. To address these new
                 challenges, our RE-tree index structure relies on novel
                 measures for comparing the relative sizes of infinite
                 regular languages. We also propose innovative solutions
                 for the various RE-tree operations including the
                 effective splitting of RE-tree nodes and computing a
                 `tight' bounding RE for a collection of REs. Finally,
                 we demonstrate how sampling-based approximation
                 algorithms can be used to significantly speed up the
                 performance of RE-tree operations. Preliminary
                 experimental results with moderately large synthetic
                 data sets indicate that the RE-tree is effective in
                 pruning the search space and easily outperforms naive
                 sequential search approaches.",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
  keywords =     "index structure; regular expressions; sampling-based
                 approximations; size measures",
}

@Article{Cole:2003:TPM,
  author =       "Richard Cole and Ramesh Hariharan",
  title =        "Tree Pattern Matching to Subset Matching in Linear
                 Time",
  journal =      j-SIAM-J-COMPUT,
  volume =       "32",
  number =       "4",
  pages =        "1056--1066",
  month =        aug,
  year =         "2003",
  CODEN =        "SMJCAT",
  DOI =          "https://doi.org/10.1137/S0097539700382704",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  bibdate =      "Wed Aug 20 06:43:37 MDT 2003",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/32/4;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://epubs.siam.org/sam-bin/dbq/article/38270",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Crochemore:2003:OSH,
  author =       "Maxime Crochemore and Costas S. Iliopoulos and Thierry
                 Lecroq and Yoan J. Pinzon and Wojciech Plandowski and
                 Wojciech Rytter",
  title =        "Occurrence and Substring Heuristics for $ \delta
                 $-Matching",
  journal =      j-FUND-INFO,
  volume =       "56",
  number =       "1--2",
  pages =        "1--21",
  month =        jan,
  year =         "2003",
  CODEN =        "FUMAAJ",
  ISSN =         "0169-2968 (print), 1875-8681 (electronic)",
  ISSN-L =       "0169-2968",
  bibdate =      "Sat Mar 5 17:00:54 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fundinfo2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Fundamenta Informaticae",
  journal-URL =  "http://content.iospress.com/journals/fundamenta-informaticae",
}

@TechReport{Davis:2003:URE,
  author =       "Mark Davis",
  title =        "{Unicode} Regular Expressions",
  type =         "Proposed Update {Unicode} Technical Standard",
  number =       "18",
  institution =  pub-UNICODE,
  address =      pub-UNICODE-SAN-JOSE:adr,
  day =          "13",
  month =        aug,
  year =         "2003",
  bibdate =      "Wed Aug 13 15:40:58 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unicode.bib",
  URL =          "http://www.unicode.org/reports/tr18/tr18-8.html",
  acknowledgement = ack-nhfb,
}

@Article{DeNicola:2003:NRE,
  author =       "Rocco {De Nicola} and Anna Labella",
  title =        "Nondeterministic regular expressions as solutions of
                 equational systems",
  journal =      j-THEOR-COMP-SCI,
  volume =       "302",
  number =       "1--3",
  pages =        "179--189",
  day =          "13",
  month =        jun,
  year =         "2003",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Wed Nov 5 08:45:40 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Fredriksson:2003:SSM,
  author =       "Kimmo Fredriksson",
  title =        "Shift-or string matching with super-alphabets",
  journal =      j-INFO-PROC-LETT,
  volume =       "87",
  number =       "4",
  pages =        "201--204",
  day =          "31",
  month =        aug,
  year =         "2003",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon Jan 26 08:44:32 MST 2004",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Gasieniec:2003:TSE,
  author =       "Leszek Gasieniec and Igor Potapov",
  title =        "Time\slash Space Efficient Compressed Pattern
                 Matching",
  journal =      j-FUND-INFO,
  volume =       "56",
  number =       "1--2",
  pages =        "137--154",
  month =        jan,
  year =         "2003",
  CODEN =        "FUMAAJ",
  ISSN =         "0169-2968 (print), 1875-8681 (electronic)",
  ISSN-L =       "0169-2968",
  bibdate =      "Sat Mar 5 17:00:54 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fundinfo2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Fundamenta Informaticae",
  journal-URL =  "http://content.iospress.com/journals/fundamenta-informaticae",
}

@Article{Gavrilov:2003:CEM,
  author =       "Martin Gavrilov and Piotr Indyk and Rajeev Motwani and
                 Suresh Venkatasubramanian",
  title =        "Combinatorial and Experimental Methods for Approximate
                 Point Pattern Matching",
  journal =      j-ALGORITHMICA,
  volume =       "38",
  number =       "1",
  pages =        "59--90",
  month =        oct,
  year =         "2003",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-003-1043-4",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68U05 (65D18 68T45)",
  MRnumber =     "MR2056488 (2005a:68207)",
  bibdate =      "Fri Jan 6 11:38:18 MST 2006",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=38&issue=1;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=38&issue=1&spage=59",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Geffert:2003:TBR,
  author =       "Viliam Geffert",
  title =        "Translation of binary regular expressions into
                 nondeterministic $ \epsilon $-free automata with {$ O(n
                 \log n)$} transitions",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "66",
  number =       "3",
  pages =        "451--472",
  month =        may,
  year =         "2003",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1016/S0022-0000(03)00036-9",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:26:50 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000003000369",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Book{Gennick:2003:ORE,
  author =       "Jonathan Gennick and Peter Linsley",
  title =        "{Oracle} regular expressions: pocket reference",
  publisher =    pub-ORA-MEDIA,
  address =      pub-ORA-MEDIA:adr,
  pages =        "iv + 60",
  year =         "2003",
  ISBN =         "0-596-00601-2",
  ISBN-13 =      "978-0-596-00601-3",
  LCCN =         "QA76.9.T48 G46 2003",
  bibdate =      "Thu Apr 21 09:25:42 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.oreilly.com/catalog/9780596006013",
  acknowledgement = ack-nhfb,
  remark =       "``Tutorial and quick reference'' --- cover. ``New in
                 Oracle database 10g'' --- cover.",
  subject =      "Oracle (Computer file); Handbooks, manuals, etc; Text
                 processing (Computer science); Handbooks, manuals, etc;
                 Electronic data processing; Handbooks, manuals, etc",
}

@Article{Hashiguchi:2003:RBE,
  author =       "Kosaburo Hashiguchi and Yoshito Wada and Shuji Jimbo",
  title =        "Regular binoid expressions and regular binoid
                 languages",
  journal =      j-THEOR-COMP-SCI,
  volume =       "304",
  number =       "1--3",
  pages =        "291--313",
  day =          "28",
  month =        jul,
  year =         "2003",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Wed Nov 5 08:45:44 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Heiberg:2003:TDF,
  author =       "Einar Heiberg and Tino Ebbers and Lars Wigstr{\"o}m
                 and Matts Karlsson",
  title =        "Three-Dimensional Flow Characterization Using Vector
                 Pattern Matching",
  journal =      j-IEEE-TRANS-VIS-COMPUT-GRAPH,
  volume =       "9",
  number =       "3",
  pages =        "313--319",
  month =        jul # "\slash " # sep,
  year =         "2003",
  CODEN =        "ITVGEA",
  ISSN =         "1077-2626 (print), 1941-0506 (electronic), 2160-9306",
  ISSN-L =       "1077-2626",
  bibdate =      "Sat Jan 3 13:59:27 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetransviscomputgraph.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://csdl.computer.org/comp/trans/tg/2003/03/v0313abs.htm;
                 http://csdl.computer.org/dl/trans/tg/2003/03/v0313.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Visualization and Computer
                 Graphics",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2945",
}

@Article{Hernandez:2003:DPD,
  author =       "Manuel Hern{\'a}ndez and David A. Rosenblueth",
  title =        "Disjunctive partial deduction of a right-to-left
                 string-matching algorithm",
  journal =      j-INFO-PROC-LETT,
  volume =       "87",
  number =       "5",
  pages =        "235--241",
  day =          "15",
  month =        sep,
  year =         "2003",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon Jan 26 08:44:32 MST 2004",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Hosoya:2003:REP,
  author =       "Haruo Hosoya and Benjamin C. Pierce",
  title =        "Regular expression pattern matching for {XML}",
  journal =      j-J-FUNCT-PROGRAM,
  volume =       "13",
  number =       "6",
  pages =        "961--1004",
  month =        nov,
  year =         "2003",
  CODEN =        "JFPRES",
  DOI =          "https://doi.org/10.1017/S0956796802004410",
  ISSN =         "0956-7968 (print), 1469-7653 (electronic)",
  ISSN-L =       "0956-7968",
  bibdate =      "Tue Jul 11 18:02:37 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jfunctprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.cambridge.org/core/product/C845B41E6B150FBD7731EE396FBCB911",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Funct. Program.",
  fjournal =     "Journal of Functional Programming",
  journal-URL =  "http://journals.cambridge.org/action/displayJournal?jid=JFP",
  onlinedate =   "29 October 2003",
}

@Article{Kida:2003:CSU,
  author =       "Takuya Kida and Tetsuya Matsumoto and Yusuke Shibata
                 and Masayuki Takeda and Ayumi Shinohara and Setsuo
                 Arikawa",
  title =        "Collage system: a unifying framework for compressed
                 pattern matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "298",
  number =       "1",
  pages =        "253--272",
  day =          "4",
  month =        apr,
  year =         "2003",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Wed Nov 5 08:45:33 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Lee:2003:HOO,
  author =       "Keunwoo Lee and Anthony LaMarca and Craig Chambers",
  title =        "{HydroJ}: object-oriented pattern matching for
                 evolvable distributed systems",
  journal =      j-SIGPLAN,
  volume =       "38",
  number =       "11",
  pages =        "205--223",
  month =        nov,
  year =         "2003",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:34 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Lemstrom:2003:APM,
  author =       "Kjell Lemstr{\"o}m and Lauri Hella",
  title =        "Approximate pattern matching and transitive closure
                 logics",
  journal =      j-THEOR-COMP-SCI,
  volume =       "299",
  number =       "1--3",
  pages =        "387--412",
  day =          "18",
  month =        apr,
  year =         "2003",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Wed Nov 5 08:45:36 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Lemstrom:2003:TIP,
  author =       "K. Lemstr{\"o}m and J. Tarhio",
  title =        "Transposition Invariant Pattern Matching for
                 Multi-Track Strings",
  journal =      j-NORDIC-J-COMPUT,
  volume =       "10",
  number =       "3",
  pages =        "185--??",
  month =        "Fall",
  year =         "2003",
  CODEN =        "NJCOFR",
  ISSN =         "1236-6064",
  bibdate =      "Wed Dec 24 09:24:58 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Nordic Journal of Computing",
}

@Article{Lifshits:2003:LBS,
  author =       "Yuri Lifshits",
  title =        "A lower bound on the size of $ \epsilon $-free {NFA}
                 corresponding to a regular expression",
  journal =      j-INFO-PROC-LETT,
  volume =       "85",
  number =       "6",
  pages =        "293--299",
  day =          "31",
  month =        mar,
  year =         "2003",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon Jan 26 08:44:31 MST 2004",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Michailidis:2003:PEL,
  author =       "Panagiotis D. Michailidis and Konstantinos G.
                 Margaritis",
  title =        "Performance evaluation of load balancing strategies
                 for approximate string matching application on an {MPI}
                 cluster of heterogeneous workstations",
  journal =      j-FUT-GEN-COMP-SYS,
  volume =       "19",
  number =       "7",
  pages =        "1075--1104",
  month =        oct,
  year =         "2003",
  CODEN =        "FGSEVI",
  ISSN =         "0167-739X (print), 1872-7115 (electronic)",
  ISSN-L =       "0167-739X",
  bibdate =      "Sat Jan 10 10:03:37 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/futgencompsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Future Generation Computer Systems",
  journal-URL =  "http://www.sciencedirect.com/science/journal/0167739X",
  remark =       "Selected papers on Theoretical and Computational
                 Aspects of Structural Dynamical Systems in Linear
                 Algebra and Control.",
}

@Article{Misra:2003:DPS,
  author =       "Jayadev Misra",
  title =        "Derivation of a parallel string matching algorithm",
  journal =      j-INFO-PROC-LETT,
  volume =       "85",
  number =       "5",
  pages =        "255--260",
  day =          "16",
  month =        mar,
  year =         "2003",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon Jan 26 08:44:31 MST 2004",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Mustafa:2003:MDS,
  author =       "Suleiman H. Mustafa",
  title =        "A morphology-driven string matching approach to
                 {Arabic} text searching",
  journal =      j-J-SYST-SOFTW,
  volume =       "67",
  number =       "2",
  pages =        "77--87",
  day =          "15",
  month =        aug,
  year =         "2003",
  CODEN =        "JSSODM",
  ISSN =         "0164-1212 (print), 1873-1228 (electronic)",
  ISSN-L =       "0164-1212",
  bibdate =      "Sat Oct 25 07:14:15 MDT 2003",
  bibsource =    "http://www.sciencedirect.com/science/journal/01641212;
                 https://www.math.utah.edu/pub/tex/bib/jsystsoftw.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "The Journal of systems and software",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01641212",
}

@Article{Navarro:2003:FSC,
  author =       "Gonzalo Navarro and Mathieu Raffinot",
  title =        "Fast and Simple Character Classes and Bounded Gaps
                 Pattern Matching, with Applications to Protein
                 Searching",
  journal =      j-J-COMPUT-BIOL,
  volume =       "10",
  number =       "6",
  pages =        "903--923",
  month =        dec,
  year =         "2003",
  CODEN =        "JCOBEM",
  DOI =          "https://doi.org/10.1089/106652703322756140",
  ISSN =         "1066-5277 (print), 1557-8666 (electronic)",
  ISSN-L =       "1066-5277",
  bibdate =      "Sat Jun 1 09:47:34 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputbiol.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.liebertpub.com/doi/abs/10.1089/106652703322756140;
                 https://www.liebertpub.com/doi/pdf/10.1089/106652703322756140",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational Biology",
  journal-URL =  "https://www.liebertpub.com/loi/cmb/",
  onlinedate =   "5 July 2004",
}

@Article{Nicodeme:2003:RSP,
  author =       "Pierre Nicod{\`e}me",
  title =        "Regexpcount, a symbolic package for counting problems
                 on regular expressions and words",
  journal =      j-FUND-INFO,
  volume =       "56",
  number =       "1--2",
  pages =        "71--88",
  month =        jan,
  year =         "2003",
  CODEN =        "FUMAAJ",
  ISSN =         "0169-2968 (print), 1875-8681 (electronic)",
  ISSN-L =       "0169-2968",
  bibdate =      "Sat Mar 5 17:00:54 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fundinfo2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Fundamenta Informaticae",
  journal-URL =  "http://content.iospress.com/journals/fundamenta-informaticae",
}

@Article{Organtini:2003:LRE,
  author =       "Giovanni Organtini",
  title =        "Learning Regular Expressions",
  journal =      j-LINUX-J,
  volume =       "109",
  pages =        "91--93",
  month =        may,
  year =         "2003",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Sat Apr 12 06:59:06 MDT 2003",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue109/index.html;
                 https://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Discover a powerful, fast technique for text searching
                 and filtering.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@InProceedings{Orpaz:2003:PMM,
  author =       "A. Orpaz and S. Weiss",
  title =        "Pattern matching by means of multi-resolution
                 compression",
  crossref =     "Storer:2003:DPD",
  pages =        "??--??",
  year =         "2003",
  DOI =          "https://doi.org/10.1109/DCC.2003.1194060",
  bibdate =      "Tue Feb 5 14:07:14 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1194060",
  acknowledgement = ack-nhfb,
}

@Article{Penna:2003:SRE,
  author =       "Giuseppe Della Penna and Benedetto Intrigila and
                 Enrico Tronci and others",
  title =        "Synchronized regular expressions",
  journal =      j-ACTA-INFO,
  volume =       "39",
  number =       "1",
  pages =        "31--70",
  month =        jan,
  year =         "2003",
  CODEN =        "AINFA2",
  DOI =          "https://doi.org/10.1007/s00236-002-0099-y",
  ISSN =         "0001-5903 (print), 1432-0525 (electronic)",
  ISSN-L =       "0001-5903",
  bibdate =      "Fri Jan 9 15:46:03 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/actainfo.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Acta Informatica",
  journal-URL =  "http://www.springerlink.com/content/0001-5903",
}

@Book{Reid:2003:BNS,
  author =       "Paul Reid",
  title =        "Biometrics and Network security",
  publisher =    pub-PHPTR,
  address =      pub-PHPTR:adr,
  pages =        "320",
  year =         "2003",
  ISBN =         "0-13-101549-4",
  ISBN-13 =      "978-0-13-101549-4",
  LCCN =         "TK7882.B56 R45 2004",
  bibdate =      "Wed Mar 13 13:43:08 MDT 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       "Prentice Hall series in computer networking and
                 distributed systems",
  acknowledgement = ack-nhfb,
  subject =      "Computer security",
  tableofcontents = "Section 2: Biometric Technologies / 4 \\
                 Section 3: Implementing Biometrics for Network Security
                 / 5 \\
                 Section 4: Future and Conclusions / 5 \\
                 Everything You Need to Know about Biometrics to
                 Understand the First Three Chapters / 5 \\
                 What is a Biometric? / 5 \\
                 Enrollment, Template, Algorithm, and Verification / 6
                 \\
                 FAR, FRR, and FTE / 6 \\
                 Chapter 2: Authentication Technologies / 9 \\
                 Something You Have / 12 \\
                 Storage Tokens / 12 \\
                 Dynamic Tokens / 12 \\
                 Token Usability / 13 \\
                 Something You Are / 13 \\
                 The Need for Strong Authentication / 14 \\
                 Network Convergence Role in Password Proliferation / 14
                 \\
                 Mitigating Public Risk through Government Regulation /
                 16 \\
                 Mitigating the Risks from an Inside Threat / 18 \\
                 The Role of Strong Authentication with Single Sign-On
                 (SSO) / 20 \\
                 Biometric Technologies: An Intelligent Solution / 21
                 \\
                 Chapter 3: Protecting Privacy with Biometrics and
                 Policy / 23 \\
                 Employer's Right to Privacy / 25 \\
                 Protection of Trade Secrets and Proprietary Information
                 / 25 \\
                 Protection of Personal Data about Employees and
                 Customers / 26 \\
                 Background Checks / 28 \\
                 External Reporting and Auditing Requirements / 28 \\
                 Access Control / 32 \\
                 Employee's Right to Privacy / 32 \\
                 Protection of Personal Data Collected by the Employer /
                 32 \\
                 Creating a Positive Biometric Policy / 35 \\
                 Part 2: Biometric Technologies / 53 \\
                 Chapter 4: Biometric Technologies / 55 \\
                 User Interaction with Biometric Technology / 55 \\
                 Passive Biometrics / 55 \\
                 Active Biometrics / 56 \\
                 What Makes a Good Biometric? / 56 \\
                 User Acceptance / 57 \\
                 Ease of Use / 63 \\
                 Technology Cost / 64 \\
                 Deployability / 66 \\
                 Invasiveness of the Technology / 68 \\
                 Maturity of the Technology / 69 \\
                 Time It Takes for a User to Become Habituated / 69 \\
                 What Makes a Good Biometric for Network Security? / 70
                 \\
                 Chapter 5: Finger Biometric Technologies / 73 \\
                 General Description of Fingerprints / 74 \\
                 Macro Fingerprint Features / 74 \\
                 Micro Fingerprint Features / 77 \\
                 How Is the Finger Imaged? / 81 \\
                 Optical Scanners / 82 \\
                 Silicon Scanners / 83 \\
                 Types of Algorithms Used for Interpretation / 85 \\
                 Minutia-Based Algorithm / 85 \\
                 Pattern-Based Algorithm / 86 \\
                 Hybrid Algorithm / 86 \\
                 Which Algorithm Is Best? / 87 \\
                 How Can this Biometric be Spoofed? / 87 \\
                 Attacking the Physical Finger / 88 \\
                 Using Artifacts / 91 \\
                 Attacking the Communication Channels / 92 \\
                 Compromising the Template / 93 \\
                 Attacking the Fallback System / 94 \\
                 Chapter 6: Face Biometric Technologies / 97 \\
                 General Description of Face Biometrics / 98 \\
                 How Is the Face Imaged? / 98 \\
                 What Types of Algorithms Are Used for Facial
                 Interpretation? / 98 \\
                 Eigenface / 99 \\
                 Local Feature Analysis / 100 \\
                 Neural Network / 100 \\
                 Automatic Face Processing / 102 \\
                 Which Algorithm Is Best? / 102 \\
                 How Can This Biometric Be Spoofed? / 105 \\
                 Attacking the Physical Face / 106 \\
                 Using Artifacts / 108 \\
                 Chapter 7: Voice Biometric Technologies / 109 \\
                 General Description of Voice Biometrics / 110 \\
                 How Is the Voice Captured? / 110 \\
                 Types of Algorithms Used for Voice Interpretation / 111
                 \\
                 Which Algorithm Is Best? / 113 \\
                 Recommended Voice Algorithm / 113 \\
                 How Can This Biometric Be Spoofed? / 114 \\
                 Attacking the Physical Voice / 114 \\
                 Chapter 8: Iris Biometric Technology / 117 \\
                 General Description of Iris Biometrics / 118 \\
                 How Is the Iris Captured? / 118 \\
                 Description of the Iris Algorithm / 118 \\
                 How Can This Biometric Be Spoofed? / 119 \\
                 Attacking the Physical Iris / 120 \\
                 Using Artifacts / 120 \\
                 Part 3: Implementing Biometrics for Network Security /
                 123 \\
                 Chapter 9: Recommended Biometric for Network Security /
                 125 \\
                 Finger Biometrics / 126 \\
                 Face Biometrics / 128 \\
                 Voice Biometrics / 132 \\
                 Iris Biometrics / 135 \\
                 The Choice of a Biometric for Network Access / 137 \\
                 Chapter 10: An Introduction to Statistical Measures of
                 Biometrics / 141 \\
                 FAR / 141 \\
                 FRR / 144 \\
                 FTE / 146 \\
                 EER / 149 \\
                 The Simple Math / 150 \\
                 Why Is This Important? / 151 \\
                 What Measure Is Most Important? / 152 \\
                 Define the User Population / 152 \\
                 Is the Application for Verification or Identification?
                 / 152 \\
                 Are Other Means of Authentication Available? / 153 \\
                 What Is the Importance of the Biometric Authentication?
                 / 153 \\
                 Is It Driven by Convenience and Ease of Use? / 153 \\
                 Chapter 11: The Biometric Transaction / 155 \\
                 Securing and Trusting a Biometric Transaction / 155 \\
                 User / 156 \\
                 Biometric Reader / 157 \\
                 Matching Location / 166 \\
                 Local Host / 167 \\
                 Authentication Server / 168 \\
                 Match on Card (MOC) / 169 \\
                 Chapter 12: Preparing for the Proof of Concept and
                 Selecting a Vendor / 173 \\
                 Define the Driver of the Project as Either Corporate IT
                 or a Business Need / 174 \\
                 Define the Business Need or Objectives / 176 \\
                 Designate the Internal Sponsor of the Project / 178 \\
                 Define the Stakeholders / 180 \\
                 Define a Clear Set of Goals and Success Criteria for
                 the Project / 182 \\
                 Form and Charter the POC Group / 184 \\
                 Based on the Goals and Success Criteria, Invite a Few
                 Vendors to Pilot / 186 \\
                 Set the Timelines for the POC and Ensure That the
                 Implementation Activities Are Done Within the Scope of
                 the POC / 188 \\
                 Deploy the POC / 189 \\
                 Monitor and Evaluate the POC / 191 \\
                 Wrap Up the POC / 192 \\
                 Decide on the Validity of Each Vendor's Solution / 194
                 \\
                 Make a Go/No Go Decision to Move Ahead / 195 \\
                 Announce the Results and Lay the Groundwork for the
                 Next Phase / 196 \\
                 Chapter 13: Preparing for the Pilot Deployment / 199
                 \\
                 Define the Group of Stakeholders / 200 \\
                 Put in Place a Project Management Team That Can See the
                 Solution Through to Rollout / 200 \\
                 Form and Charter the Pilot Group / 201 \\
                 Develop Policy Documents / 203 \\
                 Summarize Daily Reports Weekly and Send Them Out / 205
                 \\
                 Address and Track Problems and Solutions As They Happen
                 / 206 \\
                 Put a Training Plan in Place / 207 \\
                 Prepare Audit and Analysis Reports / 209 \\
                 Build and Test an Automated Install / 210 \\
                 Roll Out the Software and Hardware in a Practical
                 Manner / 211 \\
                 Provide Mechanisms for Feedback / 212 \\
                 After Initial Pilot Rollout, Get the Executives
                 Involved / 214 \\
                 Start Addressing Issues of Scalability and
                 Manageability for Rollout / 215 \\
                 Near the End of the Pilot, Start Discussing the Next
                 Steps / 217 \\
                 Wrap Up the Pilot / 217 \\
                 Make a Go/No Go Decision / 218 \\
                 Build a Transition Book / 219 \\
                 Chapter 14: Preparing for the Rollout / 223 \\
                 Part 4: Future and Conclusions / 227 \\
                 Chapter 15: The Future of Biometric Authentication /
                 229 \\
                 Will Biometrics Be Integrated Everywhere? / 229 \\
                 What Other Biometric Measures Will Exist? / 230 \\
                 A Futuristic Example: New Form of ``Caller ID'' 231",
}

@Book{Sklar:2003:PC,
  author =       "David Sklar and Adam Trachtenberg",
  title =        "{PHP} Cookbook",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xxi + 608",
  year =         "2003",
  ISBN =         "1-56592-681-1",
  ISBN-13 =      "978-1-56592-681-3",
  LCCN =         "QA76.73.P224 S56 2003",
  bibdate =      "Mon Apr 18 14:58:00 MDT 2005",
  bibsource =    "http://www.oreilly.com/catalog/prdindex.html;
                 https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.loc.gov:7090/Voyager",
  price =        "US\$39.95",
  URL =          "http://www.oreilly.com/catalog/9781565926813;
                 http://www.oreilly.com/catalog/phpckbk",
  acknowledgement = ack-nhfb,
  publishersummary = "The PHP Cookbook is a collection of problems,
                 solutions, and practical examples for PHP programmers.
                 The book contains a unique and extensive collection of
                 best practices for everyday PHP programming dilemmas.
                 It contains over 250 recipes, ranging from simple tasks
                 to entire programs that demonstrate complex tasks, such
                 as printing HTML tables and generating bar charts -- a
                 treasure trove of useful code for PHP programmers, from
                 novices to advanced practitioners.",
  subject =      "PHP (Computer program language); Internet programming;
                 Web sites; Design",
  tableofcontents = "1. Strings / 1 \\
                 1.1. Accessing Substrings / 3 \\
                 1.2. Replacing Substrings / 5 \\
                 1.3. Processing a String One Character at a Time / 6
                 \\
                 1.4. Reversing a String by Word or Character / 7 \\
                 1.5. Expanding and Compressing Tabs / 8 \\
                 1.6. Controlling Case / 10 \\
                 1.7. Interpolating Functions and Expressions Within
                 Strings / 12 \\
                 1.8. Trimming Blanks from a String / 13 \\
                 1.9. Parsing Comma-Separated Data / 14 \\
                 1.10. Parsing Fixed-Width Delimited Data / 15 \\
                 1.11. Taking Strings Apart / 17 \\
                 1.12. Wrapping Text at a Certain Line Length / 20 \\
                 1.13. Storing Binary Data in Strings / 21 \\
                 2. Numbers / 24 \\
                 2.1. Checking Whether a String Contains a Valid Number
                 / 25 \\
                 2.2. Comparing Floating-Point Numbers / 26 \\
                 2.3. Rounding Floating-Point Numbers / 27 \\
                 2.4. Operating on a Series of Integers / 28 \\
                 2.5. Generating Random Numbers Within a Range / 29 \\
                 2.6. Generating Biased Random Numbers / 31 \\
                 2.7. Taking Logarithms / 32 \\
                 2.8. Calculating Exponents / 32 \\
                 2.9. Formatting Numbers / 33 \\
                 2.10. Printing Correct Plurals / 34 \\
                 2.11. Calculating Trigonometric Functions / 36 \\
                 2.12. Doing Trigonometry in Degrees, not Radians / 37
                 \\
                 2.13. Handling Very Large or Very Small Numbers / 37
                 \\
                 2.14. Converting Between Bases / 39 \\
                 2.15. Calculating Using Numbers in Bases Other Than
                 Decimal / 40 \\
                 3. Dates and Times / 42 \\
                 3.1. Finding the Current Date and Time / 43 \\
                 3.2. Converting Time and Date Parts to an Epoch
                 Timestamp / 46 \\
                 3.3. Converting an Epoch Timestamp to Time and Date
                 Parts / 47 \\
                 3.4. Printing a Date or Time in a Specified Format / 48
                 \\
                 3.5. Finding the Difference of Two Dates / 52 \\
                 3.6. Finding the Difference of Two Dates with Julian
                 Days / 54 \\
                 3.7. Finding the Day in a Week, Month, Year, or the
                 Week Number in a Year / 55 \\
                 3.8. Validating a Date / 57 \\
                 3.9. Parsing Dates and Times from Strings / 59 \\
                 3.10. Adding to or Subtracting from a Date / 61 \\
                 3.11. Calculating Time with Time Zones / 62 \\
                 3.12. Accounting for Daylight Saving Time / 67 \\
                 3.13. Generating a High-Precision Time / 68 \\
                 3.14. Generating Time Ranges / 69 \\
                 3.15. Using Non-Gregorian Calendars / 70 \\
                 3.16. Program: Calendar / 71 \\
                 4. Arrays / 75 \\
                 4.1. Specifying an Array Not Beginning at Element 0 /
                 78 \\
                 4.2. Storing Multiple Elements per Key in an Array / 79
                 \\
                 4.3. Initializing an Array to a Range of Integers / 80
                 \\
                 4.4. Iterating Through an Array / 81 \\
                 4.5. Deleting Elements from an Array / 83 \\
                 4.6. Changing Array Size / 85 \\
                 4.7. Appending One Array to Another / 87 \\
                 4.8. Turning an Array into a String / 89 \\
                 4.9. Printing an Array with Commas / 91 \\
                 4.10. Checking if a Key Is in an Array / 92 \\
                 4.11. Checking if an Element Is in an Array / 92 \\
                 4.12. Finding the Position of an Element in an Array /
                 94 \\
                 4.13. Finding Elements That Pass a Certain Test / 95
                 \\
                 4.14. Finding the Largest or Smallest Valued Element in
                 an Array / 96 \\
                 4.15. Reversing an Array / 97 \\
                 4.16. Sorting an Array / 98 \\
                 4.17. Sorting an Array by a Computable Field / 99 \\
                 4.18. Sorting Multiple Arrays / 101 \\
                 4.19. Sorting an Array Using a Method Instead of a
                 Function / 103 \\
                 4.20. Randomizing an Array / 104 \\
                 4.21. Shuffling a Deck of Cards / 105 \\
                 4.22. Removing Duplicate Elements from an Array / 106
                 \\
                 4.23. Finding the Union, Intersection, or Difference of
                 Two Arrays / 107 \\
                 4.24. Finding All Element Combinations of an Array /
                 109 \\
                 4.25. Finding All Permutations of an Array / 111 \\
                 4.26. Program: Printing an Array in a Horizontally
                 Columned HTML Table / 114 \\
                 5. Variables / 117 \\
                 5.1. Avoiding == Versus = Confusion / 118 \\
                 5.2. Establishing a Default Value / 119 \\
                 5.3. Exchanging Values Without Using Temporary
                 Variables / 120 \\
                 5.4. Creating a Dynamic Variable Name / 120 \\
                 5.5. Using Static Variables / 122 \\
                 5.6. Sharing Variables Between Processes / 123 \\
                 5.7. Encapsulating Complex Data Types as a String / 125
                 \\
                 5.8. Dumping Variable Contents as Strings / 127 \\
                 6. Functions / 131 \\
                 6.1. Accessing Function Parameters / 132 \\
                 6.2. Setting Default Values for Function Parameters /
                 133 \\
                 6.3. Passing Values by Reference / 135 \\
                 6.4. Using Named Parameters / 136 \\
                 6.5. Creating Functions That Take a Variable Number of
                 Arguments / 137 \\
                 6.6. Returning Values by Reference / 140 \\
                 6.7. Returning More Than One Value / 140 \\
                 6.8. Skipping Selected Return Values / 142 \\
                 6.9. Returning Failure / 143 \\
                 6.10. Calling Variable Functions / 144 \\
                 6.11. Accessing a Global Variable Inside a Function /
                 145 \\
                 6.12. Creating Dynamic Functions / 147 \\
                 7. Classes and Objects / 148 \\
                 7.1. Instantiating Objects / 152 \\
                 7.2. Defining Object Constructors / 153 \\
                 7.3. Destroying an Object / 154 \\
                 7.4. Cloning Objects / 154 \\
                 7.5. Assigning Object References / 155 \\
                 7.6. Calling Methods on an Object Returned by Another
                 Method / 156 \\
                 7.7. Accessing Overridden Methods / 157 \\
                 7.8. Using Property Overloading / 159 \\
                 7.9. Using Method Polymorphism / 160 \\
                 7.10. Finding the Methods and Properties of an Object /
                 163 \\
                 7.11. Adding Properties to a Base Object / 164 \\
                 7.12. Creating a Class Dynamically / 165 \\
                 7.13. Instantiating an Object Dynamically / 166 \\
                 8. Web Basics / 168 \\
                 8.1. Setting Cookies / 169 \\
                 8.2. Reading Cookie Values / 171 \\
                 8.3. Deleting Cookies / 171 \\
                 8.4. Redirecting to a Different Location / 172 \\
                 8.5. Using Session Tracking / 173 \\
                 8.6. Storing Sessions in a Database / 175 \\
                 8.7. Detecting Different Browsers / 179 \\
                 8.8. Building a GET Query String / 180 \\
                 8.9. Using HTTP Basic Authentication / 182 \\
                 8.10. Using Cookie Authentication / 184 \\
                 8.11. Flushing Output to the Browser / 187 \\
                 8.12. Buffering Output to the Browser / 187 \\
                 8.13. Compressing Web Output with gzip / 189 \\
                 8.14. Hiding Error Messages from Users / 190 \\
                 8.15. Tuning Error Handling / 191 \\
                 8.16. Using a Custom Error Handler / 193 \\
                 8.17. Logging Errors / 194 \\
                 8.18. Eliminating ``headers already sent'' Errors / 195
                 \\
                 8.19. Logging Debugging Information / 197 \\
                 8.20. Reading Environment Variables / 199 \\
                 8.21. Setting Environment Variables / 200 \\
                 8.22. Reading Configuration Variables / 201 \\
                 8.23. Setting Configuration Variables / 202 \\
                 8.24. Communicating Within Apache / 203 \\
                 8.25. Profiling Code / 204 \\
                 8.26. Program: Website Account (De)activator / 208 \\
                 8.27. Program: Abusive User Checker / 210 \\
                 9. Forms / 216 \\
                 9.1. Processing Form Input / 218 \\
                 9.2. Validating Form Input / 219 \\
                 9.3. Working with Multipage Forms / 221 \\
                 9.4. Redisplaying Forms with Preserved Information and
                 Error Messages / 224 \\
                 9.5. Guarding Against Multiple Submission of the Same
                 Form / 227 \\
                 9.6. Processing Uploaded Files / 229 \\
                 9.7. Securing PHP's Form Processing / 231 \\
                 9.8. Escaping Control Characters from User Data / 233
                 \\
                 9.9. Handling Remote Variables with Periods in Their
                 Names / 234 \\
                 9.10. Using Form Elements with Multiple Options / 235
                 \\
                 9.11. Creating Dropdown Menus Based on the Current Date
                 / 236 \\
                 10. Database Access / 238 \\
                 10.1. Using Text-File Databases / 243 \\
                 10.2. Using DBM Databases / 244 \\
                 10.3. Connecting to a SQL Database / 248 \\
                 10.4. Querying a SQL Database / 250 \\
                 10.5. Retrieving Rows Without a Loop / 252 \\
                 10.6. Modifying Data in a SQL Database / 254 \\
                 10.7. Repeating Queries Efficiently / 255 \\
                 10.8. Finding the Number of Rows Returned by a Query /
                 257 \\
                 10.9. Escaping Quotes / 258 \\
                 10.10. Logging Debugging Information and Errors / 259
                 \\
                 10.11. Assigning Unique ID Values Automatically / 262
                 \\
                 10.12. Building Queries Programmatically / 263 \\
                 10.13. Making Paginated Links for a Series of Records /
                 267 \\
                 10.14. Caching Queries and Results / 272 \\
                 10.15. Program: Storing a Threaded Message Board / 274
                 \\
                 11. Web Automation / 281 \\
                 11.1. Fetching a URL with the GET Method / 283 \\
                 11.2. Fetching a URL with the POST Method / 285 \\
                 11.3. Fetching a URL with Cookies / 287 \\
                 11.4. Fetching a URL with Headers / 289 \\
                 11.5. Fetching an HTTPS URL / 290 \\
                 11.6. Debugging the Raw HTTP Exchange / 290 \\
                 11.7. Marking Up a Web Page / 293 \\
                 11.8. Extracting Links from an HTML File / 295 \\
                 11.9. Converting ASCII to HTML / 296 \\
                 11.10. Converting HTML to ASCII / 297 \\
                 11.11. Removing HTML and PHP Tags / 298 \\
                 11.12. Using Smarty Templates / 299 \\
                 11.13. Parsing a Web Server Log File / 301 \\
                 11.14. Program: Finding Stale Links / 303 \\
                 11.15. Program: Finding Fresh Links / 305 \\
                 12. XML / 309 \\
                 12.1. Generating XML Manually / 311 \\
                 12.2. Generating XML with the DOM / 313 \\
                 12.3. Parsing XML with the DOM / 316 \\
                 12.4. Parsing XML with SAX / 319 \\
                 12.5. Transforming XML with XSLT / 323 \\
                 12.6. Sending XML-RPC Requests / 326 \\
                 12.7. Receiving XML-RPC Requests / 329 \\
                 12.8. Sending SOAP Requests / 333 \\
                 12.9. Receiving SOAP Requests / 336 \\
                 12.10. Exchanging Data with WDDX / 338 \\
                 12.11. Reading RSS Feeds / 340 \\
                 13. Regular Expressions / 343 \\
                 13.1. Switching From ereg to preg / 346 \\
                 13.2. Matching Words / 348 \\
                 13.3. Finding the nth Occurrence of a Match / 349 \\
                 13.4. Choosing Greedy or Nongreedy Matches / 350 \\
                 13.5. Matching a Valid Email Address / 352 \\
                 13.6. Finding All Lines in a File That Match a Pattern
                 / 355 \\
                 13.7. Capturing Text Inside HTML Tags / 355 \\
                 13.8. Escaping Special Characters in a Regular
                 Expression / 357 \\
                 13.9. Reading Records with a Pattern Separator / 359
                 \\
                 14. Encryption and Security / 361 \\
                 14.1. Keeping Passwords Out of Your Site Files / 362
                 \\
                 14.2. Obscuring Data with Encoding / 363 \\
                 14.3. Verifying Data with Hashes / 364 \\
                 14.4. Storing Passwords / 366 \\
                 14.5. Checking Password Strength / 367 \\
                 14.6. Dealing with Lost Passwords / 369 \\
                 14.7. Encrypting and Decrypting Data / 371 \\
                 14.8. Storing Encrypted Data in a File or Database /
                 375 \\
                 14.9. Sharing Encrypted Data with Another Web Site /
                 378 \\
                 14.10. Detecting SSL / 380 \\
                 14.11. Encrypting Email with GPG / 381 \\
                 15. Graphics / 383 \\
                 15.1. Drawing Lines, Rectangles, and Polygons 386",
  xxauthor =     "Adam Trachtenberg and David Sklar",
}

@Book{Stubblebine:2003:REP,
  author =       "Tony Stubblebine",
  title =        "Regular expression pocket reference",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "vi + 93",
  year =         "2003",
  ISBN =         "0-596-00415-X",
  ISBN-13 =      "978-0-596-00415-6",
  LCCN =         "QA76.9.T48 S78 2003",
  bibdate =      "Mon Apr 18 15:06:11 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.oreilly.com/catalog/9780596004156",
  acknowledgement = ack-nhfb,
  remark =       "Regular expressions for Perl, C, PHP, Python, Java,
                 and .NET.",
  subject =      "Text processing (Computer science); Programming
                 languages (Electronic computers); Syntax",
}

@Article{Watson:2003:BMS,
  author =       "Bruce W. Watson and Richard E. Watson",
  title =        "A {Boyer--Moore}-style algorithm for regular
                 expression pattern matching",
  journal =      j-SCI-COMPUT-PROGRAM,
  volume =       "48",
  number =       "2--3",
  pages =        "99--117",
  month =        aug # "\slash " # sep,
  year =         "2003",
  CODEN =        "SCPGD4",
  ISSN =         "0167-6423 (print), 1872-7964 (electronic)",
  ISSN-L =       "0167-6423",
  bibdate =      "Sun Jan 11 10:42:04 MST 2004",
  bibsource =    "http://www.elsevier.com/locate/issn/01676423;
                 http://www.sciencedirect.com/science/journal/01676423;
                 https://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Science of Computer Programming",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01676423",
}

@Article{Watson:2003:NRG,
  author =       "Bruce W. Watson",
  title =        "A new regular grammar pattern matching algorithm",
  journal =      j-THEOR-COMP-SCI,
  volume =       "299",
  number =       "1--3",
  pages =        "509--521",
  day =          "18",
  month =        apr,
  year =         "2003",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Wed Nov 5 08:45:36 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Xi:2003:DTP,
  author =       "H. Xi",
  title =        "Dependently Typed Pattern Matching",
  journal =      j-J-UCS,
  volume =       "9",
  number =       "8",
  pages =        "851--872",
  day =          "28",
  month =        aug,
  year =         "2003",
  CODEN =        "????",
  ISSN =         "0948-695X (print), 0948-6968 (electronic)",
  ISSN-L =       "0948-6968",
  bibdate =      "Tue Dec 16 10:06:15 MST 2003",
  bibsource =    "http://www.jucs.org/jucs;
                 https://www.math.utah.edu/pub/tex/bib/jucs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.jucs.org/jucs_9_8/dependently_typed_pattern_matching",
  acknowledgement = ack-nhfb,
  fjournal =     "J.UCS: Journal of Universal Computer Science",
  journal-URL =  "http://www.jucs.org/jucs",
}

@Article{Yeh:2003:CMS,
  author =       "Yi-Shiung Yeh and Ta-Shan Tsui",
  title =        "A concurrent multi-string matching from multi-text
                 algorithm based on the algorithm of {Hamiltonian} path
                 problem and {DNA} computation",
  journal =      j-J-DISCR-MATH-SCI-CRYPTO,
  volume =       "7",
  number =       "1",
  pages =        "71--96",
  year =         "2003",
  CODEN =        "????",
  ISSN =         "0972-0529",
  ISSN-L =       "0972-0529",
  MRclass =      "68W05 (68Q05 68R10)",
  MRnumber =     "2063306",
  bibdate =      "Thu Feb 16 15:41:55 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jdiscrmathscicrypto.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Discr. Math. Sci. Crypto.",
  fjournal =     "Journal of Discrete Mathematical Sciences and
                 Cryptography",
}

@InProceedings{Zhang:2003:APM,
  author =       "Nan Zhang and A. Mukherjee and D. Adjeroh and T.
                 Bell",
  title =        "Approximate pattern matching using the
                 {Burrows--Wheeler} transform",
  crossref =     "Storer:2003:DPD",
  pages =        "??--??",
  year =         "2003",
  DOI =          "https://doi.org/10.1109/DCC.2003.1194077",
  bibdate =      "Tue Feb 5 14:07:14 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1194077",
  acknowledgement = ack-nhfb,
}

@Article{Amir:2004:FAS,
  author =       "Amihood Amir and Moshe Lewenstein and Ely Porat",
  title =        "Faster algorithms for string matching with $k$
                 mismatches",
  journal =      j-J-ALG,
  volume =       "50",
  number =       "2",
  pages =        "257--275",
  month =        feb,
  year =         "2004",
  CODEN =        "JOALDV",
  DOI =          "https://doi.org/10.1016/S0196-6774(03)00097-X",
  ISSN =         "0196-6774 (print), 1090-2678 (electronic)",
  ISSN-L =       "0196-6774",
  bibdate =      "Tue Dec 11 09:20:36 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jalg.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S019667740300097X",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Algorithms",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01966774",
}

@Article{Amir:2004:TDP,
  author =       "Amihood Amir and Ayelet Butman and Maxime Crochemore
                 and Gad M. Landau and Mary Schaps",
  title =        "Two-dimensional pattern matching with rotations",
  journal =      j-THEOR-COMP-SCI,
  volume =       "314",
  number =       "1--2",
  pages =        "173--187",
  day =          "25",
  month =        feb,
  year =         "2004",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Feb 9 08:35:35 MST 2004",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Book{Archer:2004:EMA,
  author =       "Tom Archer and Nishant Sivakumar",
  title =        "Extending {MFC} applications with the {.NET}
                 framework",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "xxvii + 626",
  year =         "2004",
  ISBN =         "0-321-17352-X (paperback)",
  ISBN-13 =      "978-0-321-17352-2 (paperback)",
  LCCN =         "QA76.76.A65 A69 2004",
  bibdate =      "Wed Mar 13 13:43:00 MDT 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://catdir.loc.gov/catdir/toc/ecip049/2003020714.html",
  acknowledgement = ack-nhfb,
  subject =      "Microsoft foundation class library; Application
                 software; Development; Microsoft .NET Framework",
  tableofcontents = "Combining MFC and Managed Extensions \\
                 Writing a Managed Extensions Application \\
                 Writing an MFC Application That Accesses .NET \\
                 Mixed-Mode Programming Issues \\
                 Avoiding Inadvertent \#define Side Effects \\
                 Allocating Reference Objects in MFC Debug Builds \\
                 Using String Literals and Converting Strings \\
                 Working with .NET Types \\
                 Defining and Using Managed Types \\
                 Boxing and Unboxing \\
                 Managed and Unmanaged Pointers \\
                 Managed Arrays \\
                 Destructors \\
                 Regular Expressions \\
                 Using the Regex Class to Split Strings \\
                 Splitting a String \\
                 Searching Strings with the Match and MatchCollection
                 Classes \\
                 Processing Groups and Captures \\
                 Named Captures \\
                 Noncapturing Groups \\
                 Working with Captures \\
                 Parsing and Replacing Strings \\
                 Replacing Matches Using Groups and Substitution
                 Patterns \\
                 Putting It All Together: Writing an E-mail Parser \\
                 Retrieving E-mails from Text \\
                 Doing Domain Counts \\
                 Demo Application to Parse for E-mail Information \\
                 A More Advanced E-mail Regular Expression \\
                 File I/O and Registry \\
                 Stream, Readers, and Writers in .NET \\
                 Using the FileStream Class \\
                 Using the MemoryStream and BufferedStream Classes \\
                 Text File Processing with StreamReader and StreamWriter
                 \\
                 String Processing with the StringWriter and
                 StringReader \\
                 Using the BinaryWriter and BinaryReader Classes \\
                 File System Classes \\
                 Acquiring File Information \\
                 Enumerating Files and Directories \\
                 Searching for Files \\
                 Sampling Some Typical File Operations \\
                 Monitoring Directories and Files for Changes \\
                 Parsing Paths",
}

@Article{Broberg:2004:REP,
  author =       "Niklas Broberg and Andreas Farre and Josef
                 Svenningsson",
  title =        "Regular expression patterns",
  journal =      j-SIGPLAN,
  volume =       "39",
  number =       "9",
  pages =        "67--78",
  month =        sep,
  year =         "2004",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Dec 2 05:49:56 MST 2004",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Butman:2004:SPS,
  author =       "Ayelet Butman and Revital Eres and Gad M. Landau",
  title =        "Scaled and permuted string matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "92",
  number =       "6",
  pages =        "293--297",
  day =          "31",
  month =        dec,
  year =         "2004",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 18:40:57 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Cerrito:2004:PMC,
  author =       "Serenella Cerrito and Delia Kesner",
  title =        "Pattern matching as cut elimination",
  journal =      j-THEOR-COMP-SCI,
  volume =       "323",
  number =       "1--3",
  pages =        "71--127",
  month =        sep,
  year =         "2004",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Thu Nov 4 10:19:18 MST 2004",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Champarnaud:2004:RWE,
  author =       "Jean-Marc Champarnaud and {\'E}ric Laugerotte and
                 Faissal Ouardi and Djelloul Ziadi",
  title =        "From Regular Weighted Expressions To Finite Automata",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "15",
  number =       "5",
  pages =        "687--??",
  month =        oct,
  year =         "2004",
  CODEN =        "IFCSEN",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Thu Jan 06 08:22:08 2005",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Choffrut:2004:SMO,
  author =       "Ch. Choffrut and Y. Haddad",
  title =        "String-matching with {OBDDs}",
  journal =      j-THEOR-COMP-SCI,
  volume =       "320",
  number =       "2--3",
  pages =        "187--198",
  day =          "14",
  month =        jun,
  year =         "2004",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Thu Nov 4 10:19:17 MST 2004",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@InProceedings{Daptardar:2004:AKM,
  author =       "A. Daptardar and D. Shapira",
  title =        "Adapting the {Knuth--Morris--Pratt} algorithm for
                 pattern matching in {Huffman} encoded texts",
  crossref =     "Storer:2004:DCC",
  pages =        "??--??",
  year =         "2004",
  DOI =          "https://doi.org/10.1109/DCC.2004.1281511",
  bibdate =      "Tue Feb 5 14:07:23 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1281511",
  acknowledgement = ack-nhfb,
}

@TechReport{Davis:2004:URE,
  author =       "Mark Davis",
  title =        "{Unicode} Regular Expressions",
  type =         "{Unicode} Technical Standard",
  number =       "18",
  institution =  pub-UNICODE,
  address =      pub-UNICODE-SAN-JOSE:adr,
  edition =      "9",
  day =          "9",
  month =        jan,
  year =         "2004",
  bibdate =      "Tue Apr 18 12:23:24 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unicode.bib",
  URL =          "http://www.unicode.org/unicode/reports/tr18/",
  acknowledgement = ack-nhfb,
}

@Article{deKretser:2004:SSE,
  author =       "Owen de Kretser and Alistair Moffat",
  title =        "{SEFT}: a search engine for text",
  journal =      j-SPE,
  volume =       "34",
  number =       "10",
  pages =        "1011--1023",
  month =        aug,
  year =         "2004",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.601",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat Apr 16 07:26:31 MDT 2005",
  bibsource =    "http://www.interscience.wiley.com/jpages/0038-0644;
                 http://www3.interscience.wiley.com/journalfinder.html;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We present a software tool called seft which balances
                 the convenience of search tools such as grep with the
                 functionality of full-text index-based information
                 retrieval. Based on a novel retrieval heuristic which
                 uses term locality as a guide to relevance, seft
                 combines the freedom of natural language queries with
                 the benefits of a ranked answer list and easy
                 inspection of retrieval results. While not as fast as
                 grep-style tools, seft provides a valuable facility for
                 impromptu personal information retrieval tasks.",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "information retrieval; string searching; text
                 retrieval",
  onlinedate =   "21 May 2004",
}

@Article{Efrat:2004:PMS,
  author =       "Alon Efrat and Piotr Indyk and Suresh
                 Venkatasubramanian",
  title =        "Pattern Matching for Sets of Segments",
  journal =      j-ALGORITHMICA,
  volume =       "40",
  number =       "3",
  pages =        "147--160",
  month =        aug,
  year =         "2004",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-004-1089-y",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "52B55 (65D18 68T40 68U05)",
  MRnumber =     "MR2080514 (2005d:52027)",
  bibdate =      "Fri Jan 6 11:42:46 MST 2006",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=40&issue=3;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=40&issue=3&spage=147",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Fredriksson:2004:AOS,
  author =       "Kimmo Fredriksson and Gonzalo Navarro",
  title =        "Average-optimal single and multiple approximate string
                 matching",
  journal =      j-ACM-J-EXP-ALGORITHMICS,
  volume =       "9",
  pages =        "1.4:1--1.4:??",
  month =        "????",
  year =         "2004",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1005813.1041513",
  ISSN =         "1084-6654",
  ISSN-L =       "1084-6654",
  bibdate =      "Mon Oct 6 16:05:22 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jea.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We present a new algorithm for multiple approximate
                 string matching. It is based on reading backwards
                 enough l-grams from text windows so as to prove that no
                 occurrence can contain the part of the window read, and
                 then shifting the window. We show analytically that our
                 algorithm is optimal on average. Hence our first
                 contribution is to fill an important gap in the area,
                 since no average-optimal algorithm existed for multiple
                 approximate string matching. We consider several
                 variants and practical improvements to our algorithm,
                 and show experimentally that they are resistant to the
                 number of patterns and the fastest for low difference
                 ratios, displacing the long-standing best algorithms.
                 Hence our second contribution is to give a practical
                 algorithm for this problem, by far better than any
                 existing alternative in many cases of interest. On
                 real-life texts, our algorithm is especially
                 interesting for computational biology applications. In
                 particular, we show that our algorithm can be
                 successfully used to search for one pattern, where many
                 more competing algorithms exist. Our algorithm is also
                 average-optimal in this case, being the second after
                 that of Chang and Marr. However, our algorithm permits
                 higher difference ratios than Chang and Marr, and this
                 is our third contribution. In practice, our algorithm
                 is competitive in this scenario too, being the fastest
                 for low difference ratios and moderate alphabet sizes.
                 This is our fourth contribution, which also answers
                 affirmatively the question of whether a practical
                 average-optimal approximate string-matching algorithm
                 existed.",
  acknowledgement = ack-nhfb,
  articleno =    "1.4",
  fjournal =     "Journal of Experimental Algorithmics (JEA)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J430",
  keywords =     "algorithms; approximate string matching; biological
                 sequences; multiple string matching; optimality",
}

@Article{Fredriksson:2004:ESM,
  author =       "Kimmo Fredriksson and Jorma Tarhio",
  title =        "Efficient String Matching in {Huffman} Compressed
                 Texts",
  journal =      j-FUND-INFO,
  volume =       "63",
  number =       "1",
  pages =        "1--16",
  month =        jan,
  year =         "2004",
  CODEN =        "FUMAAJ",
  ISSN =         "0169-2968 (print), 1875-8681 (electronic)",
  ISSN-L =       "0169-2968",
  bibdate =      "Sat Mar 5 17:02:27 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/fundinfo2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Fundamenta Informaticae",
  journal-URL =  "http://content.iospress.com/journals/fundamenta-informaticae",
}

@InProceedings{Frisch:2004:GRE,
  author =       "Alain Frisch and Luca Cardelli",
  editor =       "Josep D{\'\i}az and Juhani Karhum{\"a}ki and Arto
                 Lepist{\"o} and Donald Sannella",
  booktitle =    "Automata, Languages and Programming: {31st
                 International Colloquium, ICALP 2004, Turku, Finland,
                 July 12--16, 2004, Proceedings}",
  title =        "Greedy Regular Expression Matching",
  volume =       "3142",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "618--629",
  year =         "2004",
  DOI =          "https://doi.org/10.1007/978-3-540-27836-8_53",
  bibdate =      "Fri Sep 22 12:56:57 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/b99859",
}

@Article{Gaal:2004:DSF,
  author =       "Tam{\'a}s Ga{\'a}l",
  title =        "Deciding sequentiability of finite-state transducers
                 by finite-state pattern-matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "313",
  number =       "1",
  pages =        "105--117",
  day =          "16",
  month =        feb,
  year =         "2004",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Feb 9 08:35:35 MST 2004",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Galil:2004:TDP,
  author =       "Zvi Galil and Jong Geun Park and Kunsoo Park",
  title =        "Three-Dimensional Periodicity and Its Application to
                 Pattern Matching",
  journal =      j-SIAM-J-DISCR-MATH,
  volume =       "18",
  number =       "2",
  pages =        "362--381",
  year =         "2004",
  CODEN =        "SJDMEC",
  DOI =          "https://doi.org/10.1137/S0895480101390308",
  ISSN =         "0895-4801 (print), 1095-7146 (electronic)",
  ISSN-L =       "0895-4801",
  bibdate =      "Sat Apr 16 11:16:33 MDT 2005",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SIDMA/18/2;
                 https://www.math.utah.edu/pub/tex/bib/siamjdiscrmath.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://epubs.siam.org/sam-bin/dbq/article/39030",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Discrete Mathematics",
  journal-URL =  "http://epubs.siam.org/sidma",
}

@Book{Habibi:2004:JRE,
  author =       "Mehran Habibi",
  title =        "{Java} Regular Expressions: Taming the
                 {java.util.regex} Engine",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "255 (est.)",
  year =         "2004",
  ISBN =         "1-59059-107-0",
  ISBN-13 =      "978-1-59059-107-9",
  LCCN =         "????",
  bibdate =      "Sat Apr 03 08:05:36 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Hashiguchi:2004:ERB,
  author =       "Kosaburo Hashiguchi and Naoto Sakakibara and Shuji
                 Jimbo",
  title =        "Equivalence of regular binoid expressions and regular
                 expressions denoting binoid languages over free
                 binoids",
  journal =      j-THEOR-COMP-SCI,
  volume =       "312",
  number =       "2--3",
  pages =        "251--266",
  day =          "30",
  month =        jan,
  year =         "2004",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Feb 9 08:35:35 MST 2004",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Kerren:2004:GME,
  author =       "Andreas Kerren",
  title =        "Generation as method for explorative learning in
                 computer science education",
  journal =      j-SIGCSE,
  volume =       "36",
  number =       "3",
  pages =        "77--81",
  month =        sep,
  year =         "2004",
  CODEN =        "SIGSD3",
  DOI =          "https://doi.org/10.1145/1026487.1008019",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:09 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigcse2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The use of generic and generative methods for the
                 development and application of interactive educational
                 software is a relatively unexplored area in industry
                 and education. Advantages of generic and generative
                 techniques are, among other things, the high degree of
                 reusability of systems parts and the reduction of
                 development costs. Furthermore, generative methods can
                 be used for the development or realization of novel
                 learning models. In this paper, we discuss such a
                 learning model that propagates a new way of explorative
                 learning in computer science education with the help of
                 generators. A realization of this model represents the
                 educational software GANIFA on the theory of generating
                 finite automata from regular expressions. In addition
                 to the educational system's description, we present an
                 evaluation of this system.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Lin:2004:ELP,
  author =       "Ting-Yu Lin and Yu-Chee Tseng and Yuan-Ting Lu",
  title =        "An Efficient Link Polling Policy by Pattern Matching
                 for {Bluetooth Piconets}",
  journal =      j-COMP-J,
  volume =       "47",
  number =       "2",
  pages =        "169--178",
  month =        mar,
  year =         "2004",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/47.2.169",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Wed Feb 11 11:25:44 MST 2004",
  bibsource =    "http://www3.oup.co.uk/computer_journal/hdb/Volume_47/Issue_02/;
                 https://www.math.utah.edu/pub/tex/bib/compj2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www3.oup.co.uk/computer_journal/hdb/Volume_47/Issue_02/470169.sgm.abs.html;
                 http://www3.oup.co.uk/computer_journal/hdb/Volume_47/Issue_02/pdf/470169.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
}

@Article{Liu:2004:FSM,
  author =       "Rong-Tai Liu and Nen-Fu Huang and Chih-Hao Chen and
                 Chia-Nan Kao",
  title =        "A fast string-matching algorithm for network
                 processor-based intrusion detection system",
  journal =      j-TECS,
  volume =       "3",
  number =       "3",
  pages =        "614--633",
  month =        aug,
  year =         "2004",
  CODEN =        "????",
  ISSN =         "1539-9087 (print), 1558-3465 (electronic)",
  ISSN-L =       "1539-9087",
  bibdate =      "Fri Oct 29 06:35:47 MDT 2004",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tecs.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Embedded Computing Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?&idx=J840",
}

@Article{McIlroy:2004:ESR,
  author =       "M. Douglas McIlroy",
  title =        "Enumerating the strings of regular languages",
  journal =      j-J-FUNCT-PROGRAM,
  volume =       "14",
  number =       "5",
  pages =        "503--518",
  month =        sep,
  year =         "2004",
  CODEN =        "JFPRES",
  DOI =          "https://doi.org/10.1017/S0956796803004982",
  ISSN =         "0956-7968 (print), 1469-7653 (electronic)",
  ISSN-L =       "0956-7968",
  bibdate =      "Tue Jul 11 18:07:39 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jfunctprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.cs.dartmouth.edu/~doug/nfa.ps.gz;
                 https://www.cambridge.org/core/product/1D46239B6CC6299AA385B3094EBC80E1",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Funct. Program.",
  fjournal =     "Journal of Functional Programming",
  journal-URL =  "http://journals.cambridge.org/action/displayJournal?jid=JFP",
  keywords =     "regular expressions; string matching",
  onlinedate =   "06 August 2004",
}

@Article{Navarro:2004:ACE,
  author =       "Gonzalo Navarro and Kimmo Fredriksson",
  title =        "Average complexity of exact and approximate multiple
                 string matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "321",
  number =       "2--3",
  pages =        "283--290",
  month =        aug,
  year =         "2004",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Thu Nov 4 10:19:17 MST 2004",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Navarro:2004:ARE,
  author =       "G. Navarro",
  title =        "Approximate Regular Expression Searching with
                 Arbitrary Integer Weights",
  journal =      j-NORDIC-J-COMPUT,
  volume =       "11",
  number =       "4",
  pages =        "356--??",
  month =        "Winter",
  year =         "2004",
  CODEN =        "NJCOFR",
  ISSN =         "1236-6064",
  bibdate =      "Wed Apr 13 08:28:23 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Nordic Journal of Computing",
}

@Article{Navarro:2004:NTR,
  author =       "Gonzalo Navarro and Mathieu Raffinot",
  title =        "New Techniques for Regular Expression Searching",
  journal =      j-ALGORITHMICA,
  volume =       "41",
  number =       "2",
  pages =        "89--116",
  month =        nov,
  year =         "2004",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-004-1120-3",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68Q45",
  MRnumber =     "MR2103259 (2005g:68085)",
  bibdate =      "Fri Jan 6 11:42:47 MST 2006",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=41&issue=2;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=41&issue=2&spage=89",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Navarro:2004:PM,
  author =       "Gonzalo Navarro",
  title =        "Pattern Matching",
  journal =      j-J-APPL-STAT,
  volume =       "31",
  number =       "8",
  pages =        "925--949",
  month =        oct,
  year =         "2004",
  CODEN =        "????",
  ISSN =         "0266-4763 (print), 1360-0532 (electronic)",
  ISSN-L =       "0266-4763",
  bibdate =      "Sat Dec 4 12:10:39 MST 2004",
  bibsource =    "http://www.tandf.co.uk/journals/routledge/02664763.html;
                 https://www.math.utah.edu/pub/tex/bib/japplstat.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Applied Statistics",
  journal-URL =  "http://www.tandfonline.com/loi/cjas20",
}

@Article{Shibuya:2004:GST,
  author =       "Tetsuo Shibuya",
  title =        "Generalization of a Suffix Tree for {RNA} Structural
                 Pattern Matching",
  journal =      j-ALGORITHMICA,
  volume =       "39",
  number =       "1",
  pages =        "1--19",
  month =        jan,
  year =         "2004",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-003-1067-9",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68P05 (68W05 92D20)",
  MRnumber =     "MR2036440 (2004k:68033)",
  bibdate =      "Fri Jan 6 11:42:46 MST 2006",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=39&issue=1;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=39&issue=1&spage=1",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Book{Stubblebine:2004:SHD,
  author =       "Tony Stubblebine and Junko Mishima",
  title =        "Seiki hyogen desukutoppu rifarensu: regular
                 expressions for {Perl}, {C}, {PHP}, {Python}, {Java},
                 and {.NET}",
  publisher =    "Orairi Japan",
  address =      "Tokyo, Japan",
  pages =        "vi + 96",
  year =         "2004",
  ISBN =         "4-87311-170-6",
  ISBN-13 =      "978-4-87311-170-4",
  LCCN =         "????",
  bibdate =      "Wed Oct 14 08:00:43 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Sutinen:2004:ASM,
  author =       "E. Sutinen and J. Tarhio",
  title =        "Approximate String Matching with Ordered $q$-Grams",
  journal =      j-NORDIC-J-COMPUT,
  volume =       "11",
  number =       "4",
  pages =        "321--??",
  month =        "Winter",
  year =         "2004",
  CODEN =        "NJCOFR",
  ISSN =         "1236-6064",
  bibdate =      "Wed Apr 13 08:28:23 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Nordic Journal of Computing",
}

@InProceedings{Tao:2004:LBC,
  author =       "T. Tao and A. Mukherjee",
  title =        "{LZW} based compressed pattern matching",
  crossref =     "Storer:2004:DCC",
  pages =        "??--??",
  year =         "2004",
  DOI =          "https://doi.org/10.1109/DCC.2004.1281544",
  bibdate =      "Tue Feb 5 14:07:23 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1281544",
  acknowledgement = ack-nhfb,
}

@Article{Vialette:2004:CCI,
  author =       "St{\'e}phane Vialette",
  title =        "On the computational complexity of $2$-interval
                 pattern matching problems",
  journal =      j-THEOR-COMP-SCI,
  volume =       "312",
  number =       "2--3",
  pages =        "223--249",
  day =          "30",
  month =        jan,
  year =         "2004",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Feb 9 08:35:35 MST 2004",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Vieira:2004:LEH,
  author =       "Luiz Filipe M. Vieira and Marcos Augusto M. Vieira and
                 Newton J. Vieira",
  title =        "Language emulator, a helpful toolkit in the learning
                 process of computer theory",
  journal =      j-SIGCSE,
  volume =       "36",
  number =       "1",
  pages =        "135--139",
  month =        mar,
  year =         "2004",
  CODEN =        "SIGSD3",
  DOI =          "https://doi.org/10.1145/1028174.971348",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:06 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigcse2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Language Emulator, written in Java, is a toolkit to
                 help undergraduate students to understand the concepts
                 of Automata Theory. The software allows the
                 manipulation of regular expressions, regular grammars,
                 deterministic finite automata, nondeterministic finite
                 automata with and without lambda transitions, and Moore
                 and Mealy machines. Language Emulator introduces
                 error-detecting and internationalization
                 functionalities into automata tools. It has been
                 accepted by 95\% of students in a recent survey,
                 indicating that it is a helpful toolkit in learning
                 Automata Theory.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Xuandong:2004:DCR,
  author =       "Li Xuandong and Zhao Jianhua and Zheng Tao and Li Yong
                 and Zheng Guoliang",
  title =        "Duration-constrained regular expressions",
  journal =      j-FORM-ASP-COMPUT,
  volume =       "16",
  number =       "2",
  pages =        "155--163",
  month =        may,
  year =         "2004",
  CODEN =        "FACME5",
  DOI =          "https://doi.org/10.1007/s00165-004-0033-x",
  ISSN =         "0934-5043 (print), 1433-299X (electronic)",
  ISSN-L =       "0934-5043",
  bibdate =      "Tue Mar 17 20:58:13 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/formaspcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/s00165-004-0033-x",
  acknowledgement = ack-nhfb,
  fjournal =     "Formal Aspects of Computing",
  journal-URL =  "http://link.springer.com/journal/165",
}

@Article{Aldwairi:2005:CSM,
  author =       "Monther Aldwairi and Thomas Conte and Paul Franzon",
  title =        "Configurable string matching hardware for speeding up
                 intrusion detection",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "33",
  number =       "1",
  pages =        "99--107",
  month =        mar,
  year =         "2005",
  CODEN =        "CANED2",
  ISSN =         "0163-5964 (ACM), 0884-7495 (IEEE)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:37 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigarch.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
  remark =       "Workshop on Architectural Support for Security and
                 Anti-Virus (WASSA)",
}

@Article{Anselmo:2005:NOR,
  author =       "Marcella Anselmo and Dora Giammarresi and Maria
                 Madonia",
  title =        "New operations and regular expressions for
                 two-dimensional languages over one-letter alphabet",
  journal =      j-THEOR-COMP-SCI,
  volume =       "340",
  number =       "2",
  pages =        "408--431",
  day =          "27",
  month =        jun,
  year =         "2005",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Thu Jul 7 14:28:20 MDT 2005",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2005.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Book{Babin:2005:PRP,
  author =       "Lee Babin and others",
  title =        "{PHP 5} recipes: a problem-solution approach",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "xxi + 646",
  year =         "2005",
  ISBN =         "1-59059-509-2",
  ISBN-13 =      "978-1-59059-509-1",
  LCCN =         "QA76.73.P224 P455 2005",
  bibdate =      "Wed Mar 13 13:43:08 MDT 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  subject =      "PHP (Computer program language); PHP (langage de
                 programmation)",
  tableofcontents = "Chapter 1: Overview of PHP Data Types and Concepts
                 / 1 \\
                 1-1: Variables / 2 \\
                 1-2: Numbers / 4 \\
                 1-3: Arrays / 5 \\
                 1-4: Strings / 6 \\
                 1-5: Regular Expressions / 7 \\
                 1-6: Functions / 8 \\
                 1-7: Project: Finding the Data Type of a Value / 10 \\
                 1-8: Project: Discovering What Variables, Constants,
                 Functions, Classes, and Interfaces Are Available / 12
                 \\
                 1-9: Getting Information About the Current Script / 14
                 \\
                 Chapter 2: Overview of Classes, Objects, and Interfaces
                 / 21 \\
                 Understanding Basic Concepts / 22 \\
                 2-1: Creating Instances Using Constructors / 24 \\
                 2-2: Using Default Constructors / 26 \\
                 2-3: Setting Object Properties / 27 \\
                 2-4: Controlling Access to Class Members / 30 \\
                 2-5: Using Static Members and the self Keyword / 33 \\
                 2-6: Using Class Constants / 37 \\
                 2-7: Extending Classes / 43 \\
                 2-8: Using Abstract Classes and Methods / 50 \\
                 2-9: Using Interfaces / 53 \\
                 2-10: Using Class Destructors / 55 \\
                 2-11: Using Exceptions / 56 \\
                 Getting Information About Classes and Objects / 61 \\
                 Using Class and Object Functions / 61 \\
                 2-12: Checking for the Existence of Classes and
                 Interfaces Using class\_exists() and
                 interface\_exists() / 63 \\
                 2-13: Listing Methods and Interfaces Using
                 get\_class\_methods() / 65 \\
                 2-14: Obtaining Variable Names / 66 \\
                 2-15: Determining Whether an Object Is an Instance of a
                 Particular Class / 67 \\
                 2-16: Listing Currently Loaded Interfaces and Classes /
                 69 \\
                 Using the Class Reflection API / 71 \\
                 2-17: Obtaining a Dump of the Reflection API / 73 \\
                 2-18: Performing Dynamic Class Instantiation / 76 \\
                 2-19: Using the Reflection API to Deconstruct the Shape
                 Class / 77 \\
                 Chapter 3: Performing Math Operations / 85 \\
                 3-1: Numeric Data Types / 85 \\
                 3-2: Random Numbers / 95 \\
                 3-3: Logarithms and Exponents / 100 \\
                 3-4: Trigonometric Functions / 105 \\
                 3-5: Formatting of Numeric Data / 108 \\
                 3-6: Math Libraries / 113 \\
                 3-7: A Static Math Class / 116 \\
                 Chapter 4: Working with Arrays / 121 \\
                 4-1: Creating Arrays / 122 \\
                 4-2: Accessing Array Elements / 122 \\
                 4-3: Creating Multidimensional Arrays / 123 \\
                 4-4: Using Array Keys / 124 \\
                 4-5: Initializing an Array As a Range or Sequence of
                 Values / 124 \\
                 Outputting Arrays / 126 \\
                 4-6: Outputting an Array As a String / 126 \\
                 4-7: Outputting Using array\_values() and array\_keys()
                 for Backward Compatibility / 126 \\
                 4-8: Outputting an Array As a Tree / 128 \\
                 Adding New Elements to Arrays / 131 \\
                 4-9: Adding an Element to the End of an Array / 131 \\
                 4-10: Appending One Array to Another / 132 \\
                 4-11: Comparing Arrays / 135 \\
                 4-12: Adding an Element to the Beginning of an Array /
                 137 \\
                 4-13: Inserting New Values at an Arbitrary Point in an
                 Indexed Array / 137 \\
                 Getting and Setting the Size of an Array / 139 \\
                 4-14: Counting Array Elements / 139 \\
                 4-15: Setting an Array's Size / 141 \\
                 Traversing Arrays / 144 \\
                 4-16: Looping Through an Associative Array Using
                 foreach / 144 \\
                 4-17: Looping Through a Compact Indexed Array Using for
                 and count() / 145 \\
                 4-18: Looping Through a Sparse Array / 146 \\
                 Removing Elements from Arrays / 147 \\
                 4-19: Removing the First or Last Element from an Array
                 / 148 \\
                 4-20: Removing One or More Arbitrary Array Elements /
                 150 \\
                 4-21: Extracting a Portion of an Array / 152 \\
                 4-22: Extracting Values from Arrays with extract() /
                 154 \\
                 4-23: Extracting Values from an Array Using list() /
                 156 \\
                 4-24: Combining Arrays / 158 \\
                 4-25: Obtaining Array Keys and Values / 159 \\
                 4-26: Working with Unique Values / 160 \\
                 4-27: Getting and Displaying Counts of Array Values /
                 161 \\
                 Finding and Working with Array Values / 162 \\
                 4-28: Determining Whether an Element Is in an Array /
                 163 \\
                 4-29: Testing for the Existence of a Key in an Array /
                 164 \\
                 4-30: Obtaining Array Keys with a Given Value / 165 \\
                 4-31: Finding the Greatest and Least Values in an Array
                 / 166 \\
                 4-32: Finding the Sum and Average of the Values in an
                 Array / 168 \\
                 Applying Functions to Arrays / 169 \\
                 4-33: Applying Functions to Array Elements Using
                 array\_walk() / 170 \\
                 4-34: Applying Functions to Array Elements Using
                 array\_map() / 173 \\
                 4-35: Filtering Arrays Using array\_filter() / 175 \\
                 Sorting Arrays / 178 \\
                 4-36: Sorting an Array by Its Values / 178 \\
                 4-37: Sorting an Array by Its Keys / 180 \\
                 4-38: Reversing an Array Using arsort() / 181 \\
                 4-39: Reversing an Array Using krsort() / 182 \\
                 4-40: Reversing an Array Using array\_reverse() / 182
                 \\
                 4-41: Randomizing an Array Using shuffle(), kshuffle(),
                 and array\_rand() / 183 \\
                 4-42: Sorting an Array Using Comparison Functions / 184
                 \\
                 4-43: Sorting Multidimensional Arrays / 186 \\
                 4-44: Sorting Multiple Arrays / 189 \\
                 Finding Permutations and Combinations / 190 \\
                 4-45: Finding All Permutations of an Array's Elements /
                 190 \\
                 4-46: Finding All Combinations of an Array's Elements /
                 193 \\
                 Chapter 5: Working with Dates and Times / 197 \\
                 Overview of PHP 5's Date and Time Functions / 198 \\
                 Displaying Dates and Times / 200 \\
                 5-1: Displaying Human-Readable Dates and Times / 201
                 \\
                 5-2: Displaying Arbitrary Dates and Times / 204 \\
                 5-3: Converting Human-Readable Dates Into Unix
                 Timestamps Using strtotime() / 205 \\
                 5-4: Finding the Date for a Weekday / 207 \\
                 5-5: Getting the Day and Week of the Year / 211 \\
                 5-6: Determining Whether a Given Year Is a Leap Year /
                 213 \\
                 5-7: Getting Times and Dates of Files / 214 \\
                 5-8: Setting Time Zones and GMT/UTC / 216 \\
                 5-9: Displaying Times and Dates in Other Languages /
                 219 \\
                 5-10: Generating Localized GMT/UTC Time and Date
                 Strings / 224 \\
                 5-11: Obtaining the Difference Between Two Dates / 225
                 \\
                 5-12: Project: Constructing and Using a Date Class /
                 231 \\
                 5-13: Extending the Date Class / 250 \\
                 Chapter 6: Working with Strings / 265 \\
                 Manipulating Substrings / 266 \\
                 6-1: Testing for Substrings / 267 \\
                 6-2: Counting the Occurrences of a Substring / 269 \\
                 6-3: Accessing Substrings / 269 \\
                 6-4: Using Substring Alternatives / 270 \\
                 6-5: Replacing Substrings / 271 \\
                 Processing Strings / 273 \\
                 6-6: Joining and Disassembling Strings / 273 \\
                 6-7: Reversing Strings / 277 \\
                 6-8: Controlling Case / 277 \\
                 6-9: Trimming Blank Spaces / 279 \\
                 6-10: Wrapping Text / 280 \\
                 6-11: Checking String Length / 282 \\
                 6-12: Comparing Strings / 283 \\
                 6-13: Comparing Sound / 284 \\
                 Project: Creating and Using a String Class / 285 \\
                 6-14: Using a Page Reader Class / 285 \\
                 Chapter 7: Working with Files and Directories / 291 \\
                 Working with Files / 291 \\
                 7-1: Opening Files / 291 \\
                 7-2: Reading from Files / 293 \\
                 7-3: Writing to Files / 295 \\
                 7-4: Closing Files / 296 \\
                 7-5: Reading and Writing Comma-Separated Data / 298 \\
                 7-6: Reading Fixed-Width Delimited Data / 300 \\
                 7-7: Reading and Writing Binary Data in a File / 301
                 \\
                 7-8: Getting the Number of Lines in a File / 303 \\
                 7-9: Getting the Number of Characters, Words, or
                 Paragraphs in a File / 304 \\
                 7-10: Project: Creating and Using a File Class / 305
                 \\
                 Working with Directories / 309 \\
                 7-11: Listing All Files in the Current Directory / 310
                 \\
                 7-12: Listing All Files of a Certain Type / 311 \\
                 7-13: Sorting Files by Date / 313 \\
                 7-14: Generating a Recursive Directory Listing / 314
                 \\
                 7-15: Using the SPL Directorylterator Object / 316 \\
                 Chapter 8: Working with Dynamic Imaging / 321 \\
                 Working with Image Types / 321 \\
                 8-1: Working with JPGs / 321 \\
                 8-2: Working with GIFs / 323 \\
                 8-3: Working with PNGs / 325 \\
                 Working with Image Libraries / 327 \\
                 Creating an Image from Scratch / 327 \\
                 8-4: Creating a Blank Canvas / 328 \\
                 8-5: Creating and Using Colors / 329 \\
                 8-6: Creating and Applying Different Shapes and
                 Patterns / 331 \\
                 8-7: Outputting an Image / 334 \\
                 Creating an Image from an Existing Image / 336 \\
                 8-8: Loading an Existing Image / 337 \\
                 8-9: Applying Modifications to an Existing Image / 338
                 \\
                 8-10: Saving and Outputting the Modified Image / 340
                 \\
                 Using True Type Fonts / 341 \\
                 8-11: Loading Fonts / 342 \\
                 8-12: Applying True Type Fonts to an Image / 343 \\
                 8-13: Project: Creating and Using a Dynamic Thumbnail
                 Class / 345 \\
                 Chapter 9: Using Regular Expressions / 351 \\
                 Overview of Regular Expression Syntax / 351 \\
                 Qualifiers / 352 \\
                 Ranges / 352 \\
                 Line Anchors / 352 \\
                 An Escape / 353 \\
                 Saying OR / 353 \\
                 Character Classes / 353 \\
                 POSIX vs. PCRE / 353 \\
                 POSIX / 354 \\
                 PCRE / 355 \\
                 Putting Regular Expressions to Work / 356 \\
                 9-1: Using String Matching vs. Pattern Matching / 356
                 \\
                 9-2: Finding the nth Occurrence of a Match / 358 \\
                 9-3: Matching with Greedy vs. Nongreedy Expressions /
                 358 \\
                 9-4: Matching a Valid IP Address / 360 \\
                 9-5: Validating Pascal Case Names / 361 \\
                 9-6: Validating U.S. Currency / 363 \\
                 9-7: Formatting a Phone Number / 365 \\
                 9-8: Finding Repeated Words / 367 \\
                 9-9: Finding Words Not Followed by Other Words / 368
                 \\
                 9-10: Matching a Valid E-mail Address / 369 \\
                 9-11: Finding All Matching Lines in a File / 371 \\
                 9-12: Finding Lines with an Odd Number of Quotes / 372
                 \\
                 9-13: Capturing Text Inside HTML or XML Tags / 373 \\
                 9-14: Escaping Special Characters / 375 \\
                 9-15: Replacing URLs with Links / 377 \\
                 9-16: Replacing Smart Quotes with Straight Quotes / 380
                 \\
                 9-17: Testing the Complexity of Passwords / 380 \\
                 9-18: Matching GUIDs/UUIDs / 381 \\
                 9-19: Reading Records with a Delimiter / 382 \\
                 9-20: Creating Your Own RegExp Class / 385 \\
                 Chapter 10: Working with Variables / 393 \\
                 10-1: Using Variable Types / 394 \\
                 10-2: Assigning and Comparing / 396 \\
                 10-3: Typecasting / 402 \\
                 10-4: Using Constants / 408 \\
                 10-5: Defining Variable Scope / 411 \\
                 10-6: Parsing Values to Functions / 417 \\
                 10-7: Using Dynamic Variable and Function Names / 421
                 \\
                 10-8: Encapsulating Complex Data Types / 425 \\
                 10-9: Sharing Variables Between Processes / 429 \\
                 10-10: Debugging / 431 \\
                 Chapter 11: Using Functions / 437 \\
                 11-1: Accessing Function Parameters / 437 \\
                 11-2: Setting Default Values for Function Parameters /
                 438 \\
                 11-3: Passing Values by Reference 439",
}

@InProceedings{Chen:2005:ESM,
  author =       "S. Chen and S. Diggavi and S. Dusad and S.
                 Muthukrishnan",
  title =        "Efficient string matching algorithms for combinatorial
                 universal denoising",
  crossref =     "Storer:2005:DCC",
  pages =        "153--162",
  year =         "2005",
  DOI =          "https://doi.org/10.1109/DCC.2005.37",
  bibdate =      "Tue Feb 5 08:48:53 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1402176",
  acknowledgement = ack-nhfb,
}

@Article{dAmorim:2005:EBR,
  author =       "Marcelo d'Amorim and Klaus Havelund",
  title =        "Event-based runtime verification of {Java} programs",
  journal =      j-SIGSOFT,
  volume =       "30",
  number =       "4",
  pages =        "1--7",
  month =        jul,
  year =         "2005",
  CODEN =        "SFENDP",
  DOI =          "https://doi.org/10.1145/1082983.1083249",
  ISSN =         "0163-5948 (print), 1943-5843 (electronic)",
  ISSN-L =       "0163-5948",
  bibdate =      "Wed Aug 1 17:14:51 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigsoft2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We introduce the temporal logic HAWK and its
                 supporting tool for runtime verification of Java
                 programs. A monitor for a HAWK formula checks if a
                 finite trace of program events satisfies the formula.
                 HAWK is a programming-oriented extension of the
                 rule-based EAGLE logic that has been shown capable of
                 defining and implementing a range of finite trace
                 monitoring logics, including future and past time
                 temporal logic, metric (real-time) temporal logics,
                 interval logics, forms of quantified temporal logics,
                 extended regular expressions, state machines, and
                 others. Monitoring is achieved on a state-by-state
                 basis avoiding any need to store the input trace. HAWK
                 extends EAGLE with constructs for capturing
                 parameterized program events such as method calls and
                 method returns. Parameters can be executing thread, the
                 objects that methods are called upon, arguments to
                 methods, and return values. HAWK allows one to refer to
                 these in formulae. The tool synthesizes monitors from
                 formulae and automates program instrumentation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGSOFT Software Engineering Notes",
  journal-URL =  "https://dl.acm.org/citation.cfm?id=J728",
}

@Article{Firth:2005:CBA,
  author =       "Andrew Firth and Tim Bell and Amar Mukherjee and Don
                 Adjeroh",
  title =        "A comparison of {BWT} approaches to string pattern
                 matching",
  journal =      j-SPE,
  volume =       "35",
  number =       "13",
  pages =        "1217--1258",
  day =          "10",
  month =        nov,
  year =         "2005",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.669",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Tue Mar 14 11:54:23 MST 2006",
  bibsource =    "http://www.interscience.wiley.com/jpages/0038-0644;
                 http://www3.interscience.wiley.com/journalfinder.html;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Recently a number of algorithms have been developed to
                 search files compressed with the Burrows--Wheeler
                 Transform (BWT) without the need for full decompression
                 first. This allows the storage requirement of data to
                 be reduced through the exceptionally good compression
                 offered by BWT, while allowing fast access to the
                 information for searching by taking advantage of the
                 sorted nature of BWT files. We provide a detailed
                 description of five of these algorithms: BWT-based
                 Boyer--Moore, Binary Search, Suffix Arrays, q-grams and
                 the FM-index, and also present results from a set of
                 extensive experiments that were performed to evaluate
                 and compare the algorithms. Furthermore, we introduce a
                 technique to improve the search times of Binary Search,
                 Suffix Arrays and q-grams by 22\% on average, as well
                 as reduce the memory requirement of the latter two by
                 40\% and 31\%, respectively. Our results indicate that,
                 while the compressed files of the FM-index are larger
                 than those of the other approaches, it is able to
                 perform searches with considerably less memory.
                 Additionally, when only counting the occurrences of a
                 pattern, or when locating the positions of a small
                 number of matches, it is the fastest algorithm. For
                 larger searches, Binary Search provides the fastest
                 results. Comparative results with non-BWT based search
                 methods are also included.",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "binary search; Burrows--Wheeler Transform (BWT);
                 compressed pattern matching; FM-index; q-grams; suffix
                 arrays",
  onlinedate =   "23 May 2005",
}

@Article{Geser:2005:TPS,
  author =       "Alfons Geser and Dieter Hofbauer and Johannes
                 Waldmann",
  title =        "Termination Proofs for String Rewriting Systems via
                 Inverse Match-Bounds",
  journal =      j-J-AUTOM-REASON,
  volume =       "34",
  number =       "4",
  pages =        "365--385",
  month =        may,
  year =         "2005",
  CODEN =        "JAREEW",
  DOI =          "https://doi.org/10.1007/s10817-005-9024-8",
  ISSN =         "0168-7433 (print), 1573-0670 (electronic)",
  ISSN-L =       "0168-7433",
  bibdate =      "Sat Apr 2 10:50:31 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jautomreason.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/s10817-005-9024-8",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Autom. Reason.",
  fjournal =     "Journal of Automated Reasoning",
  journal-URL =  "http://link.springer.com/journal/10817",
}

@Book{Good:2005:RER,
  author =       "Nathan A. Good",
  title =        "Regular expression recipes: a problem-solution
                 approach",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "xxix + 289",
  year =         "2005",
  ISBN =         "1-59059-441-X (paperback)",
  ISBN-13 =      "978-1-59059-441-4 (paperback)",
  LCCN =         "QA76.9.T48 G66 2005",
  bibdate =      "Wed Mar 13 13:42:27 MDT 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "The expert's voice in open source",
  acknowledgement = ack-nhfb,
  subject =      "Text processing (Computer science); Open source
                 software; Programming languages (Electronic
                 computers)",
}

@Article{Grossi:2005:CSA,
  author =       "Roberto Grossi and Jeffrey Scott Vitter",
  title =        "Compressed Suffix Arrays and Suffix Trees with
                 Applications to Text Indexing and String Matching",
  journal =      j-SIAM-J-COMPUT,
  volume =       "35",
  number =       "2",
  pages =        "378--407",
  month =        "????",
  year =         "2005",
  CODEN =        "SMJCAT",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  bibdate =      "Tue May 18 08:21:20 MDT 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/35/2;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{He:2005:WWS,
  author =       "Longtao He and Binxing Fang and Jie Sui",
  title =        "The wide window string matching algorithm",
  journal =      j-THEOR-COMP-SCI,
  volume =       "332",
  number =       "1--3",
  pages =        "391--404",
  day =          "28",
  month =        feb,
  year =         "2005",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Thu Jul 7 14:28:15 MDT 2005",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2005.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Hosoya:2005:RET,
  author =       "Haruo Hosoya and J{\'e}r{\^o}me Vouillon and Benjamin
                 C. Pierce",
  title =        "Regular expression types for {XML}",
  journal =      j-TOPLAS,
  volume =       "27",
  number =       "1",
  pages =        "46--90",
  month =        jan,
  year =         "2005",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Thu Mar 24 15:57:47 MST 2005",
  bibsource =    "http://www.acm.org/pubs/contents/journals/toplas/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@Article{Hyyro:2005:BPW,
  author =       "Heikki Hyyr{\"o} and Gonzalo Navarro",
  title =        "Bit-Parallel Witnesses and Their Applications to
                 Approximate String Matching",
  journal =      j-ALGORITHMICA,
  volume =       "41",
  number =       "3",
  pages =        "203--231",
  month =        jan,
  year =         "2005",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-004-1108-z",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  MRclass =      "68W05 (68W40)",
  MRnumber =     "MR2108146 (2006b:68137)",
  MRreviewer =   "Wojciech Rytter",
  bibdate =      "Fri Jan 6 11:42:47 MST 2006",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=41&issue=3;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/index-table-a.html#algorithmica;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 MathSciNet database",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=41&issue=3&spage=203",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica. An International Journal in Computer
                 Science",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Hyyro:2005:IBP,
  author =       "Heikki Hyyr{\"o} and Kimmo Fredriksson and Gonzalo
                 Navarro",
  title =        "Increased bit-parallelism for approximate and multiple
                 string matching",
  journal =      j-ACM-J-EXP-ALGORITHMICS,
  volume =       "10",
  pages =        "2.6:1--2.6:??",
  month =        "????",
  year =         "2005",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1064546.1180617",
  ISSN =         "1084-6654",
  ISSN-L =       "1084-6654",
  bibdate =      "Mon Oct 6 16:05:40 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jea.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Bit-parallelism permits executing several operations
                 simultaneously over a set of bits or numbers stored in
                 a single computer word. This technique permits
                 searching for the approximate occurrences of a pattern
                 of length $m$ in a text of length $n$ in time {$
                 O(\lceil m / w \rceil n) $}, where $w$ is the number of
                 bits in the computer word. Although this is
                 asymptotically the optimal bit-parallel speedup over
                 the basic {$ O(m n) $} time algorithm, it wastes
                 bit-parallelism's power in the common case where $m$ is
                 much smaller than $w$, since $ w - m $ bits in the
                 computer words are unused. In this paper, we explore
                 different ways to increase the bit-parallelism when the
                 search pattern is short. First, we show how multiple
                 patterns can be packed into a single computer word so
                 as to search for all them simultaneously. Instead of
                 spending {$ O(r n) $} time to search for $r$ patterns
                 of length $ m \leq w / 2 $, we need {$ O(\lceil r m / w
                 \rceil n) $} time. Second, we show how the mechanism
                 permits boosting the search for a single pattern of
                 length $ m \leq w / 2 $, which can be searched for in
                 {$ O(\lceil n / \lfloor w / m \rfloor \rceil) $}
                 bit-parallel steps instead of {$ O(n) $}. Third, we
                 show how to extend these algorithms so that the time
                 bounds essentially depend on $k$ instead of $m$, where
                 $k$ is the maximum number of differences permitted.
                 Finally, we show how the ideas can be applied to other
                 problems such as multiple exact string matching and
                 one-against-all computation of edit distance and
                 longest common subsequences. Our experimental results
                 show that the new algorithms work well in practice,
                 obtaining significant speedups over the best existing
                 alternatives, especially on short patterns and moderate
                 number of differences allowed. This work fills an
                 important gap in the field, where little work has
                 focused on very short patterns.",
  acknowledgement = ack-nhfb,
  articleno =    "2.6",
  fjournal =     "Journal of Experimental Algorithmics (JEA)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J430",
  keywords =     "approximate string matching; bit-parallelism; multiple
                 string matching",
}

@Article{Inenaga:2005:FCP,
  author =       "Shunsuke Inenaga and Ayumi Shinohara and Masayuki
                 Takeda",
  title =        "A Fully Compressed Pattern Matching Algorithm for
                 Simple Collage Systems",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "16",
  number =       "6",
  pages =        "1155--??",
  month =        dec,
  year =         "2005",
  CODEN =        "IFCSEN",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Wed Aug 23 09:03:17 MDT 2006",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Kato:2005:SSR,
  author =       "Ryoichi Kato and Osamu Watanabe",
  title =        "Substring search and repeat search using factor
                 oracles",
  journal =      j-INFO-PROC-LETT,
  volume =       "93",
  number =       "6",
  pages =        "269--274",
  day =          "31",
  month =        mar,
  year =         "2005",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 18:41:00 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190/",
}

@InProceedings{Klein:2005:CPM,
  author =       "S. T. Klein and D. Shapira",
  title =        "Compressed pattern matching in {JPEG} images",
  crossref =     "Storer:2005:DCC",
  pages =        "??--??",
  year =         "2005",
  DOI =          "https://doi.org/10.1109/DCC.2005.26",
  bibdate =      "Tue Feb 5 08:48:53 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1402223",
  acknowledgement = ack-nhfb,
}

@Book{Knuth:2005:ACPb,
  author =       "Donald E. Knuth",
  title =        "The Art of Computer Programming: Volume 4, Fascicle 3.
                 Generating All Combinations and Partitions",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "iv + 150",
  year =         "2005",
  ISBN =         "0-201-85394-9",
  ISBN-13 =      "978-0-201-85394-0",
  LCCN =         "QA76.6 .K64 2005",
  bibdate =      "Tue Oct 11 05:24:35 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/texbook2.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  subject =      "Computer programming; Computer algorithms",
  tableofcontents = "7: Combinatorial Searching / 0 \\
                 7.2. Generating All Possibilities / 0 \\
                 7.2.1. Generating Basic Combinatorial Patterns / 0 \\
                 7.2.1.1. Generating all n-tuples / 0 \\
                 7.2.1.2. Generating all permutations / 0 \\
                 7.2.1.3. Generating all combinations / 1 \\
                 7.2.1.4. Generating all partitions / 36 \\
                 7.2.1.5. Generating all set partitions / 61 \\
                 Answers to Exercises / 87 \\
                 Index and Glossary / 144",
}

@Article{Kumar:2005:PCO,
  author =       "Rajeev Kumar and Amit Gupta and B. S. Pankaj and
                 Mrinmoy Ghosh and P. P. Chakrabarti",
  title =        "Post-compilation optimization for multiple gains with
                 pattern matching",
  journal =      j-SIGPLAN,
  volume =       "40",
  number =       "12",
  pages =        "14--23",
  month =        dec,
  year =         "2005",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Mar 7 16:19:22 MST 2006",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Makinen:2005:TIS,
  author =       "Veli M{\"a}kinen and Gonzalo Navarro and Esko
                 Ukkonen",
  title =        "Transposition invariant string matching",
  journal =      j-J-ALG,
  volume =       "56",
  number =       "2",
  pages =        "124--153",
  month =        aug,
  year =         "2005",
  CODEN =        "JOALDV",
  DOI =          "https://doi.org/10.1016/j.jalgor.2004.07.008",
  ISSN =         "0196-6774 (print), 1090-2678 (electronic)",
  ISSN-L =       "0196-6774",
  bibdate =      "Tue Dec 11 09:22:01 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jalg.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0196677404001427",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Algorithms",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01966774",
}

@Article{Mauri:2005:APM,
  author =       "Giancarlo Mauri and Giulio Pavesi",
  title =        "Algorithms for pattern matching and discovery in {RNA}
                 secondary structure",
  journal =      j-THEOR-COMP-SCI,
  volume =       "335",
  number =       "1",
  pages =        "29--51",
  day =          "20",
  month =        may,
  year =         "2005",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Thu Jul 7 14:28:17 MDT 2005",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2005.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Mhashi:2005:EMR,
  author =       "Mahmoud Moh'd Mhashi",
  title =        "The effect of multiple reference characters on
                 detecting matches in string-searching algorithms",
  journal =      j-SPE,
  volume =       "35",
  number =       "13",
  pages =        "1299--1315",
  day =          "10",
  month =        nov,
  year =         "2005",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.672",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Tue Mar 14 11:54:23 MST 2006",
  bibsource =    "http://www.interscience.wiley.com/jpages/0038-0644;
                 http://www3.interscience.wiley.com/journalfinder.html;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The effect of multiple reference characters and the
                 condition types on the performance of exact
                 string-searching algorithms is tested. In order to
                 perform such a test a new algorithm called the Multiple
                 Reference Characters Algorithm (MRCA) is developed. An
                 experiment is performed using English text; the results
                 are compared with the known string-matching algorithms
                 called Boyer--Moore--Horspool (BMH) and Straight
                 Forward (Na{\"\i}ve). With the MRCA algorithm, the
                 shift distance is increased up to $ 3 m + 1 $ positions
                 in comparison with exactly one position in the
                 Na{\"\i}ve algorithm and up to $m$ positions in BMH.
                 Furthermore, by using the new algorithm MRCA, the
                 results suggest that the evaluation criteria of the
                 average number of comparisons, the average number of
                 shifts, and the clock time required by BMH are improved
                 up to 73.1\%, 64.7\%, and 49.6\%, respectively. The
                 same evaluation criteria required by Na{\"\i}ve are
                 improved by MRCA up to 98.1\%, 98\%, and 94.7\%,
                 respectively.",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "checking and skipping; condition type; multiple
                 references; pattern matching; string-searching",
  onlinedate =   "2 Jun 2005",
}

@Article{Moreira:2005:IMR,
  author =       "Nelma Moreira and Rog{\'e}rio Reis",
  title =        "Interactive manipulation of regular objects with
                 {FAdo}",
  journal =      j-SIGCSE,
  volume =       "37",
  number =       "3",
  pages =        "335--339",
  month =        sep,
  year =         "2005",
  CODEN =        "SIGSD3",
  DOI =          "https://doi.org/10.1145/1151954.1067537",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:19 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigcse2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "FAdo$^1$ is an ongoing project which aims the
                 development of an interactive environment for symbolic
                 manipulation of formal languages. In this paper we
                 focus in the description of interactive tools for
                 teaching and assisting research on regular languages,
                 and in particular finite automata and regular
                 expressions. Those tools implement most standard
                 automata operations, conversion between automata and
                 regular expressions, and word recognition. We
                 illustrate their use in training and automatic
                 assessment. Finally we present a graphical environment
                 for editing and interactive visualisation.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Mustafa:2005:WOA,
  author =       "Suleiman H. Mustafa",
  title =        "Word-oriented approximate string matching using
                 occurrence heuristic tables: a heuristic for searching
                 {Arabic} text",
  journal =      j-J-AM-SOC-INF-SCI-TECHNOL,
  volume =       "56",
  number =       "14",
  pages =        "1504--1511",
  month =        dec,
  year =         "2005",
  CODEN =        "JASIEF",
  DOI =          "https://doi.org/10.1002/asi.20244",
  ISSN =         "1532-2882 (print), 1532-2890 (electronic)",
  ISSN-L =       "1532-2882",
  bibdate =      "Fri Sep 11 10:42:23 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jasist.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the American Society for Information
                 Science and Technology: JASIST",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1532-2890",
  onlinedate =   "9 Sep 2005",
}

@Article{Navarro:2005:LBM,
  author =       "Gonzalo Navarro and Jorma Tarhio",
  title =        "{LZgrep}: a {Boyer--Moore} string matching tool for
                 {Ziv--Lempel} compressed text",
  journal =      j-SPE,
  volume =       "35",
  number =       "12",
  pages =        "1107--1130",
  month =        oct,
  year =         "2005",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.663",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Tue Oct 4 05:39:38 MDT 2005",
  bibsource =    "http://www.interscience.wiley.com/jpages/0038-0644;
                 http://www3.interscience.wiley.com/journalfinder.html;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  URL =          "http://www.dcc.uchile.cl/~gnavarro/pubcode/",
  abstract =     "We present a Boyer--Moore (BM) approach to string
                 matching over LZ78 and LZW compressed text. The idea is
                 to search the text directly in compressed form instead
                 of decompressing and then searching it. We modify the
                 BM approach so as to skip text using the characters
                 explicitly represented in the LZ78\slash LZW formats,
                 modifying the basic technique where the algorithm can
                 choose which characters to inspect. We present and
                 compare several solutions for single and multipattern
                 searches. We show that our algorithms obtain speedups
                 of up to 50\% compared to the simple
                 decompress-then-search approach. Finally, we present a
                 public tool, LZgrep, which uses our algorithms to offer
                 grep-like capabilities directly searching files
                 compressed using Unix's Compress, an LZW compressor.
                 LZgrep can also search files compressed with Unix gzip,
                 using new decompress-then-search techniques we develop,
                 which are faster than the current tools. This way,
                 users can always keep their files in compressed form
                 and still search them, uncompressing only when they
                 want to see them.",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "compressed pattern matching; direct search on
                 compressed text; text searching; Ziv--Lempel format",
  onlinedate =   "6 May 2005",
}

@Book{Robbins:2005:CSS,
  author =       "Arnold Robbins and Nelson H. F. Beebe",
  title =        "Classic Shell Scripting",
  publisher =    pub-ORA-MEDIA,
  address =      pub-ORA-MEDIA:adr,
  pages =        "xxii + 534",
  year =         "2005",
  ISBN =         "0-596-00595-4",
  ISBN-13 =      "978-0-596-00595-5",
  LCCN =         "QA76.76.O63 R633 2005",
  bibdate =      "Tue Jul 12 16:13:16 2005",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/b/beebe-nelson-h-f.bib;
                 https://www.math.utah.edu/pub/tex/bib/css.bib;
                 https://www.math.utah.edu/pub/tex/bib/linux.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/mathcw.bib;
                 https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/spell.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib;
                 https://www.math.utah.edu/pub/tex/bib/utah-math-dept-books.bib",
  URL =          "http://www.oreilly.com/catalog/shellsrptg/",
  acknowledgement = ack-nhfb,
  ORCID-numbers = "Beebe, Nelson H. F./0000-0001-7281-4263",
  tableofcontents = "Foreword / ix \\
                 Preface / xi \\
                 1 Background / 1 \\
                 1.1 Unix History / 1 \\
                 1.2 Software Tools Principles / 4 \\
                 1.3 Summary / 6 \\
                 2 Getting Started / 8 \\
                 2.1 Scripting Languages Versus Compiled Languages / 8
                 \\
                 2.2 Why Use a Shell Script? / 9 \\
                 2.3 A Simple Script / 9 \\
                 2.4 Self-Contained Scripts: The \#! First Line / 10 \\
                 2.5 Basic Shell Constructs / 12 \\
                 2.6 Accessing Shell Script Arguments / 23 \\
                 2.7 Simple Execution Tracing / 24 \\
                 2.8 Internationalization and Localization / 25 \\
                 2.9 Summary / 28 \\
                 3 Searching and Substitutions / 30 \\
                 3.1 Searching for Text / 30 \\
                 3.2 Regular Expressions / 31 \\
                 3.3 Working with Fields / 56 \\
                 3.4 Summary / 65 \\
                 4 Text Processing Tools / 67 \\
                 4.1 Sorting Text / 67 \\
                 4.2 Removing Duplicates / 75 \\
                 4.3 Reformatting Paragraphs / 76 \\
                 4.4 Counting Lines, Words, and Characters / 77 \\
                 4.5 Printing / 78 \\
                 4.6 Extracting the First and Last Lines / 83 \\
                 4.7 Summary / 86 \\
                 5 Pipelines Can Do Amazing Things / 87 \\
                 5.1 Extracting Data from Structured Text Files / 87 \\
                 5.2 Structured Data for the Web / 94 \\
                 5.3 Cheating at Word Puzzles / 100 \\
                 5.4 Word Lists / 102 \\
                 5.5 Tag Lists / 105 \\
                 5.6 Summary / 107 \\
                 6 Variables, Making Decisions, and Repeating Actions /
                 109 \\
                 6.1 Variables and Arithmetic / 109 \\
                 6.2 Exit Statuses / 120 \\
                 6.3 The case Statement / 129 \\
                 6.4 Looping / 130 \\
                 6.5 Functions / 135 \\
                 6.6 Summary / 138 \\
                 7 Input and Output, Files, and Command Evaluation / 140
                 \\
                 7.1 Standard Input, Output, and Error / 140 \\
                 7.2 Reading Lines with read / 140 \\
                 7.3 More About Redirections / 143 \\
                 7.4 The Full Story on printf / 147 \\
                 7.5 Tilde Expansion and Wildcards / 152 \\
                 7.6 Command Substitution / 155 \\
                 7.7 Quoting / 161 \\
                 7.8 Evaluation Order and eval / 162 \\
                 7.9 Built-in Commands / 168 \\
                 7.10 Summary / 175 \\
                 8 Production Scripts / 177 \\
                 8.1 Path Searching / 177 \\
                 8.2 Automating Software Builds / 192 \\
                 8.3 Summary / 222 \\
                 9 Enough awk to Be Dangerous / 223 \\
                 9.1 The awk Command Line / 224 \\
                 9.2 The awk Programming Model / 225 \\
                 9.3 Program Elements / 226 \\
                 9.4 Records and Fields / 236 \\
                 9.5 Patterns and Actions / 238 \\
                 9.6 One-Line Programs in awk / 240 \\
                 9.7 Statements / 244 \\
                 9.8 User-Defined Functions / 252 \\
                 9.9 String Functions / 255 \\
                 9.10 Numeric Functions / 264 \\
                 9.11 Summary / 266 \\
                 10 Working with Files / 267 \\
                 10.1 Listing Files / 267 \\
                 10.2 Updating Modification Times with touch / 273 \\
                 10.3 Creating and Using Temporary Files / 274 \\
                 10.4 Finding Files / 279 \\
                 10.5 Running Commands: xargs / 293 \\
                 10.6 Filesystem Space Information / 295 \\
                 10.7 Comparing Files / 299 \\
                 10.8 Summary / 307 \\
                 11 Extend Example: Merging User Databases / 308 \\
                 11.1 The Problem / 308 \\
                 11.2 The Password Files / 309 \\
                 11.3 Merging Password Files / 310 \\
                 11.4 Changing File Ownership / 317 \\
                 11.5 Other Real-World Issues / 321 \\
                 11.6 Summary / 323 \\
                 12 Spellchecking / 325 \\
                 12.1 The spell Program / 325 \\
                 12.2 The Original Unix Spellchecking Prototype / 326
                 \\
                 12.3 Improving ispell and aspell / 327 \\
                 12.4 A Spellchecker in awk / 331 \\
                 12.5 Summary / 350 \\
                 13 Processes / 352 \\
                 13.1 Process Creation / 353 \\
                 13.2 Process Listing / 354 \\
                 13.3 Process Control and Deletion / 360 \\
                 13.4 Process System-Call Tracing / 368 \\
                 13.5 Process Accounting / 372 \\
                 13.6 Delayed Scheduling of Processes / 373 \\
                 13.7 The /proc Filesystem / 378 \\
                 13.8 Summary / 379 \\
                 14 Shell Portability Issues and Extensions / 381 \\
                 14.1 Gotchas / 381 \\
                 14.2 The bash shopt Command / 385 \\
                 14.3 Common Extensions / 389 \\
                 14.4 Download Information / 402 \\
                 14.5 Other Extended Bourne-Style Shells / 405 \\
                 14.6 Shell Versions / 405 \\
                 14.7 Shell Initialization and Termination / 406 \\
                 14.8 Summary / 412 \\
                 15 Secure Shell Scripts: Getting Started / 413 \\
                 15.1 Tips for Secure Shell Scripts / 413 \\
                 15.2 Restricted Shell / 416 \\
                 15.3 Trojan Horses / 418 \\
                 15.4 Setuid Shell Scripts: A Bad Idea / 419 \\
                 15.5 ksh93 and Privileged Mode / 21 \\
                 15.6 Summary / 422 \\
                 A Writing Manual Pages / 423 \\
                 B Files and Filesystems / 437 \\
                 C Important Unix Commands / 473 \\
                 Bibliography / 478 \\
                 Glossary / 484 \\
                 Index / 509",
  xxnote =       "Also available in Chinese \cite{Robbins:2008:SJB},
                 French \cite{Robbins:2005:ISS}, German
                 \cite{Robbins:2006:KSP}, Japanese
                 \cite{Robbins:2006:SSS}, and Polish
                 \cite{Robbins:2006:PSP} translations.",
}

@Article{Schoenmeyr:2005:FBA,
  author =       "Tor Schoenmeyr and David Yu Zhang",
  title =        "{FFT}-based algorithms for the string matching with
                 mismatches problem",
  journal =      j-J-ALG,
  volume =       "57",
  number =       "2",
  pages =        "130--139",
  month =        nov,
  year =         "2005",
  CODEN =        "JOALDV",
  DOI =          "https://doi.org/10.1016/j.jalgor.2005.01.001",
  ISSN =         "0196-6774 (print), 1090-2678 (electronic)",
  ISSN-L =       "0196-6774",
  bibdate =      "Tue Dec 11 09:22:15 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jalg.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0196677405000180",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Algorithms",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01966774",
}

@Article{Tan:2005:HTS,
  author =       "Lin Tan and Timothy Sherwood",
  title =        "A High Throughput String Matching Architecture for
                 Intrusion Detection and Prevention",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "33",
  number =       "2",
  pages =        "112--122",
  month =        may,
  year =         "2005",
  CODEN =        "CANED2",
  ISSN =         "0163-5964 (ACM), 0884-7495 (IEEE)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:51 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigarch.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@InProceedings{Tao:2005:MPM,
  author =       "Tao Tao and A. Mukherjee",
  title =        "Multiple-pattern matching in {LZW} compressed files
                 using {Aho--Corasick} algorithm",
  crossref =     "Storer:2005:DCC",
  pages =        "??--??",
  year =         "2005",
  DOI =          "https://doi.org/10.1109/DCC.2005.55",
  bibdate =      "Tue Feb 5 08:48:53 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1402239",
  acknowledgement = ack-nhfb,
}

@Article{Tao:2005:PML,
  author =       "T. Tao and Amar Mukherjee",
  title =        "Pattern matching in {LZW} compressed files",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "54",
  number =       "8",
  pages =        "929--938",
  month =        aug,
  year =         "2005",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.2005.133",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Mon Jul 4 16:17:18 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/ieeetranscomput2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1453495",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Tian:2005:PMC,
  author =       "Yuanyuan Tian and Sandeep Tata and Richard A. Hankins
                 and Jignesh M. Patel",
  title =        "Practical methods for constructing suffix trees",
  journal =      j-VLDB-J,
  volume =       "14",
  number =       "3",
  pages =        "281--299",
  month =        sep,
  year =         "2005",
  CODEN =        "VLDBFR",
  DOI =          "https://doi.org/10.1007/s00778-005-0154-8",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Mon Jun 23 10:51:16 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0938-1287&volume=14&issue=3;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0938-1287&volume=14&issue=3&spage=281",
  abstract =     "Sequence datasets are ubiquitous in modern
                 life-science applications, and querying sequences is a
                 common and critical operation in many of these
                 applications. The suffix tree is a versatile data
                 structure that can be used to evaluate a wide variety
                 of queries on sequence datasets, including evaluating
                 exact and approximate string matches, and finding
                 repeat patterns. However, methods for constructing
                 suffix trees are often very time-consuming, especially
                 for suffix trees that are large and do not fit in the
                 available main memory. Even when the suffix tree fits
                 in memory, it turns out that the processor cache
                 behavior of theoretically optimal suffix tree
                 construction methods is poor, resulting in poor
                 performance. Currently, there are a large number of
                 algorithms for constructing suffix trees, but the
                 practical tradeoffs in using these algorithms for
                 different scenarios are not well characterized. In this
                 paper, we explore suffix tree construction algorithms
                 over a wide spectrum of data sources and sizes. First,
                 we show that on modern processors, a cache-efficient
                 algorithm with {$ O(n^2) $} worst-case complexity
                 outperforms popular linear time algorithms like Ukkonen
                 and McCreight, even for in-memory construction. For
                 larger datasets, the disk I/O requirement quickly
                 becomes the bottleneck in each algorithm's performance.
                 To address this problem, we describe two approaches.
                 First, we present a buffer management strategy for the
                 {$ O(n^2) $} algorithm. The resulting new algorithm,
                 which we call ``Top Down Disk-based'' (TDD), scales to
                 sizes much larger than have been previously described
                 in literature. This approach far outperforms the best
                 known disk-based construction methods. Second, we
                 present a new disk-based suffix tree construction
                 algorithm that is based on a sort-merge paradigm, and
                 show that for constructing very large suffix trees with
                 very little resources, this algorithm is more efficient
                 than TDD.",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
  keywords =     "sequence matching; suffix tree construction",
}

@Article{Ager:2006:FPE,
  author =       "Mads Sig Ager and Olivier Danvy and Henning Korsholm
                 Rohde",
  title =        "Fast partial evaluation of pattern matching in
                 strings",
  journal =      j-TOPLAS,
  volume =       "28",
  number =       "4",
  pages =        "696--714",
  month =        jul,
  year =         "2006",
  CODEN =        "ATPSDT",
  DOI =          "https://doi.org/10.1145/1146809.1146812",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Wed Aug 23 15:21:57 MDT 2006",
  bibsource =    "http://www.acm.org/pubs/contents/journals/toplas/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toplas.bib",
  abstract =     "We show how to obtain all of Knuth, Morris, and
                 Pratt's linear-time string matcher by specializing a
                 quadratic-time string matcher with respect to a pattern
                 string. Although it has been known for fifteen years
                 how to obtain this linear matcher by partial evaluation
                 of a quadratic one, how to obtain it in linear time has
                 remained an open problem. Obtaining a linear matcher by
                 the partial evaluation of a quadratic one is achieved
                 by performing its backtracking at specialization time
                 and memoizing its results. We show (1) how to rewrite
                 the source matcher such that its static intermediate
                 computations can be shared at specialization time and
                 (2) how to extend the memoization capabilities of a
                 partial evaluator to static functions. Such an extended
                 partial evaluator, if its memoization is implemented
                 efficiently, specializes the rewritten source matcher
                 in linear time. Finally, we show that the method also
                 applies to a variant of Boyer and Moore's string
                 matcher.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@Article{Amir:2006:FTD,
  author =       "Amihood Amir and Oren Kapah and Dekel Tsur",
  title =        "Faster two-dimensional pattern matching with
                 rotations",
  journal =      j-THEOR-COMP-SCI,
  volume =       "368",
  number =       "3",
  pages =        "196--204",
  day =          "10",
  month =        dec,
  year =         "2006",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Mar 29 08:55:30 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2005.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Amir:2006:SME,
  author =       "Amihood Amir and Estrella Eisenberg and Ely Porat",
  title =        "Swap and mismatch edit distance",
  journal =      j-ALGORITHMICA,
  volume =       "45",
  number =       "1",
  pages =        "109--120",
  month =        mar,
  year =         "2006",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-005-1192-8",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Wed Jul 9 22:25:02 MDT 2008",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=45&issue=1;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=45&issue=1&spage=109",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
  keywords =     "Approximate pattern matching; Edit distance; Hamming
                 distance; Key Words; Swap matching",
}

@Article{Atkinson:2006:EPM,
  author =       "Darren C. Atkinson and William G. Griswold",
  title =        "Effective pattern matching of source code using
                 abstract syntax patterns",
  journal =      j-SPE,
  volume =       "36",
  number =       "4",
  pages =        "413--447",
  month =        "????",
  year =         "2006",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.704",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Tue Mar 14 11:39:21 MST 2006",
  bibsource =    "http://www.interscience.wiley.com/jpages/0038-0644;
                 http://www3.interscience.wiley.com/journalfinder.html;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.cse.scu.edu/~atkinson/papers/spe-06.html",
  abstract =     "Program understanding can be assisted by tools that
                 match patterns in the program source. Lexical pattern
                 matchers provide excellent performance and ease of use,
                 but have a limited vocabulary. Syntactic matchers
                 provide more precision, but may sacrifice performance,
                 robustness, or power. To achieve more of the benefits
                 of both models, we extend the pattern syntax of AWK to
                 support matching of abstract syntax trees, as
                 demonstrated in a tool called TAWK. Its pattern syntax
                 is language-independent, based on abstract tree
                 patterns. As in AWK, patterns can have associated
                 actions, which in TAWK are written in C for generality,
                 familiarity, and performance. The use of C is
                 simplified by high-level libraries and dynamic linking.
                 To allow processing of program files containing
                 non-syntactic constructs such as textual macros,
                 mechanisms have been designed that allow matching of
                 language-like macros in a syntactic fashion. We survey
                 and apply prototypical approaches to concretely
                 demonstrate the tradeoffs in program processing. Our
                 results indicate that TAWK can be used to quickly and
                 easily perform a variety of common software engineering
                 tasks, and the extensions to accommodate non-syntactic
                 features significantly extend the generality of
                 syntactic matchers.",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "abstract syntax trees; call-graphs; pattern matching;
                 program analysis; program understanding",
  onlinedate =   "13 Dec 2005",
}

@Article{Bansal:2006:AGP,
  author =       "Sorav Bansal and Alex Aiken",
  title =        "Automatic generation of peephole superoptimizers",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "394--403",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168918.1168906",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Peephole optimizers are typically constructed using
                 human-written pattern matching rules, an approach that
                 requires expertise and time, as well as being less than
                 systematic at exploiting all opportunities for
                 optimization. We explore fully automatic construction
                 of peephole optimizers using brute force
                 superoptimization. While the optimizations discovered
                 by our automatic system may be less general than
                 human-written counterparts, our approach has the
                 potential to automatically learn a database of
                 thousands to millions of optimizations, in contrast to
                 the hundreds found in current peephole optimizers. We
                 show experimentally that our optimizer is able to
                 exploit performance opportunities not found by existing
                 compilers; in particular, we show speedups from 1.7 to
                 a factor of 10 on some compute intensive kernels over a
                 conventional optimizing compiler.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "code selection; peephole optimization;
                 superoptimization",
}

@Article{Ben-Amram:2006:BSL,
  author =       "Amir M. Ben-Amram and Holger Petersen",
  title =        "Backing up in singly linked lists",
  journal =      j-J-ACM,
  volume =       "53",
  number =       "4",
  pages =        "681--705",
  month =        jul,
  year =         "2006",
  CODEN =        "JACOAH",
  DOI =          "https://doi.org/10.1145/1162349.1162353",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Thu Sep 21 07:53:28 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We show how to reduce the time overhead for
                 implementing two-way movement on a singly linked list
                 to {$ O(n^\epsilon) $} per operation without modifying
                 the list and without making use of storage other than a
                 finite number of pointers into the list. We also prove
                 a matching lower bound. These results add precision to
                 the intuitive feeling that doubly linked lists are more
                 efficient than singly linked lists, and quantify the
                 efficiency gap in a read-only situation. We further
                 analyze the number of points of access into the list
                 (pointers) necessary for obtaining a desired value of $
                 \epsilon $. We obtain tight tradeoffs which also
                 separate the amortized and worst-case settings. Our
                 upper bound implies that read-only programs with
                 singly-linked input can do string matching much faster
                 than previously expected.",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
}

@Article{Bird:2006:BSE,
  author =       "Steven Bird and James R. Curran",
  title =        "Building a search engine to drive problem-based
                 learning",
  journal =      j-SIGCSE,
  volume =       "38",
  number =       "3",
  pages =        "153--157",
  month =        sep,
  year =         "2006",
  CODEN =        "SIGSD3",
  DOI =          "https://doi.org/10.1145/1140123.1140166",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:28 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigcse2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Search engines pervade the digital world, mediating
                 most access to information instantaneously. We have
                 found that students can build search engine components,
                 and even entire search engines, in the context of
                 problem-based learning in introductory and intermediate
                 computer science courses. The courses cover a broad
                 range of topics in algorithms, data structures, and web
                 design, with a heavy emphasis on programming.
                 Additionally, the internet is coupled with the syllabus
                 at many places, from web design and HTML to graph
                 algorithms and pattern matching. This connection
                 enlivens the discussion of otherwise dry topics like
                 searching, sorting, indexing and hashing. Moreover, the
                 challenge of web-scale computing motivates the
                 continuing students in their later study of formal
                 topics like algorithmic complexity, while
                 non-continuing students acquire transferable analytical
                 skills. We report on the experience in search engine
                 projects for driving problem-based learning in computer
                 science courses, for both high school and university
                 students. Our experience shows that such projects are
                 effective in both introductory and intermediate
                 courses, and readily encompass student groups with
                 diverse programming abilities.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Blume:2006:EPF,
  author =       "Matthias Blume and Umut A. Acar and Wonseok Chae",
  title =        "Extensible programming with first-class cases",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "239--250",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159836",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We present language mechanisms for polymorphic,
                 extensible records and their exact dual, polymorphic
                 sums with extensible first-class cases. These features
                 make it possible to easily extend existing code with
                 new cases. In fact, such extensions do not require any
                 changes to code that adheres to a particular
                 programming style. Using that style, individual
                 extensions can be written independently and later be
                 composed to form larger components. These language
                 mechanisms provide a solution to the expression
                 problem. We study the proposed mechanisms in the
                 context of an implicitly typed, purely functional
                 language PolyR. We give a type system for the language
                 and provide rules for a 2-phase transformation: first
                 into an explicitly typed \lambda -calculus with record
                 polymorphism, and finally to efficient index-passing
                 code. The first phase eliminates sums and cases by
                 taking advantage of the duality with records. We
                 implement a version of PolyR extended with imperative
                 features and pattern matching --- we call this language
                 MLPolyR. Programs in MLPolyR require no type
                 annotations --- the implementation employs a
                 reconstruction algorithm to infer all types. The
                 compiler generates machine code (currently for PowerPC)
                 and optimizes the representation of sums by eliminating
                 closures generated by the dual construction.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "duality; first-class cases; records; sums",
}

@Article{Brodie:2006:SAH,
  author =       "Benjamin C. Brodie and David E. Taylor and Ron K.
                 Cytron",
  title =        "A Scalable Architecture For High-Throughput
                 Regular-Expression Pattern Matching",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "34",
  number =       "2",
  pages =        "191--202",
  year =         "2006",
  CODEN =        "CANED2",
  ISSN =         "0163-5964 (ACM), 0884-7495 (IEEE)",
  ISSN-L =       "0163-5964",
  bibdate =      "Mon Aug 21 15:00:05 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigarch.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@Article{Cantone:2006:SEB,
  author =       "Domenico Cantone and Simone Faro",
  title =        "A Space Efficient Bit-Parallel Algorithm for the
                 Multiple String Matching Problem",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "17",
  number =       "6",
  pages =        "1235--1251",
  month =        dec,
  year =         "2006",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054106004388",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Tue Aug 31 07:37:14 MDT 2010",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Chazottes:2006:APM,
  author =       "Jean-Rene Chazottes and Frank Redig and Evgeny
                 Verbitskiy",
  title =        "On approximate pattern matching for a class of {Gibbs}
                 random fields",
  journal =      j-ANN-APPL-PROBAB,
  volume =       "16",
  number =       "2",
  pages =        "670--684",
  month =        may,
  year =         "2006",
  CODEN =        "????",
  ISSN =         "1050-5164",
  ISSN-L =       "1050-5164",
  bibdate =      "Fri Jun 6 11:37:51 MDT 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/annapplprobab.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://projecteuclid.org/euclid.aoap/1151592247",
  acknowledgement = ack-nhfb,
  fjournal =     "Annals of Applied Probability",
  journal-URL =  "http://projecteuclid.org/all/euclid.aoap/;
                 http://www.jstor.org/journals/10505164.html",
}

@Article{Cleophas:2006:TRA,
  author =       "Loek Cleophas and Kees Hemerik and Gerard Zwaan",
  title =        "Two Related Algorithms for Root-To-Frontier Tree
                 Pattern Matching",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "17",
  number =       "6",
  pages =        "1253--1272",
  month =        dec,
  year =         "2006",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S012905410600439X",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Tue Aug 31 07:37:14 MDT 2010",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Cohen:2006:JJTa,
  author =       "Tal Cohen and Joseph (Yossi) Gil and Itay Maman",
  title =        "{JTL}: the {Java} tools language",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "10",
  pages =        "89--108",
  month =        oct,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1167515.1167481",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:47:35 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We present an overview of JTL (the Java Tools
                 Language, pronounced 'Gee-tel'), a novel language for
                 querying JAVA [8] programs. JTL was designed to serve
                 the development of source code software tools for JAVA,
                 and as a small language which to aid programming
                 language extensions to JAVA. Applications include
                 definition of pointcuts for aspect-oriented
                 programming, fixing type constraints for generic
                 programming, specification of encapsulation policies,
                 definition of micro-patterns, etc. We argue that the
                 JTL expression of each of these is systematic, concise,
                 intuitive and general. JTL relies on a simply-typed
                 relational database for program representation, rather
                 than an abstract syntax tree. The underlying semantics
                 of the language is restricted to queries formulated in
                 First Order Predicate Logic augmented with transitive
                 closure (FOPL). Special effort was taken to ensure
                 terse, yet readable expression of logical conditions.
                 The JTL pattern public abstract class, for example,
                 matches all abstract classes which are publicly
                 accessible, while class (public clone();) matches all
                 classes in which method clone is public. To this end,
                 JTL relies on a DATALOG-like syntax and semantics,
                 enriched with quantifiers and pattern matching which
                 all but entirely eliminate the need for recursive
                 calls. JTL's query analyzer gives special attention to
                 the fragility of the 'closed world assumption' in
                 examining JAVA software, and determines whether a query
                 relies on such an assumption. The performance of the
                 JTL interpreter is comparable to that of JQuery after
                 it generated its database cache, and at least an order
                 of magnitude faster when the cache has to be rebuilt.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  keywords =     "declarative programming; reverse engineering",
}

@Article{Danvy:2006:OBM,
  author =       "Olivier Danvy and Henning Korsholm Rohde",
  title =        "On obtaining the {Boyer--Moore} string-matching
                 algorithm by partial evaluation",
  journal =      j-INFO-PROC-LETT,
  volume =       "99",
  number =       "4",
  pages =        "158--162",
  day =          "31",
  month =        aug,
  year =         "2006",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 18:41:12 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Deorowicz:2006:STI,
  author =       "Sebastian Deorowicz",
  title =        "Speeding up transposition-invariant string matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "100",
  number =       "1",
  pages =        "14--20",
  day =          "16",
  month =        oct,
  year =         "2006",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 15:52:27 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Ducasse:2006:ECD,
  author =       "St{\'e}phane Ducasse and Oscar Nierstrasz and Matthias
                 Rieger",
  title =        "On the effectiveness of clone detection by string
                 matching",
  journal =      j-J-SOFTW-MAINT-EVOL,
  volume =       "18",
  number =       "1",
  pages =        "37--58",
  month =        jan,
  year =         "2006",
  CODEN =        "JSMECT",
  DOI =          "https://doi.org/10.1002/smr.317",
  ISSN =         "1532-060X (print), 1532-0618 (electronic)",
  ISSN-L =       "1532-060X",
  bibdate =      "Wed Jan 31 10:00:17 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsoftwmaintevol.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Software Maintenance and Evolution:
                 Research and Practice",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)2047-7481",
}

@Article{Farfeleder:2006:ECG,
  author =       "Stefan Farfeleder and Andreas Krall and Edwin Steiner
                 and Florian Brandner",
  title =        "Effective compiler generation by architecture
                 description",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "7",
  pages =        "145--152",
  month =        jul,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1134650.1134671",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:44:55 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Embedded systems have an extremely short time to
                 market and therefore require easily retargetable
                 compilers. Architecture description languages (ADLs)
                 provide a single concise architecture specification for
                 the generation of hardware, instruction set simulators
                 and compilers. In this article, we present an ADL for
                 compiler generation. From a specification, we can
                 derive an optimized tree pattern matching instruction
                 selector, a register allocator and an instruction
                 scheduler. Compared to a hand-crafted back end, the
                 generated compiler produces smaller and faster code.
                 The ADL is rich enough that other tools, such as
                 assemblers, linkers, simulators and documentation, can
                 all be obtained from a single specification.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "architecture description language; code generation;
                 compiler generation",
}

@Article{Fredriksson:2006:EPS,
  author =       "Kimmo Fredriksson and Maxim Mozgovoy",
  title =        "Efficient parameterized string matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "100",
  number =       "3",
  pages =        "91--96",
  day =          "15",
  month =        nov,
  year =         "2006",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 15:52:29 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Fredriksson:2006:LAS,
  author =       "Kimmo Fredriksson",
  title =        "On-line Approximate String Matching in Natural
                 Language",
  journal =      j-FUND-INFO,
  volume =       "72",
  number =       "4",
  pages =        "453--466",
  month =        sep,
  year =         "2006",
  CODEN =        "FUMAAJ",
  ISSN =         "0169-2968 (print), 1875-8681 (electronic)",
  ISSN-L =       "0169-2968",
  bibdate =      "Sat Mar 5 17:04:34 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fundinfo2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://content.iospress.com/articles/fundamenta-informaticae/fi72-4-02;
                 http://www.cs.uku.fi/~fredriks/pub/papers/fi06.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Fundamenta Informaticae",
  journal-URL =  "http://content.iospress.com/journals/fundamenta-informaticae",
}

@Book{Friedl:2006:MRE,
  author =       "Jeffrey E. F. Friedl",
  title =        "Mastering regular expressions",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Third",
  pages =        "xxiv + 515",
  year =         "2006",
  ISBN =         "0-596-52812-4 (paperback)",
  ISBN-13 =      "978-0-596-52812-6 (paperback)",
  LCCN =         "QA76.9.T48 F75 2006",
  bibdate =      "Mon Aug 4 15:33:41 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.loc.gov/catdir/enhancements/fy0715/2007272426-d.html;
                 http://www.oreilly.com/catalog/9780596528126",
  abstract =     "A regular expression (regex) is a pattern that
                 describes a set of strings. Regular expressions are
                 used for advanced context-sensitive searches (e.g.
                 parsing data streams, data mining) and text
                 modifications. They can be found in many advanced
                 editors (e.g. vi, Emacs), in parser programs (e.g.
                 grep) and in languages (e.g. Perl), mostly in a UNIX
                 environment. This book is the standard work on
                 regexes.",
  acknowledgement = ack-nhfb,
  subject =      "text processing (computer science); perl (computer
                 program language); computer programming",
}

@Article{Frisch:2006:OX,
  author =       "Alain Frisch",
  title =        "{OCaml} + {XDuce}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "192--200",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159829",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This paper presents the core type system and type
                 inference algorithm of OCamlDuce, a merger between
                 OCaml and XDuce. The challenge was to combine two type
                 checkers of very different natures while preserving the
                 best properties of both (principality and automatic
                 type reconstruction on one side; very precise types and
                 implicit subtyping on the other side). Type inference
                 can be described by two successive passes: the first
                 one is an ML-like unification-based algorithm which
                 also extracts data flow constraints about XML values;
                 the second one is an XDuce-like algorithm which
                 computes XML types in a direct way. An optional
                 preprocessing pass, called strengthening, can be added
                 to allow more implicit use of XML subtyping. This pass
                 is also very similar to an ML type checker.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "CDuce; OCaml; regular expression types; type
                 inference; XDuce; XML",
}

@Article{Gramm:2006:PMA,
  author =       "Jens Gramm and Jiong Guo and Rolf Niedermeier",
  title =        "Pattern matching for arc-annotated sequences",
  journal =      j-TALG,
  volume =       "2",
  number =       "1",
  pages =        "44--65",
  month =        jan,
  year =         "2006",
  CODEN =        "????",
  ISSN =         "1549-6325 (print), 1549-6333 (electronic)",
  ISSN-L =       "1549-6325",
  bibdate =      "Fri May 26 08:40:43 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talg.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Algorithms (TALG)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J982",
}

@Article{Gustafsson:2006:EMB,
  author =       "Per Gustafsson and Konstantinos Sagonas",
  title =        "Efficient manipulation of binary data using pattern
                 matching",
  journal =      j-J-FUNCT-PROGRAM,
  volume =       "16",
  number =       "1",
  pages =        "35--74",
  month =        jan,
  year =         "2006",
  CODEN =        "JFPRES",
  DOI =          "https://doi.org/10.1017/S0956796805005745",
  ISSN =         "0956-7968 (print), 1469-7653 (electronic)",
  ISSN-L =       "0956-7968",
  bibdate =      "Tue Jul 11 18:07:45 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jfunctprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.cambridge.org/core/product/5FC43829285903225B3BD0A52B1AD975",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Funct. Program.",
  fjournal =     "Journal of Functional Programming",
  journal-URL =  "http://journals.cambridge.org/action/displayJournal?jid=JFP",
  onlinedate =   "12 September 2005",
}

@Article{Han:2006:IFR,
  author =       "Yo-Sub Han and Yajun Wang and Derick Wood",
  title =        "Infix-Free Regular Expressions and Languages",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "17",
  number =       "2",
  pages =        "379--??",
  month =        apr,
  year =         "2006",
  CODEN =        "IFCSEN",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Wed Aug 23 09:03:17 MDT 2006",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Hosaya:2006:REF,
  author =       "Haruo Hosaya",
  title =        "Regular expression filters for {XML}",
  journal =      j-J-FUNCT-PROGRAM,
  volume =       "16",
  number =       "6",
  pages =        "711--750",
  month =        nov,
  year =         "2006",
  CODEN =        "JFPRES",
  DOI =          "https://doi.org/10.1017/S0956796806005909",
  ISSN =         "0956-7968 (print), 1469-7653 (electronic)",
  ISSN-L =       "0956-7968",
  bibdate =      "Tue Jul 11 18:07:48 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jfunctprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.cambridge.org/core/product/F27B4BABC2160A54AF14D9B76D6CC999",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Funct. Program.",
  fjournal =     "Journal of Functional Programming",
  journal-URL =  "http://journals.cambridge.org/action/displayJournal?jid=JFP",
  onlinedate =   "09 June 2006",
}

@Article{Huynh:2006:ASM,
  author =       "Trinh N. D. Huynh and Wing-Kai Hon and Tak-Wah Lam and
                 Wing-Kin Sung",
  title =        "Approximate string matching using compressed suffix
                 arrays",
  journal =      j-THEOR-COMP-SCI,
  volume =       "352",
  number =       "1--3",
  pages =        "240--249",
  day =          "7",
  month =        mar,
  year =         "2006",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Mar 29 06:48:56 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2005.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Book{Kahrel:2006:AIR,
  author =       "Peter Kahrel",
  title =        "Automating {InDesign} with regular expressions",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  year =         "2006",
  ISBN =         "0-596-52937-6",
  ISBN-13 =      "978-0-596-52937-6",
  LCCN =         "Z253.532.A34; Z253.532.A34 K34 2006eb",
  bibdate =      "Tue Aug 5 18:11:25 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 melvyl.cdlib.org:210/CDL90",
  URL =          "http://www.oreilly.com/catalog/9780596529376",
  acknowledgement = ack-nhfb,
  subject =      "Adobe InDesign; Desktop publishing; JavaScript
                 (Computer program language)",
}

@Article{Kaminski:2006:REL,
  author =       "Michael Kaminski and Tony Tan",
  title =        "Regular Expressions for Languages over Infinite
                 Alphabets",
  journal =      j-FUND-INFO,
  volume =       "69",
  number =       "3",
  pages =        "301--318",
  month =        feb,
  year =         "2006",
  CODEN =        "FUMAAJ",
  ISSN =         "0169-2968 (print), 1875-8681 (electronic)",
  ISSN-L =       "0169-2968",
  bibdate =      "Sat Mar 5 17:04:00 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fundinfo2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Fundamenta Informaticae",
  journal-URL =  "http://content.iospress.com/journals/fundamenta-informaticae",
}

@Article{Kawahito:2006:NIR,
  author =       "Motohiro Kawahito and Hideaki Komatsu and Takao
                 Moriyama and Hiroshi Inoue and Toshio Nakatani",
  title =        "A new idiom recognition framework for exploiting
                 hardware-assist instructions",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "382--393",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168917.1168905",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Modern processors support hardware-assist instructions
                 (such as TRT and TROT instructions on IBM zSeries) to
                 accelerate certain functions such as delimiter search
                 and character conversion. Such special instructions
                 have often been used in high performance libraries, but
                 they have not been exploited well in optimizing
                 compilers except for some limited cases. We propose a
                 new idiom recognition technique derived from a
                 topological embedding algorithm [4] to detect idiom
                 patterns in the input program more aggressively than in
                 previous approaches. Our approach can detect a pattern
                 even if the code segment does not exactly match the
                 idiom. For example, we can detect a code segment that
                 includes additional code within the idiom pattern. We
                 implemented our new idiom recognition approach based on
                 the Java Just-In-Time (JIT) compiler that is part of
                 the J9 Java Virtual Machine, and we supported several
                 important idioms for special hardware-assist
                 instructions on the IBM zSeries and on some models of
                 the IBM pSeries. To demonstrate the effectiveness of
                 our technique, we performed two experiments. The first
                 one is to see how many more patterns we can detect
                 compared to the previous approach. The second one is to
                 see how much performance improvement we can achieve
                 over the previous approach. For the first experiment,
                 we used the Java Compatibility Kit (JCK) API tests. For
                 the second one we used IBM XML parser, SPECjvm98, and
                 SPCjbb2000. In summary, relative to a baseline
                 implementation using exact pattern matching, our
                 algorithm converted 75\% more loops in JCK tests. We
                 also observed significant performance improvement of
                 the XML parser by 64\%, of SPECjvm98 by 1\%, and of
                 SPECjbb2000 by 2\% on average on a z990. Finally, we
                 observed the JIT compilation time increases by only
                 0.32\% to 0.44\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "hardware-assist instructions; idiom recognition; Java;
                 JIT; topological embedding; VMX",
}

@Article{Kawanaka:2006:BBT,
  author =       "Shinya Kawanaka and Haruo Hosoya",
  title =        "{biXid}: a bidirectional transformation language for
                 {XML}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "9",
  pages =        "201--214",
  month =        sep,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1160074.1159830",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:46:22 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Often, independent organizations define and advocate
                 different XML formats for a similar purpose and, as a
                 result, application programs need to mutually convert
                 between such formats. Existng XML transformation
                 languages, such as XSLT and XDuce, are unsatisfactory
                 for this purpose since we would have to write, e.g.,
                 two programs for the forward and the backward
                 transformations in case of two formats, incur high
                 developing and maintenance costs. This paper proposes
                 the bidirectional XML transformation language biXid,
                 allowing us to write only one program for both
                 directions of conversion. Our language adopts a common
                 paradigm programming-by-relation, where a program
                 defines a relation over documents and transforms a
                 document to another in a way satisfying this relation.
                 Our contributions here are specific language features
                 for facilitating realistic conversions whose target
                 formats are loosely in parallel but have many
                 discrepancies in details. Concretely, we (1) adopt
                 XDuce-style regular expression patterns for describing
                 and analyzing XML structures, (2) fully permit
                 ambiguity for treating formats that do not have
                 equivalent expressivenesses, and (3) allow non-linear
                 pattern variables for expressing non-trivial
                 transformations that cannot be written only with linear
                 patterns, such as conversion between unordered and
                 ordered data. We further develop an efficient
                 evaluation algorithm for biXid, consisting of the
                 'parsing' phase that transforms the input document to
                 an intermediate 'parse tree' structure and the
                 'unparsing' phase that transforms it to an output
                 document. Both phases use a variant of finite tree
                 automata for performing a one-pass scan on the input or
                 the parse tree by using a standard technique that
                 'maintains the set of all transitable states.' However,
                 the construction of the 'unparsing' phase is
                 challenging since ambiguity causes different ways of
                 consuming the parse tree and thus results in multiple
                 possible outputs that may have different structures. We
                 have implemented a prototype system of biXid and
                 confirmed that it has enough expressiveness and a
                 linear-time performance from experiments with several
                 realistic bidirectional transformations including one
                 between vCard-XML and ContactXML.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "tree automata; XML",
}

@Article{Klein:2006:CPM,
  author =       "Shmuel T. Klein and Dana Shapira",
  title =        "Compressed Pattern Matching in {JPEG} Images",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "17",
  number =       "6",
  pages =        "1297--1306",
  month =        dec,
  year =         "2006",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S012905410600442X",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Tue Aug 31 07:37:14 MDT 2010",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Laird:2006:RER,
  author =       "Cameron Laird and Kathryn Soraiz",
  title =        "Regular Expressions: {Rexx} Still Going Strong",
  journal =      j-UNIX-REVIEW,
  volume =       "??",
  number =       "??",
  pages =        "??--??",
  month =        jan,
  year =         "2006",
  CODEN =        "UNRED5",
  ISSN =         "0742-3136",
  bibdate =      "Fri Jan 27 14:54:59 2006",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.unixreview.com/documents/s=9953/ur0601h/ur0601h.html",
  acknowledgement = ack-nhfb,
  fjournal =     "UNIX review",
}

@Article{Lenka:2006:SML,
  author =       "Dillip Kumar Lenka and Pawan Kumar",
  title =        "States merging in {LR} parser",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "4",
  pages =        "24--29",
  month =        apr,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1147214.1147219",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:17 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Here a scheme is presented, which reduces the size of
                 an LR parser. It is accomplished by merging two states,
                 which do not perform differently on the same input
                 symbol or non-terminal. This state merging has
                 following advantages:1. The reduction in number of
                 states is greater than the reduction in an LALR
                 parser.2. The power of parser is not reduced as it
                 would be in an LALR parser. The above merging scheme
                 has following disadvantages:1. Even erroneous inputs
                 are accepted. However, it is stopped by changing the
                 notion of acceptance.2. Errors are report late and in a
                 misleading manner.3. Parsing takes more time because
                 string matching is done during reduction.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Lu:2006:PFS,
  author =       "Shiyong Lu and Feng Cao and Yi Lu",
  title =        "{PAMA}: a Fast String Matching Algorithm",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "17",
  number =       "2",
  pages =        "357--378",
  month =        apr,
  year =         "2006",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054106003875",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Wed Aug 23 09:03:17 MDT 2006",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "String matching is a fundamental operation in computer
                 science, and its performance has great impact on many
                 applications including database query, text processing,
                 DNA and protein sequence analysis. In this paper, we
                 propose a fast string matching algorithm, PAMA (PAttern
                 MAtching). The shift rule used by PAMA not only
                 subsumes both the bad character rule and the good
                 suffix rule employed by the well-known Boyer--Moore
                 algorithm, but also employs an additional key
                 observation to enable faster shifting during the string
                 matching process. Theoretically, we prove that from the
                 same alignment, the next shift of PAMA will be at least
                 as much as that of the Boyer--Moore algorithm.
                 Experimentally, we show that PAMA indeed significantly
                 outperforms the original Boyer--Moore algorithm in
                 almost all cases, and outperforms other Boyer--Moore
                 variants such as Tuned-BM, Turbo-BM and Horspool for
                 long patterns (length $ \geq 128 $ ) or for small
                 alphabets (size $ < 8 $ ).",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Maass:2006:MSE,
  author =       "Moritz G. Maa{\ss}",
  title =        "Matching statistics: efficient computation and a new
                 practical algorithm for the multiple common substring
                 problem",
  journal =      j-SPE,
  volume =       "36",
  number =       "3",
  pages =        "305--331",
  month =        mar,
  year =         "2006",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.698",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Tue Mar 14 11:39:21 MST 2006",
  bibsource =    "http://www.interscience.wiley.com/jpages/0038-0644;
                 http://www3.interscience.wiley.com/journalfinder.html;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We present new algorithms for computing matching
                 statistics with suffix arrays. We show how the Multiple
                 Common Substring Problem can be solved efficiently in
                 practice with a new approach using matching statistics.
                 This problem consists of finding the common substrings
                 of a set of strings. For the computation of matching
                 statistics we compare seven different methods based on
                 suffix trees and suffix arrays. Most of the suffix
                 array algorithms have an inferior asymptotic worst case
                 running time but a very low memory overhead and small
                 constants in the running time complexity. Our
                 experiments show a good performance in practice.",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "algorithms and data structures; common substring
                 problem; matching statistics; pattern matching; suffix
                 array; suffix tree",
  onlinedate =   "22 Nov 2005",
}

@Article{Mann:2006:TBG,
  author =       "Paul B. Mann",
  title =        "A translational {BNF} grammar notation {(TBNF)}",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "4",
  pages =        "16--23",
  month =        apr,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1147214.1147218",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:42:17 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "BNF grammar notation came into existence about 1960
                 for the specification of programming languages. It was
                 first used for the automatic generation of parsers
                 about 1972. BNF was later replaced with EBNF offering
                 regular expression notation in the right side of
                 grammar rules. EBNF is powerful, however, it describes
                 only the recognition phase, which is only 1/3 of the
                 process of language translation. The second phase is
                 the construction of an abstract-syntax tree and the
                 third phase is the creation of an instruction code
                 sequence. Some parser generators automate the
                 construction of an AST, but none, that I know of,
                 automate the output of instruction codes. Certainly if
                 these second and third phases are to be automated, a
                 suitable notation is required in the grammar. This
                 paper proposes a notation that permits the construction
                 of the AST in the correct order and the creation of
                 instruction codes. In effect, the complete translation
                 process can be described in the grammar and correct
                 translators generated automatically. A working system
                 has been implemented and tested with good results. The
                 generator is called LRgen and the new grammar notation
                 is called TBNF.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "AST; BNF; compiler compiler; EBNF; grammar;
                 grammarware; intermediate code; LALR; language
                 recognition; LL; LR; parser; parser generator; syntax",
}

@Article{Navarro:2006:MIA,
  author =       "Gonzalo Navarro and Edgar Ch{\'a}vez",
  title =        "A metric index for approximate string matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "352",
  number =       "1--3",
  pages =        "266--279",
  day =          "7",
  month =        mar,
  year =         "2006",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Mar 29 06:48:56 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2005.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Nebel:2006:FSM,
  author =       "Markus E. Nebel",
  title =        "Fast string matching by using probabilities: {On} an
                 optimal mismatch variant of {Horspool}'s algorithm",
  journal =      j-THEOR-COMP-SCI,
  volume =       "359",
  number =       "1--3",
  pages =        "329--343",
  day =          "14",
  month =        aug,
  year =         "2006",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Mar 29 06:49:00 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2005.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Paul:2006:SSC,
  author =       "Souradyuti Paul and Bart Preneel",
  title =        "On the (In)security of Stream Ciphers Based on Arrays
                 and Modular Addition",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "4284",
  pages =        "69--83",
  year =         "2006",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/11935230_5",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Fri Mar 13 08:42:37 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cryptography2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/lncs2006a.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/content/pdf/10.1007/11935230_5.pdf",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/11935230",
  book-URL =     "http://www.springerlink.com/content/978-3-540-49476-8",
  fjournal =     "Lecture Notes in Computer Science",
}

@TechReport{Pike:2006:SRE,
  author =       "Rob Pike",
  title =        "Structural Regular Expressions",
  type =         "Report",
  institution =  inst-ATT-BELL,
  address =      inst-ATT-BELL:adr,
  pages =        "7",
  day =          "23",
  month =        mar,
  year =         "2006",
  bibdate =      "Mon Mar 04 17:08:47 2024",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  URL =          "https://doc.cat-v.org/bell_labs/structural_regexps/se.pdf",
  acknowledgement = ack-nhfb,
}

@Article{Plumlee:2006:ZVM,
  author =       "Matthew D. Plumlee and Colin Ware",
  title =        "Zooming versus multiple window interfaces: {Cognitive}
                 costs of visual comparisons",
  journal =      j-TOCHI,
  volume =       "13",
  number =       "2",
  pages =        "179--209",
  month =        jun,
  year =         "2006",
  CODEN =        "ATCIF4",
  DOI =          "https://doi.org/10.1145/1165734.1165736",
  ISSN =         "1073-0516 (print), 1557-7325 (electronic)",
  ISSN-L =       "1073-0516",
  bibdate =      "Sat Oct 7 09:34:20 MDT 2006",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tochi/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tochi.bib",
  abstract =     "In order to investigate large information spaces
                 effectively, it is often necessary to employ navigation
                 mechanisms that allow users to view information at
                 different scales. Some tasks require frequent movements
                 and scale changes to search for details and compare
                 them. We present a model that makes predictions about
                 user performance on such comparison tasks with
                 different interface options. A critical factor embodied
                 in this model is the limited capacity of visual working
                 memory, allowing for the cost of visits via fixating
                 eye movements to be compared to the cost of visits that
                 require user interaction with the mouse. This model is
                 tested with an experiment that compares a zooming user
                 interface with a multi-window interface for a
                 multiscale pattern matching task. The results closely
                 matched predictions in task performance times; however
                 error rates were much higher with zooming than with
                 multiple windows. We hypothesized that subjects made
                 more visits in the multi-window condition, and ran a
                 second experiment using an eye tracker to record the
                 pattern of fixations. This revealed that subjects made
                 far more visits back and forth between pattern
                 locations when able to use eye movements than they made
                 with the zooming interface. The results suggest that
                 only a single graphical object was held in visual
                 working memory for comparisons mediated by eye
                 movements, reducing errors by reducing the load on
                 visual working memory. Finally we propose a design
                 heuristic: extra windows are needed when visual
                 comparisons must be made involving patterns of a
                 greater complexity than can be held in visual working
                 memory.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Computer-Human Interaction",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J756",
}

@Article{Rao:2006:SXD,
  author =       "Praveen Rao and Bongki Moon",
  title =        "Sequencing {XML} data and query twigs for fast pattern
                 matching",
  journal =      j-TODS,
  volume =       "31",
  number =       "1",
  pages =        "299--345",
  month =        mar,
  year =         "2006",
  CODEN =        "ATDSD3",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Fri May 26 08:20:49 MDT 2006",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tods/;
                 https://www.math.utah.edu/pub/tex/bib/sgml2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
}

@Article{Salmela:2006:MSM,
  author =       "Leena Salmela and Jorma Tarhio and Jari Kyt{\"o}joki",
  title =        "Multipattern string matching with $q$-grams",
  journal =      j-ACM-J-EXP-ALGORITHMICS,
  volume =       "11",
  pages =        "1.1:1--1.1:??",
  month =        "????",
  year =         "2006",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1187436.1187438",
  ISSN =         "1084-6654",
  ISSN-L =       "1084-6654",
  bibdate =      "Mon Oct 6 16:06:20 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jea.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We present three algorithms for exact string matching
                 of multiple patterns. Our algorithms are filtering
                 methods, which apply $q$-grams and bit parallelism. We
                 ran extensive experiments with them and compared them
                 with various versions of earlier algorithms, e.g.,
                 different trie implementations of the Aho--Corasick
                 algorithm. All of our algorithms appeared to be
                 substantially faster than earlier solutions for sets of
                 1,000--10,000 patterns and the good performance of two
                 of them continues to 100,000 patterns. The gain is
                 because of the improved filtering efficiency caused by
                 $q$-grams.",
  acknowledgement = ack-nhfb,
  articleno =    "1.1",
  fjournal =     "Journal of Experimental Algorithmics (JEA)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J430",
  keywords =     "content scanning; intrusion detection; multiple string
                 matching",
}

@Article{Solar-Lezama:2006:CSF,
  author =       "Armando Solar-Lezama and Liviu Tancau and Rastislav
                 Bodik and Sanjit Seshia and Vijay Saraswat",
  title =        "Combinatorial sketching for finite programs",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "11",
  pages =        "404--415",
  month =        nov,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1168917.1168907",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:49:40 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/cryptography2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Sketching is a software synthesis approach where the
                 programmer develops a partial implementation --- a
                 sketch --- and a separate specification of the desired
                 functionality. The synthesizer then completes the
                 sketch to behave like the specification. The
                 correctness of the synthesized implementation is
                 guaranteed by the compiler, which allows, among other
                 benefits, rapid development of highly tuned
                 implementations without the fear of introducing bugs.
                 We develop SKETCH, a language for finite programs with
                 linguistic support for sketching. Finite programs
                 include many high-performance kernels, including
                 cryptocodes. In contrast to prior synthesizers, which
                 had to be equipped with domain-specific rules, SKETCH
                 completes sketches by means of a combinatorial search
                 based on generalized boolean satisfiability.
                 Consequently, our combinatorial synthesizer is complete
                 for the class of finite programs: it is guaranteed to
                 complete any sketch in theory, and in practice has
                 scaled to realistic programming problems. Freed from
                 domain rules, we can now write sketches as
                 simple-to-understand partial programs, which are
                 regular programs in which difficult code fragments are
                 replaced with holes to be filled by the synthesizer.
                 Holes may stand for index expressions, lookup tables,
                 or bitmasks, but the programmer can easily define new
                 kinds of holes using a single versatile synthesis
                 operator. We have used SKETCH to synthesize an
                 efficient implementation of the AES cipher standard.
                 The synthesizer produces the most complex part of the
                 implementation and runs in about an hour.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "SAT; sketching",
}

@Article{Tan:2006:BSS,
  author =       "Lin Tan and Brett Brotherton and Timothy Sherwood",
  title =        "Bit-split string-matching engines for intrusion
                 detection and prevention",
  journal =      j-TACO,
  volume =       "3",
  number =       "1",
  pages =        "3--34",
  month =        mar,
  year =         "2006",
  CODEN =        "????",
  ISSN =         "1544-3566 (print), 1544-3973 (electronic)",
  ISSN-L =       "1544-3566",
  bibdate =      "Thu May 18 08:38:26 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/taco.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Architecture and Code Optimization
                 (TACO)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J924",
}

@Article{Vansummeren:2006:TIU,
  author =       "Stijn Vansummeren",
  title =        "Type inference for unique pattern matching",
  journal =      j-TOPLAS,
  volume =       "28",
  number =       "3",
  pages =        "389--428",
  month =        may,
  year =         "2006",
  CODEN =        "ATPSDT",
  DOI =          "https://doi.org/10.1145/1133651.1133652",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Tue May 30 16:33:23 MDT 2006",
  bibsource =    "http://www.acm.org/pubs/contents/journals/toplas/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toplas.bib",
  abstract =     "Regular expression patterns provide a natural,
                 declarative way to express constraints on
                 semistructured data and to extract relevant information
                 from it. Indeed, it is a core feature of the
                 programming language Perl, surfaces in various UNIX
                 tools such as sed and awk, and has recently been
                 proposed in the context of the XML programming language
                 XDuce. Since regular expressions can be ambiguous in
                 general, different disambiguation policies have been
                 proposed to get a unique matching strategy. We formally
                 define the matching semantics under both (1) the POSIX,
                 and (2) the first and longest match disambiguation
                 strategies. We show that the generally accepted method
                 of defining the longest match in terms of the first
                 match and recursion does not conform to the natural
                 notion of longest match. We continue by solving the
                 type inference problem for both disambiguation
                 strategies, which consists of calculating the set of
                 all subparts of input values a subexpression can match
                 under the given policy.",
  acknowledgement = ack-nhfb,
  ajournal =     "ACM Trans. Program. Lang. Syst.",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@Article{Vouillon:2006:PRT,
  author =       "J{\'e}r{\^o}me Vouillon",
  title =        "Polymorphic regular tree types and patterns",
  journal =      j-SIGPLAN,
  volume =       "41",
  number =       "1",
  pages =        "103--114",
  month =        jan,
  year =         "2006",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1111037.1111047",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:39:41 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We propose a type system based on regular tree
                 grammars, where algebraic datatypes are interpreted in
                 a structural way. Thus, the same constructors can be
                 reused for different types and a flexible subtyping
                 relation can be defined between types, corresponding to
                 the inclusion of their semantics. For instance, one can
                 define a type for lists and a subtype of this type
                 corresponding to lists of even length. Patterns are
                 simply types annotated with binders. This provides a
                 generalization of algebraic patterns with the ability
                 of matching arbitrarily deep in a value. Our main
                 contribution, compared to languages such as XDuce and
                 CDuce, is that we are able to deal with both
                 polymorphism and function types.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "polymorphism; subtyping; tree automata",
}

@Article{Amir:2007:DTS,
  author =       "Amihood Amir and Gad M. Landau and Moshe Lewenstein
                 and Dina Sokol",
  title =        "Dynamic text and static pattern matching",
  journal =      j-TALG,
  volume =       "3",
  number =       "2",
  pages =        "19:1--19:??",
  month =        may,
  year =         "2007",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1240233.1240242",
  ISSN =         "1549-6325 (print), 1549-6333 (electronic)",
  ISSN-L =       "1549-6325",
  bibdate =      "Mon Jun 16 11:54:42 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talg.bib",
  abstract =     "In this article, we address a new version of dynamic
                 pattern matching. The dynamic text and static pattern
                 matching problem is the problem of finding a static
                 pattern in a text that is continuously being updated.
                 The goal is to report all new occurrences of the
                 pattern in the text after each text update. We present
                 an algorithm for solving the problem where the text
                 update operation is changing the symbol value of a text
                 location. Given a text of length $n$ and a pattern of
                 length $m$, our algorithm preprocesses the text in time
                 {$ O(n \log \log m) $}, and the pattern in time {$ O(m
                 \log m) $}. The extra space used is {$ O(n + m \log m)
                 $}. Following each text update, the algorithm deletes
                 all prior occurrences of the pattern that no longer
                 match, and reports all new occurrences of the pattern
                 in the text in {$ O(\log \log m) $} time. We note that
                 the complexity is not proportional to the number of
                 pattern occurrences, since all new occurrences can be
                 reported in a succinct form.",
  acknowledgement = ack-nhfb,
  articleno =    "19",
  fjournal =     "ACM Transactions on Algorithms (TALG)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J982",
  keywords =     "border trees; Dynamic text; static pattern",
}

@Article{Arbe:2007:FLT,
  author =       "Jos{\'e} Miguel Blanco Arbe and Ana S{\'a}nchez Ortega
                 and Jes{\'u}s Ib{\'a}{\~n}ez M{\'a}rtinez-Conde",
  title =        "Formal languages through {Web} forms and regular
                 expressions",
  journal =      j-SIGCSE,
  volume =       "39",
  number =       "4",
  pages =        "100--104",
  month =        dec,
  year =         "2007",
  CODEN =        "SIGSD3",
  DOI =          "https://doi.org/10.1145/1345375.1345424",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:39 MST 2012",
  bibsource =    "DBLP;
                 http://dblp.uni-trier.de/db/journals/sigcse/sigcse39.html#ArbeOM07;
                 http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigcse2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "ftp://ftp.math.utah.edu/pub/mirrors/ftp.ira.uka.de/bibliography/Misc/DBLP/2007.bib",
  abstract =     "We present a practical and up-to-date proposal to
                 teach formal languages. It takes advantage of frequent
                 use of regular-expressions to specify entry data forms
                 in different contexts and, particularly, in three-layer
                 web applications. Compared to more classical approaches
                 our method improves significantly the acquainting of
                 students with the immediate practical utility of the
                 concepts involved in formal language definition.
                 Students must develop code fragments based on
                 JavaScript notation of regular-expressions.
                 Accordingly, any web browser can be a suitable platform
                 for the execution of solutions. The experience has
                 proved to be effective and well-accepted by students
                 and teachers.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Avgustinov:2007:MTM,
  author =       "Pavel Avgustinov and Julian Tibble and Oege de Moor",
  title =        "Making trace monitors feasible",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "589--608",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297105.1297070",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "A trace monitor observes an execution trace at
                 runtime; when it recognises a specified sequence of
                 events, the monitor runs extra code. In the
                 aspect-oriented programming community, the idea
                 originated as a generalisation of the advice-trigger
                 mechanism: instead of matching on single events
                 (joinpoints), one matches on a sequence of events. The
                 runtime verification community has been investigating
                 similar mechanisms for a number of years, specifying
                 the event patterns in terms of temporal logic, and
                 applying the monitors to hardware and software.\par

                 In recent years trace monitors have been adapted for
                 use with mainstream object-oriented languages. In this
                 setting, a crucial feature is to allow the programmer
                 to quantify over groups of related objects when
                 expressing the sequence of events to match. While many
                 language proposals exist for allowing such features,
                 until now no implementation had scalable performance:
                 execution on all but very simple examples was
                 infeasible.\par

                 This paper rectifies that situation, by identifying two
                 optimisations for generating feasible trace monitors
                 from declarative specifications of the relevant event
                 pattern. We restrict ourselves to optimisations that do
                 not have a significant impact on compile-time: they
                 only analyse the event pattern, and not the monitored
                 code itself.\par

                 The first optimisation is an important improvement over
                 an earlier proposal in [2] to avoid space leaks. The
                 second optimisation is a form of indexing for partial
                 matches. Such indexing needs to be very carefully
                 designed to avoid introducing new space leaks, and the
                 resulting data structure is highly non-trivial.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "program analysis; program monitors; runtime
                 verification",
}

@Article{Baeten:2007:CRE,
  author =       "J. C. M. Baeten and F. Corradini and C. A. Grabmayer",
  title =        "A characterization of regular expressions under
                 bisimulation",
  journal =      j-J-ACM,
  volume =       "54",
  number =       "2",
  pages =        "6:1--6:28",
  month =        apr,
  year =         "2007",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Sat Apr 14 10:54:02 MDT 2007",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  articleno =    "6",
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
}

@Article{Bontempi:2007:BSI,
  author =       "Gianluca Bontempi",
  title =        "A Blocking Strategy to Improve Gene Selection for
                 Classification of Gene Expression Data",
  journal =      j-TCBB,
  volume =       "4",
  number =       "2",
  pages =        "293--300",
  month =        apr,
  year =         "2007",
  CODEN =        "ITCBCY",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Thu Jun 12 16:57:55 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "Because of high dimensionality, machine learning
                 algorithms typically rely on feature selection
                 techniques in order to perform effective classification
                 in microarray gene expression data sets. However, the
                 large number of features compared to the number of
                 samples makes the task of feature selection
                 computationally hard and prone to errors. This paper
                 interprets feature selection as a task of stochastic
                 optimization, where the goal is to select among an
                 exponential number of alternative gene subsets the one
                 expected to return the highest generalization in
                 classification. Blocking is an experimental design
                 strategy which produces similar experimental conditions
                 to compare alternative stochastic configurations in
                 order to be confident that observed differences in
                 accuracy are due to actual differences rather than to
                 fluctuations and noise effects. We propose an original
                 blocking strategy for improving feature selection which
                 aggregates in a paired way the validation outcomes of
                 several learning algorithms to assess a gene subset and
                 compare it to others. This is a novelty with respect to
                 conventional wrappers, which commonly adopt a sole
                 learning algorithm to evaluate the relevance of a given
                 set of variables. The rationale of the approach is
                 that, by increasing the amount of experimental
                 conditions under which we validate a feature subset, we
                 can lessen the problems related to the scarcity of
                 samples and consequently come up with a better
                 selection. The paper shows that the blocking strategy
                 significantly improves the performance of a
                 conventional forward selection for a set of 16 publicly
                 available cancer expression data sets. The experiments
                 involve six different classifiers and show that
                 improvements take place independent of the
                 classification algorithm used after the selection step.
                 Two further validations based on available biological
                 annotation support the claim that blocking strategies
                 in feature selection may improve the accuracy and the
                 quality of the solution. The first validation is based
                 on retrieving PubMEd abstracts associated to the
                 selected genes and matching them to regular expressions
                 describing the biological phenomenon underlying the
                 expression data sets. The biological validation that
                 follows is based on the use of the Bioconductor package
                 GoStats in order to perform Gene Ontology statistical
                 analysis.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
  keywords =     "bioinformatics (genome or protein) databases; data
                 mining; feature evaluation and selection; machine
                 learning",
}

@Book{Bourret:2007:AXA,
  author =       "Ronald Bourret and others",
  title =        "Advanced {XML} applications from the experts at {The
                 XML Guild}",
  publisher =    "Thomson Course Technology",
  address =      "Boston, MA, USA",
  pages =        "xxii + 362",
  year =         "2007",
  ISBN =         "1-59863-214-0 (paperback)",
  ISBN-13 =      "978-1-59863-214-9 (paperback)",
  LCCN =         "QA76.76.H94 A32 2007",
  bibdate =      "Wed Mar 13 13:43:00 MDT 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  subject =      "XML (Document markup language)",
  tableofcontents = "Chapter 1: XML Namespaces / 1 \\
                 Understanding Namespaces / 1 \\
                 Motivation for Using XML Namespaces / 1 \\
                 Namespaces Grafted into the Foundation / 2 \\
                 A Namespaces Primer / 3 \\
                 QNames in Content / 9 \\
                 Un-Declaring Namespaces / 12 \\
                 Using Namespaces in XSLT / 15 \\
                 Processing Namespaces / 15 \\
                 Constructing Namespaces / 21 \\
                 Chapter 2: XML Schema Languages / 37 \\
                 XML Schema Technology Overview / 37 \\
                 Co-Occurrence Constraints / 39 \\
                 The Use Case (Example) / 39 \\
                 W3C XML Schema / 40 \\
                 RELAX NG Alone / 56 \\
                 W3C XML Schema and the Schematron Constraint / 64 \\
                 Constraint on Repeated Elements / 69 \\
                 The Use Case / 69 \\
                 W3C XML Schema / 70 \\
                 RELAX NG Alone / 71 \\
                 W3C XML Schema or RELAX NG with Schematron / 72 \\
                 Microformats / 76 \\
                 The Use Case / 76 \\
                 W3C XML Schema / 77 \\
                 RELAX NG / 77 \\
                 Schematron / 81 \\
                 Transformations Needed / 82 \\
                 Wrapping Up / 86 \\
                 Confirm That You've Really Hit a Limitation / 86 \\
                 Consider Using a Workaround / 88 \\
                 Look at Other Schema Languages / 89 \\
                 Think Differently / 89 \\
                 Chapter 3: XSLT / 91 \\
                 XPath / 91 \\
                 Running XSLT / 91 \\
                 XSLT 1.0 / 92 \\
                 XSLT 1.0 Elements / 93 \\
                 Document Elements / 93 \\
                 Top-Level Elements / 94 \\
                 Instruction Elements / 95 \\
                 Push versus Pull / 96 \\
                 Using XSLT to Convert XML to HTML / 96 \\
                 The ``Pull'' Method / 96 \\
                 The ``Push'' Method / 97 \\
                 Tips and Tricks for XSLT 1.0 / 99 \\
                 Dynamic XML Transformation Using XSLT / 99 \\
                 xml-to-string.xsl / 100 \\
                 Namespace Declaration Normalizer / 100 \\
                 Excel Spreadsheet Cleanup / 102 \\
                 Reversing a Table / 104 \\
                 Generating XSLT with XSLT / 106 \\
                 Building a Data Mapping Stylesheet from a Mapping
                 Expressed in XML / 107 \\
                 Parsing Strings with XSLT / 110 \\
                 Using XSLT to Convert XML to Java/C\# Code / 115 \\
                 XSLT Example of ``for i=1 to n do'' / 119 \\
                 Muenchian Method for Grouping / 119 \\
                 Handling Character Entities in XSLT 1.0 / 122 \\
                 XPath 1.0 Subtleties / 128 \\
                 Using position() Properly / 128 \\
                 Using Variables to Store Literal or Numeric Values /
                 130 \\
                 XSLT 2.0 / 130 \\
                 XSLT 2.0 Features Overview / 132 \\
                 Temporary Trees / 132 \\
                 Grouping / 133 \\
                 Regular Expressions / 138 \\
                 Sequences / 139 \\
                 Multiple Output Files / 140 \\
                 Stylesheet Functions / 141 \\
                 Schema Awareness and Type Checking / 142 \\
                 Handling Special Characters / 142 \\
                 Tunnel Parameters / 144 \\
                 Next Match / 144 \\
                 Chapter 4: Web Services / 147 \\
                 Functional Overview / 147 \\
                 Web Services Technology Overview / 150 \\
                 Examples of Web Services / 150 \\
                 SOAP / 152 \\
                 SOAP Messaging and HTTP Binding / 152 \\
                 SMTP Bindings / 152 \\
                 Example SOAP Messages / 153 \\
                 SOAP and RPCs / 154 \\
                 WSDL and SOAP / 154 \\
                 WSDL Message / 155 \\
                 WSDL Binding / 155 \\
                 WSDL Service / 155 \\
                 Example WSDL Message / 156 \\
                 UDDI / 159 \\
                 WS-I / 163 \\
                 WS-I Profiles / 164 \\
                 WS-I Sample Applications / 164 \\
                 WS-I Testing Tools / 164 \\
                 Alternatives: REST and ebXML / 165 \\
                 REST / 165 \\
                 ebXML / 166 \\
                 Chapter 5: XML APIs / 167 \\
                 Comparison of XML APIs / 168 \\
                 Streaming APIs / 168 \\
                 SAX / 169 \\
                 XMLReader / 179 \\
                 StAX / 182 \\
                 Random-Access APIs / 185 \\
                 DOM / 186 \\
                 dom4i, JDOM, and XOM / 189 \\
                 VTD-XML / 189 \\
                 JAXP XPath / 189 \\
                 XPathDocument (.NET, Mono) / 191 \\
                 Schema Compilers / 193 \\
                 JAXB / 195 \\
                 .NET XML Schema Definition Tool / 203 \\
                 C24 10 / 206 \\
                 Relaxer / 209 \\
                 XML-Object Mappers / 209 \\
                 Object Serializers / 210 \\
                 Transformers / 211 \\
                 JAXP Transformation API (TrAX) / 211 \\
                 System.XmI.XsI / 214 \\
                 XQJ / 216 \\
                 Selecting the Right XML API for the Job / 216 \\
                 Choose the Right Kind of Efficiency / 216 \\
                 Use Multiple XML APIs When Appropriate / 217 \\
                 Robustness of XML APIs / 218 \\
                 Chapter 6: XML and Databases / 221 \\
                 Approaches to Storing XML Data / 222 \\
                 Using Blob Storage / 224 \\
                 Using Shredded Storage / 225 \\
                 Using Native Storage / 228 \\
                 The Role of Schemas in XML Storage and Query / 229 \\
                 Schema-Awareness in XQuery / 231 \\
                 Managing Schema Variety and Change / 234 \\
                 When Not to Use a Schema / 237 \\
                 Choosing a Database Product / 238 \\
                 Chapter 7: XQuery / 243 \\
                 XQuery Data Model / 243 \\
                 Atomic Values / 244 \\
                 Nodes / 244 \\
                 Sequences / 245 \\
                 Constructs Not in XQuery Data Model / 246 \\
                 Grammar Notes / 246 \\
                 Constructors / 246 \\
                 Expressions / 247 \\
                 Enclosed Expressions / 248 \\
                 Comma Operators / 250 \\
                 Path Expressions / 250 \\
                 Selecting the Root Element / 251 \\
                 Selecting Child Elements / 251 \\
                 Selecting Attributes / 252 \\
                 Restricting the Selection / 253 \\
                 How Do Path Expressions Work? / 253 \\
                 FLWOR Expressions / 259 \\
                 For Clauses / 260 \\
                 Let Clauses / 261 \\
                 Where Clauses / 264 \\
                 Order By Clauses / 265 \\
                 Joining Documents with FLWOR Expressions / 266 \\
                 Other Expressions / 269 \\
                 Arithmetic Expressions / 269 \\
                 Comparison Expressions / 269 \\
                 Conditional Expressions (if-then-else) / 270 \\
                 Set Expressions / 271 \\
                 Functions / 271 \\
                 Input Functions / 271 \\
                 String and Data Functions / 272 \\
                 User-Defined Functions / 274 \\
                 Datatypes / 276 \\
                 Using XQuery without Datatypes / 276 \\
                 Using XQuery with Datatypes / 278 \\
                 Expressions That Use Datatypes / 280 \\
                 Some Important Details / 281 \\
                 Atomization / 281 \\
                 Effective Boolean Values / 282 \\
                 Modules and Prologs / 283 \\
                 Library Modules / 283 \\
                 Global Variables / 285 \\
                 Namespaces / 285 \\
                 Chapter 8: XML Authoring / 289 \\
                 Defining an XML Authoring Environment / 290 \\
                 Using a WYSIWYG Authoring Tool / 290 \\
                 Using XML IDE / 291 \\
                 Using Standard Word Processing / 291 \\
                 Converting Data into XML / 292 \\
                 Selecting an Appropriate Schema / 292 \\
                 Schema Constructs That Affect Authors / 293 \\
                 Approaches for Difficult Schema Structures / 297 \\
                 Common Standard Schemas / 302 \\
                 Form-Based Authoring / 303 \\
                 HTML Custom Forms / 303 \\
                 Creating Forms with XForms / 307 \\
                 Chapter 9: XSL-FO / 311 \\
                 XML Transformation and Rendering Using HTML / 313 \\
                 XML Transformation and Pagination Using XSL-FO / 313
                 \\
                 The XSL-FO Processing Model / 314 \\
                 Bordering and Area Tree Rectangles / 316 \\
                 Un-Bordered and Bordered Areas / 316 \\
                 Area Placement for Block-Level Constructs / 320 \\
                 Area Placement for Inline-Level Constructs / 323 \\
                 Area Backgrounds / 325 \\
                 Bidirectional Text Protection / 326 \\
                 Unicode Directionality / 326 \\
                 Formatting Without Consideration for Direction / 328
                 \\
                 Formatting with Consideration for Direction / 330 \\
                 Disambiguation and Aggregation in Area Tree References
                 / 333 \\
                 A Problem of Ambiguity / 334 \\
                 Adding Stylesheet References / 336 \\
                 Making Numerous References / 337 \\
                 Retrieve-Marker Arbitration / 338 \\
                 Appendix A: XML Tools and Implementations / 343",
}

@Article{Breslav:2007:DPS,
  author =       "Simon Breslav and Karol Szerszen and Lee Markosian and
                 Pascal Barla and Jo{\"e}lle Thollot",
  title =        "Dynamic {$2$D} patterns for shading {$3$D} scenes",
  journal =      j-TOG,
  volume =       "26",
  number =       "3",
  pages =        "20:1--20:??",
  month =        jul,
  year =         "2007",
  CODEN =        "ATGRDF",
  DOI =          "https://doi.org/10.1145/1276377.1276402",
  ISSN =         "0730-0301 (print), 1557-7368 (electronic)",
  ISSN-L =       "0730-0301",
  bibdate =      "Fri Jun 13 19:09:11 MDT 2008",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tog/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tog.bib",
  abstract =     "We describe a new way to render 3D scenes in a variety
                 of non-photorealistic styles, based on patterns whose
                 structure and motion are defined in 2D. In doing so, we
                 sacrifice the ability of patterns that wrap onto 3D
                 surfaces to convey shape through their structure and
                 motion. In return, we gain several advantages, chiefly
                 that 2D patterns are more visually abstract - a quality
                 often sought by artists, which explains their
                 widespread use in hand-drawn images.\par

                 Extending such styles to 3D graphics presents a
                 challenge: how should a 2D pattern move? Our solution
                 is to transform it each frame by a 2D similarity
                 transform that closely follows the underlying 3D shape.
                 The resulting motion is often surprisingly effective,
                 and has a striking cartoon quality that matches the
                 visual style.",
  acknowledgement = ack-nhfb,
  articleno =    "20",
  fjournal =     "ACM Transactions on Graphics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J778",
}

@Article{Brown:2007:RIS,
  author =       "Christopher W. Brown and Eric A. Hardisty",
  title =        "{RegeXeX}: an interactive system providing regular
                 expression exercises",
  journal =      j-SIGCSE,
  volume =       "39",
  number =       "1",
  pages =        "445--449",
  month =        mar,
  year =         "2007",
  CODEN =        "SIGSD3",
  DOI =          "https://doi.org/10.1145/1227504.1227462",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:32 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigcse2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This paper presents RegeXeX (Regular expression
                 exercises), an interactive system for teaching students
                 to write regular expressions. The system poses problems
                 (prose descriptions of languages), students enter
                 solutions (regular expressions defining these
                 languages), and the system provides feedback. What is
                 novel in this system is the type of feedback: students
                 are not merely told that a submitted regular expression
                 is wrong, they are given examples of strings that the
                 expression either matches and shouldn't or does not
                 match and should, and asked to try again. Additionally,
                 student responses need only be equivalent to the
                 solution, not identical. Results of classroom
                 experience with this system are also reported, and
                 demonstrate its effectiveness in teaching students to
                 write regular expressions with little or no instructor
                 interaction. RegeXeX is a freely available, portable
                 system, written in C++ and using the Qt library for its
                 GUI. It is distributed with several exercise sets, but
                 is designed so instructors can easily write their own.
                 The system logs student work and offers facilities for
                 submitting log-files to instructors as well, allowing
                 for automatic grading, or in-depth analysis of student
                 performance and evolution of responses throughout the
                 exercise set.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Chan:2007:CID,
  author =       "Ho-Leung Chan and Wing-Kai Hon and Tak-Wah Lam and
                 Kunihiko Sadakane",
  title =        "Compressed indexes for dynamic text collections",
  journal =      j-TALG,
  volume =       "3",
  number =       "2",
  pages =        "21:1--21:??",
  month =        may,
  year =         "2007",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1240233.1240244",
  ISSN =         "1549-6325 (print), 1549-6333 (electronic)",
  ISSN-L =       "1549-6325",
  bibdate =      "Mon Jun 16 11:54:42 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talg.bib",
  abstract =     "Let {$T$} be a string with {$n$} characters over an
                 alphabet of constant size. A recent breakthrough on
                 compressed indexing allows us to build an index for
                 {$T$} in optimal space (i.e., {$ O(n) $} bits), while
                 supporting very efficient pattern matching [Ferragina
                 and Manzini 2000; Grossi and Vitter 2000]. Yet the
                 compressed nature of such indexes also makes them
                 difficult to update dynamically.\par

                 This article extends the work on optimal-space indexing
                 to a dynamic collection of texts. Our first result is a
                 compressed solution to the library management problem,
                 where we show an index of {$ O(n) $} bits for a text
                 collection {$L$} of total length {$n$}, which can be
                 updated in {$ O(| T | \log n) $} time when a text {$T$}
                 is inserted or deleted from {$L$}; also, the index
                 supports searching the occurrences of any pattern {$P$}
                 in all texts in {$L$} in {$ O(|P| \log n + {\rm occ}
                 \log 2 n) $} time, where {\rm occ} is the number of
                 occurrences.\par

                 Our second result is a compressed solution to the
                 dictionary matching problem, where we show an index of
                 {$ O(d) $} bits for a pattern collection {$D$} of total
                 length {$d$}, which can be updated in {$ O(|P| \log 2
                 d) $} time when a pattern {$P$} is inserted or deleted
                 from {$D$}; also, the index supports searching the
                 occurrences of all patterns of {$D$} in any text {$T$}
                 in {$ O((|T| + {\rm occ}) \log 2 d) $} time. When
                 compared with the {$ O(d \log d) $}-bit
                 suffix-tree-based solution of Amir et al. [1995], the
                 compact solution increases the query time by roughly a
                 factor of {$ \log d $} only.\par

                 The solution to the dictionary matching problem is
                 based on a new compressed representation of a suffix
                 tree. Precisely, we give an {$ O(n) $}-bit
                 representation of a suffix tree for a dynamic
                 collection of texts whose total length is {$n$}, which
                 supports insertion and deletion of a text {$T$} in {$
                 O(|T| \log 2 n) $} time, as well as all suffix tree
                 traversal operations, including forward and backward
                 suffix links. This work can be regarded as a
                 generalization of the compressed representation of
                 static texts. In the study of the aforementioned
                 result, we also derive the first {$ O(n) $}-bit
                 representation for maintaining {$n$} pairs of balanced
                 parentheses in {$ O(\log n / \log \log n) $} time per
                 operation, matching the time complexity of the previous
                 {$ O(n \log n) $}-bit solution.",
  acknowledgement = ack-nhfb,
  articleno =    "21",
  fjournal =     "ACM Transactions on Algorithms (TALG)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J982",
  keywords =     "Compressed suffix tree; string matching",
}

@Article{Chung:2007:EAR,
  author =       "Yun-Sheng Chung and Chin Lung Lu and Chuan Yi Tang",
  title =        "Efficient algorithms for regular expression
                 constrained sequence alignment",
  journal =      j-INFO-PROC-LETT,
  volume =       "103",
  number =       "6",
  pages =        "240--246",
  day =          "15",
  month =        sep,
  year =         "2007",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 15:52:48 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Cirstea:2007:CEC,
  author =       "Horatiu Cirstea and Germain Faure and Claude
                 Kirchner",
  title =        "A $ \rho $-calculus of explicit constraint
                 application",
  journal =      j-HIGHER-ORDER-SYMB-COMPUT,
  volume =       "20",
  number =       "1--2",
  pages =        "37--72",
  month =        jun,
  year =         "2007",
  CODEN =        "LSCOEX",
  DOI =          "https://doi.org/10.1007/s10990-007-9004-2",
  ISSN =         "1388-3690 (print), 2212-0793 (electronic)",
  ISSN-L =       "1388-3690",
  bibdate =      "Wed Jul 9 12:34:45 MDT 2008",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=1388-3690&volume=20&issue=1;
                 https://www.math.utah.edu/pub/tex/bib/higherordersymbcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=1388-3690&volume=20&issue=1&spage=37",
  acknowledgement = ack-nhfb,
  fjournal =     "Higher-Order and Symbolic Computation",
  journal-URL =  "http://link.springer.com/journal/10990",
  keywords =     "Explicit matching; Explicit substitution; Pattern
                 matching; Rewriting calculus",
}

@Article{Cormode:2007:SED,
  author =       "Graham Cormode and S. Muthukrishnan",
  title =        "The string edit distance matching problem with moves",
  journal =      j-TALG,
  volume =       "3",
  number =       "1",
  pages =        "??--??",
  month =        feb,
  year =         "2007",
  CODEN =        "????",
  ISSN =         "1549-6325 (print), 1549-6333 (electronic)",
  ISSN-L =       "1549-6325",
  bibdate =      "Sat Apr 14 10:58:14 MDT 2007",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talg.bib",
  abstract =     "The edit distance between two strings {$S$} and {$R$}
                 is defined to be the minimum number of character
                 inserts, deletes, and changes needed to convert {$R$}
                 to S. Given a text string $t$ of length $n$, and a
                 pattern string $p$ of length $m$, informally, the
                 string edit distance matching problem is to compute the
                 smallest edit distance between $p$ and substrings of
                 $t$. We relax the problem so that: (a) we allow an
                 additional operation, namely, substring moves; and (b)
                 we allow approximation of this string edit distance.
                 Our result is a near-linear time deterministic
                 algorithm to produce a factor of {$ O(\log n \log \star
                 n) $} approximation to the string edit distance with
                 moves. This is the first known significantly
                 subquadratic algorithm for a string edit distance
                 problem in which the distance involves nontrivial
                 alignments. Our results are obtained by embedding
                 strings into {$ L_1 $} vector space using a simplified
                 parsing technique, which we call edit-sensitive parsing
                 (ESP).",
  acknowledgement = ack-nhfb,
  articleno =    "2",
  fjournal =     "ACM Transactions on Algorithms (TALG)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J982",
}

@TechReport{Cox:2007:REM,
  author =       "Russ Cox",
  title =        "Regular Expression Matching Can Be Simple And Fast",
  type =         "Report",
  institution =  "swtch.com",
  address =      "Cambridge, MA, USA",
  month =        jan,
  year =         "2007",
  bibdate =      "Tue Mar 27 11:39:17 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib;
                 https://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
  note =         "See also
                 \cite{Thompson:1968:PTR,Kernighan:1999:REL,Cox:2009:REM,Cox:2010:REM,Cox:2012:REM}",
  URL =          "http://swtch.com/~rsc/regexp/regexp1.html",
  acknowledgement = ack-nhfb,
}

@Article{Cui:2007:SPM,
  author =       "Hang Cui and Min-Yen Kan and Tat-Seng Chua",
  title =        "Soft pattern matching models for definitional question
                 answering",
  journal =      j-TOIS,
  volume =       "25",
  number =       "2",
  pages =        "8:1--8:??",
  month =        apr,
  year =         "2007",
  CODEN =        "ATISET",
  DOI =          "https://doi.org/10.1145/1229179.1229182",
  ISSN =         "1046-8188",
  ISSN-L =       "0734-2047",
  bibdate =      "Thu Jun 12 16:51:57 MDT 2008",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tois/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tois.bib",
  abstract =     "We explore probabilistic lexico-syntactic pattern
                 matching, also known as soft pattern matching, in a
                 definitional question answering system. Most current
                 systems use regular expression-based hard matching
                 patterns to identify definition sentences. Such rigid
                 surface matching often fares poorly when faced with
                 language variations. We propose two soft matching
                 models to address this problem: one based on bigrams
                 and the other on the Profile Hidden Markov Model
                 (PHMM). Both models provide a theoretically sound
                 method to model pattern matching as a probabilistic
                 process that generates token sequences. We demonstrate
                 the effectiveness of the models on definition sentence
                 retrieval for definitional question answering. We show
                 that both models significantly outperform the
                 state-of-the-art manually constructed hard matching
                 patterns on recent TREC data.\par

                 A critical difference between the two models is that
                 the PHMM has a more complex topology. We experimentally
                 show that the PHMM can handle language variations more
                 effectively but requires more training data to
                 converge.\par

                 While we evaluate soft pattern models only on
                 definitional question answering, we believe that both
                 models are generic and can be extended to other areas
                 where lexico-syntactic pattern matching can be
                 applied.",
  acknowledgement = ack-nhfb,
  articleno =    "8",
  fjournal =     "ACM Transactions on Information Systems (TOIS)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J779",
  keywords =     "definitional question answering; Soft patterns",
}

@Article{daLuz:2007:RET,
  author =       "Robson da Luz and M{\'\i}rian Halfeld Ferrari and
                 Martin A. Musicante",
  title =        "Regular expression transformations to extend regular
                 languages (with application to a {Datalog XML} schema
                 validator)",
  journal =      j-J-ALG,
  volume =       "62",
  number =       "3--4",
  pages =        "148--167",
  month =        jul # "\slash " # oct,
  year =         "2007",
  CODEN =        "JOALDV",
  DOI =          "https://doi.org/10.1016/j.jalgor.2007.04.004",
  ISSN =         "0196-6774 (print), 1090-2678 (electronic)",
  ISSN-L =       "0196-6774",
  bibdate =      "Tue Dec 11 09:23:26 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jalg.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0196677407000326",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Algorithms",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01966774",
}

@Article{Edwards:2007:NIA,
  author =       "Jonathan Edwards",
  title =        "No ifs, ands, or buts: uncovering the simplicity of
                 conditionals",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "10",
  pages =        "639--658",
  month =        oct,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1297027.1297075",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:00:28 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Schematic tables are a new representation for
                 conditionals. Roughly a cross between decision tables
                 and data flowgraphs, they represent computation and
                 decision-making orthogonally. They unify the full range
                 of conditional constructs, from if statements through
                 pattern matching to polymorphic predicate dispatch.
                 Program logic is maintained in a declarative canonical
                 form that enforces completeness and disjointness among
                 choices. Schematic tables can be used either as a code
                 specification/generation tool, or as a self-contained
                 diagrammatic programming language. They give program
                 logic the clarity of truth tables, and support
                 high-level direct manipulation of that logic, avoiding
                 much of the mental computation demanded by conventional
                 conditionals.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "control structures; decision tables; polymorphism;
                 refactoring; visual programming",
}

@InProceedings{Engelfriet:2007:XTT,
  author =       "Joost Engelfriet and Hendrik Jan Hoogeboom and Bart
                 Samwel",
  title =        "{XML} transformation by tree-walking transducers with
                 invisible pebbles",
  crossref =     "ACM:2007:PTS",
  pages =        "63--72",
  year =         "2007",
  DOI =          "https://doi.org/10.1145/1265530.1265540",
  bibdate =      "Fri Jun 20 14:06:25 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The pebble tree automaton and the pebble tree
                 transducer are enhanced by additionally allowing an
                 unbounded number of 'invisible' pebbles (as opposed to
                 the usual ('visible' ones)). The resulting pebble tree
                 automata recognize the regular tree languages (i.e.,
                 can validate all generalized DTD's) and hence can find
                 all matches of MSO definable $n$-ary patterns.
                 Moreover, when viewed as a navigational device, they
                 lead to an XPath-like formalism that has a path
                 expression for every MSO definable binary pattern. The
                 resulting pebble tree transducers can apply arbitrary
                 MSO definable tests to (the observable part of) their
                 configurations, they (still) have a decidable
                 typechecking problem, and they can model the recursion
                 mechanism of XSLT. The time complexity of the
                 typechecking problem for conjunctive queries that use
                 MSO definable binary patterns can often be reduced
                 through the use of invisible pebbles.",
  acknowledgement = ack-nhfb,
  keywords =     "pebble; tree transducer; XML",
}

@Article{Farach-Colton:2007:OSS,
  author =       "Martin Farach-Colton and Gad M. Landau and S. Cenk
                 Sahinalp and Dekel Tsur",
  title =        "Optimal spaced seeds for faster approximate string
                 matching",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "73",
  number =       "7",
  pages =        "1035--1044",
  month =        nov,
  year =         "2007",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1016/j.jcss.2007.03.007",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:27:05 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000007000256",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Geneves:2007:ESA,
  author =       "Pierre Genev{\`e}s and Nabil Laya{\"\i}da and Alan
                 Schmitt",
  title =        "Efficient static analysis of {XML} paths and types",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "6",
  pages =        "342--351",
  month =        jun,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1273442.1250773",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:55:30 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We present an algorithm to solve XPath decision
                 problems under regular tree type constraints and show
                 its use to statically type-check XPath queries. To this
                 end, we prove the decidability of a logic with converse
                 for finite ordered trees whose time complexity is a
                 simple exponential of the size of a formula. The logic
                 corresponds to the alternation free modal $ \mu
                 $-calculus without greatest fixpoint, restricted to
                 finite trees, and where formulas are
                 cycle-free.\par

                 Our proof method is based on two auxiliary results.
                 First, XML regular tree types and XPath expressions
                 have a linear translation to cycle-free formulas.
                 Second, the least and greatest fixpoints are equivalent
                 for finite trees, hence the logic is closed under
                 negation.\par

                 Building on these results, we describe a practical,
                 effective system for solving the satisfiability of a
                 formula. The system has been experimented with some
                 decision problems such as XPath emptiness, containment,
                 overlap, and coverage, with or without type
                 constraints. The benefit of the approach is that our
                 system can be effectively used in static analyzers for
                 programming languages manipulating both XPath
                 expressions and XML type annotations (as input and
                 output types).",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "modal logic; satisfiability; type checking; XPath",
}

@Article{Gramlich:2007:MNR,
  author =       "Gregor Gramlich and Georg Schnitger",
  title =        "Minimizing {NFA}'s and regular expressions",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "73",
  number =       "6",
  pages =        "908--923",
  month =        sep,
  year =         "2007",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1016/j.jcss.2006.11.002",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:27:05 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000006001735",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Han:2007:OSR,
  author =       "Yo-Sub Han and Derick Wood",
  title =        "Obtaining shorter regular expressions from
                 finite-state automata",
  journal =      j-THEOR-COMP-SCI,
  volume =       "370",
  number =       "1--3",
  pages =        "110--120",
  day =          "12",
  month =        feb,
  year =         "2007",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Mar 29 08:55:33 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2005.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Han:2007:PFR,
  author =       "Yo-Sub Han and Yajun Wang and Derick Wood",
  title =        "Prefix-free regular languages and pattern matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "389",
  number =       "1--2",
  pages =        "307--317",
  day =          "10",
  month =        dec,
  year =         "2007",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Mar 28 22:11:59 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2005.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Hazay:2007:APM,
  author =       "Carmit Hazay and Moshe Lewenstein and Dina Sokol",
  title =        "Approximate parameterized matching",
  journal =      j-TALG,
  volume =       "3",
  number =       "3",
  pages =        "29:1--29:??",
  month =        aug,
  year =         "2007",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1273340.1273345",
  ISSN =         "1549-6325 (print), 1549-6333 (electronic)",
  ISSN-L =       "1549-6325",
  bibdate =      "Mon Jun 16 11:55:11 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talg.bib",
  abstract =     "Two equal length strings $s$ and $ s \prime $, over
                 alphabets {$ \Sigma s $} and {$ \Sigma s \prime $},
                 parameterize match if there exists a bijection {$ \pi :
                 \Sigma s \rightarrow \Sigma s \prime $} such that {$
                 \pi (s) = s \prime $}, where {$ \pi (s) $} is the
                 renaming of each character of {$s$} via $ \pi $.
                 Parameterized matching is the problem of finding all
                 parameterized matches of a pattern string $p$ in a text
                 $t$, and approximate parameterized matching is the
                 problem of finding at each location a bijection $ \pi $
                 that maximizes the number of characters that are mapped
                 from $p$ to the appropriate $ |p| $-length substring of
                 $t$.\par

                 Parameterized matching was introduced as a model for
                 software duplication detection in software maintenance
                 systems and also has applications in image processing
                 and computational biology. For example, approximate
                 parameterized matching models image searching with
                 variable color maps in the presence of errors.\par

                 We consider the problem for which an error threshold,
                 $k$, is given, and the goal is to find all locations in
                 $t$ for which there exists a bijection $ \pi $ which
                 maps $p$ into the appropriate $ |p| $-length substring
                 of $t$ with at most $k$ mismatched mapped elements. Our
                 main result is an algorithm for this problem with {$
                 O(n k^{1.5} + m k \log m) $} time complexity, where {$
                 m = | p | $} and {$ n = | t | $}. We also show that
                 when {$ | p | = | t | = m $}, the problem is equivalent
                 to the maximum matching problem on graphs, yielding a
                 {$ O(m + k^{1.5}) $} solution.",
  acknowledgement = ack-nhfb,
  articleno =    "29",
  fjournal =     "ACM Transactions on Algorithms (TALG)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J982",
  keywords =     "Hamming distance; maximum matching; mismatch pair;
                 parameterize match",
}

@Book{Hopcroft:2007:IAT,
  author =       "John E. (John Edward) Hopcroft and Rajeev Motwani and
                 Jeffrey D. (Jeffrey David) Ullman",
  title =        "Introduction to Automata Theory, Languages, and
                 Computation",
  publisher =    "Pearson Education",
  address =      "Boston, MA, USA",
  edition =      "Third",
  pages =        "xvii + 535",
  year =         "2007",
  ISBN =         "0-321-45536-3 (hardcover), 0-321-45537-1 (student
                 access kit), 0-321-47617-4 (paperback), 0-321-51448-3
                 (complete edition)",
  ISBN-13 =      "978-0-321-45536-9 (hardcover), 978-0-321-45537-6
                 (student access kit), 978-0-321-47617-3 (paperback),
                 978-0-321-51448-6 (complete edition)",
  LCCN =         "QA76.9 .A73H67",
  bibdate =      "Wed Sep 9 09:41:10 MDT 2020",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  author-dates = "1939--",
  shorttableofcontents = "1: Automata: the methods and the madness \\
                 2: Finite automata \\
                 3: Regular expressions and languages \\
                 4: Properties of regular languages \\
                 5: Context-free grammars and languages \\
                 6: Pushdown automata \\
                 7: Properties of context-free languages \\
                 8: Introduction to Turing machines \\
                 9: Undecidability \\
                 10: Intractable problems \\
                 11: Additional classes of problems",
  subject =      "Machine theory; Formal languages; Computational
                 complexity; Th{\'e}orie des automates; Langages
                 formels; Complexit{\'e} de calcul (Informatique);
                 Computational complexity.; Formal languages.; Machine
                 theory.; Programmation (math{\'e}matiques);
                 Complexit{\'e} de calcul (informatique); Langages
                 formels.; Automates math{\'e}matiques, Th{\'e}orie
                 des.; th{\'e}orie des langages (informatique); manuel.;
                 automate (informatique); th{\'e}orie des langages
                 (informatique); automate (informatique); Teor{\'i}a de
                 las m{\'a}quinas; Lenguajes formales",
  tableofcontents = "1 Automata: The Methods and the Madness / 1 \\
                 1.1 Why Study Automata Theory? / 2 \\
                 1.1.1 Introduction to Finite Automata / 2 \\
                 1.1.2 Structural Representations / 4 \\
                 1.1.3 Automata and Complexity / 5 \\
                 1.2 Introduction to Formal Proof / 5 \\
                 1.2.1 Deductive Proofs / 6 \\
                 1.2.2 Reduction to Definitions / 8 \\
                 1.2.3 Other Theorem Forms / 10 \\
                 1.2.4 Theorems That Appear Not to Be If-Then Statements
                 / 13 \\
                 1.3 Additional Forms of Proof / 13 \\
                 1.3.1 Proving Equivalences About Sets / 14 \\
                 1.3.2 The Contrapositive / 14 \\
                 1.3.3 Proof by Contradiction / 16 \\
                 1.3.4 Counterexamples / 17 \\
                 1.4 Inductive Proofs / 19 \\
                 1.4.1 Inductions on Integers / 19 \\
                 1.4.2 More General Forms of Integer Inductions / 22 \\
                 1.4.3 Structural Inductions / 23 \\
                 1.4.4 Mutual Inductions / 26 \\
                 1.5 The Central Concepts of Automata Theory / 28 \\
                 1.5.1 Alphabets / 28 \\
                 1.5.2 Strings / 29 \\
                 1.5.3 Languages / 30 \\
                 1.5.4 Problems / 31 \\
                 1.6 Summary of Chapter 1 / 33 \\
                 1.7 Gradiance Problems for Chapter 1 / 35 \\
                 1.8 References for Chapter 1 / 36 \\
                 2 Finite Automata / 37 \\
                 2.1 An Informal Picture of Finite Automata / 38 \\
                 2.1.1 The Ground Rules / 38 \\
                 2.1.2 The Protocol / 39 \\
                 2.1.3 Enabling the Automata to Ignore Actions / 41 \\
                 2.1.4 The Entire System as an Automaton / 43 \\
                 2.1.5 Using the Product Automaton to Validate the
                 Protocol / 44 \\
                 2.2 Deterministic Finite Automata / 45 \\
                 2.2.1 Definition of a Deterministic Finite Automaton /
                 45 \\
                 2.2.2 How a DFA Processes Strings / 46 \\
                 2.2.3 Simpler Notations for DFA's / 47 \\
                 2.2.4 Extending the Transition Function to Strings / 49
                 \\
                 2.2.5 The Language of a DFA / 52 \\
                 2.2.6 Exercises for Section 2.2 / 52 \\
                 2.3 Nondeterministic Finite Automata / 55 \\
                 2.3.1 An Informal View of Nondeterministic Finite
                 Automata / 55 \\
                 2.3.2 Definition of Nondeterministic Finite Automata /
                 57 \\
                 2.3.3 The Extended Transition Function / 58 \\
                 2.3.4 The Language of an NFA / 59 \\
                 2.3.5 Equivalence of Deterministic and Nondeterministic
                 Finite Automata / 60 \\
                 2.3.6 A Bad Case for the Subset Construction / 64 \\
                 2.3.7 Exercises for Section 2.3 / 65 \\
                 2.4 An Application: Text Search / 68 \\
                 2.4.1 Finding Strings in Text / 68 \\
                 2.4.2 Nondeterministic Finite Automata for Text Search
                 / 69 \\
                 2.4.3 A DFA to Recognize a Set of Keywords / 70 \\
                 2.4.4 Exercises for Section 2.4 / 71 \\
                 2.5 Finite Automata With Epsilon-Transitions / 72 \\
                 2.5.1 Uses of e-Transitions / 72 \\
                 2.5.2 The Formal Notation for an e-NFA / 73 \\
                 2.5.3 Epsilon-Closures / 74 \\
                 2.5.4 Extended Transitions and Languages for e-NFA's /
                 75 \\
                 2.5.5 Eliminating e-Transitions / 77 \\
                 2.5.6 Exercises for Section 2.5 / 79 \\
                 2.6 Summary of Chapter 2 / 80 \\
                 2.7 Gradiance Problems for Chapter 2 / 80 \\
                 2.8 References for Chapter 2 / 83 \\
                 3 Regular Expressions and Languages / 85 \\
                 3.1 Regular Expressions / 85 \\
                 3.1.1 The Operators of Regular Expressions / 86 \\
                 3.1.2 Building Regular Expressions / 87 \\
                 3.1.3 Precedence of Regular-Expression Operators / 90
                 \\
                 3.1.4 Exercises for Section 3.1 / 91 \\
                 3.2 Finite Automata and Regular Expressions / 92 \\
                 3.2.1 From DFA's to Regular Expressions / 93 \\
                 3.2.2 Converting DFA's to Regular Expressions by
                 Eliminating States / 98 \\
                 3.2.3 Converting Regular Expressions to Automata / 102
                 \\
                 3.2.4 Exercises for Section 3.2 / 107 \\
                 3.3 Applications of Regular Expressions / 109 \\
                 3.3.1 Regular Expressions in UNIX / 109 \\
                 3.3.2 Lexical Analysis / 110 \\
                 3.3.3 Finding Patterns in Text / 112 \\
                 3.3.4 Exercises for Section 3.3 / 114 \\
                 3.4 Algebraic Laws for Regular Expressions / 115 \\
                 3.4.1 Associativity and Commutativity / 115 \\
                 3.4.2 Identities and Annihilators / 116 \\
                 3.4.3 Distributive Laws / 116 \\
                 3.4.4 The Idempotent Law / 117 \\
                 3.4.5 Laws Involving Closures / 118 \\
                 3.4.6 Discovering Laws for Regular Expressions / 118
                 \\
                 3.4.7 The Test for a Regular-Expression Algebraic Law /
                 120 \\
                 3.4.8 Exercises for Section 3.4 / 121 \\
                 3.5 Summary of Chapter 3 / 123 \\
                 3.6 Gradiance Problems for Chapter 3 / 123 \\
                 3.7 References for Chapter 3 / 125 \\
                 4 Properties of Regular Languages / 127 \\
                 4.1 Proving Languages Not to Be Regular / 128 \\
                 4.1.1 The Pumping Lemma for Regular Languages / 128 \\
                 4.1.2 Applications of the Pumping Lemma / 129 \\
                 4.1.3 Exercises for Section 4.1 / 131 \\
                 4.2 Closure Properties of Regular Languages / 133 \\
                 4.2.1 Closure of Regular Languages Under Boolean
                 Operations / 133 \\
                 4.2.2 Reversal / 139 \\
                 4.2.3 Homomorphisms / 140 \\
                 4.2.4 Inverse Homomorphisms / 142 \\
                 4.2.5 Exercises for Section 4.2 / 147 \\
                 4.3 Decision Properties of Regular Languages / 150 \\
                 4.3.1 Converting Among Representations / 151 \\
                 4.3.2 Testing Emptiness of Regular Languages / 153 \\
                 4.3.3 Testing Membership in a Regular Language / 154
                 \\
                 4.3.4 Exercises for Section 4.3 / 155 \\
                 4.4 Equivalence and Minimization of Automata / 155 \\
                 4.4.1 Testing Equivalence of States / 155 \\
                 4.4.2 Testing Equivalence of Regular Languages / 159
                 \\
                 4.4.3 Minimization of DFA's / 160 \\
                 4.4.4 Why the Minimized DFA Can't Be Beaten / 163 \\
                 4.4.5 Exercises for Section 4.4 / 165 \\
                 4.5 Summary of Chapter 4 / 166 \\
                 4.6 Gradiance Problems for Chapter 4 / 167 \\
                 4.7 References for Chapter 4 / 169 \\
                 5 Context-Free Grammars and Languages / 171 \\
                 5.1 Context-Free Grammars / 171 \\
                 5.1.1 An Informal Example / 172 \\
                 5.1.2 Definition of Context-Free Grammars / 173 \\
                 5.1.3 Derivations Using a Grammar / 175 \\
                 5.1.4 Leftmost and Rightmost Derivations 177j 5.1.5 The
                 Language of a Grammar / 179 \\
                 5.1.6 Sentential Forms / 180 \\
                 5.1.7 Exercises for Section 5.1 / 181 \\
                 5.2 Parse Trees / 183 \\
                 5.2.1 Constructing Parse Trees / 183 \\
                 5.2.2 The Yield of a Parse Tree / 185 \\
                 5.2.3 Inference, Derivations, and Parse Trees / 185 \\
                 5.2.4 From Inferences to Trees / 187 \\
                 5.2.5 From Trees to Derivations / 188 \\
                 5.2.6 From Derivations to Recursive Inferences / 191
                 \\
                 5.2.7 Exercises for Section 5.2 / 193 \\
                 5.3 Applications of Context-Free Grammars / 193 \\
                 5.3.1 Parsers / 194 \\
                 5.3.2 The YACC Parser-Generator / 196 \\
                 5.3.3 Markup Languages / 197 \\
                 5.3.4 XML and Document-Type Definitions / 200 \\
                 5.3.5 Exercises for Section 5.3 / 206 \\
                 5.4 Ambiguity in Grammars and Languages / 207 \\
                 5.4.1 Ambiguous Grammars / 207 \\
                 5.4.2 Removing Ambiguity From Grammars / 209 \\
                 5.4.3 Leftmost Derivations as a Way to Express
                 Ambiguity / 212 \\
                 5.4.4 Inherent Ambiguity / 213 \\
                 5.4.5 Exercises for Section 5.4 / 215 \\
                 5.5 Summary of Chapter 5 / 216 \\
                 5.6 Gradiance Problems for Chapter 5 / 218 \\
                 5.7 References for Chapter 5 / 224 \\
                 6 Pushdown Automata / 225 \\
                 6.1 Definition of the Pushdown Automaton / 225 \\
                 6.1.1 Informal Introduction / 225 \\
                 6.1.2 The Formal Definition of Pushdown Automata / 227
                 \\
                 6.1.3 A Graphical Notation for PDA's / 229 \\
                 6.1.4 Instantaneous Descriptions of a PDA / 230 \\
                 6.1.5 Exercises for Section 6.1 / 233 \\
                 6.2 The Languages of a PDA / 234 \\
                 6.2.1 Acceptance by Final State / 235 \\
                 6.2.2 Acceptance by Empty Stack / 236 \\
                 6.2.3 From Empty Stack to Final State / 237 \\
                 6.2.4 From Final State to Empty Stack / 240 \\
                 6.2.5 Exercises for Section 6.2 / 241 \\
                 6.3 Equivalence of PDA's and CFG's / 243 \\
                 6.3.1 From Grammars to Pushdown Automata / 243 \\
                 6.3.2 From PDA's to Grammars / 247 \\
                 6.3.3 Exercises for Section 6.3 / 251 \\
                 6.4 Deterministic Pushdown Automata / 252 \\
                 6.4.1 Definition of a Deterministic PDA / 252 \\
                 6.4.2 Regular Languages and Deterministic PDA's / 253
                 \\
                 6.4.3 DPDA's and Context-Free Languages / 254 \\
                 6.4.4 DPDA's and Ambiguous Grammars / 255 \\
                 6.4.5 Exercises for Section 6.4 / 256 \\
                 6.5 Summary of Chapter 6 / 257 \\
                 6.6 Gradiance Problems for Chapter 6 / 258 \\
                 6.7 References for Chapter 6 / 260 \\
                 7 Properties of Context-Free Languages / 261 \\
                 7.1 Normal Forms for Context-Free Grammars / 261 \\
                 7.1.1 Eliminating Useless Symbols / 262 \\
                 7.1.2 Computing the Generating and Reachable Symbols /
                 264 \\
                 7.1.3 Eliminating e-Productions / 265 \\
                 7.1.4 Eliminating Unit Productions / 268 \\
                 7.1.5 Chomsky Normal Form / 272 \\
                 7.1.6 Exercises for Section 7.1 / 275 \\
                 7.2 The Pumping Lemma for Context-Free Languages / 279
                 \\
                 7.2.1 The Size of Parse Trees / 280 \\
                 7.2.2 Statement of the Pumping Lemma / 280 \\
                 7.2.3 Applications of the Pumping Lemma for CFL's / 283
                 \\
                 7.2.4 Exercises for Section 7.2 / 286 \\
                 7.3 Closure Properties of Context-Free Languages / 287
                 \\
                 7.3.1 Substitutions / 287 \\
                 7.3.2 Applications of the Substitution Theorem / 289
                 \\
                 7.3.3 Reversal / 290 \\
                 7.3.4 Intersection With a Regular Language / 291 \\
                 7.3.5 Inverse Homomorphism / 295 \\
                 7.3.6 Exercises for Section 7.3 / 297 \\
                 7.4 Decision Properties of CFL's / 299 \\
                 7.4.1 Complexity of Converting Among CFG's and PDA's /
                 299 \\
                 7.4.2 Running Time of Conversion to Chomsky Normal Form
                 / 301 \\
                 7.4.3 Testing Emptiness of CFL's / 302 \\
                 7.4.4 Testing Membership in a CFL / 303 \\
                 7.4.5 Preview of Undecidable CFL Problems / 307 \\
                 7.4.6 Exercises for Section 7.4 / 307 \\
                 7.5 Summary of Chapter 7 / 308 \\
                 7.6 Gradiance Problems for Chapter 7 / 309 \\
                 7.7 References for Chapter 7 / 314 \\
                 8 Introduction to Turing Machines / 315 \\
                 8.1 Problems That Computers Cannot Solve / 315 \\
                 8.1.1 Programs that Print ``Hello, World'' / 316 \\
                 8.1.2 The Hypothetical ``Hello, World'' Tester / 318
                 \\
                 8.1.3 Reducing One Problem to Another / 321 \\
                 8.1.4 Exercises for Section 8.1 / 324 \\
                 8.2 The Turing Machine / 324 \\
                 8.2.1 The Quest to Decide All Mathematical Questions /
                 325 \\
                 8.2.2 Notation for the Turing Machine / 326 \\
                 8.2.3 Instantaneous Descriptions for Turing Machines /
                 327 \\
                 8.2.4 Transition Diagrams for Turing Machines / 331 \\
                 8.2.5 The Language of a Turing Machine / 334 \\
                 8.2.6 Turing Machines and Halting / 334 \\
                 8.2.7 Exercises for Section 8.2 / 335 \\
                 8.3 Programming Techniques for Turing Machines / 337
                 \\
                 8.3.1 Storage in the State / 337 \\
                 8.3.2 Multiple Tracks / 339 \\
                 8.3.3 Subroutines / 341 \\
                 8.3.4 Exercises for Section 8.3 / 343 \\
                 8.4 Extensions to the Basic Turing Machine / 343 \\
                 8.4.1 Multitape Turing Machines / 344 \\
                 8.4.2 Equivalence of One-Tape and Multitape TM's / 345
                 \\
                 8.4.3 Running Time and the Many-Tapes-to-One
                 Construction / 346 \\
                 8.4.4 Nondeterministic Turing Machines / 347 \\
                 8.4.5 Exercises for Section 8.4 / 349 \\
                 8.5 Restricted Turing Machines / 352 \\
                 8.5.1 Turing Machines With Semi-infinite Tapes a / 352
                 \\
                 8.5.2 Multistack Machines / 355 \\
                 8.5.3 Counter Machines / 358 \\
                 8.5.4 The Power of Counter Machines / 359 \\
                 8.5.5 Exercises for Section 8.5 / 361 \\
                 8.6 Turing Machines and Computers / 362 \\
                 8.6.1 Simulating a Turing Machine by Computer / 362 \\
                 8.6.2 Simulating a Computer by a Turing Machine / 363
                 \\
                 8.6.3 Comparing the Running Times of Computers and
                 Turing Machines / 368 \\
                 8.7 Summary of Chapter 8 / 370 \\
                 8.8 Gradiance Problems for Chapter 8 / 372 \\
                 8.9 References for Chapter 8 / 374 \\
                 9 Undecidability / 377 \\
                 9.1 A Language That Is Not Recursively Enumerable / 378
                 \\
                 9.1.1 Enumerating the Binary Strings / 379 \\
                 9.1.2 Codes for Turing Machines / 379 \\
                 9.1.3 The Diagonalization Language / 380 \\
                 9.1.4 Proof That $L_d$ Is Not Recursively Enumerable /
                 382 \\
                 9.1.5 Exercises for Section 9.1 / 382 \\
                 9.2 An Undecidable Problem That Is RE / 383 \\
                 9.2.1 Recursive Languages / 383 \\
                 9.2.2 Complements of Recursive and RE languages / 384
                 \\
                 9.2.3 The Universal Language / 387 \\
                 9.2.4 Undecidability of the Universal Language / 389
                 \\
                 9.2.5 Exercises for Section 9.2 / 390 \\
                 9.3 Undecidable Problems About Turing Machines / 392
                 \\
                 9.3.1 Reductions / 392 \\
                 9.3.2 Turing Machines That Accept the Empty Language /
                 394 \\
                 9.3.3 Rice's Theorem and Properties of the RE Languages
                 / 397 \\
                 9.3.4 Problems about Turing-Machine Specifications /
                 399 \\
                 9.3.5 Exercises for Section 9.3 / 400 \\
                 9.4 Post's Correspondence Problem / 401 \\
                 9.4.1 Definition of Post's Correspondence Problem / 401
                 \\
                 9.4.2 The ``Modified'' PCP / 404 \\
                 9.4.3 Completion of the Proof of PCP Undecidability /
                 407 \\
                 9.4.4 Exercises for Section 9.4 / 412 \\
                 9.5 Other Undecidable Problems / 412 \\
                 9.5.1 Problems About Programs / 413 \\
                 9.5.2 Undecidability of Ambiguity for CFG's / 413 \\
                 9.5.3 The Complement of a List Language / 415 \\
                 9.5.4 Exercises for Section 9.5 / 418 \\
                 9.6 Summary of Chapter 9 / 419 \\
                 9.7 Gradiance Problems for Chapter 9 / 420 \\
                 9.8 References for Chapter 9 / 422 \\
                 10 Intractable Problems / 425 \\
                 10.1 The Classes $\cal P$ and $\cal NP$ / 426 \\
                 10.1.1 Problems Solvable in Polynomial Time / 426 \\
                 10.1.2 An Example: Kruskal's Algorithm / 426 \\
                 10.1.3 Nondeterministic Polynomial Time / 431 \\
                 10.1.4 An $\cal NP$ Example: The Traveling Salesman
                 Problem / 431 \\
                 10.1.5 Polynomial-Time Reductions / 433 \\
                 10.1.6 NP-Complete Problems / 434 \\
                 10.1.7 Exercises for Section 10.1 / 435 \\
                 10.2 An NP-Complete Problem / 438 \\
                 10.2.1 The Satisfiability Problem / 438 \\
                 10.2.2 Representing SAT Instances / 439 \\
                 10.2.3 NP-Completeness of the SAT Problem / 440 \\
                 10.2.4 Exercises for Section 10.2 / 447 \\
                 10.3 A Restricted Satisfiability Problem / 447 \\
                 10.3.1 Normal Forms for Boolean Expressions / 448
                 10.3.2 Converting Expressions to CNF / 449 \\
                 10.3.3 NP-Completeness of CSAT / 452 \\
                 10.3.4 NP-Completeness of 3SAT / 456 \\
                 10.3.5 Exercises for Section 10.3 / 458 \\
                 10.4 Additional NP-Complete Problems / 458 \\
                 10.4.1 Describing NP-complete Problems / 459 \\
                 10.4.2 The Problem of Independent Sets / 459 \\
                 10.4.3 The Node-Cover Problem / 463 \\
                 10.4.4 The Directed Hamilton-Circuit Problem / 465 \\
                 10.4.5 Undirected Hamilton Circuits and the TSP / 471
                 \\
                 10.4.6 Summary of NP-Complete Problems / 473 \\
                 10.4.7 Exercises for Section 10.4 / 473 \\
                 10.5 Summary of Chapter 10 / 477 \\
                 10.6 Gradiance Problems for Chapter 10 / 478 \\
                 10.7 References for Chapter 10 / 481 \\
                 11 Additional Classes of Problems / 483 \\
                 11.1 Complements of Languages in $\cal NP$ / 484 \\
                 11.1.1 The Class of Languages Co-$\cal NP$ / 484 \\
                 11.1.2 NP-Complete Problems and Qo-$\cal NP$ / 485 \\
                 11.1.3 Exercises for Section 11.1 / 486 \\
                 11.2 Problems Solvable in Polynomial Space / 487 \\
                 11.2.1 Polynomial-Space Turing Machines / 487 \\
                 11.2.2 Relationship of $\cal PS$ and $\cal NPS$ to
                 Previously Defined Classes488 11.2.3 Deterministic and
                 Nondeterministic Polynomial Space / 490 \\
                 11.3 A Problem That Is Complete for $\cal PS$ / 492 \\
                 11.3.1 PS-Completeness / 492 \\
                 11.3.2 Quantified Boolean Formulas / 493 \\
                 11.3.3 Evaluating Quantified Boolean Formulas / 494 \\
                 11.3.4 PS-Completeness of the QBF Problem / 496 \\
                 11.3.5 Exercises for Section 11.3 / 501 \\
                 11.4 Language Classes Based on Randomization / 501 \\
                 11.4.1 Quicksort: an Example of a Randomized Algorithm
                 / 502 \\
                 11.4.2 A Turing-Machine Model Using Randomization / 503
                 \\
                 11.4.3 The Language of a Randomized Turing Machine /
                 504 \\
                 11.4.4 The Class $\cal RP$ / 506 \\
                 11.4.5 Recognizing Languages in $\cal RP$ / 508 \\
                 11.4.6 The Class $\cal ZPP$ / 509 \\
                 11.4.7 Relationship Between $\cal RP$ and $\cal ZPP$ /
                 510 \\
                 11.4.8 Relationships to the Classes $\cal P$ and $\cal
                 NP$ / 511 \\
                 11.5 The Complexity of Primality Testing / 512 \\
                 11.5.1 The Importance of Testing Primality / 512 \\
                 11.5.2 Introduction to Modular Arithmetic / 514 \\
                 11.5.3 The Complexity of Modular-Arithmetic
                 Computations / 516 \\
                 11.5.4 Random-Polynomial Primality Testing / 517 \\
                 11.5.5 Nondeterministic Primality Tests / 518 \\
                 11.5.6 Exercises for Section 11.5 / 521 \\
                 11.6 Summary of Chapter 11 / 522 \\
                 11.7 Gradiance Problems for Chapter 11 / 523 \\
                 11.8 References for Chapter 11 / 524 \\
                 Index / 527",
}

@Article{Jones:2007:CPS,
  author =       "Simon Peyton Jones",
  title =        "Call-pattern specialisation for {Haskell} programs",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "327--337",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291220.1291200",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "User-defined data types, pattern-matching, and
                 recursion are ubiquitous features of Haskell programs.
                 Sometimes a function is called with arguments that are
                 statically known to be in constructor form, so that the
                 work of pattern-matching is wasted. Even worse, the
                 argument is sometimes freshly-allocated, only to be
                 immediately decomposed by the function.\par

                 In this paper we describe a simple, modular
                 transformation that specialises recursive functions
                 according to their argument 'shapes'. We describe our
                 implementation of this transformation in the Glasgow
                 Haskell Compiler, and give measurements that
                 demonstrate substantial performance improvements: a
                 worthwhile 10\% on average, with a factor of 10 in
                 particular cases.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "compilers; Haskell; optimisation; specialisation",
}

@Book{Kahrel:2007:GIC,
  author =       "Peter Kahrel",
  title =        "{GREP} in {InDesign CS3}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  year =         "2007",
  ISBN =         "0-596-51706-8",
  ISBN-13 =      "978-0-596-51706-9",
  LCCN =         "Z253.532.A34; Z253.532.A34 K34 2007eb",
  bibdate =      "Tue Aug 5 18:01:04 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 melvyl.cdlib.org:210/CDL90",
  series =       "O'Reilly shortcuts",
  URL =          "http://www.oreilly.com/catalog/9780596517069",
  acknowledgement = ack-nhfb,
  subject =      "Adobe InDesign; Desktop publishing",
}

@InProceedings{Kasneci:2007:CRA,
  author =       "Gjergji Kasneci and Thomas Schwentick",
  title =        "The complexity of reasoning about pattern-based {XML}
                 schemas",
  crossref =     "ACM:2007:PTS",
  pages =        "155--164",
  year =         "2007",
  DOI =          "https://doi.org/10.1145/1265530.1265552",
  bibdate =      "Fri Jun 20 14:06:25 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "In a recent paper, Martens et al. introduced a
                 specification mechanism for XML tree languages, based
                 on rules of the form $ (r, s) $, where $r$, $s$ are
                 regular expressions. Sets of such rules can be
                 interpreted in an existential or a universal fashion.
                 An XML tree is existentially valid with respect to a
                 rule set, if for each node there is a rule such that
                 the root path of the node matches $r$ and the children
                 sequence of the node matches $s$. It is universally
                 valid if each node matching $r$ also matches $s$. This
                 paper investigates the complexity of reasoning about
                 such rule sets, in particular the satisfiability and
                 the implication problem. Whereas, in general these
                 reasoning problems are complete for EXPTIME, two
                 important fragments are identified with PSPACE and
                 PTIME complexity, respectively.",
  acknowledgement = ack-nhfb,
  keywords =     "integrity constraints; XML schemas",
}

@InCollection{Kernighan:2007:REM,
  author =       "Brian W. Kernighan",
  title =        "A regular expression matcher",
  crossref =     "Oram:2007:BC",
  pages =        "1--8",
  year =         "2007",
  bibdate =      "Tue Mar 27 15:50:00 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Khan:2007:NID,
  author =       "Latifur Khan and Mamoun Awad and Bhavani
                 Thuraisingham",
  title =        "A new intrusion detection system using support vector
                 machines and hierarchical clustering",
  journal =      j-VLDB-J,
  volume =       "16",
  number =       "4",
  pages =        "507--521",
  month =        oct,
  year =         "2007",
  CODEN =        "VLDBFR",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Mon Jun 23 10:51:25 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  abstract =     "Whenever an intrusion occurs, the security and value
                 of a computer system is compromised. Network-based
                 attacks make it difficult for legitimate users to
                 access various network services by purposely occupying
                 or sabotaging network resources and services. This can
                 be done by sending large amounts of network traffic,
                 exploiting well-known faults in networking services,
                 and by overloading network hosts. Intrusion Detection
                 attempts to detect computer attacks by examining
                 various data records observed in processes on the
                 network and it is split into two groups, anomaly
                 detection systems and misuse detection systems. Anomaly
                 detection is an attempt to search for malicious
                 behavior that deviates from established normal
                 patterns. Misuse detection is used to identify
                 intrusions that match known attack scenarios. Our
                 interest here is in anomaly detection and our proposed
                 method is a scalable solution for detecting
                 network-based anomalies. We use Support Vector Machines
                 (SVM) for classification. The SVM is one of the most
                 successful classification algorithms in the data mining
                 area, but its long training time limits its use. This
                 paper presents a study for enhancing the training time
                 of SVM, specifically when dealing with large data sets,
                 using hierarchical clustering analysis. We use the
                 Dynamically Growing Self-Organizing Tree (DGSOT)
                 algorithm for clustering because it has proved to
                 overcome the drawbacks of traditional hierarchical
                 clustering algorithms (e.g., hierarchical agglomerative
                 clustering). Clustering analysis helps find the
                 boundary points, which are the most qualified data
                 points to train SVM, between two classes. We present a
                 new approach of combination of SVM and DGSOT, which
                 starts with an initial training set and expands it
                 gradually using the clustering structure produced by
                 the DGSOT algorithm. We compare our approach with the
                 Rocchio Bundling technique and random selection in
                 terms of accuracy loss and training time gain using a
                 single benchmark real data set. We show that our
                 proposed variations contribute significantly in
                 improving the training process of SVM with high
                 generalization accuracy and outperform the Rocchio
                 Bundling technique.",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Kim:2007:GAT,
  author =       "Min-Soo Kim and Kyu-Young Whang and Jae-Gil Lee",
  title =        "{$n$-Gram\slash 2L}-approximation: a two-level
                 $n$-gram inverted index structure for approximate
                 string matching",
  journal =      j-INT-J-COMPUT-SYST-SCI-ENG,
  volume =       "22",
  number =       "6",
  pages =        "??--??",
  month =        nov,
  year =         "2007",
  CODEN =        "CSSEEI",
  ISSN =         "0267-6192",
  bibdate =      "Tue Dec 03 12:37:44 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computsystscieng.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Computer Systems Science and
                 Engineering",
  journal-URL =  "http://www.crlpublishing.co.uk/csse",
  remark =       "Special issue: Privacy Data Management",
}

@Article{Lecroq:2007:FES,
  author =       "Thierry Lecroq",
  title =        "Fast exact string matching algorithms",
  journal =      j-INFO-PROC-LETT,
  volume =       "102",
  number =       "6",
  pages =        "229--235",
  day =          "15",
  month =        jun,
  year =         "2007",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 15:52:43 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Leonardi:2007:OSR,
  author =       "Emilio Leonardi and Marco Mellia and Marco Ajmone
                 Marsan and Fabio Neri",
  title =        "Optimal scheduling and routing for maximum network
                 throughput",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "15",
  number =       "6",
  pages =        "1541--1554",
  month =        dec,
  year =         "2007",
  CODEN =        "IEANEP",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Thu Jun 19 09:58:21 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "In this paper we consider packet networks loaded by
                 admissible traffic patterns, i.e., by traffic patterns
                 that, if optimally routed, do not overload network
                 resources. We prove that simple distributed dynamic
                 routing and scheduling algorithms based upon link state
                 information can achieve the same network throughput as
                 optimal centralized routing and scheduling algorithms
                 with complete traffic information.\par

                 Our proofs apply the stochastic Lyapunov function
                 methodology to a flow-level abstract model of the
                 network, and consider elastic traffic, i.e., we assume
                 that flows can adapt their transmission rates to
                 network conditions, thus resembling traffic engineering
                 and quality-of-service approaches being currently
                 proposed for IP networks.\par

                 Although the paper mainly brings a theoretical
                 contribution, such dynamic routing and scheduling
                 algorithms can be implemented in a distributed way.
                 Moreover we prove that maximum throughput is achieved
                 also in case of temporary mismatches between the actual
                 links state and the link state information used by the
                 routing algorithm. This is a particularly relevant
                 aspect, since any distributed implementation of a
                 routing algorithm requires a periodic exchange of link
                 state information among nodes, and this implies delays,
                 and thus time periods in which the current link costs
                 are not known.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J771",
  keywords =     "asymptotic stability; computer network performance;
                 Lyapunov methods",
}

@Book{Maher:2007:MPU,
  author =       "Tim Maher",
  title =        "Minimal {Perl}: for {UNIX} and {Linux} people",
  publisher =    pub-MANNING,
  address =      pub-MANNING:adr,
  pages =        "xxxviii + 450",
  year =         "2007",
  ISBN =         "1-932394-50-8 (paperback)",
  ISBN-13 =      "978-1-932394-50-4 (paperback)",
  LCCN =         "QA76.73.P22 M34 2007",
  bibdate =      "Thu Mar 2 05:46:18 MST 2023",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "A guide to a carefully designed subset of the Perl
                 language, this book makes Perl more accessible to those
                 having UNIX/Linux skill levels ranging from elementary
                 to expert by capitalizing on their existing knowledge
                 of important utilities (grep, awk), or essential
                 concepts (filters, command substitution, looping).
                 Dozens of detailed programming examples are shown,
                 drawn from contemporary application areas such as
                 system administration, networking, Web development,
                 databases, finance, HTML, CGI, and text analysis.
                 Broken into two parts, the first is for all who are
                 familiar with core UNIX/Linux commands such as grep and
                 caters to readers ranging from managers and
                 administrative staff to advanced programmers. The
                 second part is for developers experienced in Bourne,
                 Korn, Bash, or POSIX Shell programming and makes Perl
                 scripting easy to learn by showing Shell examples along
                 with their Perl counterparts. Many Perl modules are
                 covered including freely available pre-written code
                 from the CPAN.",
  acknowledgement = ack-nhfb,
  subject =      "Perl (Computer program language); Perl (Langage de
                 programmation); Perl (Computer program language)",
  tableofcontents = "Part 1: Minimal Perl: for UNIX and Linux users \\
                 1: Introducing Minimal Perl \\
                 2: Perl essentials \\
                 3: Perl as a (better) grep command \\
                 4: Perl as a (better) sed command \\
                 5: Perl as a (better) awk command \\
                 6: Perl as a (better) find command \\
                 Part 2: Minimal Perl: for UNIX and Linux shell
                 programmers \\
                 7: Built-in functions \\
                 8: Scripting techniques \\
                 9: List variables \\
                 10: Looping facilities \\
                 11: Subroutines and variable scoping \\
                 12: Modules and the CPAN",
}

@Article{Maranget:2007:WPM,
  author =       "Luc Maranget",
  title =        "Warnings for pattern matching",
  journal =      j-J-FUNCT-PROGRAM,
  volume =       "17",
  number =       "3",
  pages =        "387--421",
  month =        may,
  year =         "2007",
  CODEN =        "JFPRES",
  DOI =          "https://doi.org/10.1017/S0956796807006223",
  ISSN =         "0956-7968 (print), 1469-7653 (electronic)",
  ISSN-L =       "0956-7968",
  bibdate =      "Tue Jul 11 18:07:50 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jfunctprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.cambridge.org/core/product/3165B75113781E2431E3856972940347",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Funct. Program.",
  fjournal =     "Journal of Functional Programming",
  journal-URL =  "http://journals.cambridge.org/action/displayJournal?jid=JFP",
  onlinedate =   "15 February 2007",
}

@Article{Martens:2007:SSA,
  author =       "Wim Martens and Frank Neven and Thomas Schwentick",
  title =        "Simple off the shelf abstractions for {XML} schema",
  journal =      j-SIGMOD,
  volume =       "36",
  number =       "3",
  pages =        "15--22",
  month =        sep,
  year =         "2007",
  CODEN =        "SRECD8",
  DOI =          "https://doi.org/10.1145/1324185.1324188",
  ISSN =         "0163-5808 (print), 1943-5835 (electronic)",
  ISSN-L =       "0163-5808",
  bibdate =      "Tue Jun 17 16:20:18 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigmod.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Although the advent of XML Schema [25] has rendered
                 DTDs obsolete, research on practical XML optimization
                 is mostly biased towards DTDs and tends to largely
                 ignore XSDs (some notable exceptions non-withstanding).
                 One of the underlying reasons is most probably the
                 perceived simplicity of DTDs versus the alleged
                 impenetrability of XML Schema. Indeed, optimization
                 w.r.t. DTDs has a local flavor and usually reduces to
                 reasoning about the accustomed formalism of regular
                 expressions. XSDs, on the other hand, even when
                 sufficiently stripped down, are related to the less
                 pervious class of unranked regular tree automata [6,
                 19, 20, 21]. Recent results on the structural
                 expressiveness of XSDs [19], however, show that XSDs
                 are in fact much closer to DTDs than to tree automata,
                 leveraging the possibility to directly extend
                 techniques for DTD-based XML optimization to the realm
                 of XML Schema. The goal of the present paper is to
                 present the results in [19] in an easy and accessible
                 way. At the same time, we discuss possible
                 applications, related research, and future research
                 directions. Throughout the paper, we try to restrict
                 notation to a minimum. We refer to [19] for further
                 details.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGMOD Record (ACM Special Interest Group on
                 Management of Data)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J689",
}

@Article{Michailidis:2007:PAP,
  author =       "Panagiotis D. Michailidis and Konstantinos G.
                 Margaritis",
  title =        "A programmable array processor architecture for
                 flexible approximate string matching algorithms",
  journal =      j-J-PAR-DIST-COMP,
  volume =       "67",
  number =       "2",
  pages =        "131--141",
  month =        feb,
  year =         "2007",
  CODEN =        "JPDCER",
  ISSN =         "0743-7315 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Fri Jul 11 20:32:35 MDT 2008",
  bibsource =    "http://www.sciencedirect.com/science/journal/07437315;
                 https://www.math.utah.edu/pub/tex/bib/jpardistcomp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
}

@Article{Mori:2007:PID,
  author =       "Yuki Mori and Takeo Igarashi",
  title =        "Plushie: an interactive design system for plush toys",
  journal =      j-TOG,
  volume =       "26",
  number =       "3",
  pages =        "45:1--45:??",
  month =        jul,
  year =         "2007",
  CODEN =        "ATGRDF",
  DOI =          "https://doi.org/10.1145/1276377.1276433",
  ISSN =         "0730-0301 (print), 1557-7368 (electronic)",
  ISSN-L =       "0730-0301",
  bibdate =      "Fri Jun 13 19:09:11 MDT 2008",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tog/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tog.bib",
  abstract =     "We introduce Plushie, an interactive system that
                 allows nonprofessional users to design their own
                 original plush toys. To design a plush toy, one needs
                 to construct an appropriate two-dimensional (2D)
                 pattern. However, it is difficult for non-professional
                 users to appropriately design a 2D pattern. Some recent
                 systems automatically generate a 2D pattern for a given
                 three-dimensional (3D) model, but constructing a 3D
                 model is itself a challenge. Furthermore, an arbitrary
                 3D model cannot necessarily be realized as a real plush
                 toy, and the final sewn result can be very different
                 from the original 3D model. We avoid this mismatch by
                 constructing appropriate 2D patterns and applying
                 simple physical simulation to it on the fly during 3D
                 modeling. In this way, the model on the screen is
                 always a good approximation of the final sewn result,
                 which makes the design process much more efficient. We
                 use a sketching interface for 3D modeling and also
                 provide various editing operations tailored for plush
                 toy design. Internally, the system constructs a 2D
                 cloth pattern in such a way that the simulation result
                 matches the user's input stroke. Our goal is to show
                 that relatively simple algorithms can provide fast,
                 satisfactory results to the user whereas the pursuit of
                 optimal layout and simulation accuracy lies outside
                 this paper's scope. We successfully demonstrated that
                 non-professional users could design plush toys or
                 balloon easily using Plushie.",
  acknowledgement = ack-nhfb,
  articleno =    "45",
  fjournal =     "ACM Transactions on Graphics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J778",
  keywords =     "cloth simulation; plush toys; sketch-based modeling",
}

@Article{Mungan:2007:SML,
  author =       "Muhittin Mungan",
  title =        "String Matching and {$1$D} Lattice Gases",
  journal =      j-J-STAT-PHYS,
  volume =       "126",
  number =       "1",
  pages =        "207--242",
  month =        jan,
  year =         "2007",
  CODEN =        "JSTPSB",
  DOI =          "https://doi.org/10.1007/s10955-006-9247-z",
  ISSN =         "0022-4715 (print), 1572-9613 (electronic)",
  ISSN-L =       "0022-4715",
  bibdate =      "Thu Aug 28 19:06:56 MDT 2014",
  bibsource =    "http://link.springer.com/journal/10955;
                 http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0022-4715&volume=126&issue=1;
                 https://www.math.utah.edu/pub/tex/bib/jstatphys2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/s10955-006-9247-z",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Statistical Physics",
  journal-URL =  "http://link.springer.com/journal/10955",
}

@Article{Navarro:2007:CFT,
  author =       "Gonzalo Navarro and Veli M{\"a}kinen",
  title =        "Compressed full-text indexes",
  journal =      j-COMP-SURV,
  volume =       "39",
  number =       "1",
  pages =        "2:1--2:61",
  month =        apr,
  year =         "2007",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/1216370.1216372",
  ISSN =         "0360-0300 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  bibdate =      "Thu Jun 19 10:21:11 MDT 2008",
  bibsource =    "http://www.acm.org/pubs/contents/journals/surveys/;
                 https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Full-text indexes provide fast substring search over
                 large text collections. A serious problem of these
                 indexes has traditionally been their space consumption.
                 A recent trend is to develop indexes that exploit the
                 compressibility of the text, so that their size is a
                 function of the compressed text length. This concept
                 has evolved into self-indexes, which in addition
                 contain enough information to reproduce any text
                 portion, so they replace the text. The exciting
                 possibility of an index that takes space close to that
                 of the compressed text, replaces it, and in addition
                 provides fast search over it, has triggered a wealth of
                 activity and produced surprising results in a very
                 short time, which radically changed the status of this
                 area in less than 5 years. The most successful indexes
                 nowadays are able to obtain almost optimal space and
                 search time simultaneously.\par

                 In this article we present the main concepts underlying
                 (compressed) self-indexes. We explain the relationship
                 between text entropy and regularities that show up in
                 index structures and permit compressing them. Then we
                 cover the most relevant self-indexes, focusing on how
                 they exploit text compressibility to achieve compact
                 structures that can efficiently solve various search
                 problems. Our aim is to give the background to
                 understand and follow the developments in this area.",
  acknowledgement = ack-nhfb,
  articleno =    "2",
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
  keywords =     "entropy; text compression; Text indexing",
}

@Article{Nieminen:2007:EIA,
  author =       "Janne Nieminen and Pekka Kilpel{\"a}inen",
  title =        "Efficient implementation of {Aho--Corasick} pattern
                 matching automata using {Unicode}",
  journal =      j-SPE,
  volume =       "37",
  number =       "6",
  pages =        "669--690",
  month =        may,
  year =         "2007",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.785",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Wed Oct 17 18:33:15 MDT 2007",
  bibsource =    "http://www.interscience.wiley.com/jpages/0038-0644;
                 http://www3.interscience.wiley.com/journalfinder.html;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unicode.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "2 Nov 2006",
}

@Article{Petersen:2007:SMS,
  author =       "Holger Petersen",
  title =        "String matching with simple devices",
  journal =      j-INFO-PROC-LETT,
  volume =       "105",
  number =       "1",
  pages =        "32--34",
  day =          "31",
  month =        dec,
  year =         "2007",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 15:52:54 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Qiu:2007:ESA,
  author =       "Shibin Qiu and Terran Lane and Cundong Yang",
  title =        "Efficient search algorithms for {RNAi} target
                 detection",
  journal =      j-J-SUPERCOMPUTING,
  volume =       "42",
  number =       "3",
  pages =        "303--319",
  month =        dec,
  year =         "2007",
  CODEN =        "JOSUED",
  DOI =          "https://doi.org/10.1007/s11227-007-0121-9",
  ISSN =         "0920-8542 (print), 1573-0484 (electronic)",
  ISSN-L =       "0920-8542",
  bibdate =      "Wed Jul 9 17:32:33 MDT 2008",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0920-8542&volume=42&issue=3;
                 https://www.math.utah.edu/pub/tex/bib/jsuper.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0920-8542&volume=42&issue=3&spage=303",
  acknowledgement = ack-nhfb,
  fjournal =     "The Journal of Supercomputing",
  journal-URL =  "http://link.springer.com/journal/11227",
  keywords =     "Off-target; Reverse string search; RNAi target
                 detection; siRNA seed region; String inexact matching;
                 String kernels",
}

@Article{Stallmann:2007:PAE,
  author =       "Matthias F. Stallmann and Suzanne P. Balik and Robert
                 D. Rodman and Sina Bahram and Michael C. Grace and
                 Susan D. High",
  title =        "{ProofChecker}: an accessible environment for automata
                 theory correctness proofs",
  journal =      j-SIGCSE,
  volume =       "39",
  number =       "3",
  pages =        "48--52",
  month =        sep,
  year =         "2007",
  CODEN =        "SIGSD3",
  DOI =          "https://doi.org/10.1145/1269900.1268801",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:57:36 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigcse2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Proceedings of the 12th Annual SIGCSE Conference on
                 Innovation and Technology in Computer Science Education
                 (ITiCSE'07).",
  abstract =     "ProofChecker is a graphical program based on the
                 notion of formal correctness proofs that allows
                 students, both sighted and visually impaired, to draw a
                 deterministic finite automaton (DFA) and determine
                 whether or not it correctly recognizes a given
                 language. Sighted students use the mouse and graphical
                 controls to draw and manipulate the DFA. Keyboard
                 shortcuts, together with the use of a screen reader to
                 voice the accessible descriptions provided by the
                 program, allow visually impaired students to do the
                 same. Because the states of a DFA partition the
                 language over its alphabet into equivalence classes,
                 each state has a language associated with it.
                 Conditions that describe the language of each state are
                 entered by the student in the form of conditional
                 expressions with function calls and/or regular
                 expressions. A brute-force approach is then used to
                 check that each state's condition correctly describes
                 all of the strings in its language and that none of the
                 strings in a state's language meet the condition for
                 another state. Feedback is provided that either
                 confirms that the DFA correctly meets the given
                 conditions or alerts the student to a mismatch between
                 the conditions and the DFA. A student's DFA can be
                 saved in an XML file and submitted for grading. An
                 automated checking tool, known as ProofGrader, can be
                 used to compare a student's DFA with the correct DFA
                 for a given language, thus greatly speeding up the
                 grading of student assignments.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Book{Stubblebine:2007:REP,
  author =       "Tony Stubblebine",
  title =        "Regular expression pocket reference: Regular
                 expressions for {Perl}, {Ruby}, {PHP}, {Python}, {C},
                 {Java}, and {.NET}.",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Second",
  pages =        "vii + 117",
  year =         "2007",
  ISBN =         "0-596-51427-1 (paperback)",
  ISBN-13 =      "978-0-596-51427-3 (paperback)",
  LCCN =         "QA76.9.T48 S78 2007",
  bibdate =      "Thu Apr 16 10:31:52 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.loc.gov/catdir/toc/fy0802/2007281074.html",
  acknowledgement = ack-nhfb,
  subject =      "Text processing (Computer science); Programming
                 languages (Electronic computers); Syntax",
}

@Article{Syme:2007:EPM,
  author =       "Don Syme and Gregory Neverov and James Margetson",
  title =        "Extensible pattern matching via a lightweight language
                 extension",
  journal =      j-SIGPLAN,
  volume =       "42",
  number =       "9",
  pages =        "29--40",
  month =        sep,
  year =         "2007",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1291151.1291159",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 10:59:28 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Pattern matching of algebraic data types (ADTs) is a
                 standard feature in typed functional programming
                 languages, but it is well known that it interacts
                 poorly with abstraction. While several partial
                 solutions to this problem have been proposed, few have
                 been implemented or used. This paper describes an
                 extension to the .NET language F\# called active
                 patterns, which supports pattern matching over abstract
                 representations of generic heterogeneous data such as
                 XML and term structures, including where these are
                 represented via object models in other .NET languages.
                 Our design is the first to incorporate both ad hoc
                 pattern matching functions for partial decompositions
                 and 'views' for total decompositions, and yet remains a
                 simple and lightweight extension. We give a description
                 of the language extension along with numerous
                 motivating examples. Finally we describe how this
                 feature would interact with other reasonable and
                 related language extensions: existential types
                 quantified at data discrimination tags, GADTs, and
                 monadic generalizations of pattern matching.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "F#; functional programming; ML; pattern matching",
}

@Article{Tata:2007:ESTa,
  author =       "Sandeep Tata and Jignesh M. Patel",
  title =        "Estimating the selectivity of {\em tf-idf\/} based
                 cosine similarity predicates",
  journal =      j-SIGMOD,
  volume =       "36",
  number =       "2",
  pages =        "7--12",
  month =        jun,
  year =         "2007",
  CODEN =        "SRECD8",
  DOI =          "https://doi.org/10.1145/1328854.1328855",
  ISSN =         "0163-5808 (print), 1943-5835 (electronic)",
  ISSN-L =       "0163-5808",
  bibdate =      "Tue Jun 17 16:20:06 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigmod.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "An increasing number of database applications today
                 require sophisticated approximate string matching
                 capabilities. Examples of such application areas
                 include data integration and data cleaning. Cosine
                 similarity has proven to be a robust metric for scoring
                 the similarity between two strings, and it is
                 increasingly being used in complex queries. An
                 immediate challenge faced by current database
                 optimizers is to find accurate and efficient methods
                 for estimating the selectivity of cosine similarity
                 predicates. To the best of our knowledge, there are no
                 known methods for this problem. In this paper, we
                 present the first approach for estimating the
                 selectivity of tf.idf based cosine similarity
                 predicates. We evaluate our approach on three different
                 real datasets and show that our method often produces
                 estimates that are within 40\% of the actual
                 selectivity.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGMOD Record (ACM Special Interest Group on
                 Management of Data)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J689",
}

@Article{Tata:2007:ESTb,
  author =       "Sandeep Tata and Jignesh M. Patel",
  title =        "Estimating the selectivity of {\em tf-idf\/} based
                 cosine similarity predicates",
  journal =      j-SIGMOD,
  volume =       "36",
  number =       "4",
  pages =        "75--80",
  month =        dec,
  year =         "2007",
  CODEN =        "SRECD8",
  DOI =          "https://doi.org/10.1145/1361348.1361351",
  ISSN =         "0163-5808 (print), 1943-5835 (electronic)",
  ISSN-L =       "0163-5808",
  bibdate =      "Tue Jun 17 16:20:29 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigmod.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "An increasing number of database applications today
                 require sophisticated approximate string matching
                 capabilities. Examples of such application areas
                 include data integration and data cleaning. Cosine
                 similarity has proven to be a robust metric for scoring
                 the similarity between two strings, and it is
                 increasingly being used in complex queries. An
                 immediate challenge faced by current database
                 optimizers is to find accurate and efficient methods
                 for estimating the selectivity of cosine similarity
                 predicates. To the best of our knowledge, there are no
                 known methods for this problem. In this paper, we
                 present the first approach for estimating the
                 selectivity of tf.idf based cosine similarity
                 predicates. We evaluate our approach on three different
                 real datasets and show that our method often produces
                 estimates that are within 40\% of the actual
                 selectivity.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGMOD Record (ACM Special Interest Group on
                 Management of Data)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J689",
}

@Article{Tran:2007:FBC,
  author =       "Thinh Ngoc Tran and Surin Kittitornkun",
  title =        "{FPGA}-Based Cuckoo Hashing for Pattern Matching in
                 {NIDS\slash NIPS}",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "4773",
  pages =        "334--343",
  year =         "2007",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-540-75476-3_34",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon Jan 21 17:04:38 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/content/pdf/10.1007/978-3-540-75476-3_34",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-540-75476-3",
  book-URL =     "http://www.springerlink.com/content/978-3-540-75476-3",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Tseng:2007:DHS,
  author =       "Kuo-Kun Tseng and Ying-Dar Lin and Tsern-Huei Lee and
                 Yuan-Cheng Lai",
  title =        "Deterministic high-speed root-hashing automaton
                 matching coprocessor for embedded network processor",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "35",
  number =       "3",
  pages =        "36--43",
  month =        jun,
  year =         "2007",
  CODEN =        "CANED2",
  DOI =          "https://doi.org/10.1145/1294313.1294314",
  ISSN =         "0163-5964 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Tue Jun 17 11:48:27 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigarch.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 sigarch.bib",
  abstract =     "While string matching plays an important role in deep
                 packet inspection applications, its software algorithms
                 are insufficient to meet the demands of high-speed
                 performance. Accordingly, we were motivated to propose
                 fast and deterministic performance root-hashing
                 automaton matching (RHAM) coprocessor for embedded
                 network processor. Although automaton algorithms are
                 robust with deterministic matching time, there is still
                 plenty of room for improvement of their average-case
                 performance. The proposed RHAM employs novel
                 root-hashing technique to accelerate automaton
                 matching. In our experiment, RHAM is implemented in a
                 prevalent automaton algorithm, Aho--Corasick (AC) which
                 is often used in many packet inspection applications.
                 Compared to the original AC, RHAM only requires extra
                 vector size in 48 Kbytes for root-hashing, and has
                 about 900\% and 420\% outperformance for 20,000 URLs
                 and 10,000 virus patterns respectively. Implementation
                 of RHAM FPGA can perform at the rate of 12.6 Gbps with
                 the pattern amount in 34,215 bytes. This is superior to
                 all previous matching hardware in terms of throughput
                 and pattern set.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
  keywords =     "coprocessor; finite automaton; hashing; packet
                 inspection; string matching",
  xxISSN =       "0163-5964 (ACM), 0884-7495 (IEEE)",
}

@Article{Weddle:2007:PGS,
  author =       "Charles Weddle and Mathew Oldham and Jin Qian and An-I
                 Andy Wang and Peter Reiher and Geoff Kuenning",
  title =        "{PARAID}: a gear-shifting power-aware {RAID}",
  journal =      j-TOS,
  volume =       "3",
  number =       "3",
  pages =        "13:1--13:??",
  month =        oct,
  year =         "2007",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1288783.1288787",
  ISSN =         "1553-3077 (print), 1553-3093 (electronic)",
  ISSN-L =       "1553-3077",
  bibdate =      "Mon Jun 16 17:36:25 MDT 2008",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tos/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tos.bib",
  abstract =     "Reducing power consumption for server-class computers
                 is important, since increased energy usage causes more
                 heat dissipation, greater cooling requirements, reduced
                 computational density, and higher operating costs. For
                 a typical data center, storage accounts for 27\% of
                 energy consumption. Conventional server-class RAIDs
                 cannot easily reduce power because loads are balanced
                 to use all disks, even for light loads.\par

                 We have built the power-aware RAID (PARAID), which
                 reduces energy use of commodity server-class disks
                 without specialized hardware. PARAID uses a skewed
                 striping pattern to adapt to the system load by varying
                 the number of powered disks. By spinning disks down
                 during light loads, PARAID can reduce power
                 consumption, while still meeting performance demands,
                 by matching the number of powered disks to the system
                 load. Reliability is achieved by limiting disk power
                 cycles and using different RAID encoding schemes. Based
                 on our five-disk prototype, PARAID uses up to 34\% less
                 power than conventional RAIDs while achieving similar
                 performance and reliability.",
  acknowledgement = ack-nhfb,
  articleno =    "13",
  fjournal =     "ACM Transactions on Storage",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J960",
  keywords =     "energy efficiency; power savings; RAID",
}

@Article{Wobber:2007:AAS,
  author =       "Ted Wobber and Aydan Yumerefendi and Mart{\'\i}n Abadi
                 and Andrew Birrell and Daniel R. Simon",
  title =        "Authorizing applications in singularity",
  journal =      j-OPER-SYS-REV,
  volume =       "41",
  number =       "3",
  pages =        "355--368",
  month =        jun,
  year =         "2007",
  CODEN =        "OSRED8",
  DOI =          "https://doi.org/10.1145/1272998.1273033",
  ISSN =         "0163-5980 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Fri Jun 20 17:16:31 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/opersysrev.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We describe a new design for authorization in
                 operating systems in which applications are first-class
                 entities. In this design, principals reflect
                 application identities. Access control lists are
                 patterns that recognize principals. We present a
                 security model that embodies this design in an
                 experimental operating system, and we describe the
                 implementation of our design and its performance in the
                 context of this operating system.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGOPS Operating Systems Review",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J597",
  keywords =     "access control; application identity; capabilities;
                 channels; delegation; pattern matching; regular
                 expressions",
}

@Article{Zhang:2007:MPP,
  author =       "Minghua Zhang and Ben Kao and David W. Cheung and
                 Kevin Y. Yip",
  title =        "Mining periodic patterns with gap requirement from
                 sequences",
  journal =      j-TKDD,
  volume =       "1",
  number =       "2",
  pages =        "7:1--7:??",
  month =        aug,
  year =         "2007",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1267066.1267068",
  ISSN =         "1556-4681 (print), 1556-472X (electronic)",
  ISSN-L =       "1556-4681",
  bibdate =      "Fri Apr 24 17:58:48 MDT 2009",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tkdd/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tkdd.bib",
  abstract =     "We study a problem of mining frequently occurring
                 periodic patterns with a gap requirement from
                 sequences. Given a character sequence {$S$} of length
                 {$L$} and a pattern {$P$} of length $l$, we consider
                 {$P$} a frequently occurring pattern in {$S$} if the
                 probability of {\em observing\/} {$P$} given a randomly
                 picked length-$l$ subsequence of {$S$} exceeds a
                 certain threshold. In many applications, particularly
                 those related to bioinformatics, interesting patterns
                 are {\em periodic\/} with a {\em gap requirement}. That
                 is to say, the characters in {$P$} should match
                 subsequences of {$S$} in such a way that the matching
                 characters in {$S$} are separated by gaps of more or
                 less the same size. We show the complexity of the
                 mining problem and discuss why traditional mining
                 algorithms are computationally infeasible. We propose
                 practical algorithms for solving the problem and study
                 their characteristics. We also present a case study in
                 which we apply our algorithms on some DNA sequences. We
                 discuss some interesting patterns obtained from the
                 case study.",
  acknowledgement = ack-nhfb,
  articleno =    "7",
  fjournal =     "ACM Transactions on Knowledge Discovery from Data
                 (TKDD)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1054",
  keywords =     "gap requirement; periodic pattern; Sequence mining",
}

@Article{Zhang:2007:SSS,
  author =       "Louxin Zhang",
  title =        "Superiority of Spaced Seeds for Homology Search",
  journal =      j-TCBB,
  volume =       "4",
  number =       "3",
  pages =        "496--505",
  month =        jul,
  year =         "2007",
  CODEN =        "ITCBCY",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Thu Jun 12 16:58:24 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "In homology search, good spaced seeds have higher
                 sensitivity for the same cost (weight). However,
                 elucidating the mechanism that confers power to spaced
                 seeds and characterizing optimal spaced seeds still
                 remain unsolved. This paper investigates these two
                 important open questions by formally analyzing the
                 average number of non-overlapping hits and the hit
                 probability of a spaced seed in the Bernoulli sequence
                 model. We prove that when the length of a non-uniformly
                 spaced seed is bounded above by an exponential function
                 of the seed weight, the seed outperforms strictly the
                 traditional consecutive seed of the same weight in both
                 (i) the average number of non-overlapping hits and (ii)
                 the asymptotic hit probability. This clearly answers
                 the first problem mentioned above in the Bernoulli
                 sequence model. The theoretical study in this paper
                 also gives a new solution to finding long optimal
                 seeds.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
  keywords =     "homology search; pattern matching; renewal theory; run
                 statistics; sequence alignment; spaced seeds",
}

@Book{Adjeroh:2008:BWT,
  author =       "Donald Adjeroh and Tim Bell and Amar Mukherjee",
  title =        "The {Burrows--Wheeler} Transform: Data Compression,
                 Suffix Arrays, and Pattern Matching",
  publisher =    "Springer Science+Business Media, LLC",
  address =      "Boston, MA, USA",
  pages =        "xxii + 351",
  year =         "2008",
  DOI =          "https://doi.org/10.1007/978-0-387-78909-5",
  ISBN =         "0-387-78908-1, 0-387-78909-X (e-book)",
  ISBN-13 =      "978-0-387-78908-8, 978-0-387-78909-5 (e-book)",
  LCCN =         "QA76.9.D33 A35 2008",
  bibdate =      "Mon Jan 28 15:10:39 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cryptography2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigact.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.bibsys.no:2100/BIBSYS",
  acknowledgement = ack-nhfb,
  subject =      "Data Structures; Computer Science; Database
                 management; Information Storage and Retrieval; Data
                 structures (Computer science); Information storage and
                 retrieval systems; Data Structures, Cryptology and
                 Information Theory; datakomprimering",
}

@Article{Aiger:2008:AGH,
  author =       "Dror Aiger and Klara Kedem",
  title =        "Applying graphics hardware to achieve extremely fast
                 geometric pattern matching in two and three dimensional
                 transformation space",
  journal =      j-INFO-PROC-LETT,
  volume =       "105",
  number =       "6",
  pages =        "224--230",
  day =          "16",
  month =        mar,
  year =         "2008",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 15:52:59 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Amir:2008:PEC,
  author =       "Amihood Amir and Avivit Levy and Liron Reuveni",
  title =        "The Practical Efficiency of Convolutions in Pattern
                 Matching Algorithms",
  journal =      j-FUND-INFO,
  volume =       "84",
  number =       "1",
  pages =        "1--15",
  month =        sep,
  year =         "2008",
  CODEN =        "FUMAAJ",
  ISSN =         "0169-2968 (print), 1875-8681 (electronic)",
  ISSN-L =       "0169-2968",
  bibdate =      "Sat Mar 5 17:06:52 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fundinfo2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Fundamenta Informaticae",
  journal-URL =  "http://content.iospress.com/journals/fundamenta-informaticae",
}

@Article{Arenas:2008:XDE,
  author =       "Marcelo Arenas and Leonid Libkin",
  title =        "{XML} data exchange: {Consistency} and query
                 answering",
  journal =      j-J-ACM,
  volume =       "55",
  number =       "2",
  pages =        "7:1--7:72",
  month =        may,
  year =         "2008",
  CODEN =        "JACOAH",
  DOI =          "https://doi.org/10.1145/1346330.1346332",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Mon Jun 16 18:08:44 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Data exchange is the problem of finding an instance of
                 a target schema, given an instance of a source schema
                 and a specification of the relationship between the
                 source and the target. Theoretical foundations of data
                 exchange have recently been investigated for relational
                 data.\par

                 In this article, we start looking into the basic
                 properties of XML data exchange, that is, restructuring
                 of XML documents that conform to a source DTD under a
                 target DTD, and answering queries written over the
                 target schema. We define XML data exchange settings in
                 which source-to-target dependencies refer to the
                 hierarchical structure of the data. Combining DTDs and
                 dependencies makes some XML data exchange settings
                 inconsistent. We investigate the consistency problem
                 and determine its exact complexity.\par

                 We then move to query answering, and prove a dichotomy
                 theorem that classifies data exchange settings into
                 those over which query answering is tractable, and
                 those over which it is coNP-complete, depending on
                 classes of regular expressions used in DTDs.
                 Furthermore, for all tractable cases we give
                 polynomial-time algorithms that compute target XML
                 documents over which queries can be answered.",
  acknowledgement = ack-nhfb,
  articleno =    "7",
  fjournal =     "Journal of the Association for Computing Machinery",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  keywords =     "computing certain answers; consistency; data exchange;
                 XML",
}

@Article{Barsky:2008:GAT,
  author =       "Marina Barsky and Ulrike Stege and Alex Thomo and
                 Chris Upton",
  title =        "A graph approach to the threshold all-against-all
                 substring matching problem",
  journal =      j-ACM-J-EXP-ALGORITHMICS,
  volume =       "12",
  pages =        "1.10:1--1.10:??",
  month =        jun,
  year =         "2008",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1370596.1370601",
  ISSN =         "1084-6654",
  ISSN-L =       "1084-6654",
  bibdate =      "Mon Oct 6 16:17:58 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jea.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We present a novel graph model and an efficient
                 algorithm for solving the ``threshold all against all''
                 problem, which involves searching two strings (with
                 length {$M$} and {$N$}, respectively) for all maximal
                 approximate substring matches of length at least {$S$},
                 with up to {$K$} differences. Our algorithm solves the
                 problem in time {$ O(M N K_3) $}, which is a
                 considerable improvement over the previous known bound
                 for this problem. We also provide experimental evidence
                 that, in practice, our algorithm exhibits a better
                 performance than its worst-case running time.",
  acknowledgement = ack-nhfb,
  articleno =    "1.10",
  fjournal =     "Journal of Experimental Algorithmics (JEA)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J430",
  keywords =     "bioinformatics; complexity; string matching",
}

@Article{Ben-David:2008:EFA,
  author =       "Shoham Ben-David and Dana Fisman and Sitvanit Ruah",
  title =        "Embedding finite automata within regular expressions",
  journal =      j-THEOR-COMP-SCI,
  volume =       "404",
  number =       "3",
  pages =        "202--218",
  day =          "28",
  month =        sep,
  year =         "2008",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Mar 28 21:21:41 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2005.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Bille:2008:FCR,
  author =       "Philip Bille and Martin Farach-Colton",
  title =        "Fast and compact regular expression matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "409",
  number =       "3",
  pages =        "486--496",
  day =          "28",
  month =        dec,
  year =         "2008",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Mar 28 21:21:45 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2005.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Book{Blum:2008:LCL,
  author =       "Richard Blum",
  title =        "{Linux} command line and shell scripting bible",
  publisher =    pub-WILEY,
  address =      pub-WILEY:adr,
  pages =        "xxx + 809",
  year =         "2008",
  ISBN =         "0-470-25128-X (paperback)",
  ISBN-13 =      "978-0-470-25128-7 (paperback)",
  LCCN =         "QA76.76.O63 B598 2008",
  bibdate =      "Mon Aug 23 13:58:20 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/linux.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.loc.gov/catdir/enhancements/fy0827/2008012238-d.html;
                 http://www.loc.gov/catdir/enhancements/fy0827/2008012238-t.html;
                 http://www.loc.gov/catdir/enhancements/fy0828/2008012238-b.html",
  abstract =     "A guide to the Linux command line and shell scripts
                 covers such topics as using Linux environment
                 variables, working with editors, using structured
                 commands, handling user input, creating functions, and
                 working with Regular Expressions.",
  acknowledgement = ack-nhfb,
  subject =      "Linux; Operating systems (Computers); Scripting
                 languages (Computer science)",
  tableofcontents = "Introduction \\
                 Part I. The Linux Command Line. Chapter 1: Starting
                 with Linux Shells \\
                 Chapter 2: Getting to the Shell \\
                 Chapter 3: Basic bash Shell Commands \\
                 Chapter 4: More bash Shell Commands \\
                 Chapter 5: Using Linux Environment Variables. \\
                 Chapter 6: Understanding Linux File Permissions \\
                 Chapter 7: Working with Editors \\
                 Part II. Shell Scripting Basics. \\
                 Chapter 8: Basic Script Building \\
                 Chapter 9: Using Structured Commands \\
                 Chapter 10: More Structured Commands \\
                 Chapter 11: Handling User Input \\
                 Chapter 12: Presenting Data \\
                 Chapter 13: Script Control \\
                 Part III. Advanced Shell Scripting \\
                 Chapter 14: Creating Functions \\
                 Chapter 15: Adding Color to Scripts \\
                 Chapter 16: Introducing sed and gawk \\
                 Chapter 17: Regular Expressions \\
                 Chapter 18: Advanced sed \\
                 Chapter 19: Advanced gawk \\
                 Part IV. Alternative Linux Shells \\
                 Chapter 20: The ash Shell \\
                 Chapter 21: The tcsh Shell \\
                 Chapter 22: The Korn Shell \\
                 Chapter 23: The zsh Shell \\
                 Part V. Advanced Topics \\
                 Chapter 24: Using a Database \\
                 Chapter 25: Using the Web \\
                 Chapter 26: Using E-Mail \\
                 Chapter 27: Shell Scripts for Administrators \\
                 Appendixes",
}

@Article{Bocker:2008:CAM,
  author =       "Sebastian Bocker and Veli Makinen",
  title =        "Combinatorial Approaches for Mass Spectra
                 Recalibration",
  journal =      j-TCBB,
  volume =       "5",
  number =       "1",
  pages =        "91--100",
  month =        jan,
  year =         "2008",
  CODEN =        "ITCBCY",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Thu Jun 12 16:59:11 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "Mass spectrometry has become one of the most popular
                 analysis techniques in Proteomics and Systems Biology.
                 With the creation of larger datasets, the automated
                 recalibration of mass spectra becomes important to
                 ensure that every peak in the sample spectrum is
                 correctly assigned to some peptide and protein.
                 Algorithms for recalibrating mass spectra have to be
                 robust with respect to wrongly assigned peaks, as well
                 as efficient due to the amount of mass spectrometry
                 data. The recalibration of mass spectra leads us to the
                 problem of finding an optimal matching between mass
                 spectra under measurement errors. We have developed two
                 deterministic methods that allow robust computation of
                 such a matching: The first approach uses a
                 computational geometry interpretation of the problem,
                 and tries to find two parallel lines with constant
                 distance that stab a maximal number of points in the
                 plane. The second approach is based on finding a
                 maximal common approximate subsequence, and improves
                 existing algorithms by one order of magnitude
                 exploiting the sequential nature of the matching
                 problem. We compare our results to a computational
                 geometry algorithm using a topological line-sweep.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
  keywords =     "biotechnology; combinatorial pattern matching;
                 computational geometry; mass spectrometry",
}

@Article{Bohannon:2008:BRL,
  author =       "Aaron Bohannon and J. Nathan Foster and Benjamin C.
                 Pierce and Alexandre Pilkiewicz and Alan Schmitt",
  title =        "{Boomerang}: resourceful lenses for string data",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "407--419",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328438.1328487",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "A lens is a bidirectional program. When read from left
                 to right, it denotes an ordinary function that maps
                 inputs to outputs. When read from right to left, it
                 denotes an ''update translator'' that takes an input
                 together with an updated output and produces a new
                 input that reflects the update. Many variants of this
                 idea have been explored in the literature, but none
                 deal fully with ordered data. If, for example, an
                 update changes the order of a list in the output, the
                 items in the output list and the chunks of the input
                 that generated them can be misaligned, leading to lost
                 or corrupted data.\par

                 We attack this problem in the context of bidirectional
                 transformations over strings, the primordial ordered
                 data type. We first propose a collection of
                 bidirectional string lens combinators, based on
                 familiar operations on regular transducers (union,
                 concatenation, Kleene-star) and with a type system
                 based on regular expressions. We then design anew
                 semantic space of dictionary lenses, enriching the
                 lenses of Foster et al. (2007) with support for two
                 additional combinators for marking ''reorderable
                 chunks'' and their keys. To demonstrate the
                 effectiveness of these primitives, we describe the
                 design and implementation of Boomerang, a full-blown
                 bidirectional programming language with dictionary
                 lenses at its core. We have used Boomerang to build
                 transformers for complex real-world data formats
                 including the SwissProt genomic database.\par

                 We formalize the essential property of resourcefulness
                 -the correct use of keys to associate chunks in the
                 input and output-by defining a refined semantic space
                 of quasi-oblivious lenses. Several previously studied
                 properties of lenses turn out to have compact
                 characterizations in this space.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "bidirectional languages; lenses; regular string
                 transducers; regular types; view update problem",
}

@Book{Braunstein:2008:AB,
  author =       "Roger Braunstein and Mims H. Wright and Joshua J.
                 Noble",
  title =        "{ActionScript 3.0} bible",
  publisher =    pub-WILEY,
  address =      pub-WILEY:adr,
  pages =        "lv + 735",
  year =         "2008",
  ISBN =         "0-470-13560-3 (paperback)",
  ISBN-13 =      "978-0-470-13560-0 (paperback)",
  LCCN =         "TR897.7 .B793 2008",
  bibdate =      "Wed Mar 13 13:42:27 MDT 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.loc.gov/catdir/enhancements/fy0827/2007032141-b.html;
                 http://www.loc.gov/catdir/enhancements/fy0827/2007032141-d.html;
                 http://www.loc.gov/catdir/enhancements/fy0827/2007032141-t.html",
  abstract =     "From the Publisher: ActionScript has matured into a
                 full-fledged, object-oriented programming language for
                 creating cutting-edge Web applications, and this
                 comprehensive book is just what you need to succeed. If
                 you want to add interactivity to Flash, build Flex
                 applications, or work with animation- it's all here,
                 and more. Packed with clear instruction, step-by-step
                 tutorials, and advanced techniques, this book is your
                 go-to guide to unlock the power of this amazing
                 language. Learn the basics, apply object-oriented
                 programming, and more.",
  acknowledgement = ack-nhfb,
  subject =      "Flash (Computer file); ActionScript (Computer program
                 language); Computer animation; Web sites; Design",
  tableofcontents = "Introduction \\
                 Part 1: Getting Started With ActionScript 3.0 \\
                 1: Introducing ActionScript 3.0 \\
                 What is ActionScript? \\
                 Where can you use ActionScript? \\
                 What's new in ActionScript 3.0? \\
                 Summary \\
                 2: Understanding ActionScript 3.0 language basics \\
                 Using variables \\
                 Using access controls \\
                 Introducing scope \\
                 Introducing the data types \\
                 Working with operators \\
                 Making logical choices with conditionals \\
                 Repeating actions using loops \\
                 Commenting your code \\
                 Summary \\
                 3: Programming with classes \\
                 Understanding classes \\
                 Understanding terminology \\
                 Understanding encapsulation \\
                 Understanding packages \\
                 Using inheritance \\
                 Using methods in classes \\
                 Using properties in classes \\
                 Overriding behavior \\
                 Using static methods and properties \\
                 Designing interfaces \\
                 Manipulating types \\
                 Creating dynamic classes \\
                 Summary \\
                 4: Working with methods and functions \\
                 Understanding functions \\
                 Creating custom functions \\
                 Returning results \\
                 Defining functions using function expressions \\
                 Accessing the methods of a superclass \\
                 Writing recursive functions \\
                 Functions as objects \\
                 Summary \\
                 5: Validating your program \\
                 Introducing errors \\
                 Fixing errors \\
                 Summary --Part 2: Working With ActionScript 3.0 Objects
                 \\
                 6: Using strings \\
                 Summary \\
                 7: Working with numbers and math \\
                 Understanding numeric types \\
                 Using numbers in ActionScript \\
                 Manipulating numbers \\
                 Performing arithmetic \\
                 Performing trigonometric calculations \\
                 Generating randomness \\
                 Manipulating dates and times \\
                 Summary \\
                 8: Using arrays \\
                 Array basics \\
                 Converting arrays to strings \\
                 Adding and removing items from an array \\
                 Slicing, splicing, and dicing \\
                 Iterating through the items in an array \\
                 Searching for elements \\
                 Reordering your array \\
                 Applying actions to all elements of an array \\
                 Alternative types of arrays \\
                 Summary \\
                 9: Using objects \\
                 Working with objects \\
                 Using objects as associative arrays \\
                 Using objects for named arguments \\
                 Using objects as nested data \\
                 Summary \\
                 10: Working with XML \\
                 Getting started with XML in ActionScript \\
                 Accessing values with E4X \\
                 Constructing XML objects \\
                 Converting to and from strings \\
                 Loading XML data from external sources \\
                 Using namespaces \\
                 Working with comments and processing instructions \\
                 Setting options for the XML class \\
                 Summary \\
                 11: Working with regular expressions \\
                 Introducing regular expressions \\
                 Applying regular expressions \\
                 Constructing expressions \\
                 Understanding regular expression flags \\
                 Constructing advanced expressions \\
                 Using the RegExp class \\
                 Summary \\
                 Part 3: Working With The Display List \\
                 12: Understanding the Flash Player 9 display list \\
                 Display list \\
                 DisplayObject and DisplayObjectContainer \\
                 Introducing the graphics object \\
                 Working with the stage \\
                 InteractiveObject and SimpleButton \\
                 Shape \\
                 Creating user interface elements with Sprite \\
                 Working with the MovieClip \\
                 Examples using the display list \\
                 Summary \\
                 13: Working with DisplayObjects in Flash CS3 \\
                 Creating symbols within Flash CS3 \\
                 Accessing embedded graphic classes \\
                 Summary \\
                 14: Printing \\
                 Why print from Flash? \\
                 Controlling printer output from Flash \\
                 Adding print functionality to applications \\
                 Summary \\
                 15: Working with text and fonts \\
                 Introducing TextFields \\
                 Using TextFormat \\
                 Creating text input fields \\
                 Listening to TextField events \\
                 Summary \\
                 Part 4: Understanding The Event Framework \\
                 16: Understanding events \\
                 Introducing events \\
                 Understanding EventDispatcher \\
                 Working with event objects \\
                 Adding and removing event listeners \\
                 Understanding event flow \\
                 Preventing default behaviors \\
                 Summary \\
                 17: Working with mouse and keyboard events \\
                 Local and stage coordinates \\
                 Other MouseEvent properties \\
                 MouseEvent types \\
                 KeyboardEvent basics \\
                 KeyboardEvent types \\
                 Understanding keyCodes \\
                 Summary \\
                 18: Using timers \\
                 Handling the TimerEvent \\
                 Creating a world clock \\
                 Legacy timer functions \\
                 Summary --Part 5: Working With Error Handling \\
                 19: Understanding errors \\
                 Comparing ways to fail \\
                 Understanding exceptions \\
                 Catching errors generated by Flash \\
                 Custom exceptions \\
                 Handling asynchronous errors \\
                 Summary \\
                 20: Using the AVM2 debugger \\
                 Introducing debugging \\
                 Launching the debugger \\
                 Taking control of execution \\
                 Pulling back the curtain \\
                 Navigating through code \\
                 Debugging a simple example \\
                 Using the debugger effectively \\
                 Summary \\
                 21: Making your application fault-tolerant \\
                 Developing a strategy \\
                 Determining what errors to handle \\
                 Categorizing failures \\
                 Logging errors \\
                 Messaging the user \\
                 Degrading styles: an example \\
                 Summary \\
                 Part 6: Working With External Data \\
                 22: Understanding networking basics \\
                 URL request \\
                 Using the loader \\
                 Summary \\
                 23: Communicating with server-side technologies \\
                 Communicating via URLLoader \\
                 Flash remoting \\
                 Summary \\
                 24: Saving data to a local machine using SharedObject
                 \\
                 Comparing approaches to persistent storage \\
                 Identifying useful situations for shared objects \\
                 Using SharedObjects \\
                 Sharing information between SWFs \\
                 Working with size constraints \\
                 Storing custom classes \\
                 Using serialization concepts for remoting \\
                 Summary \\
                 25: Managing file uploads and downloads \\
                 Introducing FileReference \\
                 Uploading files \\
                 Downloading a file \\
                 Summary \\
                 Part 7: Enriching Your Program With Sound And Video \\
                 26: Working with sound \\
                 Creating a sound object \\
                 Controlling playback of a sound \\
                 Applying sound transformations \\
                 Working with a sound's metadata \\
                 Calculating spectrum data \\
                 Detecting audio capabilities \\
                 Summary \\
                 27: Adding video \\
                 Working with Flash video files \\
                 Loading FLV files into a Flash movie \\
                 Building an FLV application \\
                 Summary \\
                 28: Accessing microphones and cameras \\
                 Introducing the camera \\
                 Introducing the microphone \\
                 Summary \\
                 Part 8: Programming Graphics And Motion \\
                 29: Applying filters to your graphics \\
                 Introducing filters \\
                 Applying filters \\
                 Adding more than one filter \\
                 Rotating objects with filters \\
                 Summary \\
                 30: Drawing vector graphics programmatically \\
                 Lines and LineStyles \\
                 Creating shapes \\
                 Making a drawing application \\
                 Summary \\
                 31: Scripting animation \\
                 Animating with pure ActionScript \\
                 Animating using Flash \\
                 Animating using Flex \\
                 Choosing a third-party animation toolkit \\
                 Summary \\
                 32: Applying transformations to graphics \\
                 Working with matrix transforms \\
                 Working with color transforms \\
                 Summary \\
                 33: Drawing bitmap graphics programmatically \\
                 Creating a BitmapData object \\
                 Applying color transformations \\
                 Applying fills \\
                 Detecting areas by color \\
                 Applying effects \\
                 Making noise \\
                 Applying filters \\
                 Summary \\
                 Part 9: Working With Binary Data \\
                 34: Working with binary data \\
                 Creating a byte array \\
                 Writing to a byte array \\
                 Reading from a byte array \\
                 Common uses of byte arrays \\
                 Summary \\
                 Part 10: Deploying Your Program \\
                 35: Deploying Flash on the Web \\
                 Embedding Flash in a page \\
                 Embedding Flash using SWFObject \\
                 Enabling Flash player options \\
                 Passing variables to a SWF \\
                 Automatically upgrading Flash Player \\
                 Summary \\
                 36: Interfacing with JavaScript \\
                 Communicating between JavaScript and Flash \\
                 Summary \\
                 37: Using local connections to communicate between
                 Flash applications \\
                 Creating a sending application \\
                 Creating a receiving application \\
                 Sending and receiving across domains \\
                 Summary \\
                 Index",
}

@Article{Cabello:2008:PCD,
  author =       "Sergio Cabello and Panos Giannopoulos and Christian
                 Knauer",
  title =        "On the parameterized complexity of $d$-dimensional
                 point set pattern matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "105",
  number =       "2",
  pages =        "73--77",
  day =          "16",
  month =        jan,
  year =         "2008",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 15:52:55 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Cadar:2008:EAG,
  author =       "Cristian Cadar and Vijay Ganesh and Peter M. Pawlowski
                 and David L. Dill and Dawson R. Engler",
  title =        "{EXE}: Automatically Generating Inputs of Death",
  journal =      j-TISSEC,
  volume =       "12",
  number =       "2",
  pages =        "10:1--10:??",
  month =        dec,
  year =         "2008",
  CODEN =        "ATISBQ",
  DOI =          "https://doi.org/10.1145/1455518.1455522",
  ISSN =         "1094-9224 (print), 1557-7406 (electronic)",
  ISSN-L =       "1094-9224",
  bibdate =      "Tue Dec 23 11:58:14 MST 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/linux.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tissec.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "This article presents EXE, an effective bug-finding
                 tool that automatically generates inputs that crash
                 real code. Instead of running code on manually or
                 randomly constructed input, EXE runs it on symbolic
                 input initially allowed to be anything. As checked code
                 runs, EXE tracks the constraints on each symbolic
                 (i.e., input-derived) memory location. If a statement
                 uses a symbolic value, EXE does not run it, but instead
                 adds it as an input-constraint; all other statements
                 run as usual. If code conditionally checks a symbolic
                 expression, EXE forks execution, constraining the
                 expression to be true on the true branch and false on
                 the other. Because EXE reasons about all possible
                 values on a path, it has much more power than a
                 traditional runtime tool: (1) it can force execution
                 down any feasible program path and (2) at dangerous
                 operations (e.g., a pointer dereference), it detects if
                 the current path constraints allow {\em any\/} value
                 that causes a bug. When a path terminates or hits a
                 bug, EXE automatically generates a test case by solving
                 the current path constraints to find concrete values
                 using its own co-designed constraint solver, STP.
                 Because EXE's constraints have no approximations,
                 feeding this concrete input to an uninstrumented
                 version of the checked code will cause it to follow the
                 same path and hit the same bug (assuming deterministic
                 code).\par

                 EXE works well on real code, finding bugs along with
                 inputs that trigger them in: the BSD and Linux packet
                 filter implementations, the dhcpd DHCP server, the pcre
                 regular expression library, and three Linux file
                 systems.",
  acknowledgement = ack-nhfb,
  articleno =    "10",
  fjournal =     "ACM Transactions on Information and System Security",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J789",
  keywords =     "attack generation; bug finding; constraint solving;
                 dynamic analysis; symbolic execution; test case
                 generation",
}

@Article{Calvanese:2008:CQC,
  author =       "Diego Calvanese and Giuseppe {De Giacomo} and Maurizio
                 Lenzerini",
  title =        "Conjunctive query containment and answering under
                 description logic constraints",
  journal =      j-TOCL,
  volume =       "9",
  number =       "3",
  pages =        "22:1--22:??",
  month =        jun,
  year =         "2008",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1352582.1352590",
  ISSN =         "1529-3785 (print), 1557-945X (electronic)",
  ISSN-L =       "1529-3785",
  bibdate =      "Mon Jun 16 14:29:17 MDT 2008",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tocl/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tocl.bib",
  abstract =     "Query containment and query answering are two
                 important computational tasks in databases. While query
                 answering amounts to computing the result of a query
                 over a database, query containment is the problem of
                 checking whether, for every database, the result of one
                 query is a subset of the result of another
                 query.\par

                 In this article, we deal with unions of conjunctive
                 queries, and we address query containment and query
                 answering under description logic constraints. Every
                 such constraint is essentially an inclusion dependency
                 between concepts and relations, and their expressive
                 power is due to the possibility of using complex
                 expressions in the specification of the dependencies,
                 for example, intersection and difference of relations,
                 special forms of quantification, regular expressions
                 over binary relations. These types of constraints
                 capture a great variety of data models, including the
                 relational, the entity-relationship, and the
                 object-oriented model, all extended with various forms
                 of constraints. They also capture the basic features of
                 the ontology languages used in the context of the
                 Semantic Web.\par

                 We present the following results on both query
                 containment and query answering. We provide a method
                 for query containment under description logic
                 constraints, thus showing that the problem is
                 decidable, and analyze its computational complexity. We
                 prove that query containment is undecidable in the case
                 where we allow inequalities in the right-hand-side
                 query, even for very simple constraints and queries. We
                 show that query answering under description logic
                 constraints can be reduced to query containment, and
                 illustrate how such a reduction provides upper-bound
                 results with respect to both combined and data
                 complexity.",
  acknowledgement = ack-nhfb,
  articleno =    "22",
  fjournal =     "ACM Transactions on Computational Logic",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J773",
  keywords =     "computational compexity; conjunctive queries;
                 description logics; query containment",
}

@Article{Chandran:2008:IAO,
  author =       "Nishanth Chandran and Ryan Moriarty and Rafail
                 Ostrovsky and Omkant Pandey and Mohammad Ali Safari and
                 Amit Sahai",
  title =        "Improved algorithms for optimal embeddings",
  journal =      j-TALG,
  volume =       "4",
  number =       "4",
  pages =        "45:1--45:14",
  month =        aug,
  year =         "2008",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1383369.1383376",
  ISSN =         "1549-6325 (print), 1549-6333 (electronic)",
  ISSN-L =       "1549-6325",
  bibdate =      "Tue Jul 14 19:03:43 MDT 2009",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talg.bib",
  abstract =     "In the last decade, the notion of metric embeddings
                 with small distortion has received wide attention in
                 the literature, with applications in combinatorial
                 optimization, discrete mathematics, and
                 bio-informatics. The notion of embedding is, given two
                 metric spaces on the same number of points, to find a
                 bijection that minimizes maximum Lipschitz and
                 bi-Lipschitz constants. One reason for the popularity
                 of the notion is that algorithms designed for one
                 metric space can be applied to a different one, given
                 an embedding with small distortion. The better
                 distortion, the better the effectiveness of the
                 original algorithm applied to a new metric space.\par
                 The goal recently studied by Kenyon et al. [2004] is to
                 consider all possible embeddings between two {\em
                 finite\/ } metric spaces and to find the best possible
                 one; that is, consider a single objective function over
                 the space of all possible embeddings that minimizes the
                 distortion. In this article we continue this important
                 direction. In particular, using a theorem of Albert and
                 Atkinson [2005], we are able to provide an algorithm to
                 find the optimal bijection between two line metrics,
                 provided that the optimal distortion is smaller than
                 13.602. This improves the previous bound of $ 3 + 2
                 \sqrt {2} $, solving an open question posed by Kenyon
                 et al. [2004]. Further, we show an inherent limitation
                 of algorithms using the ``forbidden pattern'' based
                 dynamic programming approach, in that they cannot find
                 optimal mapping if the optimal distortion is more than
                 $ 7 + 4 \sqrt {3} (\simeq 13.928) $. Thus, our results
                 are almost optimal for this method. We also show that
                 previous techniques for general embeddings apply to a
                 (slightly) more general class of metrics.",
  acknowledgement = ack-nhfb,
  articleno =    "45",
  fjournal =     "ACM Transactions on Algorithms (TALG)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J982",
  keywords =     "dynamic programming; forbidden patterns; line
                 embeddings; metric spaces; Optimal metric embeddings;
                 shape matching",
}

@Article{Cheney:2008:FFU,
  author =       "James Cheney",
  title =        "{FLUX}: functional updates for {XML}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "3--14",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411209",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "XML database query languages have been studied
                 extensively, but XML database updates have received
                 relatively little attention, and pose many challenges
                 to language design. We are developing an XML update
                 language called FLUX, which stands for FunctionaL
                 Updates for XML, drawing upon ideas from functional
                 programming languages. In prior work, we have
                 introduced a core language for FLUX with a clear
                 operational semantics and a sound, decidable static
                 type system based on regular expression types.\par

                 Our initial proposal had several limitations. First, it
                 lacked support for recursive types or update
                 procedures. Second, although a high-level source
                 language can easily be translated to the core language,
                 it is difficult to propagate meaningful type errors
                 from the core language back to the source. Third,
                 certain updates are wellformed yet contain {\em path
                 errors}, or 'dead' subexpressions which never do any
                 useful work. It would be useful to detect path errors,
                 since they often represent errors or optimization
                 opportunities.\par

                 In this paper, we address all three limitations.
                 Specifically, we present an improved, sound type system
                 that handles recursion. We also formalize a source
                 update language and give a translation to the core
                 language that {\em preserves\/} and {\em reflects\/}
                 typability. We also develop a {\em path-error
                 analysis\/} (a form of dead-code analysis) for
                 updates.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "static analysis; type systems; update languages; XML",
}

@Article{Chlipala:2008:PHO,
  author =       "Adam Chlipala",
  title =        "Parametric higher-order abstract syntax for mechanized
                 semantics",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "143--156",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411204.1411226",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We present {\em parametric higher-order abstract
                 syntax (PHOAS)}, a new approach to formalizing the
                 syntax of programming languages in computer proof
                 assistants based on type theory. Like higher-order
                 abstract syntax (HOAS), PHOAS uses the meta language's
                 binding constructs to represent the object language's
                 binding constructs. Unlike HOAS, PHOAS types are
                 definable in general-purpose type theories that support
                 traditional functional programming, like Coq's Calculus
                 of Inductive Constructions. We walk through how Coq can
                 be used to develop certified, executable program
                 transformations over several statically-typed
                 functional programming languages formalized with PHOAS;
                 that is, each transformation has a machine-checked
                 proof of type preservation and semantic preservation.
                 Our examples include CPS translation and closure
                 conversion for simply-typed lambda calculus, CPS
                 translation for System F, and translation from a
                 language with ML-style pattern matching to a simpler
                 language with no variable-arity binding constructs. By
                 avoiding the syntactic hassle associated with
                 first-order representation techniques, we achieve a
                 very high degree of proof automation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "compiler verification; dependent types; interactive
                 proof assistants; type-theoretic semantics",
}

@Article{Cho:2008:DNP,
  author =       "Young H. Cho and William H. Mangione-Smith",
  title =        "Deep network packet filter design for reconfigurable
                 devices",
  journal =      j-TECS,
  volume =       "7",
  number =       "2",
  pages =        "21:1--21:??",
  month =        feb,
  year =         "2008",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1331331.1331345",
  ISSN =         "1539-9087 (print), 1558-3465 (electronic)",
  ISSN-L =       "1539-9087",
  bibdate =      "Thu Jun 12 15:22:00 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/cryptography2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tecs.bib",
  abstract =     "Most network routers and switches provide some
                 protection against the network attacks. However, the
                 rapidly increasing amount of damages reported over the
                 past few years indicates the urgent need for tougher
                 security. Deep-packet inspection is one of the
                 solutions to capture packets that can not be identified
                 using the traditional methods. It uses a list of
                 signatures to scan the entire content of the packet,
                 providing the means to filter harmful packets out of
                 the network. Since one signature does not depend on the
                 other, the filtering process has a high degree of
                 parallelism. Most software and hardware deep-packet
                 filters that are in use today execute the tasks under
                 Von Neuman architecture. Such architecture can not
                 fully take advantage of the parallelism. For instance,
                 one of the most widely used network intrusion-detection
                 systems, Snort, configured with 845 patterns, running
                 on a dual 1-GHz Pentium III system, can sustain a
                 throughput of only 50 Mbps. The poor performance is
                 because of the fact that the processor is programmed to
                 execute several tasks sequentially instead of
                 simultaneously. We designed scalable deep-packet
                 filters on field-programmable gate arrays (FPGAs) to
                 search for all data-independent patterns
                 simultaneously. With FPGAs, we have the ability to
                 reprogram the filter when there are any changes to the
                 signature set. The smallest full-pattern matcher
                 implementation for the latest Snort NIDS fits in a
                 single 400k Xilinx FPGA (Spartan 3-XC3S400) with a
                 sustained throughput of 1.6 Gbps. Given a larger FPGA,
                 the design can scale linearly to support a greater
                 number of patterns, as well as higher data
                 throughput.",
  acknowledgement = ack-nhfb,
  articleno =    "21",
  fjournal =     "ACM Transactions on Embedded Computing Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?&idx=J840",
  keywords =     "firewall; network intrusion detection; string filter;
                 virus; worm",
}

@Article{Cho:2008:IAB,
  author =       "Minkyoung Cho and David M. Mount",
  title =        "Improved Approximation Bounds for Planar Point Pattern
                 Matching",
  journal =      j-ALGORITHMICA,
  volume =       "50",
  number =       "2",
  pages =        "175--207",
  month =        feb,
  year =         "2008",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-007-9059-9",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Wed Jul 9 22:25:04 MDT 2008",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=50&issue=2;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=50&issue=2&spage=175",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
  keywords =     "Approximation algorithms; Hausdorff distance; Point
                 pattern matching",
}

@Article{Cohen:2008:EEP,
  author =       "Norman H. Cohen and Karl Trygve Kalleberg",
  title =        "{EventScript}: an event-processing language based on
                 regular expressions with actions",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "7",
  pages =        "111--120",
  month =        jul,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375657.1375673",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:05:54 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "EventScript is a simple but powerful language for
                 programming reactive processes. A stream of incoming
                 events is matched against a regular expression. Actions
                 embedded within the regular expression are executed in
                 response to the matching of patterns of events. These
                 actions include assigning computed values to variables
                 and emitting output events. The definition of
                 EventScript presented a number of novel and interesting
                 language-design choices. EventScript has an efficient
                 implementation, and has been used in a development
                 environment for complex event-based applications. We
                 have used EventScript to program both small examples
                 and large industrial applications. Readers of
                 EventScript programs find them easy to understand, and
                 are comfortable with the familiar model of matching
                 regular expressions.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "actuators; event processing; reactive programs;
                 regular expressions; sensors",
}

@Article{deBruijn:2008:PFL,
  author =       "Willem de Bruijn and Herbert Bos",
  title =        "{PipesFS}: fast {Linux I/O} in the {Unix} tradition",
  journal =      j-OPER-SYS-REV,
  volume =       "42",
  number =       "5",
  pages =        "55--63",
  month =        jul,
  year =         "2008",
  CODEN =        "OSRED8",
  DOI =          "https://doi.org/10.1145/1400097.1400104",
  ISSN =         "0163-5980 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Wed Aug 6 16:54:12 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/linux.bib;
                 https://www.math.utah.edu/pub/tex/bib/opersysrev.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "This paper presents PipesFS, an I/O architecture for
                 Linux 2.6 that increases I/O throughput and adds
                 support for heterogeneous parallel processors by (1)
                 collapsing many I/O interfaces onto one: the Unix
                 pipeline, (2) increasing pipe efficiency and (3)
                 exploiting pipeline modularity to spread computation
                 across all available processors.\par

                 PipesFS extends the pipeline model to kernel I/O and
                 communicates with applications through a Linux virtual
                 filesystem (VFS), where directory nodes represent
                 operations and pipe nodes export live kernel data.
                 Users can thus interact with kernel I/O through
                 existing calls like mkdir, tools like grep, most
                 languages and even shell scripts. To support
                 performance critical tasks, PipesFS improves pipe
                 throughput through copy, context switch and cache miss
                 avoidance. To integrate heterogeneous processors (e.g.,
                 the Cell) it transparently moves operations to the most
                 efficient type of core.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGOPS Operating Systems Review",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J597",
}

@InProceedings{Ferragina:2008:SCS,
  author =       "Paolo Ferragina and Roberto Grossi and Ankur Gupta and
                 Rahul Shah and Jeffrey Scott Vitter",
  title =        "On searching compressed string collections
                 cache-obliviously",
  crossref =     "Lenzerini:2008:PTS",
  pages =        "181--190",
  year =         "2008",
  DOI =          "https://doi.org/10.1145/1376916.1376943",
  bibdate =      "Fri Jun 20 14:17:29 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Current data structures for searching large string
                 collections either fail to achieve minimum space or
                 cause too many cache misses. In this paper we discuss
                 some edge linearizations of the classic trie data
                 structure that are simultaneously cache-friendly and
                 compressed. We provide new insights on front coding
                 [24], introduce other novel linearizations, and study
                 how close their space occupancy is to the
                 information-theoretic minimum. The moral is that they
                 are not just heuristics. Our second contribution is a
                 novel dictionary encoding scheme that builds upon such
                 linearizations and achieves nearly optimal space,
                 offers competitive I/O-search time, and is also
                 conscious of the query distribution. Finally, we
                 combine those data structures with cache-oblivious
                 tries [2, 5] and obtain a succinct variant whose space
                 is close to the information-theoretic minimum.",
  acknowledgement = ack-nhfb,
  keywords =     "B-tree; cache efficiency; data compression; front
                 coding; string searching",
}

@Book{Feuerstein:2008:OPS,
  author =       "Steven Feuerstein and Bill Pribyl and Chip Dawes",
  title =        "{Oracle PL\slash SQL} language: pocket reference",
  publisher =    pub-ORA-MEDIA,
  address =      pub-ORA-MEDIA:adr,
  edition =      "Fourth",
  pages =        "vii + 170",
  year =         "2008",
  ISBN =         "0-596-51404-2 (paperback)",
  ISBN-13 =      "978-0-596-51404-4 (paperback)",
  LCCN =         "QA76.9.D3",
  bibdate =      "Tue Aug 5 17:56:42 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 melvyl.cdlib.org:210/CDL90",
  URL =          "http://www.oreilly.com/catalog/9780596514044",
  abstract =     "``The new edition describes such Oracle Database 11g
                 elements as PL/SQL's function result cache, compound
                 triggers, the CONTINUE statement, the SIMPLE\_INTEGER
                 datatype, and improvements to native compilation,
                 regular expressions, and compiler optimization
                 (including intra-unit inlining). In addition, this book
                 now includes substantial new sections on Oracle's
                 built-in functions and packages.",
  acknowledgement = ack-nhfb,
  remark =       "Previous edition 2004. ``A guide to Oracle PL/SQL
                 language fundamentals. ``Covers Oracle database 11g",
  subject =      "Oracle (Computer file); PL/SQL (Computer program
                 language); Relational databases; Database management",
}

@Article{Foster:2008:QL,
  author =       "J. Nathan Foster and Alexandre Pilkiewicz and Benjamin
                 C. Pierce",
  title =        "Quotient lenses",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "383--396",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411257",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "There are now a number of BIDIRECTIONAL PROGRAMMING
                 LANGUAGES, where every program can be read both as a
                 forward transformation mapping one data structure to
                 another and as a reverse transformation mapping an
                 edited output back to a correspondingly edited input.
                 Besides parsimony --- the two related transformations
                 are described by just one expression --- such languages
                 are attractive because they promise strong behavioral
                 laws about how the two transformations fit together ---
                 e.g., their composition is the identity function. It
                 has repeatedly been observed, however, that such laws
                 are actually a bit too strong: in practice, we do not
                 want them 'on the nose,' but only up to some
                 equivalence, allowing inessential details, such as
                 whitespace, to be modified after a round trip. Some
                 bidirectional languages loosen their laws in this way,
                 but only for specific, baked-in equivalences.\par

                 In this work, we propose a general theory of QUOTIENT
                 LENSES --- bidirectional transformations that are well
                 behaved modulo equivalence relations controlled by the
                 programmer. Semantically, quotient lenses are a natural
                 refinement of LENSES, which we have studied in previous
                 work. At the level of syntax, we present a rich set of
                 constructs for programming with CANONIZERS and for
                 quotienting lenses by canonizers. We track equivalences
                 explicitly, with the type of every quotient lens
                 specifying the equivalences it respects.\par

                 We have implemented quotient lenses as a refinement of
                 the bidirectional string processing language Boomerang.
                 We present a number of useful primitive canonizers for
                 strings, and give a simple extension of Boomerang's
                 regular-expression-based type system to statically
                 typecheck quotient lenses. The resulting language is an
                 expressive tool for transforming real-world, ad-hoc
                 data formats. We demonstrate the power of our notation
                 by developing an extended example based on the UniProt
                 genome database format and illustrate the generality of
                 our approach by showing how uses of quotienting in
                 other bidirectional languages can be translated into
                 our notation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "bidirectional languages; bijective languages;
                 boomerang; canonizers; equivalences; lenses; regular
                 string transducers; regular types; view update
                 problem",
}

@Article{Furr:2008:CTS,
  author =       "Michael Furr and Jeffrey S. Foster",
  title =        "Checking type safety of foreign function calls",
  journal =      j-TOPLAS,
  volume =       "30",
  number =       "4",
  pages =        "18:1--18:63",
  month =        jul,
  year =         "2008",
  CODEN =        "ATPSDT",
  DOI =          "https://doi.org/10.1145/1377492.1377493",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Tue Aug 5 19:14:53 MDT 2008",
  bibsource =    "http://www.acm.org/pubs/contents/journals/toplas/;
                 https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toplas.bib",
  abstract =     "Foreign function interfaces (FFIs) allow components in
                 different languages to communicate directly with each
                 other. While FFIs are useful, they often require
                 writing tricky low-level code and include little or no
                 static safety checking, thus providing a rich source of
                 hard-to-find programming errors. In this article, we
                 study the problem of enforcing type safety across the
                 OCaml-to-C FFI and the Java Native Interface (JNI). We
                 present O-Saffire and J-Saffire, a pair of multilingual
                 type inference systems that ensure C code that uses
                 these FFIs accesses high-level data safely. Our
                 inference systems use {\em representational types\/} to
                 model C's low-level view of OCaml and Java values, and
                 singleton types to track integers, strings, memory
                 offsets, and type tags through C. J-Saffire, our Java
                 system, uses a polymorphic flow-insensitive,
                 unification-based analysis. Polymorphism is important
                 because it allows us to precisely model user-defined
                 wrapper functions and the more than 200 JNI functions.
                 O-Saffire, our OCaml system, uses a monomorphic
                 flow-sensitive analysis because, while polymorphism is
                 much less important for the OCaml FFI flow-sensitivity
                 is critical to track conditional branches, which are
                 used when pattern matching OCaml data in C. O-Saffire
                 also tracks garbage collection information to ensure
                 that local C pointers to the OCaml heap are registered
                 properly, which is not necessary for the JNI. We have
                 applied O-Saffire and J-Saffire to a set of benchmarks
                 and found many bugs and questionable coding practices.
                 These results suggest that static checking of FFIs can
                 be a valuable tool in writing correct multilingual
                 software.",
  acknowledgement = ack-nhfb,
  articleno =    "18",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "dataflow analysis; FFI; flow-sensitive type system;
                 foreign function calls; Foreign function interface;
                 Java; Java Native Interface; JNI; multilingual type
                 inference; multilingual type system; OCaml;
                 representational type",
}

@Article{Garcia-Osorio:2008:TPA,
  author =       "C{\'e}sar Garc{\'\i}a-Osorio and I{\~n}igo
                 Mediavilla-S{\'a}iz and Javier Jimeno-Visitaci{\'o}n
                 and Nicol{\'a}s Garc{\'\i}a-Pedrajas",
  title =        "Teaching push-down automata and {Turing} machines",
  journal =      j-SIGCSE,
  volume =       "40",
  number =       "3",
  pages =        "316--316",
  month =        sep,
  year =         "2008",
  CODEN =        "SIGSD3",
  DOI =          "https://doi.org/10.1145/1597849.1384359",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:14 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigcse2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Proceedings of ITiCSE '08.",
  abstract =     "In this paper we present the new version of a tool to
                 assist in teaching formal languages and automata
                 theory. In the previous version the tool provided
                 algorithms for regular expressions, finite automata and
                 context free grammars. The new version can simulate as
                 well push-down automata and Turing machines.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Grabowski:2008:BPS,
  author =       "Szymon Grabowski and Kimmo Fredriksson",
  title =        "Bit-parallel string matching under {Hamming} distance
                 in {$ O(n \lceil m / w \rceil) $} worst case time",
  journal =      j-INFO-PROC-LETT,
  volume =       "105",
  number =       "5",
  pages =        "182--187",
  day =          "29",
  month =        feb,
  year =         "2008",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 15:52:58 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Huang:2008:ESS,
  author =       "Shan Shan Huang and Yannis Smaragdakis",
  title =        "Expressive and safe static reflection with {MorphJ}",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "6",
  pages =        "79--89",
  month =        jun,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1375581.1375592",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:04:53 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/csharp.bib;
                 https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Recently, language extensions have been proposed for
                 Java and C\# to support pattern-based reflective
                 declaration. These extensions introduce a disciplined
                 form of meta-programming and aspect-oriented
                 programming to mainstream languages: They allow members
                 of a class (i.e., fields and methods) to be declared by
                 statically iterating over and pattern-matching on
                 members of other classes. Such techniques, however,
                 have been unable to safely express simple, but common,
                 idioms such as declaring getter and setter methods for
                 fields.\par

                 In this paper, we present a mechanism that addresses
                 the lack of expressiveness in past work without
                 sacrificing safety. Our technique is based on the idea
                 of nested patterns that elaborate the outer-most
                 pattern with blocking or enabling conditions. We
                 implemented this mechanism in a language, MorphJ. We
                 demonstrate the expressiveness of MorphJ with
                 real-world applications. In particular, the MorphJ
                 reimplementation of DSTM2, a software transactional
                 memory library, reduces 1,107 lines of Java reflection
                 and bytecode engineering library calls to just 374
                 lines of MorphJ code. At the same time, the MorphJ
                 solution is both high level and safer, as MorphJ can
                 separately type check generic classes and catch errors
                 early. We present and formalize the MorphJ type system,
                 and offer a type-checking algorithm.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "aspect-oriented programming; class morphing; language
                 extensions; meta-programming; object-oriented
                 programming; structural abstraction",
}

@Article{Hullin:2008:FIR,
  author =       "Matthias B. Hullin and Martin Fuchs and Ivo Ihrke and
                 Hans-Peter Seidel and Hendrik P. A. Lensch",
  title =        "Fluorescent immersion range scanning",
  journal =      j-TOG,
  volume =       "27",
  number =       "3",
  pages =        "87:1--87:??",
  month =        aug,
  year =         "2008",
  CODEN =        "ATGRDF",
  DOI =          "https://doi.org/10.1145/1360612.1360686",
  ISSN =         "0730-0301 (print), 1557-7368 (electronic)",
  ISSN-L =       "0730-0301",
  bibdate =      "Tue Aug 12 13:40:36 MDT 2008",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tog/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tog.bib",
  abstract =     "The quality of a 3D range scan should not depend on
                 the surface properties of the object. Most active range
                 scanning techniques, however, assume a diffuse
                 reflector to allow for a robust detection of incident
                 light patterns. In our approach we embed the object
                 into a fluorescent liquid. By analyzing the light rays
                 that become visible due to fluorescence rather than
                 analyzing their reflections off the surface, we can
                 detect the intersection points between the projected
                 laser sheet and the object surface for a wide range of
                 different materials. For transparent objects we can
                 even directly depict a slice through the object in just
                 one image by matching its refractive index to the one
                 of the embedding liquid. This enables a direct sampling
                 of the object geometry without the need for
                 computational reconstruction. This way, a
                 high-resolution 3D volume can be assembled simply by
                 sweeping a laser plane through the object. We
                 demonstrate the effectiveness of our light sheet range
                 scanning approach on a set of objects manufactured from
                 a variety of materials and material mixes, including
                 dark, translucent and transparent objects.",
  acknowledgement = ack-nhfb,
  articleno =    "87",
  fjournal =     "ACM Transactions on Graphics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J778",
  keywords =     "3D scanning; fluorescent dye; transparent surfaces",
}

@Article{Hyyro:2008:IBP,
  author =       "Heikki Hyyr{\"o}",
  title =        "Improving the bit-parallel {NFA} of {Baeza-Yates} and
                 {Navarro} for approximate string matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "108",
  number =       "5",
  pages =        "313--319",
  day =          "15",
  month =        nov,
  year =         "2008",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 15:53:16 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Iliopoulos:2008:NAP,
  author =       "Costas S. Iliopoulos and Laurent Mouchard and M. Sohel
                 Rahman",
  title =        "A New Approach to Pattern Matching in Degenerate
                 {DNA\slash RNA} Sequences and Distributed Pattern
                 Matching",
  journal =      j-MATH-COMPUT-SCI,
  volume =       "1",
  number =       "4",
  pages =        "557--569",
  month =        jun,
  year =         "2008",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1007/s11786-007-0029-z",
  ISSN =         "1661-8270 (print), 1661-8289 (electronic)",
  ISSN-L =       "1661-8270",
  bibdate =      "Thu Jul 9 15:43:59 MDT 2009",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=1661-8270&volume=1&issue=4;
                 https://www.math.utah.edu/pub/tex/bib/math-comput-sci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=1661-8270&volume=1&issue=4&spage=557",
  acknowledgement = ack-nhfb,
  fjournal =     "Mathematics in Computer Science",
  journal-URL =  "http://www.springerlink.com/content/1661-8270/",
  keywords =     "Mathematics Subject Classification (2000); Primary
                 68W05; Secondary 68Q25",
}

@Article{Islam:2008:ACB,
  author =       "Aminul Islam and Diana Inkpen and Iluju Kiringa",
  title =        "Applications of corpus-based semantic similarity and
                 word segmentation to database schema matching",
  journal =      j-VLDB-J,
  volume =       "17",
  number =       "5",
  pages =        "1293--1320",
  month =        aug,
  year =         "2008",
  CODEN =        "VLDBFR",
  DOI =          "https://doi.org/10.1007/s00778-007-0067-9",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Thu Jul 10 10:00:50 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  abstract =     "In this paper, we present a method for database schema
                 matching: the problem of identifying elements of two
                 given schemas that correspond to each other. Schema
                 matching is useful in e-commerce exchanges, in data
                 integration/warehousing, and in semantic web
                 applications. We first present two corpus-based
                 methods: one method is for determining the semantic
                 similarity of two target words and the other is for
                 automatic word segmentation. Then we present a
                 name-based element-level database schema matching
                 method that exploits both the semantic similarity and
                 the word segmentation methods. Our word similarity
                 method uses pointwise mutual information (PMI) to sort
                 lists of important neighbor words of two target words;
                 the words which are common in both lists are selected
                 and their PMI values are aggregated to calculate the
                 relative similarity score. Our word segmentation method
                 uses corpus type frequency information to choose the
                 type with maximum length and frequency from
                 'desegmented' text. It also uses a modified
                 forward---backward matching technique using maximum
                 length frequency and entropy rate if any non-matching
                 portions of the text exist. Finally, we exploit both
                 the semantic similarity and the word segmentation
                 methods in our proposed name-based element-level schema
                 matching method. This method uses a single property
                 (i.e., element name) for schema matching and
                 nevertheless achieves a measure score that is
                 comparable to the methods that use multiple properties
                 (e.g., element name, text description, data instance,
                 context description). Our schema matching method also
                 uses normalized and modified versions of the longest
                 common subsequence string matching algorithm with
                 weight factors to allow for a balanced combination. We
                 validate our methods with experimental studies, the
                 results of which suggest that these methods can be a
                 useful addition to the set of existing methods.",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
  keywords =     "Corpus-based methods; Database schema matching;
                 Semantic similarity; Word segmentation",
}

@Article{Islam:2008:STS,
  author =       "Aminul Islam and Diana Inkpen",
  title =        "Semantic text similarity using corpus-based word
                 similarity and string similarity",
  journal =      j-TKDD,
  volume =       "2",
  number =       "2",
  pages =        "10:1--10:??",
  month =        jul,
  year =         "2008",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1376815.1376819",
  ISSN =         "1556-4681 (print), 1556-472X (electronic)",
  ISSN-L =       "1556-4681",
  bibdate =      "Fri Apr 24 17:59:30 MDT 2009",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tkdd/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tkdd.bib",
  abstract =     "We present a method for measuring the semantic
                 similarity of texts using a corpus-based measure of
                 semantic word similarity and a normalized and modified
                 version of the Longest Common Subsequence (LCS) string
                 matching algorithm. Existing methods for computing text
                 similarity have focused mainly on either large
                 documents or individual words. We focus on computing
                 the similarity between two sentences or two short
                 paragraphs. The proposed method can be exploited in a
                 variety of applications involving textual knowledge
                 representation and knowledge discovery. Evaluation
                 results on two different data sets show that our method
                 outperforms several competing methods.",
  acknowledgement = ack-nhfb,
  articleno =    "10",
  fjournal =     "ACM Transactions on Knowledge Discovery from Data
                 (TKDD)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1054",
  keywords =     "corpus-based measures; Semantic similarity of words;
                 similarity of short texts",
}

@Book{Judd:2008:BGG,
  author =       "Christopher Judd and Joseph Faisal Nusairat and James
                 Shingler",
  title =        "Beginning {Groovy} and {Grails}: from Novice to
                 Professional",
  publisher =    pub-APRESS,
  address =      pub-APRESS:adr,
  pages =        "xxvi + 413",
  year =         "2008",
  ISBN =         "1-4302-1045-1 (paperback)",
  ISBN-13 =      "978-1-4302-1045-0 (paperback)",
  LCCN =         "QA76.73.G23 J84 2008",
  bibdate =      "Wed Mar 13 13:42:27 MDT 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "Expert's voice in open source",
  abstract =     "Offers instructions for working with the Groovy
                 programming language and the Grails Web framework,
                 covering such topics as building a user interface,
                 security, Web 2.0, reporting, batch processing, and
                 deploying and upgrading applications.",
  acknowledgement = ack-nhfb,
  subject =      "Groovy (Computer program language); Programming
                 languages (Electronic computers)",
  tableofcontents = "Cover \\
                 Contents \\
                 Foreword \\
                 About the Authors \\
                 About the Technical Reviewer \\
                 Acknowledgments \\
                 Introduction \\
                 1. Introduction to Groovy \\
                 Groovy Language Features \\
                 Groovy Installation \\
                 Groovy by Example \\
                 Converting Java to Groovy \\
                 Converting a JavaBean to a GroovyBean \\
                 Simplifying the Code \\
                 Using Groovy Collection Notation and Closure \\
                 Getting Rid of Main() \\
                 Summary \\
                 2. Groovy Basics \\
                 Scripts \\
                 Using Script Functions \\
                 Compiling Groovy \\
                 Running Groovy \\
                 Assertions \\
                 Strings \\
                 String Interpolation \\
                 Multiline Strings \\
                 Slashy Strings \\
                 Methods and Closures \\
                 Methods \\
                 Closures \\
                 Collections \\
                 Lists \\
                 Ranges \\
                 Sets \\
                 Arrays \\
                 Maps \\
                 Regular Expressions \\
                 Groovy Regular Expression Operators \\
                 Common Uses of Regular Expressions \\
                 Operators \\
                 Operator Overloading \\
                 Specialized Operators \\
                 Summary \\
                 3. More Advanced Groovy \\
                 Groovy Unit Testing \\
                 Working with XML \\
                 Writing XML with Java \\
                 Groovy Builders \\
                 Writing XML with Groovy MarkupBuilder \\
                 Reading XML with XmlSlurper \\
                 Generating Text with Templates \\
                 Expandos \\
                 Meta Object Protocol \\
                 Domain-Specific Languages \\
                 Summary \\
                 4. Introduction to Grails \\
                 What Is Grails? \\
                 Grails Features \\
                 Integrated Open Source \\
                 Grails Architecture \\
                 Installing Grails \\
                 Collab-Todo Application \\
                 Getting Started with Scaffolding \\
                 Understanding the Scaffolding Process \\
                 Creating the Application \\
                 Running the Application \\
                 Creating a Domain Class \\
                 Implementing Integration Tests \\
                 Running the Test Harness \\
                 Implementing a Domain Class \\
                 Creating the Controller \\
                 Finishing the Remaining Domain and Controllers \\
                 Creating Domain Relationships \\
                 Summary \\
                 5. Building the User Interface \\
                 Starting with the End in Mind \\
                 Creating the Footer \\
                 Creating the Topbar \\
                 Adding More Look and Feel \\
                 Grails Tags \\
                 Making the Topbar Functional \\
                 The Login View \\
                 The login Action \\
                 Handling the Login and Logout Actions \\
                 Testing \\
                 Integration Testing Using JUnit \\
                 Functional Testing Using Canoo WebTest \\
                 Externalizing Strings \\
                 Errors and Validation \\
                 Flash and Flash Messages \\
                 Controlling the Application \\
                 Controlling Users \\
                 Controlling Categories \\
                 Creating an Audit Log Using Action Interceptors \\
                 Using Filters \\
                 Summary \\
                 6. Building Domains and Services \\
                 GORM \\
                 Collab-Todo's Domain \\
                 Creating Domain Objects \\
                 Basic Domain Creation \\
                 Creating Relationships \\
                 Overwriting Default Settings \\
                 Validation \\
                 Constraints \\
                 Calling the Validator \\
                 Validation Messages \\
                 Querying the Database \\
                 GORM's CRUD Support \\
                 Creating Queries \\
                 Database Migration \\
                 The dbmigrate Plug-In \\
                 The LiquiBase Plug-In \\
                 Services \\
                 Creating a Service \\
                 Calling the Service \\
                 Injecting into the Service \\
                 Initializing the Service \\
                 Setting a Bean to Be Transactional \\
                 Service Context Available in the Service \\
                 Summary \\
                 7. Security in Grails \\
                 8. Web 2.0 \\
                 Ajax and Friends \\
                 9. Web Services \\
                 10. Reporting \\
                 11. Batch Processing \\
                 12. Deploying and Upgrading \\
                 13. Alternative Clients",
}

@Book{Kahrel:2008:GIC,
  author =       "Peter Kahrel",
  title =        "{GREP} in {InDesign CS3\slash CS4}",
  publisher =    pub-ORA-MEDIA,
  address =      pub-ORA-MEDIA:adr,
  pages =        "53",
  year =         "2009",
  ISBN =         "0-596-15717-7",
  ISBN-13 =      "978-0-596-15717-3",
  LCCN =         "Z253.532.A34 K34 2008",
  bibdate =      "Sat Nov 13 10:19:50 MST 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 melvyl.cdlib.org:210/CDL90;
                 prodorbis.library.yale.edu:7090/voyager",
  acknowledgement = ack-nhfb,
  subject =      "Adobe InDesign (Electronic resource); Desktop
                 publishing",
}

@Article{Karakoidas:2008:FJO,
  author =       "Vassilios Karakoidas and Diomidis Spinellis",
  title =        "{FIRE\slash J} --- optimizing regular expression
                 searches with generative programming",
  journal =      j-SPE,
  volume =       "38",
  number =       "6",
  pages =        "557--573",
  day =          "??",
  month =        may,
  year =         "2008",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.841",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Wed Mar 17 09:55:28 MDT 2010",
  bibsource =    "http://www.interscience.wiley.com/jpages/0038-0644;
                 http://www3.interscience.wiley.com/journalfinder.html;
                 https://www.math.utah.edu/pub/bibnet/authors/s/spinellis-diomidis.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "Jul 23 2007 7:56AM",
}

@Article{Kastrup:2008:MLP,
  author =       "David Kastrup",
  title =        "{\tt makematch}, a {\LaTeX} package for pattern
                 matching with wildcards",
  journal =      j-TUGboat,
  volume =       "29",
  number =       "1",
  pages =        "190--192",
  year =         "2008",
  ISSN =         "0896-3207",
  bibdate =      "Mon May 25 14:17:16 MDT 2015",
  bibsource =    "http://www.gust.org.pl/conferences/EuroBachoTeX2007;
                 https://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tugboat.bib",
  URL =          "http://www.tug.org/TUGboat/tb29-1/tb91kastrup-match.pdf",
  acknowledgement = ack-bnb # " and " # ack-nhfb,
  issue =        "91",
  journal-URL =  "http://www.tug.org/TUGboat/",
  remark =       "EuroBachoTeX 2007 Proceedings.",
}

@Article{Kastrup:2008:PML,
  author =       "David Kastrup",
  title =        "\pkg{makematch}, a {\LaTeX} package for pattern
                 matching with wildcards",
  journal =      j-TUGboat,
  volume =       "29",
  number =       "1",
  pages =        "190--192",
  year =         "2008",
  ISSN =         "0896-3207",
  ISSN-L =       "0896-3207",
  bibdate =      "Mon May 25 14:17:16 MDT 2015",
  bibsource =    "http://www.gust.org.pl/conferences/EuroBachoTeX2007;
                 https://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tugboat.bib",
  URL =          "https://tug.org/TUGboat/tb29-1/tb91kastrup-match.pdf",
  acknowledgement = ack-bnb # " and " # ack-nhfb,
  confnote =     "EuroBachoTeX 2007 Proceedings.",
  fjournal =     "TUGboat",
  issue =        "91",
  journal-URL =  "https://tug.org/TUGboat/",
  remark =       "Advanced{\Dash}efficient pattern matching supporting *
                 and !.",
}

@Article{Kastrup:TB29-1-190,
  author =       "David Kastrup",
  title =        "\pkg{makematch}, a {\LaTeX} package for pattern
                 matching with wildcards",
  journal =      j-TUGboat,
  volume =       "29",
  number =       "1",
  pages =        "190--192",
  year =         "2008",
  ISSN =         "0896-3207",
  ISSN-L =       "0896-3207",
  bibdate =      "Mon May 25 14:17:16 MDT 2015",
  bibsource =    "https://www.gust.org.pl/conferences/EuroBachoTeX2007;
                 https://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tugboat.bib",
  URL =          "https://tug.org/TUGboat/tb29-1/tb91kastrup-match.pdf",
  acknowledgement = ack-bnb # " and " # ack-nhfb,
  confnote =     "EuroBachoTeX 2007 Proceedings.",
  fjournal =     "TUGboat",
  issue =        "91",
  journal-URL =  "https://tug.org/TUGboat/",
  remark =       "Advanced{\Dash}efficient pattern matching supporting *
                 and !.",
}

@Article{Kim:2008:LSS,
  author =       "Eagu Kim and John Kececioglu",
  title =        "Learning Scoring Schemes for Sequence Alignment from
                 Partial Examples",
  journal =      j-TCBB,
  volume =       "5",
  number =       "4",
  pages =        "546--556",
  month =        oct,
  year =         "2008",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2008.57",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Wed Jan 14 12:51:33 MST 2009",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "When aligning biological sequences, the choice of
                 parameter values for the alignment scoring function is
                 critical. Small changes in gap penalties, for example,
                 can yield radically different alignments. A rigorous
                 way to compute parameter values that are appropriate
                 for aligning biological sequences is through inverse
                 parametric sequence alignment. Given a collection of
                 examples of biologically correct alignments, this is
                 the problem of finding parameter values that make the
                 scores of the example alignments close to those of
                 optimal alignments for their sequences. We extend prior
                 work on inverse parametric alignment to partial
                 examples, which contain regions where the alignment is
                 left unspecified, and to an improved formulation based
                 on minimizing the average error between the score of an
                 example and the score of an optimal alignment.
                 Experiments on benchmark biological alignments show we
                 can find parameters that generalize across protein
                 families and that boost the accuracy of multiple
                 sequence alignment by as much as 25\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
  keywords =     "Analysis of Algorithms and Problem Complexity; Biology
                 and genetics; Linear programming; Pattern matching",
}

@Article{Kim:2008:SOF,
  author =       "Min-Soo Kim and Kyu-Young Whang and Jae-Gil Lee and
                 Min-Jae Lee",
  title =        "Structural optimization of a full-text $n$-gram index
                 using relational normalization",
  journal =      j-VLDB-J,
  volume =       "17",
  number =       "6",
  pages =        "1485--1507",
  month =        nov,
  year =         "2008",
  CODEN =        "VLDBFR",
  DOI =          "https://doi.org/10.1007/s00778-007-0082-x",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Wed Oct 22 09:20:08 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  abstract =     "As the amount of text data grows explosively, an
                 efficient index structure for large text databases
                 becomes ever important. The $n$-gram inverted index
                 (simply, the $n$-gram index) has been widely used in
                 information retrieval or in approximate string matching
                 due to its two major advantages: language-neutral and
                 error-tolerant. Nevertheless, the $n$-gram index also
                 has drawbacks: the size tends to be very large, and the
                 performance of queries tends to be bad. In this paper,
                 we propose the two-level $n$-gram inverted index
                 (simply, the $n$-gram/2L index) that significantly
                 reduces the size and improves the query performance by
                 using the relational normalization theory. We first
                 identify that, in the (full-text) $n$-gram index, there
                 exists redundancy in the position information caused by
                 a non-trivial multivalued dependency. The proposed
                 index eliminates such redundancy by constructing the
                 index in two levels: the front-end index and the
                 back-end index. We formally prove that this two-level
                 construction is identical to the relational
                 normalization process. We call this process structural
                 optimization of the $n$-gram index. The $n$-gram/2L
                 index has excellent properties: (1) it significantly
                 reduces the size and improves the performance compared
                 with the $n$-gram index with these improvements
                 becoming more marked as the database size gets larger;
                 (2) the query processing time increases only very
                 slightly as the query length gets longer. Experimental
                 results using real databases of 1~GB show that the size
                 of the $n$-gram/2L index is reduced by up to 1.9---2.4
                 times and, at the same time, the query performance is
                 improved by up to 13.1 times compared with those of the
                 $n$-gram index. We also compare the $n$-gram/2L index
                 with Makinen's compact suffix array (CSA) (Proc. 11th
                 Annual Symposium on Combinatorial Pattern Matching
                 pp.~305---319, 2000) stored in disk. Experimental
                 results show that the $n$-gram/2L index outperforms the
                 CSA when the query length is short (i.e., less than
                 15---20), and the CSA is similar to or better than the
                 $n$-gram/2L index when the query length is long (i.e.,
                 more than 15---20).",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
  keywords =     "$n$-gram; Inverted index; Multivalued dependency; Text
                 search",
}

@Article{Koutrika:2008:CST,
  author =       "Georgia Koutrika and Frans Adjie Effendi and
                 Zolt{\'{}}n Gy{\"o}ngyi and Paul Heymann and Hector
                 Garcia-Molina",
  title =        "Combating spam in tagging systems: an evaluation",
  journal =      j-TWEB,
  volume =       "2",
  number =       "4",
  pages =        "22:1--22:??",
  month =        oct,
  year =         "2008",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1409220.1409225",
  ISSN =         "1559-1131 (print), 1559-114X (electronic)",
  ISSN-L =       "1559-1131",
  bibdate =      "Fri Apr 24 18:18:06 MDT 2009",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tweb.bib",
  abstract =     "Tagging systems allow users to interactively annotate
                 a pool of shared resources using descriptive strings
                 called {\em tags}. Tags are used to guide users to
                 interesting resources and help them build communities
                 that share their expertise and resources. As tagging
                 systems are gaining in popularity, they become more
                 susceptible to {\em tag spam\/}: misleading tags that
                 are generated in order to increase the visibility of
                 some resources or simply to confuse users. Our goal is
                 to understand this problem better. In particular, we
                 are interested in answers to questions such as: How
                 many malicious users can a tagging system tolerate
                 before results significantly degrade? What types of
                 tagging systems are more vulnerable to malicious
                 attacks? What would be the effort and the impact of
                 employing a trusted moderator to find bad postings? Can
                 a system automatically protect itself from spam, for
                 instance, by exploiting user tag patterns? In a quest
                 for answers to these questions, we introduce a
                 framework for modeling tagging systems and user tagging
                 behavior. We also describe a method for ranking
                 documents matching a tag based on taggers' reliability.
                 Using our framework, we study the behavior of existing
                 approaches under malicious attacks and the impact of a
                 moderator and our ranking method.",
  acknowledgement = ack-nhfb,
  articleno =    "22",
  fjournal =     "ACM Transactions on the Web (TWEB)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1062",
  keywords =     "bookmarking systems; tag spam; Tagging; tagging
                 models",
}

@Article{Krauss:2008:PMP,
  author =       "Alexander Krauss",
  title =        "Pattern minimization problems over recursive data
                 types",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "9",
  pages =        "267--274",
  month =        sep,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1411203.1411242",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 23 17:31:25 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "In the context of program verification in an
                 interactive theorem prover, we study the problem of
                 transforming function definitions with ML-style
                 (possibly overlapping) pattern matching into minimal
                 sets of independent equations. Since independent
                 equations are valid unconditionally, they are better
                 suited for the equational proof style using induction
                 and rewriting, which is often found in proofs in
                 theorem provers or on paper.\par

                 We relate the problem to the well-known minimization
                 problem for propositional DNF formulas and show that it
                 is {$ \pounds P / 2 $}-complete. We then develop a
                 concrete algorithm to compute minimal patterns, which
                 naturally generalizes the standard Quine-McCluskey
                 procedure to the domain of term patterns.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "complexity; pattern matching; theorem proving",
}

@Article{Krishnamurthy:2008:SSD,
  author =       "Rajasekar Krishnamurthy and Yunyao Li and Sriram
                 Raghavan and Frederick Reiss and Shivakumar
                 Vaithyanathan and Huaiyu Zhu",
  title =        "{SystemT}: a system for declarative information
                 extraction",
  journal =      j-SIGMOD,
  volume =       "37",
  number =       "4",
  pages =        "7--13",
  month =        dec,
  year =         "2008",
  CODEN =        "SRECD8",
  DOI =          "https://doi.org/10.1145/1519103.1519105",
  ISSN =         "0163-5808 (print), 1943-5835 (electronic)",
  ISSN-L =       "0163-5808",
  bibdate =      "Wed Apr 1 17:19:47 MDT 2009",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigmod.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "As applications within and outside the enterprise
                 encounter increasing volumes of unstructured data,
                 there has been renewed interest in the area of
                 information extraction (IE) -- the discipline concerned
                 with extracting structured information from
                 unstructured text. Classical IE techniques developed by
                 the NLP community were based on cascading grammars and
                 regular expressions. However, due to the inherent
                 limitations of grammar-based extraction, these
                 techniques are unable to: (i) scale to large data sets,
                 and (ii) support the expressivity requirements of
                 complex information tasks. At the IBM Almaden Research
                 Center, we are developing SystemT, an IE system that
                 addresses these limitations by adopting an algebraic
                 approach. By leveraging well-understood database
                 concepts such as declarative queries and costbased
                 optimization, SystemT enables scalable execution of
                 complex information extraction tasks. In this paper, we
                 motivate the SystemT approach to information
                 extraction. We describe our extraction algebra and
                 demonstrate the effectiveness of our optimization
                 techniques in providing orders of magnitude reduction
                 in the running time of complex extraction tasks.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGMOD Record (ACM Special Interest Group on
                 Management of Data)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J689",
}

@Article{Lam:2008:IAS,
  author =       "Tak-Wah Lam and Wing-Kin Sung and Swee-Seong Wong",
  title =        "Improved Approximate String Matching Using Compressed
                 Suffix Data Structures",
  journal =      j-ALGORITHMICA,
  volume =       "51",
  number =       "3",
  pages =        "298--314",
  month =        jul,
  year =         "2008",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-007-9104-8",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Wed Jul 9 22:25:05 MDT 2008",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=51&issue=3;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=51&issue=3&spage=298",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Leonard:2008:SDP,
  author =       "Derek Leonard and Zhongmei Yao and Xiaoming Wang and
                 Dmitri Loguinov",
  title =        "On static and dynamic partitioning behavior of
                 large-scale {P2P} networks",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "16",
  number =       "6",
  pages =        "1475--1488",
  month =        dec,
  year =         "2008",
  CODEN =        "IEANEP",
  DOI =          "https://doi.org/10.1109/TNET.2007.911433",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Fri Mar 6 16:31:04 MST 2009",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "In this paper, we analyze the problem of network
                 disconnection in the context of large-scale P2P
                 networks and understand how both static and dynamic
                 patterns of node failure affect the resilience of such
                 graphs. We start by applying classical results from
                 random graph theory to show that a large variety of
                 deterministic and random P2P graphs almost surely
                 (i.e., with probability {$ 1 - O(1) $}) remain
                 connected under random failure if and only if they have
                 no isolated nodes. This simple, yet powerful, result
                 subsequently allows us to derive in closed-form the
                 probability that a P2P network develops isolated nodes,
                 and therefore partitions, under both types of node
                 failure. We finish the paper by demonstrating that our
                 models match simulations very well and that dynamic P2P
                 systems are extremely resilient under node churn as
                 long as the neighbor replacement delay is much smaller
                 than the average user lifetime.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J771",
  keywords =     "churn; dynamic resilience; graph disconnection; P2P",
}

@Article{Lin:2008:USM,
  author =       "Po-Ching Lin and Ying-Dar Lin and Yuan-Cheng Lai and
                 Tsern-Huei Lee",
  title =        "Using String Matching for Deep Packet Inspection",
  journal =      j-COMPUTER,
  volume =       "41",
  number =       "4",
  pages =        "23--28",
  month =        apr,
  year =         "2008",
  CODEN =        "CPTRB4",
  DOI =          "https://doi.org/10.1109/MC.2008.138",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Fri Jul 4 17:13:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computer2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
}

@Article{Lipsky:2008:PML,
  author =       "Ohad Lipsky and Ely Porat",
  title =        "{$ L_1 $} pattern matching lower bound",
  journal =      j-INFO-PROC-LETT,
  volume =       "105",
  number =       "4",
  pages =        "141--143",
  day =          "15",
  month =        feb,
  year =         "2008",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 15:52:57 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@InProceedings{Litvak:2008:PRB,
  author =       "Nelly Litvak and Werner R. W. Scheinhardt and Yana
                 Volkovich",
  title =        "Probabilistic relation between in-degree and
                 {PageRank}",
  crossref =     "Aiello:2008:AMW",
  pages =        "72--83",
  year =         "2008",
  DOI =          "https://doi.org/10.1007/978-3-540-78808-9_7",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  MRclass =      "68M10 (05C90 37A50 68P20)",
  MRnumber =     "MR2473494 (2010c:68014)",
  bibdate =      "Wed May 5 19:28:06 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pagerank.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  ZMnumber =     "1142.68314",
  abstract =     "This paper presents a novel stochastic model that
                 explains the relation between power laws of In-Degree
                 and PageRank. PageRank is a popularity measure designed
                 by Google to rank Web pages. We model the relation
                 between PageRank and In-Degree through a stochastic
                 equation, which is inspired by the original definition
                 of PageRank. Using the theory of regular variation and
                 Tauberian theorems, we prove that the tail
                 distributions of PageRank and In-Degree differ only by
                 a multiplicative constant, for which we derive a
                 closed-form expression. Our analytical results are in
                 good agreement with Web data.",
  acknowledgement = ack-nhfb,
  keywords =     "Algorithms; Experimentation; In-Degree; PageRank;
                 Power law; Regular variation; Stochastic equation;
                 Theory; Verification; Web measurement",
}

@Article{Lladser:2008:MPM,
  author =       "Manuel E. Lladser and M. D. Betterton and Rob Knight",
  title =        "Multiple pattern matching: a {Markov} chain approach",
  journal =      j-J-MATH-BIOL,
  volume =       "56",
  number =       "1--2",
  pages =        "51--92",
  month =        jan,
  year =         "2008",
  CODEN =        "JMBLAJ",
  DOI =          "https://doi.org/10.1007/s00285-007-0109-3",
  ISSN =         "0303-6812 (print), 1432-1416 (electronic)",
  ISSN-L =       "0303-6812",
  bibdate =      "Thu Feb 18 08:57:13 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jmathbiol.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/content/pdf/10.1007/s00285-007-0109-3.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Mathematical Biology",
  journal-URL =  "http://link.springer.com/journal/285",
}

@Article{Lozano:2008:STA,
  author =       "Antoni Lozano and Ron Y. Pinter and Oleg Rokhlenko and
                 Gabriel Valiente and Michal Ziv-Ukelson",
  title =        "Seeded Tree Alignment",
  journal =      j-TCBB,
  volume =       "5",
  number =       "4",
  pages =        "503--513",
  month =        oct,
  year =         "2008",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2008.59",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Wed Jan 14 12:51:33 MST 2009",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "The optimal transformation of one tree into another by
                 means of elementary edit operations is an important
                 algorithmic problem that has several interesting
                 applications to computational biology. Here we
                 introduce a constrained form of this problem in which a
                 partial mapping of a set of nodes (the `seeds') in one
                 tree to a corresponding set of nodes in the other tree
                 is given, and present efficient algorithms for both
                 ordered and unordered trees. Whereas ordered tree
                 matching based on seeded nodes has applications in
                 pattern matching of RNA structures, unordered tree
                 matching based on seeded nodes has applications in
                 co-speciation and phylogeny reconciliation. The latter
                 involves the solution of the planar tanglegram layout
                 problem, for which a polynomial-time algorithm is given
                 here.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
  keywords =     "Biology and genetics; Computer Applications; Discrete
                 Mathematics; Graph algorithms; Graph Theory; Life and
                 Medical Sciences; Mathematics of Computing; Trees",
}

@InProceedings{Meir:2008:CCL,
  author =       "Or Meir",
  title =        "Combinatorial construction of locally testable codes",
  crossref =     "ACM:2008:SPA",
  pages =        "285--294",
  year =         "2008",
  DOI =          "https://doi.org/10.1145/1374376.1374419",
  bibdate =      "Fri Jun 20 18:31:53 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "An error correcting code is said to be locally
                 testable if there is a test that checks whether a given
                 string is a codeword, or rather far from the code, by
                 reading only a constant number of symbols of the
                 string. Locally Testable Codes (LTCs) were first
                 systematically studied by Goldreich and Sudan (J. ACM
                 53(4)) and since then several Constructions of LTCs
                 have been suggested.\par

                 While the best known construction of LTCs by Ben-Sasson
                 and Sudan (STOC 2005) and Dinur (J. ACM 54(3)) achieves
                 very efficient parameters, it relies heavily on
                 algebraic tools and on PCP machinery. In this work we
                 present a new and arguably simpler construction of LTCs
                 that is purely combinatorial, does not rely on PCP
                 machinery and matches the parameters of the best known
                 construction. However, unlike the latter construction,
                 our construction is not entirely explicit.",
  acknowledgement = ack-nhfb,
  keywords =     "locally testable codes; PCPs of proximity;
                 probabilistically checkable proofs",
}

@Article{Moscola:2008:RCB,
  author =       "James Moscola and John W. Lockwood and Young H. Cho",
  title =        "Reconfigurable content-based router using
                 hardware-accelerated language parser",
  journal =      j-TODAES,
  volume =       "13",
  number =       "2",
  pages =        "28:1--28:??",
  month =        apr,
  year =         "2008",
  CODEN =        "ATASFO",
  DOI =          "https://doi.org/10.1145/1344418.1344424",
  ISSN =         "1084-4309 (print), 1557-7309 (electronic)",
  ISSN-L =       "1084-4309",
  bibdate =      "Thu Jun 12 18:10:39 MDT 2008",
  bibsource =    "http://www.acm.org/pubs/contents/journals/todaes/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/todaes.bib",
  abstract =     "This article presents a dense logic design for
                 matching multiple regular expressions with a field
                 programmable gate array (FPGA) at 10 + Gbps. It
                 leverages on the design techniques that enforce the
                 shortest critical path on most FPGA architectures while
                 optimizing the circuit size. The architecture is
                 capable of supporting a maximum throughput of 12. 90
                 Gbps on a Xilinx Virtex 4 LX200 and its performance is
                 linearly scalable with size. Additionally, this article
                 presents techniques for parsing data streams to provide
                 semantic information for patterns found within a data
                 stream. We illustrate how a content-based router can be
                 implemented with our parsing techniques using an XML
                 parser as an example. The content-based router
                 presented was designed, implemented, and tested in a
                 Xilinx Virtex XCV2000E FPGA on the FPX platform. It is
                 capable of processing 32-bits of data per clock cycle
                 and runs at 100 MHz. This allows the system to process
                 and route XML messages at 3. 2 Gbps.",
  acknowledgement = ack-nhfb,
  articleno =    "28",
  fjournal =     "ACM Transactions on Design Automation of Electronic
                 Systems (TODAES)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J776",
  keywords =     "content-based routing; parser hardware; Parsing;
                 pattern matching; regular expressions; XML",
}

@Article{Murphy:2008:DGB,
  author =       "Laurie Murphy and Gary Lewandowski and Ren{\'e}e
                 McCauley and Beth Simon and Lynda Thomas and Carol
                 Zander",
  title =        "Debugging: the good, the bad, and the quirky --- a
                 qualitative analysis of novices' strategies",
  journal =      j-SIGCSE,
  volume =       "40",
  number =       "1",
  pages =        "163--167",
  month =        mar,
  year =         "2008",
  CODEN =        "SIGSD3",
  DOI =          "https://doi.org/10.1145/1352322.1352191",
  ISSN =         "0097-8418 (print), 2331-3927 (electronic)",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 15:44:10 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigcse2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Proceedings of SIGCSE 08.",
  abstract =     "A qualitative analysis of debugging strategies of
                 novice Java programmers is presented. The study
                 involved 21 CS2 students from seven universities in the
                 U.S. and U.K. Subjects ``warmed up'' by coding a
                 solution to a typical introductory problem. This was
                 followed by an exercise debugging a syntactically
                 correct version with logic errors. Many novices found
                 and fixed bugs using strategies such as tracing,
                 commenting out code, diagnostic print statements and
                 methodical testing. Some competently used online
                 resources and debuggers. Students also used pattern
                 matching to detect errors in code that ``just didn't
                 look right''. However, some used few strategies,
                 applied them ineffectively, or engaged in other
                 unproductive behaviors. This led to poor performance,
                 frustration for some, and occasionally the introduction
                 of new bugs. Pedagogical implications and suggestions
                 for future research are discussed.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Nicoara:2008:CSE,
  author =       "Angela Nicoara and Gustavo Alonso and Timothy Roscoe",
  title =        "Controlled, systematic, and efficient code replacement
                 for running {Java} programs",
  journal =      j-OPER-SYS-REV,
  volume =       "42",
  number =       "4",
  pages =        "233--246",
  month =        may,
  year =         "2008",
  CODEN =        "OSRED8",
  DOI =          "https://doi.org/10.1145/1352592.1352617",
  ISSN =         "0163-5980 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Fri Jun 20 17:21:34 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/opersysrev.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "In this paper we present PROSE, a system that performs
                 reversible and systematic changes to running Java
                 applications without requiring them to be shut down.
                 PROSE is motivated by scenarios such as hotfixes,
                 online program instrumentation and debugging, and
                 evolution of critical legacy applications. In PROSE,
                 changes to running applications are performed by
                 replacing method bodies. To select which code to
                 replace, PROSE supports matching based on both type
                 information and regular expressions. New code can
                 invoke the method it replaces, facilitating code
                 evolution. Changes are composable, and may be reordered
                 or selectively withdrawn at any time. Furthermore, the
                 dynamic changes are expressed as Java classes rather
                 than through an additional programming language. We
                 describe the architecture of PROSE, the challenges of
                 using aggressive inlining to achieve performance, and
                 use standard benchmarks to demonstrate code performance
                 comparable with, or better than, compile-time systems
                 from the Aspect-Oriented Programming community.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGOPS Operating Systems Review",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J597",
  keywords =     "dynamic bytecode instrumentation; inlining; PROSE;
                 run-time method code replacement; run-time
                 modification",
}

@TechReport{Owens:2008:RED,
  author =       "Scott Owens and John Reppy and Aaron Turon",
  title =        "Regular-expression derivatives reexamined",
  type =         "Report",
  institution =  "University of Cambridge and University of Chicago and
                 Northeastern University",
  address =      "Cambridge, UK; Chicago, IL, USA; Boston, MA, USA",
  pages =        "18",
  day =          "12",
  month =        aug,
  year =         "2008",
  bibdate =      "Sat Nov 07 13:55:07 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.ccs.neu.edu/home/turon/re-deriv.pdf",
  acknowledgement = ack-nhfb,
  remark =       "This article revisits Brzozowski's 44-year-old work
                 \cite{Brzozowski:1964:DRE} that has largely been
                 forgotten in the parser research community, and
                 textbooks in that area.",
}

@Article{Pao:2008:PAM,
  author =       "D. Pao and W. Lin and B. Liu",
  title =        "Pipelined Architecture for Multi-String Matching",
  journal =      j-IEEE-COMPUT-ARCHIT-LETT,
  volume =       "7",
  number =       "2",
  pages =        "33--36",
  month =        jul,
  year =         "2008",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1109/L-CA.2008.5",
  ISSN =         "1556-6056 (print), 1556-6064 (electronic)",
  ISSN-L =       "1556-6056",
  bibdate =      "Fri Jun 21 05:49:19 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeecomputarchitlett.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This letter presents a new oblivious routing algorithm
                 for 3D mesh networks called randomized
                 partially-minimal (RPM) routing that provably achieves
                 optimal worst- case throughput for 3D meshes when the
                 network radix fc is even and within a factor of 1/k2 of
                 optimal when k is odd. Although this optimality result
                 has been achieved with the minimal routing algorithm
                 OITURN for the 2D case, the worst-case throughput of
                 OITURN degrades tremendously in higher dimensions.
                 Other existing routing algorithms suffer from either
                 poor worst-case throughput (DOR, ROMM) or poor latency
                 (VAL). RPM on the other hand achieves near optimal
                 worst-case and good average-case throughput as well as
                 good latency performance.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Computer Architecture Letters",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=10208",
  keywords =     "3D mesh networks; Automata; computer architecture;
                 Computer architecture; Computer science; Costs;
                 deterministic finite automaton; Hardware; Intrusion
                 detection; network intrusion detection; network radix;
                 OITURN; Partial response channels; pipelined
                 processing; Pipelines; randomized partially-minimal
                 routing; string matching; Table lookup;
                 three-dimensional mesh networks; Throughput",
}

@Article{Patrick:2008:CEO,
  author =       "Christina M. Patrick and SeungWoo Son and Mahmut
                 Kandemir",
  title =        "Comparative evaluation of overlap strategies with
                 study of {I/O} overlap in {MPI-IO}",
  journal =      j-OPER-SYS-REV,
  volume =       "42",
  number =       "6",
  pages =        "43--49",
  month =        oct,
  year =         "2008",
  CODEN =        "OSRED8",
  DOI =          "https://doi.org/10.1145/1453775.1453784",
  ISSN =         "0163-5980 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Thu Oct 23 14:23:29 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/linux.bib;
                 https://www.math.utah.edu/pub/tex/bib/opersysrev.bib;
                 https://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  abstract =     "Many scientific applications use parallel I/O to meet
                 the low latency and high bandwidth I/O requirement.
                 Among many available parallel I/O operations,
                 collective I/O is one of the most popular methods when
                 the storage layouts and access patterns of data do not
                 match. The implementation of collective I/O typically
                 involves disk I/O operations followed by interprocessor
                 communications. Also, in many I/O-intensive
                 applications, parallel I/O operations are usually
                 followed by parallel computations. This paper presents
                 a comparative study of different overlap strategies in
                 parallel applications. We have experimented with four
                 different overlap strategies (1) Overlapping I/O and
                 communication; (2) Overlapping I/O and computation; (3)
                 Overlapping computation and communication; and (4)
                 Overlapping I/O, communication, and computation. All
                 experiments have been conducted on a Linux Cluster and
                 the performance results obtained are very encouraging.
                 On an average, we have enhanced the performance of a
                 generic collective read call by 38\%, the MxM benchmark
                 by 26\%, and the FFT benchmark by 34\%.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGOPS Operating Systems Review",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J597",
}

@Article{Pientka:2008:TTF,
  author =       "Brigitte Pientka",
  title =        "A type-theoretic foundation for programming with
                 higher-order abstract syntax and first-class
                 substitutions",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "371--382",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328483",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Higher-order abstract syntax (HOAS) is a simple,
                 powerful technique for implementing object languages,
                 since it directly supports common and tricky routines
                 dealing with variables, such as capture-avoiding
                 substitution and renaming. This is achieved by
                 representing binders in the object-language via binders
                 in the meta-language. However, enriching functional
                 programming languages with direct support for HOAS has
                 been a major challenge, because recursion over HOAS
                 encodings requires one to traverse lambda-abstractions
                 and necessitates programming with open objects.\par

                 We present a novel type-theoretic foundation based on
                 contextual modal types which allows us to recursively
                 analyze open terms via higher-order pattern matching.
                 By design, variables occurring in open terms can never
                 escape their scope. Using several examples, we
                 demonstrate that our framework provides a name-safe
                 foundation to operations typically found in nominal
                 systems. In contrast to nominal systems however, we
                 also support capture-avoiding substitution operations
                 and even provide first-class substitutions to the
                 programmer. The main contribution of this paper is a
                 syntax-directed bi-directional type system where we
                 distinguish between the data language and the
                 computation language together with the progress and
                 preservation proof for our language.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "logical frameworks; type system",
}

@Article{Porat:2008:PMP,
  author =       "Benny Porat and Ely Porat and Asaf Zur",
  title =        "Pattern matching with pair correlation distance",
  journal =      j-THEOR-COMP-SCI,
  volume =       "407",
  number =       "1--3",
  pages =        "587--590",
  day =          "6",
  month =        nov,
  year =         "2008",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Mar 28 21:21:42 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2005.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Qu:2008:RPM,
  author =       "Yingge Qu and Wai-Man Pang and Tien-Tsin Wong and
                 Pheng-Ann Heng",
  title =        "Richness-preserving manga screening",
  journal =      j-TOG,
  volume =       "27",
  number =       "5",
  pages =        "155:1--155:??",
  month =        dec,
  year =         "2008",
  CODEN =        "ATGRDF",
  DOI =          "https://doi.org/10.1145/1457515.1409108",
  ISSN =         "0730-0301 (print), 1557-7368 (electronic)",
  ISSN-L =       "0730-0301",
  bibdate =      "Mon Dec 8 14:35:04 MST 2008",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tog/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tog.bib",
  abstract =     "Due to the tediousness and labor intensive cost, some
                 manga artists have already employed computer-assisted
                 methods for converting color photographs to manga
                 backgrounds. However, existing bitonal image generation
                 methods usually produce unsatisfactory uniform
                 screening results that are not consistent with
                 traditional mangas, in which the artist employs a rich
                 set of screens. In this paper, we propose a novel
                 method for generating bitonal manga backgrounds from
                 color photographs. Our goal is to preserve the visual
                 richness in the original photograph by utilizing not
                 only screen density, but also the variety of screen
                 patterns. To achieve the goal, we select screens for
                 different regions in order to preserve the tone
                 similarity, texture similarity, and chromaticity
                 distinguishability. The multi-dimensional scaling
                 technique is employed in such a color-to-pattern
                 matching for maintaining pattern dissimilarity of the
                 screens. Users can control the mapping by a few
                 parameters and interactively fine-tune the result.
                 Several results are presented to demonstrate the
                 effectiveness and convenience of the proposed method.",
  acknowledgement = ack-nhfb,
  articleno =    "155",
  fjournal =     "ACM Transactions on Graphics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J778",
  keywords =     "manga; multidimensional scaling; non-photorealistic
                 rendering; screening",
}

@Book{Schwartz:2008:LP,
  author =       "Randal L. Schwartz and Tom Phoenix and Brian D. Foy",
  title =        "Learning {Perl}",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Fifth",
  pages =        "xviii + 328",
  year =         "2008",
  ISBN =         "0-596-52010-7",
  ISBN-13 =      "978-0-596-52010-6",
  LCCN =         "QA76.73.P22 S37 2008",
  bibdate =      "Wed Mar 13 13:43:08 MDT 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 melvyl.cdlib.org:210/CDL90;
                 prodorbis.library.yale.edu:7090/voyager",
  abstract =     "Shows how to write, debug, and run a Perl program,
                 describes CGI scripting and data manipulation, and
                 describes scalar values, basic operators, and
                 associative arrays.",
  acknowledgement = ack-nhfb,
  subject =      "Perl (Computer program language)",
  tableofcontents = "1. Introduction \\
                 Questions and answers \\
                 What does ``Perl'' stand for? \\
                 How can I get Perl? \\
                 How do I make a Perl program? \\
                 A Whirlwind tour of Perl \\
                 Exercises \\
                 2. Scalar data \\
                 Numbers \\
                 Strings \\
                 Perl's built-in warnings \\
                 Scalar variables \\
                 Output with print \\
                 The If control structure \\
                 Getting user input \\
                 The Chomp operator \\
                 The While control structure \\
                 The Undef value \\
                 The Defined function \\
                 3. Lists and arrays \\
                 Accessing elements of an array \\
                 Special array Indices \\
                 List literals \\
                 List assignment \\
                 Interpolating arrays into strings \\
                 The Foreach control structure \\
                 Scalar and list context \\
                 4. Subroutines \\
                 Defining a subroutine \\
                 Invoking a subroutine \\
                 Return values \\
                 Arguments \\
                 Private variables in subroutines \\
                 Variable-length parameter lists \\
                 Notes on lexical (my) variables \\
                 The Use strict pragma \\
                 The Return operator \\
                 Nonscalar Return Values \\
                 Persistent, private variables \\
                 5. Input and output \\
                 Input from standard input \\
                 Input from the diamond operator \\
                 The Invocation arguments \\
                 Output to standard output \\
                 Formatted output with printf \\
                 Filehandles \\
                 Opening a filehandle \\
                 Fatal errors with die \\
                 Using filehandles \\
                 Reopening a standard filehandle \\
                 Output with say \\
                 6. Hashes \\
                 What Is a hash? \\
                 Hash element access \\
                 Hash functions \\
                 Typical use of a hash \\
                 The \%ENV hash \\
                 7. In the world of regular expressions \\
                 What are regular expressions? \\
                 Using simple patterns \\
                 Character classes \\
                 8. Matching with regular expressions \\
                 Matches with m// \\
                 Option modifiers \\
                 Anchors \\
                 The Binding operator, =~ \\
                 Interpolating into patterns \\
                 The Match variables \\
                 General quantifiers \\
                 Precedence \\
                 A Pattern test program \\
                 9. Processing text with regular expressions \\
                 Substitutions with s/// \\
                 The Split operator \\
                 The Join function in list context \\
                 More powerful regular expressions \\
                 10. More Control Structures \\
                 The Unless control structure \\
                 The Until control structure \\
                 Expression modifiers \\
                 The Naked block control structure \\
                 The Elsif clause \\
                 Autoincrement and autodecrement \\
                 The For control structure \\
                 Loop controls \\
                 The Ternary operator, ?: \\
                 Logical operators \\
                 11. Perl modules \\
                 Finding modules \\
                 Installing modules \\
                 Using simple modules \\
                 12. File tests \\
                 File test operators \\
                 The Stat and istat functions \\
                 The Localtime function \\
                 Bitwise operators \\
                 13. Directory operations \\
                 Moving around the directory tree \\
                 Globbing \\
                 An Alternate syntax for globbing \\
                 Directory handles \\
                 Recursive directory Listing \\
                 Manipulating files and directories \\
                 Removing files \\
                 Renaming files \\
                 Links and files \\
                 Making and removing directories \\
                 Modifying permissions \\
                 Changing ownership \\
                 Changing timestamps14. Strings and sorting \\
                 Finding a substring with index \\
                 Manipulating a substring with substr \\
                 Formatting data with sprintf \\
                 Advanced sorting \\
                 15. Smart matching and given-when \\
                 The Smart match operator \\
                 Smart match precedence \\
                 The Given statement \\
                 When with many Items \\
                 16. Process management \\
                 The System function \\
                 The Exec function \\
                 The Environment variables \\
                 Using backquotes to capture output \\
                 Processes as filehandles \\
                 Getting down and dirty with Fork \\
                 Sending and receiving signals \\
                 17. Some advanced Perl techniques \\
                 Trapping errors with eval \\
                 Picking items from a list with grep \\
                 Transforming items from a list with map \\
                 Unquoted hash keys \\
                 Slices \\
                 A. Exercise answers \\
                 B. Beyond the Llama \\
                 Index",
}

@Article{Villa:2008:ART,
  author =       "Oreste Villa and Daniele Paolo Scarpazza and Fabrizio
                 Petrini",
  title =        "Accelerating Real-Time String Searching with Multicore
                 Processors",
  journal =      j-COMPUTER,
  volume =       "41",
  number =       "4",
  pages =        "42--50",
  month =        apr,
  year =         "2008",
  CODEN =        "CPTRB4",
  DOI =          "https://doi.org/10.1109/MC.2008.105",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Fri Jul 4 17:13:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computer2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
}

@Article{Ye:2008:DSA,
  author =       "Jieping Ye and Jianhui Chen and Ravi Janardan and
                 Sudhir Kumar",
  title =        "Developmental stage annotation of {Drosophila} gene
                 expression pattern images via an entire solution path
                 for {LDA}",
  journal =      j-TKDD,
  volume =       "2",
  number =       "1",
  pages =        "4:1--4:??",
  month =        mar,
  year =         "2008",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1342320.1342324",
  ISSN =         "1556-4681 (print), 1556-472X (electronic)",
  ISSN-L =       "1556-4681",
  bibdate =      "Fri Apr 24 17:59:18 MDT 2009",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tkdd/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tkdd.bib",
  abstract =     "Gene expression in a developing embryo occurs in
                 particular cells (spatial patterns) in a time-specific
                 manner (temporal patterns), which leads to the
                 differentiation of cell fates. Images of a {\em
                 Drosophila melanogaster\/} embryo at a given
                 developmental stage, showing a particular gene
                 expression pattern revealed by a gene-specific probe,
                 can be compared for spatial overlaps. The comparison is
                 fundamentally important to formulating and testing gene
                 interaction hypotheses. Expression pattern comparison
                 is most biologically meaningful when images from a
                 similar time point (developmental stage) are compared.
                 In this paper, we present LdaPath, a novel formulation
                 of Linear Discriminant Analysis (LDA) for automatic
                 developmental stage range classification. It employs
                 multivariate linear regression with the {$ L_1 $}-norm
                 penalty controlled by a regularization parameter for
                 feature extraction and visualization. LdaPath computes
                 an entire solution path for all values of
                 regularization parameter with essentially the same
                 computational cost as fitting one LDA model. Thus, it
                 facilitates efficient model selection. It is based on
                 the equivalence relationship between LDA and the least
                 squares method for multiclass classifications. This
                 equivalence relationship is established under a mild
                 condition, which we show empirically to hold for many
                 high-dimensional datasets, such as expression pattern
                 images. Our experiments on a collection of 2705
                 expression pattern images show the effectiveness of the
                 proposed algorithm. Results also show that the LDA
                 model resulting from LdaPath is sparse, and irrelevant
                 features may be removed. Thus, LdaPath provides a
                 general framework for simultaneous feature selection
                 and feature extraction.",
  acknowledgement = ack-nhfb,
  articleno =    "4",
  fjournal =     "ACM Transactions on Knowledge Discovery from Data
                 (TKDD)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1054",
  keywords =     "dimensionality reduction; Gene expression pattern
                 image; linear discriminant analysis; linear
                 regression",
}

@Article{Zeilberger:2008:FHO,
  author =       "Noam Zeilberger",
  title =        "Focusing and higher-order abstract syntax",
  journal =      j-SIGPLAN,
  volume =       "43",
  number =       "1",
  pages =        "359--369",
  month =        jan,
  year =         "2008",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1328897.1328482",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jun 18 11:02:13 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Focusing is a proof-search strategy, originating in
                 linear logic, that elegantly eliminates inessential
                 nondeterminism, with one byproduct being a
                 correspondence between focusing proofs and programs
                 with explicit evaluation order. Higher-order abstract
                 syntax (HOAS) is a technique for representing
                 higher-order programming language constructs (e.g.,
                 \lambda 's) by higher-order terms at the 'meta-level',
                 thereby avoiding some of the bureaucratic headaches of
                 first-order representations (e.g., capture-avoiding
                 substitution).\par

                 This paper begins with a fresh, judgmental analysis of
                 focusing for intuitionistic logic (with a full suite of
                 propositional connectives), recasting the 'derived
                 rules' of focusing as iterated inductive definitions.
                 This leads to a uniform presentation, allowing concise,
                 modular proofs of the identity and cut principles. Then
                 we show how this formulation of focusing induces,
                 through the Curry--Howard isomorphism, a new kind of
                 higher-order encoding of abstract syntax: functions are
                 encoded by maps from patterns to expressions. Dually,
                 values are encoded as patterns together with explicit
                 substitutions. This gives us pattern-matching 'for
                 free', and lets us reason about a rich type system with
                 minimal syntactic overhead. We describe how to
                 translate the language and proof of type safety almost
                 directly into Coq using HOAS, and finally, show how the
                 system's modular design pays off in enabling a very
                 simple extension with recursion and recursive types.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "focusing; higher-order abstract syntax;
                 pattern-matching",
}

@Article{Ahmed:2009:PSP,
  author =       "Reaz Ahmed and Raouf Boutaba",
  title =        "{Plexus}: a scalable peer-to-peer protocol enabling
                 efficient subset search",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "17",
  number =       "1",
  pages =        "130--143",
  month =        feb,
  year =         "2009",
  CODEN =        "IEANEP",
  DOI =          "https://doi.org/10.1109/TNET.2008.2001466",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Fri Mar 6 16:31:07 MST 2009",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Efficient discovery of information, based on partial
                 knowledge, is a challenging problem faced by many large
                 scale distributed systems. This paper presents Plexus,
                 a peer-to-peer search protocol that provides an
                 efficient mechanism for advertising a bit-sequence
                 (pattern), and discovering it using any subset of its
                 1-bits. A pattern (e.g., Bloom filter) summarizes the
                 properties (e.g., key-words, service description)
                 associated with a shared object (e.g., document,
                 service).\par

                 Plexus has a partially decentralized architecture
                 involving super-peers. It adopts a novel structured
                 routing mechanism derived from the theory of Error
                 Correcting Codes (ECC). Plexus achieves better
                 resilience to peer failure by utilizing replication and
                 redundant routing paths. Routing efficiency in Plexus
                 scales logarithmically with the number of superpeers.
                 The concept presented in this paper is supported with
                 theoretical analysis, and simulation results obtained
                 from the application of Plexus to partial keyword
                 search utilizing the extended Golay code.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J771",
  keywords =     "bloom filter; distributed pattern matching; error
                 correcting codes; peer-to-peer search; structured
                 overlay network",
}

@Article{Aiger:2009:GPM,
  author =       "Dror Aiger and Klara Kedem",
  title =        "Geometric pattern matching for point sets in the plane
                 under similarity transformations",
  journal =      j-INFO-PROC-LETT,
  volume =       "109",
  number =       "16",
  pages =        "935--940",
  day =          "31",
  month =        jul,
  year =         "2009",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 15:53:38 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Amir:2009:ASM,
  author =       "Amihood Amir and Yonatan Aumann and Oren Kapah and
                 Avivit Levy and Ely Porat",
  title =        "Approximate string matching with address bit errors",
  journal =      j-THEOR-COMP-SCI,
  volume =       "410",
  number =       "51",
  pages =        "5334--5346",
  day =          "28",
  month =        nov,
  year =         "2009",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Mar 28 21:21:57 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2005.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Amir:2009:PMA,
  author =       "Amihood Amir and Yonatan Aumann and Gary Benson and
                 Avivit Levy and Ohad Lipsky and Ely Porat and Steven
                 Skiena and Uzi Vishne",
  title =        "Pattern matching with address errors: Rearrangement
                 distances",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "75",
  number =       "6",
  pages =        "359--370",
  month =        sep,
  year =         "2009",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1016/j.jcss.2009.03.001",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:27:11 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000009000257",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Anand:2009:OCS,
  author =       "C. K. Anand and W. Kahl",
  title =        "An Optimized {Cell BE} Special Function Library
                 Generated by {Coconut}",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "58",
  number =       "8",
  pages =        "1126--1138",
  month =        aug,
  year =         "2009",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.2008.223",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Mon Jul 4 11:37:43 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/elefunt.bib;
                 https://www.math.utah.edu/pub/tex/bib/ieeetranscomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/ieeetranscomput2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4731241",
  abstract =     "Coconut, a tool for developing high-assurance,
                 high-performance kernels for scientific computing,
                 contains an extensible domain-specific language (DSL)
                 embedded in Haskell. The DSL supports interactive
                 prototyping and unit testing, simplifying the process
                 of designing efficient implementations of common
                 patterns. Unscheduled C and scheduled assembly language
                 output are supported. Using the patterns, even
                 nonexpert users can write efficient function
                 implementations, leveraging special hardware features.
                 A production-quality library of elementary functions
                 for the cell BE SPU compute engines has been developed.
                 Coconut-generated and -scheduled vector functions were
                 more than four times faster than commercially
                 distributed functions written in C with intrinsics (a
                 nicer syntax for in-line assembly), wrapped in loops
                 and scheduled by {\tt spuxlc}. All Coconut functions
                 were faster, but the difference was larger for
                 hard-to-approximate functions for which register-level
                 SIMD lookups made a bigger difference. Other helpful
                 features in the language include facilities for
                 translating interval and polynomial descriptions
                 between GHCi, a Haskell interpreter used to prototype
                 in the DSL, and Maple, used for exploration and minimax
                 polynomial generation. This makes it easier to match
                 mathematical properties of the functions with efficient
                 calculational patterns in the SPU ISA. By using single,
                 literate source files, the resulting functions are
                 remarkably readable.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Baeza-Yates:2009:SBM,
  author =       "Ricardo Baeza-Yates and V{\'e}ronique Bruy{\`e}re and
                 Olivier Delgrange and Rodrigo Scheihing",
  title =        "On the size of {Boyer--Moore} automata",
  journal =      j-THEOR-COMP-SCI,
  volume =       "410",
  number =       "43",
  pages =        "4432--4443",
  day =          "6",
  month =        oct,
  year =         "2009",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Mar 28 21:21:55 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2005.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Book{Bambenek:2009:GPR,
  author =       "John Bambenek and Agnieszka Klus",
  title =        "{{\tt grep}}: Pocket reference",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "v + 75",
  year =         "2009",
  ISBN =         "0-596-15360-0 (paperback)",
  ISBN-13 =      "978-0-596-15360-1 (paperback)",
  LCCN =         "QA76.76.U84 B36 2009",
  bibdate =      "Tue May 26 16:25:05 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.bibsys.no:2100/BIBSYS",
  acknowledgement = ack-nhfb,
  remark =       "The basics for an essential Unix content-location
                 utility.",
  subject =      "grep (computer language program); utilities (computer
                 programs); programming languages (electronic
                 computers); electronic information resource searching;
                 computer programs",
}

@Article{Baturo:2009:CSM,
  author =       "Pawe{\l} Baturo and Wojciech Rytter",
  title =        "Compressed string-matching in standard {Sturmian}
                 words",
  journal =      j-THEOR-COMP-SCI,
  volume =       "410",
  number =       "30--32",
  pages =        "2804--2810",
  day =          "20",
  month =        aug,
  year =         "2009",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Mar 28 21:21:52 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2005.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Ben-Chen:2009:VHM,
  author =       "Mirela Ben-Chen and Ofir Weber and Craig Gotsman",
  title =        "Variational harmonic maps for space deformation",
  journal =      j-TOG,
  volume =       "28",
  number =       "3",
  pages =        "34:1--34:??",
  month =        aug,
  year =         "2009",
  CODEN =        "ATGRDF",
  DOI =          "https://doi.org/10.1145/1576246.1531340",
  ISSN =         "0730-0301 (print), 1557-7368 (electronic)",
  ISSN-L =       "0730-0301",
  bibdate =      "Tue Aug 11 18:14:27 MDT 2009",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tog/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tog.bib",
  abstract =     "A space deformation is a mapping from a source region
                 to a target region within Euclidean space, which best
                 satisfies some user-specified constraints. It can be
                 used to deform shapes embedded in the ambient space and
                 represented in various forms -- polygon meshes, point
                 clouds or volumetric data. For a space deformation
                 method to be useful, it should possess some natural
                 properties: e.g. detail preservation, smoothness and
                 intuitive control. A harmonic map from a domain {$
                 \omega \subset R^d $} to {$ R^d $} is a mapping whose
                 $d$ components are harmonic functions. Harmonic
                 mappings are smooth and regular, and if their
                 components are coupled in some special way, the mapping
                 can be detail-preserving, making it a natural choice
                 for space deformation applications. The challenge is to
                 find a harmonic mapping of the domain, which will
                 satisfy constraints specified by the user, yet also be
                 detail-preserving, and intuitive to control. We
                 generate harmonic mappings as a linear combination of a
                 set of harmonic basis functions, which have a
                 closed-form expression when the source region boundary
                 is piecewise linear. This is done by defining an energy
                 functional of the mapping, and minimizing it within the
                 linear span of these basis functions. The resulting
                 mapping is harmonic, and a natural
                 `As-Rigid-As-Possible' deformation of the source
                 region. Unlike other space deformation methods, our
                 approach does not require an explicit discretization of
                 the domain. It is shown to be much more efficient, yet
                 generate comparable deformations to state-of-the-art
                 methods. We describe an optimization algorithm to
                 minimize the deformation energy, which is robust,
                 provably convergent, and easy to implement.",
  acknowledgement = ack-nhfb,
  articleno =    "34",
  fjournal =     "ACM Transactions on Graphics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J778",
  keywords =     "harmonic maps; shape editing; space deformation",
}

@Article{Bille:2009:IAS,
  author =       "Philip Bille and Rolf Fagerberg and Inge Li G{\o}rtz",
  title =        "Improved approximate string matching and regular
                 expression matching on {Ziv--Lempel} compressed texts",
  journal =      j-TALG,
  volume =       "6",
  number =       "1",
  pages =        "3:1--3:??",
  month =        dec,
  year =         "2009",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1644015.1644018",
  ISSN =         "1549-6325 (print), 1549-6333 (electronic)",
  ISSN-L =       "1549-6325",
  bibdate =      "Sat Dec 8 09:35:31 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talg.bib",
  abstract =     "We study the approximate string matching and regular
                 expression matching problem for the case when the text
                 to be searched is compressed with the Ziv--Lempel
                 adaptive dictionary compression schemes. We present a
                 time-space trade-off that leads to algorithms improving
                 the previously known complexities for both problems. In
                 particular, we significantly improve the space bounds,
                 which in practical applications are likely to be a
                 bottleneck.",
  acknowledgement = ack-nhfb,
  articleno =    "3",
  fjournal =     "ACM Transactions on Algorithms (TALG)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J982",
}

@Article{Bloom:2009:TRC,
  author =       "Bard Bloom and John Field and Nathaniel Nystrom and
                 Johan {\"O}stlund and Gregor Richards and Rok
                 Strni{\v{s}}a and Jan Vitek and Tobias Wrigstad",
  title =        "Thorn: robust, concurrent, extensible scripting on the
                 {JVM}",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "117--136",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640089.1640098",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Scripting languages enjoy great popularity due to
                 their support for rapid and exploratory development.
                 They typically have lightweight syntax, weak data
                 privacy, dynamic typing, powerful aggregate data types,
                 and allow execution of the completed parts of
                 incomplete programs. The price of these features comes
                 later in the software life cycle. Scripts are hard to
                 evolve and compose, and often slow. An additional
                 weakness of most scripting languages is lack of support
                 for concurrency --- though concurrency is required for
                 scalability and interacting with remote services. This
                 paper reports on the design and implementation of
                 Thorn, a novel programming language targeting the JVM.
                 Our principal contributions are a careful selection of
                 features that support the evolution of scripts into
                 industrial grade programs --- {\em e.g.}, an expressive
                 module system, an optional type annotation facility for
                 declarations, and support for concurrency based on
                 message passing between lightweight, isolated
                 processes. On the implementation side, Thorn has been
                 designed to accommodate the evolution of the language
                 itself through a compiler plugin mechanism and target
                 the Java virtual machine.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "actors; pattern matching; scripting",
}

@Article{Cameron:2009:ASS,
  author =       "Robert D. Cameron and Dan Lin",
  title =        "Architectural support for {SWAR} text processing with
                 parallel bit streams: the inductive doubling
                 principle",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "3",
  pages =        "337--348",
  month =        mar,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1508244.1508283",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:39:26 MDT 2009",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Parallel bit stream algorithms exploit the SWAR (SIMD
                 within a register) capabilities of commodity processors
                 in high-performance text processing applications such
                 as UTF-8 to UTF-16 transcoding, XML parsing, string
                 search and regular expression matching. Direct
                 architectural support for these algorithms in future
                 SWAR instruction sets could further increase
                 performance as well as simplifying the programming
                 task. A set of simple SWAR instruction set extensions
                 are proposed for this purpose based on the principle of
                 systematic support for inductive doubling as an
                 algorithmic technique. These extensions are shown to
                 significantly reduce instruction count in core parallel
                 bit stream algorithms, often providing a 3X or better
                 improvement. The extensions are also shown to be useful
                 for SWAR programming in other application areas,
                 including providing a systematic treatment for
                 horizontal operations. An implementation model for
                 these extensions involves relatively simple circuitry
                 added to the operand fetch components in a pipelined
                 processor.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "inductive doubling; parallel bit streams; SWAR",
}

@Article{Campeanu:2009:IRL,
  author =       "Cezar C{\^a}mpeanu and Nicolae Santean",
  title =        "On the intersection of regex languages with regular
                 languages",
  journal =      j-THEOR-COMP-SCI,
  volume =       "410",
  number =       "24--25",
  pages =        "2336--2344",
  day =          "28",
  month =        may,
  year =         "2009",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Mar 28 21:21:50 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2005.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Champarnaud:2009:ECE,
  author =       "Jean-Marc Champarnaud and Faissal Ouardi and Djelloul
                 Ziadi",
  title =        "An Efficient Computation of the Equation
                 {$K$}-automaton of a Regular {$K$}-expression",
  journal =      j-FUND-INFO,
  volume =       "90",
  number =       "1--2",
  pages =        "1--16",
  month =        jan,
  year =         "2009",
  CODEN =        "FUMAAJ",
  DOI =          "https://doi.org/10.3233/FI-2009-0001",
  ISSN =         "0169-2968 (print), 1875-8681 (electronic)",
  ISSN-L =       "0169-2968",
  bibdate =      "Sat Mar 5 17:08:04 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fundinfo2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Fundamenta Informaticae",
  journal-URL =  "http://content.iospress.com/journals/fundamenta-informaticae",
}

@Article{Chang:2009:HTF,
  author =       "Ye-In Chang and Jiun-Rung Chen and Min-Tze Hsu",
  title =        "A Hash Trie Filter Approach to Approximate String
                 Matching for Genomic Databases",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "5579",
  pages =        "816--825",
  year =         "2009",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-02568-6_83",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon Jan 21 17:25:49 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/content/pdf/10.1007/978-3-642-02568-6_83",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-02568-6",
  book-URL =     "http://www.springerlink.com/content/978-3-642-02568-6",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Chen:2009:DPM,
  author =       "Zhongqiang Chen and Yuan Zhang and Zhongrong Chen and
                 Alex Delis",
  title =        "A Digest and Pattern Matching-Based Intrusion
                 Detection Engine",
  journal =      j-COMP-J,
  volume =       "52",
  number =       "6",
  pages =        "699--723",
  month =        aug,
  year =         "2009",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/bxp026",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Wed Apr 28 14:33:35 MDT 2010",
  bibsource =    "http://comjnl.oxfordjournals.org/content/vol52/issue6/index.dtl;
                 https://www.math.utah.edu/pub/tex/bib/compj2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/cgi/content/abstract/52/6/699;
                 http://comjnl.oxfordjournals.org/cgi/reprint/52/6/699",
  acknowledgement = ack-nhfb,
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
}

@Article{Coetser:2009:REH,
  author =       "Wikus Coetser and Derrick G. Kourie and Bruce W.
                 Watson",
  title =        "On Regular Expression Hashing to Reduce {FA} Size",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "20",
  number =       "6",
  pages =        "1069--1086",
  month =        dec,
  year =         "2009",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054109007042",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Tue Aug 31 07:37:14 MDT 2010",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@TechReport{Cox:2009:REM,
  author =       "Russ Cox",
  title =        "Regular Expression Matching: the Virtual Machine
                 Approach",
  type =         "Report",
  institution =  "swtch.com",
  address =      "Cambridge, MA, USA",
  month =        dec,
  year =         "2009",
  bibdate =      "Tue Mar 27 11:39:17 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib;
                 https://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
  note =         "See also
                 \cite{Thompson:1968:PTR,Kernighan:1999:REL,Cox:2007:REM,Cox:2010:REM,Cox:2012:REM}",
  URL =          "http://swtch.com/~rsc/regexp/regexp2.html",
  acknowledgement = ack-nhfb,
}

@Article{Dai:2009:AAM,
  author =       "Liuling Dai",
  title =        "An aggressive algorithm for multiple string matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "109",
  number =       "11",
  pages =        "553--559",
  day =          "16",
  month =        may,
  year =         "2009",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 15:53:31 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Faezipour:2009:HPE,
  author =       "Miad Faezipour and Mehrdad Nourani and Rina
                 Panigrahy",
  title =        "A hardware platform for efficient worm outbreak
                 detection",
  journal =      j-TODAES,
  volume =       "14",
  number =       "4",
  pages =        "49:1--49:??",
  month =        aug,
  year =         "2009",
  CODEN =        "ATASFO",
  DOI =          "https://doi.org/10.1145/1562514.1562517",
  ISSN =         "1084-4309 (print), 1557-7309 (electronic)",
  ISSN-L =       "1084-4309",
  bibdate =      "Thu Aug 27 14:38:55 MDT 2009",
  bibsource =    "http://www.acm.org/pubs/contents/journals/todaes/;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/todaes.bib",
  abstract =     "Network Intrusion Detection Systems (NIDS) monitor
                 network traffic to detect attacks or unauthorized
                 activities. Traditional NIDSes search for patterns that
                 match typical network compromise or remote hacking
                 attempts. However, newer networking applications
                 require finding the frequently repeated strings in a
                 packet stream for further investigation of potential
                 attack attempts. Finding frequently repeated strings
                 within a given time frame of the packet stream has been
                 quite efficient to detect polymorphic worm outbreaks. A
                 novel real-time worm outbreak detection system using
                 two-phase hashing and monitoring repeated common
                 substrings is proposed in this article. We use the
                 concept of shared counters to minimize the memory cost
                 while efficiently sifting through suspicious strings.
                 The worm outbreak system has been prototyped on Altera
                 Stratix FPGA. We have tested the system for various
                 settings and packet stream sizes. Experimental results
                 verify that our system can support line speed of
                 gigabit-rates with negligible false positive and
                 negative rates.",
  acknowledgement = ack-nhfb,
  articleno =    "49",
  fjournal =     "ACM Transactions on Design Automation of Electronic
                 Systems (TODAES)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J776",
  keywords =     "false negative; false positive; hashing; Network
                 Intrusion Detection System; polymorphic worm; shared
                 counters; worm outbreak",
}

@Article{Furr:2009:PGS,
  author =       "Michael Furr and Jong-hoon (David) An and Jeffrey S.
                 Foster",
  title =        "Profile-guided static typing for dynamic scripting
                 languages",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "10",
  pages =        "283--300",
  month =        oct,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1640089.1640110",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jun 21 18:01:56 MDT 2010",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Many popular scripting languages such as Ruby, Python,
                 and Perl include highly dynamic language constructs,
                 such as an eval method that evaluates a string as
                 program text. While these constructs allow terse and
                 expressive code, they have traditionally obstructed
                 static analysis. In this paper we present PRuby, an
                 extension to Diamondback Ruby (DRuby), a static type
                 inference system for Ruby. PRuby augments DRuby with a
                 novel dynamic analysis and transformation that allows
                 us to precisely type uses of highly dynamic constructs.
                 PRuby's analysis proceeds in three steps. First, we use
                 run-time instrumentation to gather per-application
                 profiles of dynamic feature usage. Next, we replace
                 dynamic features with statically analyzable
                 alternatives based on the profile. We also add
                 instrumentation to safely handle cases when subsequent
                 runs do not match the profile. Finally, we run DRuby's
                 static type inference on the transformed code to
                 enforce type safety.\par

                 We used PRuby to gather profiles for a benchmark suite
                 of sample Ruby programs. We found that dynamic features
                 are pervasive throughout the benchmarks and the
                 libraries they include, but that most uses of these
                 features are highly constrained and hence can be
                 effectively profiled. Using the profiles to guide type
                 inference, we found that DRuby can generally statically
                 type our benchmarks modulo some refactoring, and we
                 discovered several previously unknown type errors.
                 These results suggest that profiling and transformation
                 is a lightweight but highly effective approach to bring
                 static typing to highly dynamic languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "profile guided analysis; RIL; ruby; scripting
                 languages",
}

@Article{Gruber:2009:LOR,
  author =       "Hermann Gruber and Markus Holzer",
  title =        "Language operations with regular expressions of
                 polynomial size",
  journal =      j-THEOR-COMP-SCI,
  volume =       "410",
  number =       "35",
  pages =        "3281--3289",
  day =          "28",
  month =        aug,
  year =         "2009",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Mar 28 21:21:53 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2005.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Hardavellas:2009:RNN,
  author =       "Nikos Hardavellas and Michael Ferdman and Babak
                 Falsafi and Anastasia Ailamaki",
  title =        "{Reactive NUCA}: near-optimal block placement and
                 replication in distributed caches",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "37",
  number =       "3",
  pages =        "184--195",
  month =        jun,
  year =         "2009",
  CODEN =        "CANED2",
  DOI =          "https://doi.org/10.1145/1555754.1555779",
  ISSN =         "0163-5964 (ACM), 0884-7495 (IEEE)",
  ISSN-L =       "0163-5964",
  bibdate =      "Tue Aug 11 18:12:55 MDT 2009",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigarch.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Increases in on-chip communication delay and the large
                 working sets of server and scientific workloads
                 complicate the design of the on-chip last-level cache
                 for multicore processors. The large working sets favor
                 a shared cache design that maximizes the aggregate
                 cache capacity and minimizes off-chip memory requests.
                 At the same time, the growing on-chip communication
                 delay favors core-private caches that replicate data to
                 minimize delays on global wires. Recent hybrid
                 proposals offer lower average latency than conventional
                 designs, but they address the placement requirements of
                 only a subset of the data accessed by the application,
                 require complex lookup and coherence mechanisms that
                 increase latency, or fail to scale to high core
                 counts.\par

                 In this work, we observe that the cache access patterns
                 of a range of server and scientific workloads can be
                 classified into distinct classes, where each class is
                 amenable to different block placement policies. Based
                 on this observation, we propose Reactive NUCA (R-NUCA),
                 a distributed cache design which reacts to the class of
                 each cache access and places blocks at the appropriate
                 location in the cache. R-NUCA cooperates with the
                 operating system to support intelligent placement,
                 migration, and replication without the overhead of an
                 explicit coherence mechanism for the on-chip last-level
                 cache. In a range of server, scientific, and
                 multiprogrammed workloads, R-NUCA matches the
                 performance of the best cache design for each workload,
                 improving performance by 14\% on average over competing
                 designs and by 32\% at best, while achieving
                 performance within 5\% of an ideal cache design.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
  keywords =     "block migration; block placement; block replication;
                 cache; cache coherence; cache indexing; cache lookup;
                 cache management; chip multiprocessor; cmp; coherence;
                 data migration; data placement; data replication;
                 interleaving; last-level cache; lookup; migration;
                 multi-core; multicore; non-uniform cache access; NUCA;
                 placement; private cache; R-NUCA; Reactive NUCA;
                 replication; rotational interleaving; shared cache",
}

@Article{Hooimeijer:2009:DPS,
  author =       "Pieter Hooimeijer and Westley Weimer",
  title =        "A decision procedure for subset constraints over
                 regular languages",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "188--198",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543135.1542498",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Reasoning about string variables, in particular
                 program inputs, is an important aspect of many program
                 analyses and testing frameworks. Program inputs
                 invariably arrive as strings, and are often manipulated
                 using high-level string operations such as equality
                 checks, regular expression matching, and string
                 concatenation. It is difficult to reason about these
                 operations because they are not well-integrated into
                 current constraint solvers.\par

                 We present a decision procedure that solves systems of
                 equations over regular language variables. Given such a
                 system of constraints, our algorithm finds satisfying
                 assignments for the variables in the system. We define
                 this problem formally and render a mechanized
                 correctness proof of the core of the algorithm. We
                 evaluate its scalability and practical utility by
                 applying it to the problem of automatically finding
                 inputs that cause SQL injection vulnerabilities.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "decision procedure; regular language",
}

@Article{Hundt:2009:CGA,
  author =       "Christian Hundt and Maciej Li{\'s}kiewicz and Ragnar
                 Nevries",
  title =        "A combinatorial geometrical approach to
                 two-dimensional robust pattern matching with scaling
                 and rotation",
  journal =      j-THEOR-COMP-SCI,
  volume =       "410",
  number =       "51",
  pages =        "5317--5333",
  day =          "28",
  month =        nov,
  year =         "2009",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Mar 28 21:21:57 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2005.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Ierusalimschy:2009:TPM,
  author =       "Roberto Ierusalimschy",
  title =        "A text pattern-matching tool based on {Parsing
                 Expression Grammars}",
  journal =      j-SPE,
  volume =       "39",
  number =       "3",
  pages =        "221--258",
  day =          "10",
  month =        mar,
  year =         "2009",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.892",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Wed Mar 17 10:02:38 MDT 2010",
  bibsource =    "http://www.interscience.wiley.com/jpages/0038-0644;
                 http://www3.interscience.wiley.com/journalfinder.html;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "Lua scripting language; regular expressions",
  onlinedate =   "Jul 17 2008 12:12PM",
}

@Article{Igarashi:2009:DPT,
  author =       "Yuki Igarashi and Takeo Igarashi",
  title =        "Designing plush toys with a computer",
  journal =      j-CACM,
  volume =       "52",
  number =       "12",
  pages =        "81--88",
  month =        dec,
  year =         "2009",
  CODEN =        "CACMA2",
  DOI =          "https://doi.org/10.1145/1610252.1610275",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Thu Feb 4 17:12:05 MST 2010",
  bibsource =    "http://www.acm.org/pubs/contents/journals/cacm/;
                 https://www.math.utah.edu/pub/tex/bib/cacm2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We introduce Plushie, an interactive system that
                 allows nonprofessional users to design their own
                 original plush toys. To design a plush toy, one needs
                 to construct an appropriate two-dimensional (2D)
                 pattern. However, it is difficult for nonprofessional
                 users to appropriately design a 2D pattern. Some recent
                 systems automatically generate a 2D pattern for a given
                 three-dimensional (3D) model, but constructing a 3D
                 model is itself a challenge. Furthermore, an arbitrary
                 3D model cannot necessarily be realized as a real plush
                 toy, and the final sewn result can be very different
                 from the original 3D model. We avoid this mismatch by
                 constructing appropriate 2D patterns and applying
                 simple physical simulation to it on the fly during 3D
                 modeling. In this way, the model on the screen is
                 always a good approximation of the final sewn result,
                 which makes the design process much more efficient. We
                 use a sketching interface for 3D modeling and also
                 provide various editing operations tailored for
                 plush-toy design. Internally, the system constructs a
                 2D cloth pattern in such a way that the simulation
                 result matches the user's input stroke. We successfully
                 demonstrated that nonprofessional users could design
                 plush toys or balloon easily using Plushie.",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
}

@Article{Jeon:2009:AAP,
  author =       "Jinseong Jeon and Keoncheol Shin and Hwansoo Han",
  title =        "Abstracting access patterns of dynamic memory using
                 regular expressions",
  journal =      j-TACO,
  volume =       "5",
  number =       "4",
  pages =        "18:1--18:??",
  month =        mar,
  year =         "2009",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1498690.1498693",
  ISSN =         "1544-3566 (print), 1544-3973 (electronic)",
  ISSN-L =       "1544-3566",
  bibdate =      "Wed Mar 18 21:35:33 MDT 2009",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/taco.bib",
  abstract =     "Unless the speed gap between CPU and memory
                 disappears, efficient memory usage remains a decisive
                 factor for performance. To optimize data usage of
                 programs in the presence of the memory hierarchy, we
                 are particularly interested in two compiler techniques:
                 {\em pool allocation\/} and {\em field layout
                 restructuring}. Since foreseeing runtime behaviors of
                 programs at compile time is difficult, most of the
                 previous work relied on profiling. On the contrary, our
                 goal is to develop a fully automatic compiler that
                 statically transforms input codes to use memory
                 efficiently. Noticing that {\em regular expressions},
                 which denote repetition explicitly, are sufficient for
                 memory access patterns, we describe how to extract
                 memory access patterns as regular expressions in
                 detail. Based on static patterns presented in regular
                 expressions, we apply pool allocation to repeatedly
                 accessed structures and exploit field layout
                 restructuring according to field affinity relations of
                 chosen structures. To make a scalable framework, we
                 devise and apply new abstraction techniques, which
                 build and interpret access patterns for the whole
                 programs in a bottom-up fashion. We implement our
                 analyses and transformations with the CIL compiler. To
                 verify the effect and scalability of our scheme, we
                 examine 17 benchmarks including 2 SPECINT 2000
                 benchmarks whose source lines of code are larger than
                 10,000. Our experiments demonstrate that the static
                 layout transformations for dynamic memory can reduce
                 L1D cache misses by 16\% and execution times by 14\% on
                 average.",
  acknowledgement = ack-nhfb,
  articleno =    "18",
  fjournal =     "ACM Transactions on Architecture and Code Optimization
                 (TACO)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J924",
  keywords =     "Access patterns; field affinity; layout
                 transformation; pool allocation; regular expressions",
}

@InProceedings{Kida:2009:STB,
  author =       "T. Kida",
  title =        "Suffix Tree Based {VF}-Coding for Compressed Pattern
                 Matching",
  crossref =     "Storer:2009:DPD",
  volume =       "visualization",
  pages =        "449--449",
  year =         "2009",
  DOI =          "https://doi.org/10.1109/DCC.2009.58",
  bibdate =      "Tue Feb 5 12:39:04 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4976503",
  acknowledgement = ack-nhfb,
}

@Article{Klein:2009:ABM,
  author =       "Shmuel T. Klein and Miri Kopel Ben-Nissan",
  title =        "Accelerating {Boyer--Moore} searches on binary texts",
  journal =      j-THEOR-COMP-SCI,
  volume =       "410",
  number =       "37",
  pages =        "3563--3571",
  day =          "1",
  month =        sep,
  year =         "2009",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Mar 28 21:21:53 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2005.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Krishnaswami:2009:FPM,
  author =       "Neelakantan R. Krishnaswami",
  title =        "Focusing on pattern matching",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "1",
  pages =        "366--378",
  month =        jan,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1480881.1480927",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 9 08:40:38 MDT 2009",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "In this paper, we show how pattern matching can be
                 seen to arise from a proof term assignment for the
                 focused sequent calculus. This use of the Curry--Howard
                 correspondence allows us to give a novel coverage
                 checking algorithm, and makes it possible to give a
                 rigorous correctness proof for the classical pattern
                 compilation strategy of building decision trees via
                 matrices of patterns.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "Curry--Howard; focusing; pattern matching; type
                 theory",
}

@Article{Kwon:2009:FXD,
  author =       "Joonho Kwon and Praveen Rao and Bongki Moon and Sukho
                 Lee",
  title =        "Fast {XML} document filtering by sequencing twig
                 patterns",
  journal =      j-TOIT,
  volume =       "9",
  number =       "4",
  pages =        "13:1--13:??",
  month =        sep,
  year =         "2009",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1592446.1592447",
  ISSN =         "1533-5399 (print), 1557-6051 (electronic)",
  ISSN-L =       "1533-5399",
  bibdate =      "Fri Oct 9 20:43:32 MDT 2009",
  bibsource =    "http://www.acm.org/pubs/contents/journals/toit/;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toit.bib",
  abstract =     "XML-enabled publish-subscribe (pub-sub) systems have
                 emerged as an increasingly important tool for
                 e-commerce and Internet applications. In a typical
                 pub-sub system, subscribed users specify their
                 interests in a profile expressed in the XPath language.
                 Each new data content is then matched against the user
                 profiles so that the content is delivered only to the
                 interested subscribers. As the number of subscribed
                 users and their profiles can grow very large, the
                 scalability of the service is critical to the success
                 of pub-sub systems. In this article, we propose a novel
                 scalable filtering system called iFiST that transforms
                 user profiles of a twig pattern expressed in XPath into
                 sequences using the Pr{\"u}fer's method. Consequently,
                 instead of breaking a twig pattern into multiple linear
                 paths and matching them separately, FiST performs {\em
                 holistic matching\/} of twig patterns with each
                 incoming document in a {\em bottom-up\/} fashion. FiST
                 organizes the sequences into a dynamic hash-based index
                 for efficient filtering, and exploits the commonality
                 among user profiles to enable shared processing during
                 the filtering phase. We demonstrate that the holistic
                 matching approach reduces filtering cost and memory
                 consumption, thereby improving the scalability of
                 FiST.",
  acknowledgement = ack-nhfb,
  articleno =    "13",
  fjournal =     "ACM Transactions on Internet Technology (TOIT)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J780",
  keywords =     "Pr{\"u}fer sequences; selective dissemination of
                 information; twig pattern; XML filtering",
}

@Article{Lee:2009:HAH,
  author =       "Tsern-Huei Lee",
  title =        "Hardware Architecture for High-Performance Regular
                 Expression Matching",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "58",
  number =       "7",
  pages =        "984--993",
  month =        jul,
  year =         "2009",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.2008.145",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Mon Jul 4 11:37:42 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4599575",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Linhart:2009:FPM,
  author =       "Chaim Linhart and Ron Shamir",
  title =        "Faster pattern matching with character classes using
                 prime number encoding",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "75",
  number =       "3",
  pages =        "155--162",
  month =        may,
  year =         "2009",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1016/j.jcss.2008.08.005",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:27:10 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000008000755",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Lo:2009:SOC,
  author =       "Chia-Tien Dan Lo and Yi-Gang Tai",
  title =        "Space Optimization on Counters for {FPGA}-Based {Perl}
                 Compatible Regular Expressions",
  journal =      j-TRETS,
  volume =       "2",
  number =       "4",
  pages =        "23:1--23:??",
  month =        sep,
  year =         "2009",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1575779.1575783",
  ISSN =         "1936-7406 (print), 1936-7414 (electronic)",
  ISSN-L =       "1936-7406",
  bibdate =      "Tue Mar 16 09:46:56 MDT 2010",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/trets.bib",
  acknowledgement = ack-nhfb,
  articleno =    "23",
  fjournal =     "ACM Transactions on Reconfigurable Technology and
                 Systems (TRETS)",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J1151",
}

@Article{Marion:2009:SIS,
  author =       "Jean-Yves Marion and Romain P{\'e}choux",
  title =        "Sup-interpretations, a semantic method for static
                 analysis of program resources",
  journal =      j-TOCL,
  volume =       "10",
  number =       "4",
  pages =        "27:1--27:??",
  month =        aug,
  year =         "2009",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1555746.1555751",
  ISSN =         "1529-3785 (print), 1557-945X (electronic)",
  ISSN-L =       "1529-3785",
  bibdate =      "Tue Aug 11 12:46:55 MDT 2009",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tocl/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tocl.bib",
  abstract =     "The sup-interpretation method is proposed as a new
                 tool to control memory resources of first order
                 functional programs with pattern matching by static
                 analysis. It has been introduced in order to increase
                 the intensionality, that is the number of captured
                 algorithms, of a previous method, the
                 quasi-interpretations. Basically, a sup-interpretation
                 provides an upper bound on the size of function
                 outputs. A criterion, which can be applied to
                 terminating as well as nonterminating programs, is
                 developed in order to bound the stack frame size
                 polynomially. Since this work is related to
                 quasi-interpretation, dependency pairs, and size-change
                 principle methods, we compare these notions obtaining
                 several results. The first result is that, given any
                 program, we have heuristics for finding a
                 sup-interpretation when we consider polynomials of
                 bounded degree. Another result consists in the
                 characterizations of the sets of functions computable
                 in polynomial time and in polynomial space. A last
                 result consists in applications of sup-interpretations
                 to the dependency pair and the size-change principle
                 methods.",
  acknowledgement = ack-nhfb,
  articleno =    "27",
  fjournal =     "ACM Transactions on Computational Logic",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J773",
  keywords =     "resources control; static analysis of first-order
                 languages",
}

@Article{Matsumoto:2009:RTE,
  author =       "Tetsuya Matsumoto and Kazuhito Hagio and Masayuki
                 Takeda",
  title =        "A Run-Time Efficient Implementation of Compressed
                 Pattern Matching Automata",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "20",
  number =       "4",
  pages =        "717--733",
  month =        aug,
  year =         "2009",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054109006838",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Tue Aug 31 07:37:14 MDT 2010",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Millstein:2009:EMP,
  author =       "Todd Millstein and Christopher Frost and Jason Ryder
                 and Alessandro Warth",
  title =        "Expressive and modular predicate dispatch for {Java}",
  journal =      j-TOPLAS,
  volume =       "31",
  number =       "2",
  pages =        "7:1--7:54",
  month =        feb,
  year =         "2009",
  CODEN =        "ATPSDT",
  DOI =          "https://doi.org/10.1145/1462166.1462168",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Thu Feb 19 14:20:38 MST 2009",
  bibsource =    "http://www.acm.org/pubs/contents/journals/toplas/;
                 https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toplas.bib",
  abstract =     "{\em Predicate dispatch\/} is an object-oriented (OO)
                 language mechanism for determining the method
                 implementation to be invoked upon a message send. With
                 predicate dispatch, each method implementation includes
                 a predicate guard specifying the conditions under which
                 the method should be invoked, and logical implication
                 of predicates determines the method overriding
                 relation. Predicate dispatch naturally unifies and
                 generalizes several common forms of dynamic dispatch,
                 including traditional OO dispatch, multimethod
                 dispatch, and functional-style pattern matching.
                 Unfortunately, prior languages supporting predicate
                 dispatch have had several deficiencies that limit the
                 practical utility of this language feature.\par

                 We describe JPred, a backward-compatible extension to
                 Java supporting predicate dispatch. While prior
                 languages with predicate dispatch have been extensions
                 to toy or nonmainstream languages, we show how
                 predicate dispatch can be naturally added to a
                 traditional OO language. While prior languages with
                 predicate dispatch have required the whole program to
                 be available for typechecking and compilation, JPred
                 retains Java's modular typechecking and compilation
                 strategies. While prior languages with predicate
                 dispatch have included special-purpose algorithms for
                 reasoning about predicates, JPred employs
                 general-purpose, off-the-shelf decision procedures. As
                 a result, JPred's type system is more flexible,
                 allowing several useful programming idioms that are
                 spuriously rejected by those other languages. After
                 describing the JPred language informally, we present an
                 extension to Featherweight Java that formalizes the
                 language and its modular type system, which we have
                 proven sound. Finally, we discuss two case studies that
                 illustrate the practical utility of JPred, including
                 its use in the detection of several errors.",
  acknowledgement = ack-nhfb,
  articleno =    "7",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "dynamic dispatch; modular typechecking; Predicate
                 dispatch",
}

@Article{Mitchell:2009:APE,
  author =       "Neil Mitchell and Colin Runciman",
  title =        "Not all patterns, but enough: an automatic verifier
                 for partial but sufficient pattern matching",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "2",
  pages =        "49--60",
  month =        feb,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1543134.1411293",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:38:26 MDT 2009",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We describe an automated analysis of Haskell 98
                 programs to check statically that, despite the possible
                 use of partial (or non-exhaustive) pattern matching, no
                 pattern-match failure can occur. Our method is an
                 iterative backward analysis using a novel form of
                 pattern-constraint to represent sets of data values.
                 The analysis is defined for a core first-order language
                 to which Haskell 98 programs are reduced. Our analysis
                 tool has been successfully applied to a range of
                 programs, and our techniques seem to scale well.
                 Throughout the paper, methods are represented much as
                 we have implemented them in practice, again in
                 Haskell.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "automatic verification; functional programming;
                 haskell; pattern-match errors; preconditions",
}

@Article{Moreira:2009:SPA,
  author =       "Nelma Moreira and Rog{\'e}rio Reis",
  title =        "Series-Parallel Automata and Short Regular
                 Expressions",
  journal =      j-FUND-INFO,
  volume =       "91",
  number =       "3--4",
  pages =        "611--629",
  month =        aug,
  year =         "2009",
  CODEN =        "FUMAAJ",
  DOI =          "https://doi.org/10.3233/FI-2009-0061",
  ISSN =         "0169-2968 (print), 1875-8681 (electronic)",
  ISSN-L =       "0169-2968",
  bibdate =      "Sat Mar 5 17:08:21 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fundinfo2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Fundamenta Informaticae",
  journal-URL =  "http://content.iospress.com/journals/fundamenta-informaticae",
}

@Article{Owens:2009:RED,
  author =       "Scott Owens and John Reppy and Aaron Turon",
  title =        "Regular-expression derivatives re-examined",
  journal =      j-J-FUNCT-PROGRAM,
  volume =       "19",
  number =       "2",
  pages =        "173--190",
  month =        mar,
  year =         "2009",
  CODEN =        "JFPRES",
  DOI =          "https://doi.org/10.1017/S0956796808007090",
  ISSN =         "0956-7968 (print), 1469-7653 (electronic)",
  ISSN-L =       "0956-7968",
  bibdate =      "Wed Jul 12 06:49:13 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jfunctprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.cambridge.org/core/product/E5734B86DEB96C61C69E5CF3C4FB0AFA",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Funct. Program.",
  fjournal =     "Journal of Functional Programming",
  journal-URL =  "http://journals.cambridge.org/action/displayJournal?jid=JFP",
  onlinedate =   "01 March 2009",
}

@Article{Perez:2009:SCS,
  author =       "Jorge P{\'e}rez and Marcelo Arenas and Claudio
                 Gutierrez",
  title =        "Semantics and complexity of {SPARQL}",
  journal =      j-TODS,
  volume =       "34",
  number =       "3",
  pages =        "16:1--16:??",
  month =        aug,
  year =         "2009",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/1567274.1567278",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Mon Aug 31 16:11:01 MDT 2009",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tods/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  abstract =     "SPARQL is the standard language for querying RDF data.
                 In this article, we address systematically the formal
                 study of the database aspects of SPARQL, concentrating
                 in its graph pattern matching facility. We provide a
                 compositional semantics for the core part of SPARQL,
                 and study the complexity of the evaluation of several
                 fragments of the language. Among other complexity
                 results, we show that the evaluation of general SPARQL
                 patterns is PSPACE-complete. We identify a large class
                 of SPARQL patterns, defined by imposing a simple and
                 natural syntactic restriction, where the query
                 evaluation problem can be solved more efficiently. This
                 restriction gives rise to the class of well-designed
                 patterns. We show that the evaluation problem is
                 coNP-complete for well-designed patterns. Moreover, we
                 provide several rewriting rules for well-designed
                 patterns whose application may have a considerable
                 impact in the cost of evaluating SPARQL queries.",
  acknowledgement = ack-nhfb,
  articleno =    "16",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
  keywords =     "Complexity; query language; RDF; semantic Web;
                 SPARQL",
}

@InProceedings{Porat:2009:EAP,
  author =       "B. Porat and E. Porat",
  title =        "Exact and Approximate Pattern Matching in the
                 Streaming Model",
  crossref =     "IEEE:2009:PAI",
  pages =        "315--323",
  year =         "2009",
  DOI =          "https://doi.org/10.1109/FOCS.2009.11",
  bibdate =      "Thu Apr 12 09:33:33 MDT 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/focs2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  book-URL =     "http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=5438528",
}

@Article{Russo:2009:ASM,
  author =       "Lu{\'\i}s M. S. Russo and Gonzalo Navarro and Arlindo
                 L. Oliveira and Pedro Morales",
  title =        "Approximate String Matching with Compressed Indexes",
  journal =      j-ALGORITHMS-BASEL,
  volume =       "2",
  number =       "3",
  pages =        "1105--1136",
  month =        sep,
  year =         "2009",
  CODEN =        "ALGOCH",
  DOI =          "https://doi.org/10.3390/a2031105",
  ISSN =         "1999-4893 (electronic)",
  ISSN-L =       "1999-4893",
  bibdate =      "Fri May 3 13:50:12 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/algorithms.bib;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.mdpi.com/1999-4893/2/3/1105",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithms (Basel)",
  journal-URL =  "https://www.mdpi.com/journal/algorithms",
  pubdates =     "Received: 9 July 2009 / Revised: 8 September 2009 /
                 Accepted: 9 September 2009 / Published: 10 September
                 2009",
}

@Article{Sanden:2009:ISD,
  author =       "Bo Sand{\'e}n",
  title =        "Inspired software design early {Jackson} methods to
                 thread architectures",
  journal =      j-SIGSOFT,
  volume =       "34",
  number =       "4",
  pages =        "1--6",
  month =        jul,
  year =         "2009",
  CODEN =        "SFENDP",
  DOI =          "https://doi.org/10.1145/1543405.1543423",
  ISSN =         "0163-5948 (print), 1943-5843 (electronic)",
  ISSN-L =       "0163-5948",
  bibdate =      "Wed Aug 1 17:15:45 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigsoft2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This is a somewhat personal account of a journey
                 starting with assembly coding based on Jackson
                 Structured Programming (JSP) and ending with the design
                 of thread architectures for reactive software systems
                 using entity-life modeling (ELM). As the level of
                 abstraction rises, the basic concepts remain the same:
                 The software takes its shape from structures in the
                 problem domain. JSP bases control structures on regular
                 expressions describing data streams. Jackson System
                 Development (JSD) introduces long-running processes
                 patterned on the life histories of entities in the
                 problem domain. Unfortunately, implementing
                 long-running processes in sequential programs leads to
                 awkward solutions. ELM lets us implement the processes
                 as threads. This is a natural fit, which removes the
                 awkwardness.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGSOFT Software Engineering Notes",
  journal-URL =  "https://dl.acm.org/citation.cfm?id=J728",
}

@Article{Schwerdfeger:2009:VCD,
  author =       "August C. Schwerdfeger and Eric R. {Van Wyk}",
  title =        "Verifiable composition of deterministic grammars",
  journal =      j-SIGPLAN,
  volume =       "44",
  number =       "6",
  pages =        "199--210",
  month =        jun,
  year =         "2009",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1542476.1542499",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jun 16 14:41:16 MDT 2009",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "There is an increasing interest in extensible
                 languages, (domain-specific) language extensions, and
                 mechanisms for their specification and implementation.
                 One challenge is to develop tools that allow non-expert
                 programmers to add an eclectic set of language
                 extensions to a host language. We describe mechanisms
                 for composing and analyzing concrete syntax
                 specifications of a host language and extensions to it.
                 These specifications consist of context-free grammars
                 with each terminal symbol mapped to a regular
                 expression, from which a slightly-modified LR parser
                 and context-aware scanner are generated. Traditionally,
                 conflicts are detected when a parser is generated from
                 the composed grammar, but this comes too late since it
                 is the non-expert programmer directing the composition
                 of independently developed extensions with the host
                 language.\par

                 The primary contribution of this paper is a modular
                 analysis that is performed independently by each
                 extension designer on her extension (composed alone
                 with the host language). If each extension passes this
                 modular analysis, then the language composed later by
                 the programmer will compile with no conflicts or
                 lexical ambiguities. Thus, extension writers can verify
                 that their extension will safely compose with others
                 and, if not, fix the specification so that it will.
                 This is possible due to the context-aware scanner's
                 lexical disambiguation and a set of reasonable
                 restrictions limiting the constructs that can be
                 introduced by an extension. The restrictions ensure
                 that the parse table states can be partitioned so that
                 each state can be attributed to the host language or a
                 single extension.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "context-aware scanning; extensible languages; grammar
                 composition; language composition; lr parsing",
}

@Article{Smyth:2009:AHP,
  author =       "W. F. Smyth and Shu Wang",
  title =        "An Adaptive Hybrid Pattern-Matching Algorithm on
                 Indeterminate Strings",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "20",
  number =       "6",
  pages =        "985--1004",
  month =        dec,
  year =         "2009",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054109007005",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Tue Aug 31 07:37:14 MDT 2010",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Sun:2009:DPP,
  author =       "Yanni Sun and Jeremy Buhler",
  title =        "Designing Patterns and Profiles for Faster {HMM}
                 Search",
  journal =      j-TCBB,
  volume =       "6",
  number =       "2",
  pages =        "232--243",
  month =        apr,
  year =         "2009",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2008.14",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Mon Jun 1 17:03:22 MDT 2009",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "Profile HMMs are powerful tools for modeling conserved
                 motifs in proteins. They are widely used by search
                 tools to classify new protein sequences into families
                 based on domain architecture. However, the
                 proliferation of known motifs and new proteomic
                 sequence data poses a computational challenge for
                 search, requiring days of CPU time to annotate an
                 organism's proteome. It is highly desirable to speed up
                 HMM search in large databases. We design PROSITE-like
                 patterns and short profiles that are used as filters to
                 rapidly eliminate protein-motif pairs for which a full
                 profile HMM comparison does not yield a significant
                 match. The design of the pattern-based filters is
                 formulated as a multichoice knapsack problem.
                 Profile-based filters with high sensitivity are
                 extracted from a profile HMM based on their theoretical
                 sensitivity and false positive rate. Experiments show
                 that our profile-based filters achieve high sensitivity
                 (near 100 percent) while keeping around $ 20 \times $
                 speedup with respect to the unfiltered search program.
                 Pattern-based filters typically retain at least 90
                 percent of the sensitivity of the source HMM with $ 30
                 $--$ 40 \times $ speedup. The profile-based filters
                 have sensitivity comparable to the multistage filtering
                 strategy HMMERHEAD [15] and are faster in most of our
                 experiments.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
  keywords =     "bioinformatics databases; Biology and genetics; hidden
                 Markov models.; sequence similarity search",
}

@Article{tenCate:2009:NEP,
  author =       "Balder ten Cate",
  title =        "A note on the expressibility problem for modal logics
                 and star-free regular expressions",
  journal =      j-INFO-PROC-LETT,
  volume =       "109",
  number =       "10",
  pages =        "509--513",
  day =          "30",
  month =        apr,
  year =         "2009",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 15:53:29 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Tseng:2009:FSA,
  author =       "Kuo-Kun Tseng and Yuan-Cheng Lai and Ying-Dar Lin and
                 Tsern-Huei Lee",
  title =        "A fast scalable automaton-matching accelerator for
                 embedded content processors",
  journal =      j-TECS,
  volume =       "8",
  number =       "3",
  pages =        "19:1--19:??",
  month =        apr,
  year =         "2009",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1509288.1509291",
  ISSN =         "1539-9087 (print), 1558-3465 (electronic)",
  ISSN-L =       "1539-9087",
  bibdate =      "Tue Apr 21 16:29:24 MDT 2009",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tecs.bib",
  abstract =     "Home and office network gateways often employ a
                 cost-effective embedded network processor to handle
                 their network services. Such network gateways have
                 received strong demand for applications dealing with
                 intrusion detection, keyword blocking, antivirus and
                 antispam. Accordingly, we were motivated to propose an
                 appropriate fast scalable automaton-matching (FSAM)
                 hardware to accelerate the embedded network processors.
                 Although automaton matching algorithms are robust with
                 deterministic matching time, there is still plenty of
                 room for improving their average-case performance. FSAM
                 employs novel prehash and root-index techniques to
                 accelerate the matching for the nonroot states and the
                 root state, respectively, in automation based hardware.
                 The prehash approach uses some hashing functions to
                 pretest the input substring for the nonroot states
                 while the root-index approach handles multiple bytes in
                 one single matching for the root state. Also, FSAM is
                 applied in a prevalent automaton algorithm,
                 Aho--Corasick (AC), which is often used in many
                 content-filtering applications. When implemented in
                 FPGA, FSAM can perform at the rate of 11.1Gbps with the
                 pattern set of 32,634 bytes, demonstrating that our
                 proposed approach can use a small logic circuit to
                 achieve a competitive performance, although a larger
                 memory is used. Furthermore, the amount of patterns in
                 FSAM is not limited by the amount of internal circuits
                 and memories. If the high-speed external memories are
                 employed, FSAM can support up to 21,302 patterns while
                 maintaining similar high performance.",
  acknowledgement = ack-nhfb,
  articleno =    "19",
  fjournal =     "ACM Transactions on Embedded Computing Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?&idx=J840",
  keywords =     "Aho--Corasick; automaton; Bloom filter; content
                 filtering; String matching",
}

@Book{Valiente:2009:CPM,
  author =       "Gabriel Valiente",
  title =        "Combinatorial pattern matching algorithms in
                 computational biology using {Perl} and {R}",
  publisher =    pub-CRC,
  address =      pub-CRC:adr,
  pages =        "352",
  year =         "2009",
  ISBN =         "1-4200-6973-X (hardcover), 1-4200-6974-8 (e-book)",
  ISBN-13 =      "978-1-4200-6973-0 (hardcover), 978-1-4200-6974-7
                 (e-book)",
  LCCN =         "QH324.2 .V35 2009",
  bibdate =      "Fri Nov 16 06:34:12 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/s-plus.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       "Chapman and Hall/CRC mathematical and computational
                 biology series",
  abstract =     "Emphasizing the search for patterns within and between
                 biological sequences, trees, and graphs, Combinatorial
                 Pattern Matching Algorithms in Computational Biology
                 Using Perl and R shows how combinatorial pattern
                 matching algorithms can solve computational biology
                 problems that arise in the analysis of genomic,
                 transcriptomic, proteomic, metabolomic, and
                 interactomic data. It implements the algorithms in Perl
                 and R, two widely used scripting languages in
                 computational biology. The book provides a well-rounded
                 explanation of traditional issues as well as an
                 up-to-date account of more recent developments",
  acknowledgement = ack-nhfb,
  subject =      "Computational biology; Pattern formation (Biology);
                 Computer simulation; Graph algorithms; Perl (Computer
                 program language); R (Computer program language)",
  tableofcontents = "Front Cover \\
                 Contents \\
                 Foreword \\
                 Preface \\
                 Chapter 1. Introduction \\
                 Chapter 2. Sequences \\
                 Chapter 3. Simple Pattern Matching in Sequences \\
                 Chapter 4. General Pattern Matching in Sequences \\
                 Chapter 5. Trees \\
                 Chapter 6. Simple Pattern Matching in Trees \\
                 Chapter 7. General Pattern Matching in Trees \\
                 Chapter 8. Graphs \\
                 Chapter 9. Simple Pattern Matching in Graphs \\
                 Chapter 10. General Pattern Matching in Graphs \\
                 Appendix A. Elements of Perl \\
                 Appendix B. Elements of R \\
                 References \\
                 Index \\
                 Back Cover",
}

@Article{Wolinski:2009:ADA,
  author =       "Christophe Wolinski and Krzysztof Kuchcinski and Erwan
                 Raffin",
  title =        "Automatic design of application-specific
                 reconfigurable processor extensions with {UPaK}
                 synthesis kernel",
  journal =      j-TODAES,
  volume =       "15",
  number =       "1",
  pages =        "1:1--1:??",
  month =        dec,
  year =         "2009",
  CODEN =        "ATASFO",
  DOI =          "https://doi.org/10.1145/1640457.1640458",
  ISSN =         "1084-4309 (print), 1557-7309 (electronic)",
  ISSN-L =       "1084-4309",
  bibdate =      "Mon Mar 15 11:18:31 MDT 2010",
  bibsource =    "http://www.acm.org/pubs/contents/journals/todaes/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/todaes.bib",
  abstract =     "This article presents a new tool for automatic design
                 of application-specific reconfigurable processor
                 extensions based on UPaK (Abstract Unified Patterns
                 Based Synthesis Kernel for Hardware and Software
                 Systems). We introduce a complete design flow that
                 identifies new instructions, selects specific
                 instructions and schedules a considered application on
                 the newly created reconfigurable architecture. The
                 identified extensions are implemented as specialized
                 sequential or parallel instructions. These instructions
                 are executed on a reconfigurable unit implementing all
                 merged patterns. Our method uses specially developed
                 algorithms for subgraph isomorphism that are
                 implemented as graph matching constraints. These
                 constraints together with separate algorithms are able
                 to efficiently identify computational patterns and
                 carry out application mapping and scheduling. Our
                 methods can handle both time-constrained and
                 resource-constrained scheduling. Experimental results
                 show that the presented method provides high coverage
                 of application graphs with small number of patterns and
                 ensures high application execution speedup both for
                 sequential and parallel application execution with
                 reconfigurable processor extensions implementing
                 selected patterns.",
  acknowledgement = ack-nhfb,
  articleno =    "1",
  fjournal =     "ACM Transactions on Design Automation of Electronic
                 Systems (TODAES)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J776",
  keywords =     "constraint programming; Reconfigurable architectures;
                 resource assignment; scheduling; system-level
                 synthesis",
}

@Article{Zou:2009:DJP,
  author =       "Lei Zou and Lei Chen and M. Tamer {\"O}zsu",
  title =        "Distance-join: pattern match query in a large graph
                 database",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "2",
  number =       "1",
  pages =        "886--897",
  month =        aug,
  year =         "2009",
  CODEN =        "????",
  ISSN =         "2150-8097",
  bibdate =      "Fri May 13 14:54:50 MDT 2011",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Misc{Anonymous:2010:BRL,
  author =       "Anonymous",
  title =        "Benchmark of Regex Libraries",
  howpublished = "Web site",
  month =        jul,
  year =         "2010",
  bibdate =      "Wed Sep 09 09:24:45 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://lh3lh3.users.sourceforge.net/reb.shtml",
  acknowledgement = ack-nhfb,
}

@Article{Asperti:2010:REA,
  author =       "Andrea Asperti and Claudio Sacerdoti Coen and Enrico
                 Tassi",
  title =        "Regular Expressions, au point",
  journal =      "arXiv.org",
  volume =       "??",
  number =       "??",
  pages =        "12",
  day =          "13",
  month =        oct,
  year =         "2010",
  bibdate =      "Fri Sep 22 12:33:30 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://arxiv.org/abs/1010.2604",
  abstract =     "We introduce a new technique for constructing a finite
                 state deterministic automaton from a regular
                 expression, based on the idea of marking a suitable set
                 of positions inside the expression, intuitively
                 representing the possible points reached after the
                 processing of an initial prefix of the input string.
                 Pointed regular expressions join the elegance and the
                 symbolic appealingness of Brzozowski's derivatives,
                 with the effectiveness of McNaughton and Yamada's
                 labelling technique, essentially combining the best of
                 the two approaches.",
  acknowledgement = ack-nhfb,
}

@Article{Bex:2010:ICR,
  author =       "Geert Jan Bex and Frank Neven and Thomas Schwentick
                 and Stijn Vansummeren",
  title =        "Inference of concise regular expressions and {DTDs}",
  journal =      j-TODS,
  volume =       "35",
  number =       "2",
  pages =        "11:1--11:??",
  month =        apr,
  year =         "2010",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/1735886.1735890",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Wed Apr 28 13:44:08 MDT 2010",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tods/;
                 https://www.math.utah.edu/pub/tex/bib/sgml2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  abstract =     "We consider the problem of inferring a concise
                 Document Type Definition (DTD) for a given set of
                 XML-documents, a problem that basically reduces to
                 learning {\em concise\/} regular expressions from
                 positive examples strings. We identify two classes of
                 concise regular expressions --- the single occurrence
                 regular expressions (SOREs) and the chain regular
                 expressions (CHAREs) --- that capture the far majority
                 of expressions used in practical DTDs. For the
                 inference of SOREs we present several algorithms that
                 first infer an automaton for a given set of example
                 strings and then translate that automaton to a
                 corresponding SORE, possibly repairing the automaton
                 when no equivalent SORE can be found. In the process,
                 we introduce a novel automaton to regular expression
                 rewrite technique which is of independent interest.
                 When only a very small amount of XML data is available,
                 however (for instance when the data is generated by Web
                 service requests or by answers to queries), these
                 algorithms produce regular expressions that are too
                 specific. Therefore, we introduce a novel learning
                 algorithm crx that directly infers CHAREs (which form a
                 subclass of SOREs) without going through an automaton
                 representation. We show that crx performs very well
                 within its target class on very small datasets.",
  acknowledgement = ack-nhfb,
  articleno =    "11",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
  keywords =     "Regular expressions; schema inference; XML",
}

@Article{Bex:2010:LDR,
  author =       "Geert Jan Bex and Wouter Gelade and Frank Neven and
                 Stijn Vansummeren",
  title =        "Learning Deterministic Regular Expressions for the
                 Inference of Schemas from {XML} Data",
  journal =      j-TWEB,
  volume =       "4",
  number =       "4",
  pages =        "14:1--14:??",
  month =        sep,
  year =         "2010",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1841909.1841911",
  ISSN =         "1559-1131 (print), 1559-114X (electronic)",
  ISSN-L =       "1559-1131",
  bibdate =      "Tue Nov 23 12:48:27 MST 2010",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tweb.bib",
  acknowledgement = ack-nhfb,
  articleno =    "14",
  fjournal =     "ACM Transactions on the Web (TWEB)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1062",
}

@Book{Bird:2010:PFA,
  author =       "Richard Bird",
  title =        "Pearls of Functional Algorithm Design",
  publisher =    pub-CAMBRIDGE,
  address =      pub-CAMBRIDGE:adr,
  pages =        "xi + 277",
  year =         "2010",
  ISBN =         "0-521-51338-3 (hardcover)",
  ISBN-13 =      "978-0-521-51338-8 (hardcover)",
  LCCN =         "QA76.62 .B57 2010",
  bibdate =      "Wed Jul 12 15:33:26 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jfunctprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.loc.gov:7090/Voyager",
  abstract =     "Richard Bird takes a radically new approach to
                 algorithm design, namely, design by calculation. These
                 30 short chapters each deal with a particular
                 programming problem drawn from sources as diverse as
                 games and puzzles, intriguing combinatorial tasks, and
                 more familiar areas such as data compression and string
                 matching. Each pearl starts with the statement of the
                 problem expressed using the functional programming
                 language Haskell, a powerful yet succinct language for
                 capturing algorithmic ideas clearly and simply. The
                 novel aspect of the book is that each solution is
                 calculated from an initial formulation of the problem
                 in Haskell by appealing to the laws of functional
                 programming. \booktitle{Pearls of Functional Algorithm
                 Design} will appeal to the aspiring functional
                 programmer, students and teachers interested in the
                 principles of algorithm design, and anyone seeking to
                 master the techniques of reasoning about programs in an
                 equational style.

                 The novel aspect of the book is that each solution is
                 calculated from the problem statement by appealing to
                 the laws of functional programming. \booktitle{Pearls
                 of Functional Algorithm Design} will appeal to the
                 aspiring functional programmer, students and teachers
                 interested in the principles of algorithm design, and
                 anyone seeking to master the techniques of reasoning
                 about programs in an equational style''",
  acknowledgement = ack-nhfb,
  author-dates = "1943--",
  subject =      "Functional programming (Computer science); Computer
                 algorithms",
  tableofcontents = "1. The smallest free number \\
                 2. A surpassing problem \\
                 3. Improving on saddleback search \\
                 4. A selection problem \\
                 5. Sorting pairwise sums \\
                 6. Making a century \\
                 7. Building a tree with minimum height \\
                 8. Unravelling greedy algorithms \\
                 9. Finding celebrities \\
                 10. Removing duplicates \\
                 11. Not the maximum segment sum \\
                 12. Ranking suffixes \\
                 13. The Burrows--Wheeler transform \\
                 14. The last tail \\
                 15. All the common prefixes \\
                 16. The Boyer--Moore algorithm \\
                 17. The Knuth--Morris--Pratt algorithm \\
                 18. Planning solves the rush hour problem \\
                 19. A simple Sudoku solver \\
                 20. The countdown problem \\
                 21. Hylomorphisms and nexuses \\
                 22. Three ways of computing determinants \\
                 23. Inside the convex hull \\
                 24. Rational arithmetic coding \\
                 25. Integer arithmetic coding \\
                 26. The Schorr--Waite algorithm \\
                 27. Orderly insertion \\
                 28. Loopless functional algorithms \\
                 29. The Johnson--Trotter algorithm \\
                 30. Spider spinning for dummies",
}

@Article{Brisaboa:2010:DLT,
  author =       "Nieves Brisaboa and Antonio Fari{\~n}a and Gonzalo
                 Navarro and Jos{\'e} Param{\'a}",
  title =        "Dynamic lightweight text compression",
  journal =      j-TOIS,
  volume =       "28",
  number =       "3",
  pages =        "10:1--10:??",
  month =        jun,
  year =         "2010",
  CODEN =        "ATISET",
  DOI =          "https://doi.org/10.1145/1777432.1777433",
  ISSN =         "1046-8188",
  ISSN-L =       "0734-2047",
  bibdate =      "Tue Jul 6 15:53:00 MDT 2010",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tois/;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tois.bib",
  abstract =     "We address the problem of adaptive compression of
                 natural language text, considering the case where the
                 receiver is much less powerful than the sender, as in
                 mobile applications. Our techniques achieve compression
                 ratios around 32\% and require very little effort from
                 the receiver. Furthermore, the receiver is not only
                 lighter, but it can also search the compressed text
                 with less work than that necessary to decompress it.
                 This is a novelty in two senses: it breaks the usual
                 compressor/decompressor symmetry typical of adaptive
                 schemes, and it contradicts the long-standing
                 assumption that only semistatic codes could be searched
                 more efficiently than the uncompressed text. Our novel
                 compression methods are preferable in several aspects
                 over the existing adaptive and semistatic compressors
                 for natural language texts.",
  acknowledgement = ack-nhfb,
  articleno =    "10",
  fjournal =     "ACM Transactions on Information Systems (TOIS)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J779",
  keywords =     "adaptive natural language text compression; compressed
                 pattern matching; real-time transmission; searching
                 compressed texts; text compression",
}

@Article{Chan:2010:CIA,
  author =       "Ho-Leung Chan and Tak-Wah Lam and Wing-Kin Sung and
                 Siu-Lung Tam and Swee-Seong Wong",
  title =        "Compressed Indexes for Approximate String Matching",
  journal =      j-ALGORITHMICA,
  volume =       "58",
  number =       "2",
  pages =        "263--281",
  month =        oct,
  year =         "2010",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Sat Sep 11 10:17:05 MDT 2010",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=58&issue=2;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=58&issue=2&spage=263",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Chandramouli:2010:HPD,
  author =       "Badrish Chandramouli and Jonathan Goldstein and David
                 Maier",
  title =        "High-performance dynamic pattern matching over
                 disordered streams",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "3",
  number =       "1--2",
  pages =        "220--231",
  month =        sep,
  year =         "2010",
  CODEN =        "????",
  ISSN =         "2150-8097",
  bibdate =      "Fri May 13 14:55:02 MDT 2011",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Cleophas:2010:NTS,
  author =       "Loek Cleophas and Bruce W. Watson and Gerard Zwaan",
  title =        "A new taxonomy of sublinear right-to-left scanning
                 keyword pattern matching algorithms",
  journal =      j-SCI-COMPUT-PROGRAM,
  volume =       "75",
  number =       "11",
  pages =        "1095--1112",
  day =          "1",
  month =        nov,
  year =         "2010",
  CODEN =        "SCPGD4",
  ISSN =         "0167-6423 (print), 1872-7964 (electronic)",
  ISSN-L =       "0167-6423",
  bibdate =      "Fri Apr 1 18:39:38 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/01676423;
                 https://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Science of Computer Programming",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01676423",
}

@Article{Clifford:2010:PMD,
  author =       "Rapha{\"e}l Clifford and Klim Efremenko and Ely Porat
                 and Amir Rothschild",
  title =        "Pattern matching with don't cares and few errors",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "76",
  number =       "2",
  pages =        "115--124",
  month =        mar,
  year =         "2010",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1016/j.jcss.2009.06.002",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:27:13 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000009000567",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Cohen:2010:FSI,
  author =       "Hagai Cohen and Ely Porat",
  title =        "Fast set intersection and two-patterns matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "411",
  number =       "40--42",
  pages =        "3795--3800",
  day =          "6",
  month =        sep,
  year =         "2010",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Wed Aug 31 09:12:46 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Consens:2010:EXW,
  author =       "Mariano P. Consens and Ren{\'e}e J. Miller and Flavio
                 Rizzolo and Alejandro A. Vaisman",
  title =        "Exploring {XML} {Web} collections with {DescribeX}",
  journal =      j-TWEB,
  volume =       "4",
  number =       "3",
  pages =        "11:1--11:??",
  month =        jul,
  year =         "2010",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1806916.1806920",
  ISSN =         "1559-1131 (print), 1559-114X (electronic)",
  ISSN-L =       "1559-1131",
  bibdate =      "Sat Aug 14 15:42:40 MDT 2010",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sgml2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tweb.bib",
  abstract =     "As Web applications mature and evolve, the nature of
                 the semistructured data that drives these applications
                 also changes. An important trend is the need for
                 increased flexibility in the structure of Web
                 documents. Hence, applications cannot rely solely on
                 schemas to provide the complex knowledge needed to
                 visualize, use, query and manage documents. Even when
                 XML Web documents are valid with regard to a schema,
                 the actual structure of such documents may exhibit
                 significant variations across collections for several
                 reasons: the schema may be very lax (e.g., RSS feeds),
                 the schema may be large and different subsets of it may
                 be used in different documents (e.g., industry
                 standards like UBL), or open content models may allow
                 arbitrary schemas to be mixed (e.g., RSS extensions
                 like those used for podcasting). For these reasons,
                 many applications that incorporate XPath queries to
                 process a large Web document collection require an
                 understanding of the actual structure present in the
                 collection, and not just the schema.\par

                 To support modern Web applications, we introduce
                 DescribeX, a powerful framework that is capable of
                 describing complex XML summaries of Web collections.
                 DescribeX supports the construction of heterogeneous
                 summaries that can be declaratively defined and refined
                 by means of axis path regular expression (AxPREs).
                 AxPREs provide the flexibility necessary for
                 declaratively defining complex mappings between
                 instance nodes (in the documents) and summary nodes.
                 These mappings are capable of expressing order and
                 cardinality, among other properties, which can
                 significantly help in the understanding of the
                 structure of large collections of XML documents and
                 enhance the performance of Web applications over these
                 collections. DescribeX captures most summary proposals
                 in the literature by providing (for the first time) a
                 common declarative definition for them. Experimental
                 results demonstrate the scalability of DescribeX
                 summary operations (summary creation, as well as
                 refinement and stabilization, two key enablers for
                 tailoring summaries) on multi-gigabyte Web
                 collections.",
  acknowledgement = ack-nhfb,
  articleno =    "11",
  fjournal =     "ACM Transactions on the Web (TWEB)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1062",
  keywords =     "Semistructured data; structural summaries; XML;
                 XPath",
}

@TechReport{Cox:2010:REM,
  author =       "Russ Cox",
  title =        "Regular Expression Matching in the Wild",
  type =         "Report",
  institution =  "swtch.com",
  address =      "Cambridge, MA, USA",
  month =        mar,
  year =         "2010",
  bibdate =      "Tue Mar 27 11:39:17 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib;
                 https://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
  note =         "See also
                 \cite{Thompson:1968:PTR,Kernighan:1999:REL,Cox:2007:REM,Cox:2009:REM,Cox:2012:REM}",
  URL =          "http://swtch.com/~rsc/regexp/regexp3.html",
  acknowledgement = ack-nhfb,
}

@Misc{Cox:2010:REP,
  author =       "Russ Cox",
  title =        "{{\tt re2}}: an efficient, principled regular
                 expression library",
  howpublished = "Google Code project",
  day =          "2",
  month =        mar,
  year =         "2010",
  bibdate =      "Tue Mar 27 15:30:44 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://code.google.com/p/re2/",
  acknowledgement = ack-nhfb,
  remark =       "From the Web site: ``RE2 is a fast, safe,
                 thread-friendly alternative to backtracking regular
                 expression engines like those used in PCRE, Perl, and
                 Python. It is a C++ library.''",
}

@Misc{Cox:2010:YD,
  author =       "Russ Cox",
  title =        "{Yacc} is Not Dead",
  howpublished = "Web site.",
  day =          "6",
  month =        dec,
  year =         "2010",
  bibdate =      "Sat Nov 07 13:42:20 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://research.swtch.com/yaccalive",
  acknowledgement = ack-nhfb,
}

@Article{Durian:2010:IPE,
  author =       "Branislav {\v{D}}urian and Jan Holub and Hannu Peltola
                 and Jorma Tarhio",
  title =        "Improving practical exact string matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "110",
  number =       "4",
  pages =        "148--152",
  day =          "16",
  month =        jan,
  year =         "2010",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 12:46:30 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Fan:2010:GPM,
  author =       "Wenfei Fan and Jianzhong Li and Shuai Ma and Nan Tang
                 and Yinghui Wu and Yunpeng Wu",
  title =        "Graph pattern matching: from intractable to polynomial
                 time",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "3",
  number =       "1--2",
  pages =        "264--275",
  month =        sep,
  year =         "2010",
  CODEN =        "????",
  ISSN =         "2150-8097",
  bibdate =      "Fri May 13 14:55:02 MDT 2011",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Fischer:2010:PRE,
  author =       "Sebastian Fischer and Frank Huch and Thomas Wilke",
  title =        "A play on regular expressions: functional pearl",
  journal =      j-SIGPLAN,
  volume =       "45",
  number =       "9",
  pages =        "357--368",
  month =        sep,
  year =         "2010",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1932681.1863594",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jan 26 15:13:43 MST 2011",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Gelade:2010:SRE,
  author =       "Wouter Gelade",
  title =        "Succinctness of regular expressions with interleaving,
                 intersection and counting",
  journal =      j-THEOR-COMP-SCI,
  volume =       "411",
  number =       "31--33",
  pages =        "2987--2998",
  day =          "28",
  month =        jun,
  year =         "2010",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Wed Aug 31 09:12:40 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Guinde:2010:EHS,
  author =       "Nitesh B. Guinde and Sotirios G. Ziavras",
  title =        "Efficient hardware support for pattern matching in
                 network intrusion detection",
  journal =      j-COMPUT-SECUR,
  volume =       "29",
  number =       "7",
  pages =        "756--769",
  month =        oct,
  year =         "2010",
  CODEN =        "CPSEDU",
  ISSN =         "0167-4048 (print), 1872-6208 (electronic)",
  ISSN-L =       "0167-4048",
  bibdate =      "Mon Sep 23 09:46:21 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computsecur2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.sciencedirect.com/science/article/pii/S0167404810000350",
  acknowledgement = ack-nhfb,
  fjournal =     "Computers \& Security",
  journal-URL =  "https://www.sciencedirect.com/science/journal/01674048",
}

@Article{Gulwani:2010:RBP,
  author =       "Sumit Gulwani and Florian Zuleger",
  title =        "The reachability-bound problem",
  journal =      j-SIGPLAN,
  volume =       "45",
  number =       "6",
  pages =        "292--304",
  month =        jun,
  year =         "2010",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1806596.1806630",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Oct 8 17:53:18 MDT 2010",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We define the {\em reachability-bound problem\/} to be
                 the problem of finding a symbolic worst-case bound on
                 the number of times a given control location inside a
                 procedure is visited in terms of the inputs to that
                 procedure. This has applications in bounding resources
                 consumed by a program such as time, memory,
                 network-traffic, power, as well as estimating
                 quantitative properties (as opposed to boolean
                 properties) of data in programs, such as information
                 leakage or uncertainty propagation. Our approach to
                 solving the reachability-bound problem brings together
                 two different techniques for reasoning about loops in
                 an effective manner. One of these techniques is an
                 abstract-interpretation based iterative technique for
                 computing precise disjunctive invariants (to summarize
                 nested loops). The other technique is a non-iterative
                 proof-rules based technique (for loop bound
                 computation) that takes over the role of doing
                 inductive reasoning, while deriving its power from the
                 use of SMT solvers to reason about abstract loop-free
                 fragments.\par

                 Our solution to the reachability-bound problem allows
                 us to compute precise symbolic complexity bounds for
                 several loops in .Net base-class libraries for which
                 earlier techniques fail. We also illustrate the
                 precision of our algorithm for disjunctive invariant
                 computation (which has a more general applicability
                 beyond the reachability-bound problem) on a set of
                 benchmark examples.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "disjunctive invariants; pattern matching; ranking
                 functions; resource bound analysis; transitive
                 closure",
}

@Article{Guo:2010:LIS,
  author =       "Yuqing Guo and Haifeng Wang and Josef van Genabith",
  title =        "A Linguistically Inspired Statistical Model for
                 {Chinese} Punctuation Generation",
  journal =      j-TALIP,
  volume =       "9",
  number =       "2",
  pages =        "6:1--6:??",
  month =        jun,
  year =         "2010",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1781134.1781136",
  ISSN =         "1530-0226 (print), 1558-3430 (electronic)",
  ISSN-L =       "1530-0226",
  bibdate =      "Mon Jun 21 18:03:02 MDT 2010",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talip.bib",
  abstract =     "This article investigates a relatively underdeveloped
                 subject in natural language processing---the generation
                 of punctuation marks. From a theoretical perspective,
                 we study 16 Chinese punctuation marks as defined in the
                 Chinese national standard of punctuation usage, and
                 categorize these punctuation marks into three different
                 types according to their syntactic properties. We
                 implement a three-tier maximum entropy model
                 incorporating linguistically-motivated features for
                 generating the commonly used Chinese punctuation marks
                 in unpunctuated sentences output by a surface realizer.
                 Furthermore, we present a method to automatically
                 extract cue words indicating sentence-final punctuation
                 marks as a specialized feature to construct a more
                 precise model. Evaluating on the Penn Chinese Treebank
                 data, the MaxEnt model achieves an {\em f\/} -score of
                 79.83\% for punctuation insertion and 74.61\% for
                 punctuation restoration using gold data input, 79.50\%
                 for insertion and 73.32\% for restoration using
                 parser-based imperfect input. The experiments show that
                 the MaxEnt model significantly outperforms a baseline
                 5-gram language model that scores 54.99\% for
                 punctuation insertion and 52.01\% for restoration. We
                 show that our results are not far from human
                 performance on the same task with human insertion {\em
                 f\/} -scores in the range of 81-87\% and human
                 restoration in the range of 71-82\%. Finally, a manual
                 error analysis of the generation output shows that
                 close to 40\% of the mismatched punctuation marks do in
                 fact result in acceptable choices, a fact obscured in
                 the automatic string-matching based evaluation
                 scores.",
  acknowledgement = ack-nhfb,
  articleno =    "6",
  fjournal =     "ACM Transactions on Asian Language Information
                 Processing",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?&idx=J820",
  keywords =     "Chinese punctuation marks; maximum entropy model;
                 sentence realization",
}

@Article{Guthle:2010:IAD,
  author =       "Martin G{\"u}thle and Jochen K{\"o}gel and Stefan Wahl
                 and Matthias Kaschub and Christian M. Mueller",
  title =        "Improving Anomaly Detection for Text-Based Protocols
                 by Exploiting Message Structures",
  journal =      j-FUTURE-INTERNET,
  volume =       "2",
  number =       "4",
  pages =        "662--669",
  day =          "21",
  month =        dec,
  year =         "2010",
  CODEN =        "????",
  DOI =          "https://doi.org/10.3390/fi2040662",
  ISSN =         "1999-5903",
  ISSN-L =       "1999-5903",
  bibdate =      "Thu Nov 21 16:50:45 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/future-internet.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.mdpi.com/1999-5903/2/4/662",
  abstract =     "Service platforms using text-based protocols need to
                 be protected against attacks. Machine-learning
                 algorithms with pattern matching can be used to detect
                 even previously unknown attacks. In this paper, we
                 present an extension to known Support Vector Machine
                 (SVM) based anomaly detection algorithms for the
                 Session Initiation Protocol (SIP). Our contribution is
                 to extend the amount of different features used for
                 classification (feature space) by exploiting the
                 structure of SIP messages, which reduces the false
                 positive rate. Additionally, we show how combining our
                 approach with attribute reduction significantly
                 improves throughput.",
  acknowledgement = ack-nhfb,
  journal-URL =  "https://www.mdpi.com/journal/futureinternet",
  remark =       "Special Issue Semantics in the Future Internet.",
}

@InProceedings{Harrusi:2010:FCP,
  author =       "S. Harrusi and A. Averbuch and N. Rabin",
  title =        "A Fast Compact Prefix Encoding for Pattern Matching in
                 Limited Resources Devices",
  crossref =     "Storer:2010:DPD",
  pages =        "533--533",
  year =         "2010",
  DOI =          "https://doi.org/10.1109/DCC.2010.80",
  bibdate =      "Tue Feb 5 12:39:22 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5453510",
  acknowledgement = ack-nhfb,
}

@Article{Hazay:2010:EPS,
  author =       "Carmit Hazay and Yehuda Lindell",
  title =        "Efficient Protocols for Set Intersection and Pattern
                 Matching with Security Against Malicious and Covert
                 Adversaries",
  journal =      j-J-CRYPTOLOGY,
  volume =       "23",
  number =       "3",
  pages =        "422--456",
  month =        jul,
  year =         "2010",
  CODEN =        "JOCREQ",
  ISSN =         "0933-2790 (print), 1432-1378 (electronic)",
  ISSN-L =       "0933-2790",
  bibdate =      "Wed Aug 25 09:39:07 MDT 2010",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0933-2790&volume=23&issue=3;
                 https://www.math.utah.edu/pub/tex/bib/jcryptology.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0933-2790&volume=23&issue=3&spage=422",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Cryptology",
  journal-URL =  "http://link.springer.com/journal/145",
}

@Article{Hoefler:2010:SCP,
  author =       "Torsten Hoefler and Christian Siebert and Andrew
                 Lumsdaine",
  title =        "Scalable communication protocols for dynamic sparse
                 data exchange",
  journal =      j-SIGPLAN,
  volume =       "45",
  number =       "5",
  pages =        "159--168",
  month =        may,
  year =         "2010",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1693453.1693476",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Aug 31 22:39:18 MDT 2010",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Many large-scale parallel programs follow a bulk
                 synchronous parallel (BSP) structure with distinct
                 computation and communication phases. Although the
                 communication phase in such programs may involve all
                 (or large numbers) of the participating processes, the
                 actual communication operations are usually sparse in
                 nature. As a result, communication phases are typically
                 expressed explicitly using point-to-point communication
                 operations or collective operations. We define the
                 dynamic sparse data-exchange (DSDE) problem and derive
                 bounds in the well known LogGP model. While current
                 approaches work well with static applications, they run
                 into limitations as modern applications grow in scale,
                 and as the problems that are being solved become
                 increasingly irregular and dynamic.\par

                 To enable the compact and efficient expression of the
                 communication phase, we develop suitable sparse
                 communication protocols for irregular applications at
                 large scale. We discuss different irregular
                 applications and show the sparsity in the communication
                 for real-world input data. We discuss the time and
                 memory complexity of commonly used protocols for the
                 DSDE problem and develop {\em NBX\/} --a novel fast
                 algorithm with constant memory overhead for solving it.
                 Algorithm {\em NBX\/} improves the runtime of a sparse
                 data-exchange among 8,192 processors on BlueGene/P by a
                 factor of 5.6. In an application study, we show
                 improvements of up to a factor of 28.9 for a parallel
                 breadth first search on 8,192 BlueGene/P processors.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "alltoall; distributed termination; irregular
                 algorithms; nonblocking collective operations; sparse
                 data exchange",
}

@Article{Horvath:2010:EAC,
  author =       "{\'A}kos Horv{\'a}th and G{\'a}bor Bergmann and
                 Istv{\'a}n R{\'a}th and D{\'a}niel Varr{\'o}",
  title =        "Experimental assessment of combining pattern matching
                 strategies with {VIATRA2}",
  journal =      j-INT-J-SOFTW-TOOLS-TECHNOL-TRANSFER,
  volume =       "12",
  number =       "3--4",
  pages =        "211--230",
  month =        jul,
  year =         "2010",
  CODEN =        "????",
  ISSN =         "1433-2779 (print), 1433-2787 (electronic)",
  ISSN-L =       "1433-2779",
  bibdate =      "Sat Sep 11 07:13:37 MDT 2010",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=1433-2779&volume=12&issue=3;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/sttt.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=1433-2779&volume=12&issue=3&spage=211",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal on Software Tools for Technology
                 Transfer: STTT",
  journal-URL =  "http://link.springer.com/journal/10009",
}

@Article{Kandhan:2010:SFS,
  author =       "Ramakrishnan Kandhan and Nikhil Teletia and Jignesh M.
                 Patel",
  title =        "{SigMatch}: fast and scalable multi-pattern matching",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "3",
  number =       "1--2",
  pages =        "1173--1184",
  month =        sep,
  year =         "2010",
  CODEN =        "????",
  ISSN =         "2150-8097",
  bibdate =      "Fri May 13 14:55:02 MDT 2011",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Kulekci:2010:BNB,
  author =       "M. Oguzhan K{\"u}lekci",
  title =        "{BLIM}: a New Bit-Parallel Pattern Matching Algorithm
                 Overcoming Computer Word Size Limitation",
  journal =      j-MATH-COMPUT-SCI,
  volume =       "3",
  number =       "4",
  pages =        "407--420",
  month =        jun,
  year =         "2010",
  CODEN =        "????",
  ISSN =         "1661-8270 (print), 1661-8289 (electronic)",
  ISSN-L =       "1661-8270",
  bibdate =      "Sun Aug 22 09:02:18 MDT 2010",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=1661-8270&volume=3&issue=4;
                 https://www.math.utah.edu/pub/tex/bib/math-comput-sci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=1661-8270&volume=3&issue=4&spage=407",
  acknowledgement = ack-nhfb,
  fjournal =     "Mathematics in Computer Science",
  journal-URL =  "http://www.springerlink.com/content/1661-8270/",
}

@Article{Kumar:2010:SMM,
  author =       "Krishna Kumar and Rajesh Prasad and Suneeta Agarwal",
  title =        "Software maintenance by multi-patterns parameterized
                 string matching with $q$-gram",
  journal =      j-SIGSOFT,
  volume =       "35",
  number =       "3",
  pages =        "1--5",
  month =        may,
  year =         "2010",
  CODEN =        "SFENDP",
  DOI =          "https://doi.org/10.1145/1764810.1764822",
  ISSN =         "0163-5948 (print), 1943-5843 (electronic)",
  ISSN-L =       "0163-5948",
  bibdate =      "Wed Aug 1 17:15:53 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "In the multi-patterns parameterized string matching
                 problem, a set of patterns $ P_0, P_1, P_2, \ldots {},
                 P_{r - 1}, r \geq 1 $, are said to match with a
                 sub-string $t$ of the text $T$, if there exists a
                 one-one correspondence between the symbols of patterns
                 and the symbols of $t$. This problem has an important
                 application in software maintenance, where it is often
                 required to find equivalency between two sections of
                 codes. Two sections of codes are said to be equivalent
                 if one can be transformed into the other by renaming
                 only identifiers and variables. In this paper, we
                 extend Forward Non-deterministic Directed Acyclic Word
                 Graph (DAWG) matching (FNDM) algorithm to PQFNDM for
                 parameterized string matching problem by using the
                 q-gram. Experimentally it has been observed that the
                 performance of PQFNDM improves with increasing value of
                 q up to half the length of the pattern. We further
                 modify PQFNDM to MPQFNDM for handling multiple
                 patterns. We compare the performance of PQFNDM (for
                 q=1) with parameterized shift-or (PSO) algorithm and
                 found that PQFNDM is better than PSO. We also show the
                 benefits of using multiple patterns.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGSOFT Software Engineering Notes",
  journal-URL =  "https://dl.acm.org/citation.cfm?id=J728",
}

@Article{Libkin:2010:DPM,
  author =       "Leonid Libkin and Cristina Sirangelo",
  title =        "Disjoint pattern matching and implication in strings",
  journal =      j-INFO-PROC-LETT,
  volume =       "110",
  number =       "4",
  pages =        "143--147",
  day =          "16",
  month =        jan,
  year =         "2010",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 12:46:30 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@InProceedings{Little:2010:OSM,
  author =       "G. Little and J. Diamond",
  title =        "Optimum String Match Choices in {LZSS}",
  crossref =     "Storer:2010:DPD",
  pages =        "538--538",
  year =         "2010",
  DOI =          "https://doi.org/10.1109/DCC.2010.67",
  bibdate =      "Tue Feb 5 12:39:22 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5453493",
  acknowledgement = ack-nhfb,
}

@Article{Lohrey:2010:CMP,
  author =       "Markus Lohrey",
  title =        "Compressed Membership Problems for Regular Expressions
                 and Hierarchical Automata",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "21",
  number =       "5",
  pages =        "817--841",
  month =        oct,
  year =         "2010",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S012905411000757X",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Mon Oct 18 14:53:21 MDT 2010",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Mandreoli:2010:PHS,
  author =       "Federica Mandreoli and Riccardo Martoglia and Pavel
                 Zezula",
  title =        "Principles of {Holism} for sequential twig pattern
                 matching",
  journal =      j-VLDB-J,
  volume =       "18",
  number =       "6",
  pages =        "1369--1392",
  month =        dec,
  year =         "2010",
  CODEN =        "VLDBFR",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Tue Mar 16 08:21:44 MDT 2010",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Martens:2010:CDP,
  author =       "Wim Martens and Frank Neven and Thomas Schwentick",
  title =        "Complexity of Decision Problems for {XML} Schemas and
                 Chain Regular Expressions",
  journal =      j-SIAM-J-COMPUT,
  volume =       "39",
  number =       "4",
  pages =        "1486--1530",
  month =        "????",
  year =         "2010",
  CODEN =        "SMJCAT",
  DOI =          "",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  bibdate =      "Tue May 18 08:22:14 MDT 2010",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/39/4;
                 https://www.math.utah.edu/pub/tex/bib/sgml2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Might:2010:YD,
  author =       "Matthew Might and David Darais",
  title =        "{Yacc} is dead",
  journal =      "arxiv.org",
  volume =       "??",
  number =       "??",
  pages =        "1--18",
  day =          "24",
  month =        oct,
  year =         "2010",
  bibdate =      "Sat Nov 07 13:39:11 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://arxiv.org/abs/1010.5023;
                 http://www.ucombinator.org/projects/parsing/",
  abstract =     "We present two novel approaches to parsing
                 context-free languages. The first approach is based on
                 an extension of Brzozowski's derivative from regular
                 expressions [\cite{Brzozowski:1964:DRE}] to
                 context-free grammars. The second approach is based on
                 a generalization of the derivative to parser
                 combinators. The payoff of these techniques is a small
                 (less than 250 lines of code), easy-to-implement
                 parsing library capable of parsing arbitrary
                 context-free grammars into lazy parse forests.
                 Implementations for both Scala and Haskell are
                 provided. Preliminary experiments with S-Expressions
                 parsed millions of tokens per second, which suggests
                 this technique is efficient enough for use in
                 practice.",
  acknowledgement = ack-nhfb,
  remark =       "The title of this article is provocative: see the
                 rebuttal in \cite{Cox:2010:YD}. The paper prose is
                 mathematically and symbolically dense. The authors
                 implement their parser algorithm in Scala and Haskell,
                 but beyond a simple expression grammar, they give no
                 examples of grammars and parsers for any common
                 programming or scripting language. Without real
                 independent implementations of such parsers, it is
                 impossible to judge whether their technique, which they
                 characterize as neither bottom-up nor top-down, offers
                 any advantages over Yacc. While it is possible to
                 concoct peculiar examples of input that take
                 exponential parsing time, that is so rarely relevant in
                 real-world parsing of computer programs that it can,
                 and should, be ignored. What matters more is behavior
                 and speed on parsing of real-world code, and whether
                 faulty input code can produce diagnostics from their
                 parser that are more useful to the programmer than
                 those from conventional LL(1), LALR(1), and LR(k)
                 parsers.",
}

@Article{Mozafari:2010:REN,
  author =       "Barzan Mozafari and Kai Zeng and Carlo Zaniolo",
  title =        "From regular expressions to nested words: unifying
                 languages and query execution for relational and {XML}
                 sequences",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "3",
  number =       "1--2",
  pages =        "150--161",
  month =        sep,
  year =         "2010",
  CODEN =        "????",
  ISSN =         "2150-8097",
  bibdate =      "Fri May 13 14:55:02 MDT 2011",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Neuburger:2010:BRB,
  author =       "Shoshana Neuburger",
  title =        "Book Review: {{\booktitle{The Burrows--Wheeler
                 Transform: Data Compression, Suffix Arrays, and Pattern
                 Matching}}, by Donald Adjeroh, Timothy Bell and Amar
                 Mukherjee Springer, 2008}",
  journal =      j-SIGACT,
  volume =       "41",
  number =       "1",
  pages =        "21--24",
  month =        mar,
  year =         "2010",
  CODEN =        "SIGNDM",
  DOI =          "https://doi.org/10.1145/1753171.1753177",
  ISSN =         "0163-5700 (print), 1943-5827 (electronic)",
  ISSN-L =       "0163-5700",
  bibdate =      "Tue Mar 20 14:39:00 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigact.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See \cite{Adjeroh:2008:BWT}.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGACT News",
  journal-URL =  "http://dl.acm.org/citation.cfm?id=J697",
}

@Article{Nordio:2010:IQE,
  author =       "Alessandro Nordio and Carla-Fabiana Chiasserini and
                 Emanuele Viterbo",
  title =        "The impact of quasi-equally spaced sensor topologies
                 on signal reconstruction",
  journal =      j-TOSN,
  volume =       "6",
  number =       "2",
  pages =        "11:1--11:??",
  month =        feb,
  year =         "2010",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1689239.1689241",
  ISSN =         "1550-4859 (print), 1550-4867 (electronic)",
  ISSN-L =       "1550-4859",
  bibdate =      "Tue Mar 16 15:25:00 MDT 2010",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tosn.bib",
  abstract =     "A wireless sensor network with randomly deployed nodes
                 can be used to provide an irregular sampling of a
                 physical field of interest. We assume that a sink node
                 collects the data gathered by the sensors and uses a
                 linear filter for the reconstruction of a bandlimited
                 scalar field defined over a $d$-dimensional domain.
                 Sensors' locations are assumed to be known at the sink
                 node, up to a certain position error. We then take the
                 mean square error (MSE) of the reconstructed field as
                 performance metric, and evaluate the effect of both
                 uniform and quasi-equally spaced sensor layouts on the
                 quality of the reconstructed field. We define a
                 parameter that provides a measure of the regularity of
                 the sensors deployment, and, through asymptotic
                 analysis, we derive the MSE in the case of different
                 sensor spatial distributions. For two of them, an
                 approximate closed form expression is obtained. We
                 validate our analysis through numerical results, and we
                 show that an excellent match exists between analysis
                 and simulation even for a small number of sensors.",
  acknowledgement = ack-nhfb,
  articleno =    "11",
  fjournal =     "ACM Transactions on Sensor Networks (TOSN)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J981",
  keywords =     "irregular sampling; performance evaluation; Sensor
                 networks; signal reconstruction",
}

@Misc{Nourie:2010:REJ,
  author =       "D. Nourie and M. McCloskey",
  title =        "Regular Expressions and the {Java} Programming
                 Language",
  howpublished = "Web report",
  year =         "2010",
  bibdate =      "Wed Sep 09 10:06:46 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://java.sun.com/developer/technicalArticles/releases/1.4regex",
  acknowledgement = ack-nhfb,
}

@Article{Pandurangan:2010:UOC,
  author =       "Gopal Pandurangan and Wojciech Szpankowski",
  title =        "A Universal Online Caching Algorithm Based on Pattern
                 Matching",
  journal =      j-ALGORITHMICA,
  volume =       "57",
  number =       "1",
  pages =        "62--73",
  month =        may,
  year =         "2010",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Sat Sep 11 10:17:05 MDT 2010",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=57&issue=1;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=57&issue=1&spage=62",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Pao:2010:MEP,
  author =       "Derek Pao and Wei Lin and Bin Liu",
  title =        "A memory-efficient pipelined implementation of the
                 {Aho--Corasick} string-matching algorithm",
  journal =      j-TACO,
  volume =       "7",
  number =       "2",
  pages =        "10:1--10:??",
  month =        sep,
  year =         "2010",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1839667.1839672",
  ISSN =         "1544-3566 (print), 1544-3973 (electronic)",
  ISSN-L =       "1544-3566",
  bibdate =      "Sat Oct 2 18:05:46 MDT 2010",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/taco.bib",
  abstract =     "With rapid advancement in Internet technology and
                 usages, some emerging applications in data
                 communications and network security require matching of
                 huge volume of data against large signature sets with
                 thousands of strings in real time. In this article, we
                 present a memory-efficient hardware implementation of
                 the well-known Aho--Corasick (AC) string-matching
                 algorithm using a pipelining approach called P-AC. An
                 attractive feature of the AC algorithm is that it can
                 solve the string-matching problem in time linearly
                 proportional to the length of the input stream, and the
                 computation time is independent of the number of
                 strings in the signature set. A major disadvantage of
                 the AC algorithm is the high memory cost required to
                 store the transition rules of the underlying
                 deterministic finite automaton. By incorporating
                 pipelined processing, the state graph is reduced to a
                 character trie that only contains forward edges.
                 Together with an intelligent implementation of look-up
                 tables, the memory cost of P-AC is only about 18 bits
                 per character for a signature set containing 6,166
                 strings extracted from Snort. The control structure of
                 P-AC is simple and elegant. The cost of the control
                 logic is very low. With the availability of dual-port
                 memories in FPGA devices, we can double the system
                 throughput by duplicating the control logic such that
                 the system can process two data streams concurrently.
                 Since our method is memory-based, incremental changes
                 to the signature set can be accommodated by updating
                 the look-up tables without reconfiguring the FPGA
                 circuitry.",
  acknowledgement = ack-nhfb,
  articleno =    "10",
  fjournal =     "ACM Transactions on Architecture and Code Optimization
                 (TACO)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J924",
  keywords =     "deterministic and nondeterministic finite automaton;
                 intrusion detection system; pipelined processing;
                 String-matching",
}

@Article{Pasetto:2010:TVF,
  author =       "Davide Pasetto and Fabrizio Petrini and Virat
                 Agarwal",
  title =        "Tools for Very Fast Regular Expression Matching",
  journal =      j-COMPUTER,
  volume =       "43",
  number =       "3",
  pages =        "50--58",
  month =        mar,
  year =         "2010",
  CODEN =        "CPTRB4",
  DOI =          "https://doi.org/10.1109/MC.2010.80",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Wed May 12 22:57:42 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computer2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
}

@Article{Prasad:2010:PSM,
  author =       "Rajesh Prasad and Suneeta Agarwal",
  title =        "Parameterized string matching: an application to
                 software maintenance",
  journal =      j-SIGSOFT,
  volume =       "35",
  number =       "3",
  pages =        "1--5",
  month =        may,
  year =         "2010",
  CODEN =        "SFENDP",
  DOI =          "https://doi.org/10.1145/1764810.1764829",
  ISSN =         "0163-5948 (print), 1943-5843 (electronic)",
  ISSN-L =       "0163-5948",
  bibdate =      "Wed Aug 1 17:15:53 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "In the problem of parameterized string matching, a
                 given pattern P is said to match with a sub-string $t$
                 of the text $T$, if there exists a one-one
                 correspondence between the symbols of P and the symbols
                 of $t$. This problem has an important application in
                 software maintenance, where it is often required to
                 find equivalency between two sections of codes. Two
                 sections of codes are said to be equivalent if one can
                 be transformed into the other by renaming only
                 identifiers and variables. In this paper, we propose
                 two new algorithms for the said problem by using the
                 q-gram approach. The first one is obtained by using
                 this approach on an existing string matching algorithm
                 (simplified backward non-deterministic directed acyclic
                 word graph matching (SBNDM)). The second one is
                 obtained by using the q-gram approach on the
                 parameterized string matching algorithm (parameterized
                 backward non-deterministic directed acyclic word graph
                 matching (PBNDM)). Performance of both the algorithms
                 is tested for various values of q and it has been
                 observed that both show their best performance for q
                 nearly equal to half of the pattern length. We also
                 study the effect on running time of these algorithms
                 with increasing the duplicity in the text.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGSOFT Software Engineering Notes",
  journal-URL =  "https://dl.acm.org/citation.cfm?id=J728",
}

@Article{Rutter:2010:CLM,
  author =       "Ignaz Rutter and Alexander Wolff",
  title =        "Computing large matchings fast",
  journal =      j-TALG,
  volume =       "7",
  number =       "1",
  pages =        "1:1--1:??",
  month =        nov,
  year =         "2010",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1868237.1868238",
  ISSN =         "1549-6325 (print), 1549-6333 (electronic)",
  ISSN-L =       "1549-6325",
  bibdate =      "Thu Oct 1 15:37:27 MDT 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talg.bib",
  abstract =     "In this article we present algorithms for computing
                 large matchings in 3-regular graphs, graphs with
                 maximum degree 3, and 3-connected planar graphs. The
                 algorithms give a guarantee on the size of the computed
                 matching and take linear or slightly superlinear time.
                 Thus they are faster than the best-known algorithm for
                 computing maximum matchings in general graphs, which
                 runs in $ O(\sqrt {n m}) $ time, where $n$ denotes the
                 number of vertices and $m$ the number of edges of the
                 given graph. For the classes of 3-regular graphs and
                 graphs with maximum degree 3, the bounds we achieve are
                 known to be best possible. We also investigate graphs
                 with block trees of bounded degree, where the $d$-block
                 tree is the adjacency graph of the $d$-connected
                 components of the given graph. In 3-regular graphs and
                 3-connected planar graphs with bounded-degree 2- and
                 4-block trees, respectively, we show how to compute
                 maximum matchings in slightly superlinear time.",
  acknowledgement = ack-nhfb,
  articleno =    "1",
  fjournal =     "ACM Transactions on Algorithms (TALG)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J982",
}

@Article{Salmela:2010:ABM,
  author =       "Leena Salmela and Jorma Tarhio and Petri Kalsi",
  title =        "Approximate {Boyer--Moore} String Matching for Small
                 Alphabets",
  journal =      j-ALGORITHMICA,
  volume =       "58",
  number =       "3",
  pages =        "591--609",
  month =        nov,
  year =         "2010",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Sat Sep 11 10:17:05 MDT 2010",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=58&issue=3;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=58&issue=3&spage=591",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Silvasti:2010:ELX,
  author =       "P. Silvasti and S. Sippu and E. Soisalon-Soininen",
  title =        "Evaluating Linear {XPath} Expressions by
                 Pattern-Matching Automata",
  journal =      j-J-UCS,
  volume =       "16",
  number =       "5",
  pages =        "833--??",
  month =        "????",
  year =         "2010",
  CODEN =        "????",
  ISSN =         "0948-695X (print), 0948-6968 (electronic)",
  ISSN-L =       "0948-6968",
  bibdate =      "Wed Aug 25 21:53:00 MDT 2010",
  bibsource =    "http://www.jucs.org/jucs;
                 https://www.math.utah.edu/pub/tex/bib/jucs.bib;
                 https://www.math.utah.edu/pub/tex/bib/sgml2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.jucs.org/jucs_16_5/evaluating_linear_xpath_expressions",
  acknowledgement = ack-nhfb,
  fjournal =     "J.UCS: Journal of Universal Computer Science",
  journal-URL =  "http://www.jucs.org/jucs",
}

@Article{Ukkonen:2010:GPP,
  author =       "E. Ukkonen",
  title =        "Geometric Point Pattern Matching in the
                 {Knuth--Morris--Pratt} Way",
  journal =      j-J-UCS,
  volume =       "16",
  number =       "14",
  pages =        "1902--??",
  month =        "????",
  year =         "2010",
  CODEN =        "????",
  ISSN =         "0948-695X (print), 0948-6968 (electronic)",
  ISSN-L =       "0948-6968",
  bibdate =      "Fri Apr 6 05:52:25 MDT 2012",
  bibsource =    "http://www.jucs.org/jucs;
                 https://www.math.utah.edu/pub/tex/bib/jucs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.jucs.org/jucs_16_14/geometric_point_pattern_matching",
  acknowledgement = ack-nhfb,
  fjournal =     "J.UCS: Journal of Universal Computer Science",
  journal-URL =  "http://www.jucs.org/jucs",
}

@Article{Zhang:2010:PMW,
  author =       "Meng Zhang and Yi Zhang and Liang Hu",
  title =        "Pattern matching with wildcards using words of shorter
                 length",
  journal =      j-INFO-PROC-LETT,
  volume =       "110",
  number =       "24",
  pages =        "1099--1102",
  day =          "30",
  month =        nov,
  year =         "2010",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 12:46:50 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Amir:2011:ASM,
  author =       "Amihood Amir and Estrella Eisenberg and Orgad Keller
                 and Avivit Levy and Ely Porat",
  title =        "Approximate string matching with stuck address bits",
  journal =      j-THEOR-COMP-SCI,
  volume =       "412",
  number =       "29",
  pages =        "3537--3544",
  day =          "1",
  month =        jul,
  year =         "2011",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Aug 30 18:51:38 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Atallah:2011:PMH,
  author =       "Mikhail J. Atallah and Timothy W. Duket",
  title =        "Pattern matching in the {Hamming} distance with
                 thresholds",
  journal =      j-INFO-PROC-LETT,
  volume =       "111",
  number =       "14",
  pages =        "674--677",
  day =          "31",
  month =        jul,
  year =         "2011",
  CODEN =        "IFPLAT",
  DOI =          "https://doi.org/10.1016/j.ipl.2011.04.004",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Sat Feb 4 08:08:39 MST 2012",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019011001049",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Aumann:2011:FWP,
  author =       "Yonatan Aumann and Moshe Lewenstein and Noa Lewenstein
                 and Dekel Tsur",
  title =        "Finding witnesses by peeling",
  journal =      j-TALG,
  volume =       "7",
  number =       "2",
  pages =        "24:1--24:??",
  month =        mar,
  year =         "2011",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1921659.1921670",
  ISSN =         "1549-6325 (print), 1549-6333 (electronic)",
  ISSN-L =       "1549-6325",
  bibdate =      "Sat Dec 8 09:35:38 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talg.bib",
  abstract =     "In the $k$-matches problem, we are given a pattern and
                 a text, and for each text location, the desired output
                 consists of all aligned matching characters if there
                 are $k$ or fewer of them, and any $k$ aligned matching
                 characters if there are more than $k$ of them. This
                 problem is one of several string matching problems that
                 seek not only to find where the pattern matches the
                 text under different ``match'' definitions, but also to
                 provide witnesses to the match. Other such problems
                 include $k$-aligned ones, $k$-witnesses, and
                 $k$-mismatches. In addition, the solutions to several
                 other string matching problems rely on the efficient
                 solutions of the witness finding problems. In this
                 article we provide a general method for solving such
                 witness finding problems efficiently. We do so by
                 casting the problem as a generalization of group
                 testing, which we then solve by a process we call
                 peeling. Using this general framework we obtain
                 improved results for all of the problems mentioned. We
                 also show that our method also solves a couple of
                 problems outside the pattern matching domain.",
  acknowledgement = ack-nhfb,
  articleno =    "24",
  fjournal =     "ACM Transactions on Algorithms (TALG)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J982",
}

@InProceedings{Barcelo:2011:QGP,
  author =       "Pablo Barcel{\'o} and Leonid Libkin and Juan L.
                 Reutter",
  title =        "Querying graph patterns",
  crossref =     "Lenzerini:2011:PPT",
  pages =        "199--210",
  year =         "2011",
  DOI =          "https://doi.org/10.1145/1989284.1989307",
  bibdate =      "Mon Apr 23 08:27:56 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Graph data appears in a variety of application
                 domains, and many uses of it, such as querying,
                 matching, and transforming data, naturally result in
                 incompletely specified graph data, i.e., graph
                 patterns. While queries need to be posed against such
                 data, techniques for querying patterns are generally
                 lacking, and properties of such queries are not well
                 understood. Our goal is to study the basics of querying
                 graph patterns. We first identify key features of
                 patterns, such as node and label variables and edges
                 specified by regular expressions, and define a
                 classification of patterns based on them. We then study
                 standard graph queries on graph patterns, and give
                 precise characterizations of both data and combined
                 complexity for each class of patterns. If complexity is
                 high, we do further analysis of features that lead to
                 intractability, as well as lower complexity
                 restrictions. We introduce a new automata model for
                 query answering with two modes of acceptance: one
                 captures queries returning nodes, and the other queries
                 returning paths. We study properties of such automata,
                 and the key computational tasks associated with them.
                 Finally, we provide additional restrictions for
                 tractability, and show that some intractable cases can
                 be naturally cast as instances of constraint
                 satisfaction problem.",
  acknowledgement = ack-nhfb,
}

@Article{Burton:2011:SBL,
  author =       "Benjamin A. Burton",
  title =        "Searching a Bitstream in Linear Time for the Longest
                 Substring of Any Given Density",
  journal =      j-ALGORITHMICA,
  volume =       "61",
  number =       "3",
  pages =        "555--579",
  month =        nov,
  year =         "2011",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Mon Sep 5 20:44:15 MDT 2011",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=61&issue=3;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=61&issue=3&spage=555",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Caron:2011:PMB,
  author =       "Eddy Caron and Fr{\'e}d{\'e}ric Desprez and Adrian
                 Muresan",
  title =        "Pattern Matching Based Forecast of Non-periodic
                 Repetitive Behavior for Cloud Clients",
  journal =      j-J-GRID-COMP,
  volume =       "9",
  number =       "1",
  pages =        "49--64",
  month =        mar,
  year =         "2011",
  CODEN =        "????",
  ISSN =         "1570-7873 (print), 1572-9184 (electronic)",
  ISSN-L =       "1570-7873",
  bibdate =      "Tue Sep 6 21:35:04 MDT 2011",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=1570-7873&volume=9&issue=1;
                 https://www.math.utah.edu/pub/tex/bib/jgridcomp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=1570-7873&volume=9&issue=1&spage=49",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Grid Computing",
  journal-URL =  "http://link.springer.com/journal/10723",
}

@Article{Choi:2011:CPM,
  author =       "Yongwook Choi and Wojciech Szpankowski",
  title =        "Constrained pattern matching",
  journal =      j-TALG,
  volume =       "7",
  number =       "2",
  pages =        "25:1--25:??",
  month =        mar,
  year =         "2011",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1921659.1921671",
  ISSN =         "1549-6325 (print), 1549-6333 (electronic)",
  ISSN-L =       "1549-6325",
  bibdate =      "Sat Dec 8 09:35:38 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talg.bib",
  abstract =     "Constrained sequences are strings satisfying certain
                 additional structural restrictions (e.g., some patterns
                 are forbidden). They find applications in
                 communication, digital recording, and biology. In this
                 article, we restrict our attention to the so-called $
                 (d, k) $ constrained binary sequences in which any run
                 of zeros must be of length at least $d$ and at most
                 $k$, where $ 0 \leq d < k $. In many applications, one
                 needs to know the number of occurrences of a given
                 pattern $w$ in such sequences, for which we coin the
                 term constrained pattern matching. For a given word
                 $w$, we first estimate the mean and the variance of the
                 number of occurrences of $w$ in a $ (d, k) $ sequence
                 generated by a memoryless source. Then we present the
                 central limit theorem and large deviations results. As
                 a by-product, we enumerate asymptotically the number of
                 $ (d, k) $ sequences with exactly $r$ occurrences of
                 $w$, and compute Shannon entropy of $ (d, k) $
                 sequences with a given number of occurrences of $w$. We
                 also apply our results to detect under- and
                 overrepresented patterns in neuronal data (spike
                 trains), which satisfy structural constraints that
                 match the framework of $ (d, k) $ binary sequences.
                 Throughout this article we use techniques of analytic
                 combinatorics such as combinatorial calculus,
                 generating functions, and complex asymptotics.",
  acknowledgement = ack-nhfb,
  articleno =    "25",
  fjournal =     "ACM Transactions on Algorithms (TALG)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J982",
}

@InProceedings{Coquand:2011:DPR,
  author =       "T. Coquand and V. Siles",
  editor =       "Jean-Pierre Jouannaud and Zhong Shao",
  booktitle =    "Proceedings of the {1st International Conference on
                 Certified Programs and Proofs (CPP)}",
  title =        "A decision procedure for regular expression
                 equivalence in type theory",
  volume =       "7086",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "119--134",
  year =         "2011",
  DOI =          "https://doi.org/10.1007/978-3-642-25379-9_11",
  bibdate =      "Fri Sep 22 12:39:50 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  acknowledgement = ack-nhfb,
}

@Article{Denning:2011:MIV,
  author =       "Jonathan D. Denning and William B. Kerr and Fabio
                 Pellacini",
  title =        "{MeshFlow}: interactive visualization of mesh
                 construction sequences",
  journal =      j-TOG,
  volume =       "30",
  number =       "4",
  pages =        "66:1--66:??",
  month =        jul,
  year =         "2011",
  CODEN =        "ATGRDF",
  DOI =          "https://doi.org/10.1145/2010324.1964961;
                 https://doi.org/10.1145/2010324.1965003",
  ISSN =         "0730-0301 (print), 1557-7368 (electronic)",
  ISSN-L =       "0730-0301",
  bibdate =      "Wed Aug 17 09:36:30 MDT 2011",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tog/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tog.bib",
  abstract =     "The construction of polygonal meshes remains a complex
                 task in Computer Graphics, taking tens of thousands of
                 individual operations over several hours of modeling
                 time. The complexity of modeling in terms of number of
                 operations and time makes it difficult for artists to
                 understand all details of how meshes are constructed.
                 We present MeshFlow, an interactive system for
                 visualizing mesh construction sequences. MeshFlow
                 hierarchically clusters mesh editing operations to
                 provide viewers with an overview of the model
                 construction while still allowing them to view more
                 details on demand. We base our clustering on an
                 analysis of the frequency of repeated operations and
                 implement it using substituting regular expressions.",
  acknowledgement = ack-nhfb,
  articleno =    "66",
  fjournal =     "ACM Transactions on Graphics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J778",
}

@Article{Droste:2011:WAR,
  author =       "Manfred Droste and Ingmar Meinecke",
  title =        "Weighted Automata and Regular Expressions Over
                 Valuation Monoids",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "22",
  number =       "8",
  pages =        "1829--1844",
  month =        dec,
  year =         "2011",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054111009069",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Wed Feb 8 18:31:47 MST 2012",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Ficara:2011:DED,
  author =       "Domenico Ficara and Andrea {Di Pietro} and Stefano
                 Giordano and Gregorio Procissi and Fabio Vitucci and
                 Gianni Antichi",
  title =        "Differential encoding of {DFAs} for fast regular
                 expression matching",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "19",
  number =       "3",
  pages =        "683--694",
  month =        jun,
  year =         "2011",
  CODEN =        "IEANEP",
  DOI =          "https://doi.org/10.1109/TNET.2010.2089639",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Sun Nov 6 07:43:51 MST 2011",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J771",
}

@Article{Garcia:2011:RES,
  author =       "Pedro Garc{\'\i}a and Dami{\'a}n L{\'o}pez and
                 Jos{\'e} Ruiz and Gloria I. {\'A}lvarez",
  title =        "From regular expressions to smaller {NFAs}",
  journal =      j-THEOR-COMP-SCI,
  volume =       "412",
  number =       "41",
  pages =        "5802--5807",
  day =          "23",
  month =        sep,
  year =         "2011",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Aug 30 18:51:58 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Grabowski:2011:SMI,
  author =       "Szymon Grabowski and Simone Faro and Emanuele
                 Giaquinta",
  title =        "String matching with inversions and translocations in
                 linear average time (most of the time)",
  journal =      j-INFO-PROC-LETT,
  volume =       "111",
  number =       "11",
  pages =        "516--520",
  day =          "15",
  month =        may,
  year =         "2011",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Mar 31 12:47:01 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Henglein:2011:REC,
  author =       "Fritz Henglein and Lasse Nielsen",
  title =        "Regular expression containment: coinductive
                 axiomatization and computational interpretation",
  journal =      j-SIGPLAN,
  volume =       "46",
  number =       "1",
  pages =        "385--398",
  month =        jan,
  year =         "2011",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1925844.1926429",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jan 26 15:06:39 MST 2011",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Holzer:2011:CRL,
  author =       "Markus Holzer and Martin Kutrib",
  title =        "The Complexity of Regular(-Like) Expressions",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "22",
  number =       "7",
  pages =        "1533--1548",
  month =        nov,
  year =         "2011",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054111008866",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Wed Feb 8 18:31:45 MST 2012",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Hon:2011:COI,
  author =       "Wing-Kai Hon and Tak-Wah Lam and Rahul Shah and
                 Siu-Lung Tam and Jeffrey Scott Vitter",
  title =        "Cache-oblivious index for approximate string
                 matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "412",
  number =       "29",
  pages =        "3579--3588",
  day =          "1",
  month =        jul,
  year =         "2011",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Aug 30 18:51:38 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Jay:2011:TSI,
  author =       "Barry Jay and Jens Palsberg",
  title =        "Typed self-interpretation by pattern matching",
  journal =      j-SIGPLAN,
  volume =       "46",
  number =       "9",
  pages =        "247--258",
  month =        sep,
  year =         "2011",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2034574.2034808",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Oct 22 08:31:30 MDT 2011",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ICFP '11 conference proceedings.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Kim:2011:MEB,
  author =       "Hyun Jin Kim and Hong-Sik Kim and Sungho Kang",
  title =        "A Memory-Efficient Bit-Split Parallel String Matching
                 Using Pattern Dividing for Intrusion Detection
                 Systems",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "22",
  number =       "11",
  pages =        "1904--1911",
  month =        nov,
  year =         "2011",
  CODEN =        "ITDSEO",
  DOI =          "https://doi.org/10.1109/TPDS.2011.85",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Thu Sep 29 12:07:39 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranspardistsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Parallel and Distributed
                 Systems",
  journal-URL =  "http://www.computer.org/tpds/archives.htm",
}

@InProceedings{Kimelfeld:2011:FMT,
  author =       "Benny Kimelfeld and Yehoshua Sagiv",
  title =        "Finding a minimal tree pattern under neighborhood
                 constraints",
  crossref =     "Lenzerini:2011:PPT",
  pages =        "235--246",
  year =         "2011",
  DOI =          "https://doi.org/10.1145/1989284.1989318",
  bibdate =      "Mon Apr 23 08:27:56 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Tools that automatically generate queries are useful
                 when schemas are hard to understand due to size or
                 complexity. Usually, these tools find minimal tree
                 patterns that contain a given set (or bag) of labels.
                 The labels could be, for example, XML tags or relation
                 names. The only restriction is that, in a tree pattern,
                 adjacent labels must be among some specified pairs. A
                 more expressive framework is developed here, where a
                 schema is a mapping of each label to a collection of
                 bags of labels. A tree pattern conforms to the schema
                 if for all nodes v, the bag comprising the labels of
                 the neighbors is contained in one of the bags to which
                 the label of v is mapped. The problem at hand is to
                 find a minimal tree pattern that conforms to the schema
                 and contains a given bag of labels. This problem is
                 NP-hard even when using the simplest conceivable
                 language for describing schemas. In practice, however,
                 the set of labels is small, so efficiency is realized
                 by means of an algorithm that is fixed-parameter
                 tractable (FPT). Two languages for specifying schemas
                 are discussed. In the first, one expresses pairwise
                 mutual exclusions between labels. Though W[1]-hardness
                 (hence, unlikeliness of an FPT algorithm) is shown, an
                 FPT algorithm is described for the case where the
                 mutual exclusions form a circular-arc graph (e.g.,
                 disjoint cliques). The second language is that of
                 regular expressions, and for that another FPT algorithm
                 is described.",
  acknowledgement = ack-nhfb,
}

@Article{Kiwi:2011:LAS,
  author =       "Marcos Kiwi and Gonzalo Navarro and Claudio Telha",
  title =        "On-line approximate string matching with bounded
                 errors",
  journal =      j-THEOR-COMP-SCI,
  volume =       "412",
  number =       "45",
  pages =        "6359--6370",
  day =          "21",
  month =        oct,
  year =         "2011",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2011.08.005",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Nov 29 19:11:39 MST 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397511006669",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@InProceedings{Klein:2011:SDM,
  author =       "S. T. Klein and D. Shapira",
  title =        "The String-to-Dictionary Matching Problem",
  crossref =     "Storer:2011:DDC",
  pages =        "143--152",
  year =         "2011",
  DOI =          "https://doi.org/10.1109/DCC.2011.21",
  bibdate =      "Tue Feb 5 11:58:09 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5749472",
  acknowledgement = ack-nhfb,
}

@Article{Knessl:2011:EAF,
  author =       "Charles Knessl and Mark W. Coffey",
  title =        "An effective asymptotic formula for the {Stieltjes}
                 constants",
  journal =      j-MATH-COMPUT,
  volume =       "80",
  number =       "273",
  pages =        "379--386",
  month =        jan,
  year =         "2011",
  CODEN =        "MCMPAF",
  DOI =          "https://doi.org/10.1090/S0025-5718-2010-02390-7",
  ISSN =         "0025-5718 (print), 1088-6842 (electronic)",
  ISSN-L =       "0025-5718",
  bibdate =      "Wed Oct 13 16:46:42 MDT 2010",
  bibsource =    "http://www.ams.org/mcom/2011-80-273;
                 https://www.math.utah.edu/pub/tex/bib/elefunt.bib;
                 https://www.math.utah.edu/pub/tex/bib/mathcomp2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.ams.org/journals/mcom/2011-80-273/S0025-5718-2010-02390-7/;
                 http://www.ams.org/journals/mcom/2011-80-273/S0025-5718-2010-02390-7/home.html;
                 http://www.ams.org/journals/mcom/2011-80-273/S0025-5718-2010-02390-7/S0025-5718-2010-02390-7.pdf",
  abstract =     "The Stieltjes constants $ \gamma_k $ appear in the
                 coefficients in the regular part of the Laurent
                 expansion of the Riemann zeta function $ \zeta (s) $
                 about its only pole at $ s = 1 $. We present an
                 asymptotic expression for $ \gamma_k $ for $ k \gg 1 $.
                 This form encapsulates both the leading rate of growth
                 and the oscillations with $k$. Furthermore, our result
                 is effective for computation, consistently in close
                 agreement (for both magnitude and sign) for even
                 moderate values of $k$. Comparison to some earlier work
                 is made.",
  acknowledgement = ack-nhfb,
  fjournal =     "Mathematics of Computation",
  journal-URL =  "http://www.ams.org/mcom/",
}

@Article{Kulick:2011:ESC,
  author =       "Seth Kulick",
  title =        "Exploiting Separation of Closed-Class Categories for
                 {Arabic} Tokenization and Part-of-Speech Tagging",
  journal =      j-TALIP,
  volume =       "10",
  number =       "1",
  pages =        "4:1--4:??",
  month =        mar,
  year =         "2011",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1929908.1929912",
  ISSN =         "1530-0226 (print), 1558-3430 (electronic)",
  ISSN-L =       "1530-0226",
  bibdate =      "Wed Mar 16 18:07:50 MDT 2011",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talip.bib",
  abstract =     "Research on the problem of morphological
                 disambiguation of Arabic has noted that techniques
                 developed for lexical disambiguation in English do not
                 easily transfer over, since the affixation present in
                 Arabic creates a very different tag set than for
                 English, encoding both inflectional morphology and more
                 complex tokenization sequences. This work takes a new
                 approach to this problem based on a distinction between
                 the open-class and closed-class categories of tokens,
                 which differ both in their frequencies and in their
                 possible morphological affixations. This separation
                 simplifies the morphological analysis problem
                 considerably, making it possible to use a Conditional
                 Random Field model for joint tokenization and ``core''
                 part-of-speech tagging of the open-class items, while
                 the closed-class items are handled by regular
                 expressions.",
  acknowledgement = ack-nhfb,
  articleno =    "4",
  fjournal =     "ACM Transactions on Asian Language Information
                 Processing",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?&idx=J820",
}

@Article{Lipsky:2011:APM,
  author =       "Ohad Lipsky and Ely Porat",
  title =        "Approximate Pattern Matching with the {$ L_1 $}, {$
                 L_2 $} and {$ L_\infty $} Metrics",
  journal =      j-ALGORITHMICA,
  volume =       "60",
  number =       "2",
  pages =        "335--348",
  month =        jun,
  year =         "2011",
  CODEN =        "ALGOEJ",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Fri Jun 17 18:57:00 MDT 2011",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0178-4617&volume=60&issue=2;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0178-4617&volume=60&issue=2&spage=335",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Ma:2011:CTG,
  author =       "Shuai Ma and Yang Cao and Wenfei Fan and Jinpeng Huai
                 and Tianyu Wo",
  title =        "Capturing topology in graph pattern matching",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "5",
  number =       "4",
  pages =        "310--321",
  month =        dec,
  year =         "2011",
  CODEN =        "????",
  ISSN =         "2150-8097",
  bibdate =      "Sat Mar 24 07:52:11 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Graph pattern matching is often defined in terms of
                 subgraph isomorphism, an np-complete problem. To lower
                 its complexity, various extensions of graph simulation
                 have been considered instead. These extensions allow
                 pattern matching to be conducted in cubic-time.
                 However, they fall short of capturing the topology of
                 data graphs, i.e., graphs may have a structure
                 drastically different from pattern graphs they match,
                 and the matches found are often too large to understand
                 and analyze. To rectify these problems, this paper
                 proposes a notion of strong simulation, a revision of
                 graph simulation, for graph pattern matching. (1) We
                 identify a set of criteria for preserving the topology
                 of graphs matched. We show that strong simulation
                 preserves the topology of data graphs and finds a
                 bounded number of matches. (2) We show that strong
                 simulation retains the same complexity as earlier
                 extensions of simulation, by providing a cubic-time
                 algorithm for computing strong simulation. (3) We
                 present the locality property of strong simulation,
                 which allows us to effectively conduct pattern matching
                 on distributed graphs. (4) We experimentally verify the
                 effectiveness and efficiency of these algorithms, using
                 real-life data and synthetic data.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Marschall:2011:ACC,
  author =       "Tobias Marschall and Sven Rahmann",
  title =        "An Algorithm to Compute the Character Access Count
                 Distribution for Pattern Matching Algorithms",
  journal =      j-ALGORITHMS-BASEL,
  volume =       "4",
  number =       "4",
  pages =        "285--306",
  month =        dec,
  year =         "2011",
  CODEN =        "ALGOCH",
  DOI =          "https://doi.org/10.3390/a4040285",
  ISSN =         "1999-4893 (electronic)",
  ISSN-L =       "1999-4893",
  bibdate =      "Fri May 3 13:50:12 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/algorithms.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.mdpi.com/1999-4893/4/4/285",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithms (Basel)",
  journal-URL =  "https://www.mdpi.com/journal/algorithms",
  pubdates =     "Received: 14 October 2011 / Revised: 26 October 2011 /
                 Accepted: 26 October 2011 / Published: 31 October
                 2011",
}

@Article{Mateescu:2011:CEC,
  author =       "Radu Mateescu and Pedro T. Monteiro and Estelle Dumas
                 and Hidde de Jong",
  title =        "{CTRL}: {Extension} of {CTL} with regular expressions
                 and fairness operators to verify genetic regulatory
                 networks",
  journal =      j-THEOR-COMP-SCI,
  volume =       "412",
  number =       "26",
  pages =        "2854--2883",
  day =          "10",
  month =        jun,
  year =         "2011",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat May 14 09:05:20 MDT 2011",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@InProceedings{Nielsen:2011:BCR,
  author =       "Lasse Nielsen and Fritz Henglein",
  editor =       "Carlos Mart{\'\i}n-Vide and Shunsuke Inenaga and
                 Adrian-Horia Dediu",
  booktitle =    "Language and Automata Theory and Applications",
  title =        "Bit-coded Regular Expression Parsing: {5th
                 International Conference, LATA 2011, Tarragona, Spain,
                 May 26--31, 2011}",
  volume =       "6638",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  bookpages =    "xiii + 512 + 115 + 33",
  pages =        "402--413",
  year =         "2011",
  DOI =          "https://doi.org/10.1007/978-3-642-21254-3_32",
  ISBN =         "3-642-21253-0 (soft cover), 3-642-21254-9 (e-book)",
  ISBN-13 =      "978-3-642-21253-6 (soft cover), 978-3-642-21254-3
                 (e-book)",
  LCCN =         "QA267 .L38 2011",
  bibdate =      "Fri Sep 22 14:33:31 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-21254-3",
}

@InProceedings{Okui:2011:DRE,
  author =       "Satoshi Okui and Taro Suzuki",
  editor =       "Michael Domaratzki and Kai Salomaa",
  booktitle =    "Implementation and Application of Automata: {15th
                 International Conference, CIAA 2010, Manitoba, Canada,
                 August 12-15, 2010. Revised Selected Papers}",
  title =        "Disambiguation in Regular Expression Matching via
                 Position Automata with Augmented Transitions",
  volume =       "6482",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  bookpages =    "xii + 332 + 53 + 3",
  pages =        "231--240",
  year =         "2011",
  DOI =          "https://doi.org/10.1007/978-3-642-18098-9_25",
  bibdate =      "Fri Sep 22 15:05:50 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-18098-9",
}

@Article{Ong:2011:VHO,
  author =       "C.-H. Luke Ong and Steven James Ramsay",
  title =        "Verifying higher-order functional programs with
                 pattern-matching algebraic data types",
  journal =      j-SIGPLAN,
  volume =       "46",
  number =       "1",
  pages =        "587--598",
  month =        jan,
  year =         "2011",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/1925844.1926453",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Jan 26 15:06:39 MST 2011",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Pao:2011:SSE,
  author =       "Derek Pao and Xing Wang and Xiaoran Wang and Cong Cao
                 and Yuesheng Zhu",
  title =        "String Searching Engine for Virus Scanning",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "60",
  number =       "11",
  pages =        "1596--1609",
  month =        nov,
  year =         "2011",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.2010.250",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Tue Sep 27 07:57:50 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5669261",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Petricek:2011:EMP,
  author =       "Tomas Petricek and Alan Mycroft and Don Syme",
  title =        "Extending monads with pattern matching",
  journal =      j-SIGPLAN,
  volume =       "46",
  number =       "12",
  pages =        "1--12",
  month =        dec,
  year =         "2011",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2096148.2034677",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Jan 17 17:51:46 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Sequencing of effectful computations can be neatly
                 captured using monads and elegantly written using do
                 notation. In practice such monads often allow
                 additional ways of composing computations, which have
                 to be written explicitly using combinators. We identify
                 joinads, an abstract notion of computation that is
                 stronger than monads and captures many such ad-hoc
                 extensions. In particular, joinads are monads with
                 three additional operations: one of type m a -{$>$} m b
                 -{$>$} m (a, b) captures various forms of parallel
                 composition, one of type m a -{$>$} m a -{$>$} m a that
                 is inspired by choice and one of type m a -{$>$} m (m
                 a) that captures aliasing of computations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "Haskell '11 conference proceedings.",
}

@Article{Pizzi:2011:FSM,
  author =       "Cinzia Pizzi and Pasi Rastas and Esko Ukkonen",
  title =        "Finding Significant Matches of Position Weight
                 Matrices in Linear Time",
  journal =      j-TCBB,
  volume =       "8",
  number =       "1",
  pages =        "69--79",
  month =        jan,
  year =         "2011",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2009.35",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Mon Dec 20 18:39:04 MST 2010",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "Position weight matrices are an important method for
                 modeling signals or motifs in biological sequences,
                 both in DNA and protein contexts. In this paper, we
                 present fast algorithms for the problem of finding
                 significant matches of such matrices. Our algorithms
                 are of the online type, and they generalize classical
                 multipattern matching, filtering, and superalphabet
                 techniques of combinatorial string matching to the
                 problem of weight matrix matching. Several variants of
                 the algorithms are developed, including multiple matrix
                 extensions that perform the search for several matrices
                 in one scan through the sequence database. Experimental
                 performance evaluation is provided to compare the new
                 techniques against each other as well as against some
                 other online and index-based algorithms proposed in the
                 literature.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Scarpazza:2011:TPT,
  author =       "Daniele Paolo Scarpazza",
  title =        "Top-Performance Tokenization and Small-Ruleset Regular
                 Expression Matching: a Quantitative Performance
                 Analysis and Optimization Study on the {Cell\slash B.E.
                 Processor}",
  journal =      j-INT-J-PARALLEL-PROG,
  volume =       "39",
  number =       "1",
  pages =        "3--32",
  month =        feb,
  year =         "2011",
  CODEN =        "IJPPE5",
  ISSN =         "0885-7458 (print), 1573-7640 (electronic)",
  ISSN-L =       "0885-7458",
  bibdate =      "Sat Mar 5 15:20:38 MST 2011",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0885-7458&volume=39&issue=1;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0885-7458&volume=39&issue=1&spage=3",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Parallel Programming",
  journal-URL =  "http://link.springer.com/journal/10766",
}

@Article{V:2011:BBI,
  author =       "Sharath Chandra V. and S. Selvakumar",
  title =        "{BIXSAN}: browser independent {XSS} sanitizer for
                 prevention of {XSS} attacks",
  journal =      j-SIGSOFT,
  volume =       "36",
  number =       "5",
  pages =        "1--7",
  month =        sep,
  year =         "2011",
  CODEN =        "SFENDP",
  DOI =          "https://doi.org/10.1145/2020976.2020996",
  ISSN =         "0163-5948 (print), 1943-5843 (electronic)",
  ISSN-L =       "0163-5948",
  bibdate =      "Wed Aug 1 17:16:04 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Proliferation of social networking sites, and web
                 applications which deliver dynamic content to the
                 clients have increased the user created HTML content in
                 the World Wide Web. This user-created HTML content can
                 be a notorious vector for Cross-Site Scripting,(XSS)
                 attacks. XSS attacks have the ability to target
                 websites, steal confidential information of the users,
                 and hijack their accounts, etc. XSS attacks are
                 launched to exploit the vulnerabilities of the poorly
                 developed application code and data processing systems.
                 In particular, improper validation of user created
                 content and un-sanitized custom error messages
                 introduce vulnerability for XSS attacks. It is a
                 challenging task for any security mechanism to filter
                 out only the harmful HTML content and retain safe
                 content with high fidelity and robustness. This has
                 motivated us to develop a mechanism that filters out
                 the harmful HTML content, and allows safe HTML. The
                 existing solutions to XSS attack include use of regular
                 expressions to detect the presence of dynamic content
                 and client side filtering mechanisms such as Noscript
                 and Noxes tool. The drawbacks of these solutions are
                 low fidelity and disallowing of benign HTML. In order
                 to overcome these drawbacks BIXSAN, a Browser
                 Independent XSS SANitizer for prevention of XSS attacks
                 is proposed in this paper. BIXSAN includes the
                 proposition of three pronged strategy. These strategies
                 are as follows: Firstly the use of complete HTML parser
                 is proposed rather than approximating the behavior of
                 parser. The advantage of using complete HTML parser is
                 that it offers high fidelity. Secondly the use of
                 modified browser, viz., JavaScript Tester is proposed
                 to detect the presence of JavaScript for filtering it
                 out. Thirdly, identification of static tags is proposed
                 for allowing the benign HTML. Further, BIXSAN includes
                 the proposition of a parse tree generator at client
                 side browser to reduce the anomalous behavior of
                 browsers. BIXSAN was experimented in various browsers
                 such as Opera, Netscape, Internet Explorer (IE), and
                 Firefox and found to work for all the browsers. From
                 the experiments conducted it has been found that the
                 proposed BIXSAN prevents the injection of XSS attack
                 code successfully. Further, it has been verified that
                 BIXSAN reduces the anomalous behavior of browse.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGSOFT Software Engineering Notes",
  journal-URL =  "https://dl.acm.org/loi/sigsoft",
}

@Article{Vespa:2011:DFA,
  author =       "Lucas Vespa and Ning Weng",
  title =        "Deterministic finite automata characterization and
                 optimization for scalable pattern matching",
  journal =      j-TACO,
  volume =       "8",
  number =       "1",
  pages =        "4:1--4:??",
  month =        apr,
  year =         "2011",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/1952998.1953002",
  ISSN =         "1544-3566 (print), 1544-3973 (electronic)",
  ISSN-L =       "1544-3566",
  bibdate =      "Wed Apr 27 07:54:03 MDT 2011",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/taco.bib",
  abstract =     "Memory-based Deterministic Finite Automata (DFA) are
                 ideal for pattern matching in network intrusion
                 detection systems due to their deterministic
                 performance and ease of update of new patterns, however
                 severe DFA memory requirements make it impractical to
                 implement thousands of patterns. This article aims to
                 understand the basic relationship between DFA
                 characteristics and memory requirements, and to design
                 a practical memory-based pattern matching engine. We
                 present a methodology that consists of theoretical DFA
                 characterization, encoding optimization, and
                 implementation architecture. Results show the validity
                 of the characterization metrics, effectiveness of the
                 encoding techniques, and efficiency of the memory-based
                 pattern engines.",
  acknowledgement = ack-nhfb,
  articleno =    "4",
  fjournal =     "ACM Transactions on Architecture and Code Optimization
                 (TACO)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J924",
}

@Article{Vespa:2011:MDM,
  author =       "Lucas Vespa and Ning Weng and Ramaswamy Ramaswamy",
  title =        "{MS-DFA}: Multiple-Stride Pattern Matching for
                 Scalable Deep Packet Inspection",
  journal =      j-COMP-J,
  volume =       "54",
  number =       "2",
  pages =        "285--303",
  month =        feb,
  year =         "2011",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/bxq077",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Fri Jan 28 12:33:17 MST 2011",
  bibsource =    "http://comjnl.oxfordjournals.org/content/54/2.toc;
                 https://www.math.utah.edu/pub/tex/bib/compj2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/54/2/285.full.pdf+html",
  acknowledgement = ack-nhfb,
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  onlinedate =   "December 1, 2010",
}

@InProceedings{Xu:2011:MDP,
  author =       "Y. Xu and L. Ma and Z. Liu and H. J. Chao",
  editor =       "{ACM}",
  booktitle =    "{ANCS'11: Proceedings of the 17th ACM\slash IEEE
                 Symposium on Architectures for Networking and
                 Communications Systems, Brooklyn, NY, USA, October
                 3--4, 2011}",
  title =        "A multi-dimensional progressive perfect hashing for
                 high-speed string matching",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "167--177",
  year =         "2011",
  DOI =          "https://doi.org/10.1109/ANCS.2011.33",
  ISBN =         "0-7695-4521-1",
  ISBN-13 =      "978-0-7695-4521-9",
  bibdate =      "Thu Aug 17 12:04:04 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Yang:2011:FME,
  author =       "Liu Yang and Rezwana Karim and Vinod Ganapathy and
                 Randy Smith",
  title =        "Fast, memory-efficient regular expression matching
                 with {NFA-OBDDs}",
  journal =      j-COMP-NET-AMSTERDAM,
  volume =       "55",
  number =       "15",
  pages =        "3376--3393",
  day =          "27",
  month =        oct,
  year =         "2011",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.comnet.2011.07.002",
  ISSN =         "1389-1286 (print), 1872-7069 (electronic)",
  ISSN-L =       "1389-1286",
  bibdate =      "Sat Feb 4 10:22:52 MST 2012",
  bibsource =    "http://www.sciencedirect.com/science/journal/13891286;
                 https://www.math.utah.edu/pub/tex/bib/compnetamsterdam2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S1389128611002489",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Networks",
  journal-URL =  "http://www.sciencedirect.com/science/journal/13891286",
}

@InProceedings{Yoshida:2011:PCP,
  author =       "S. Yoshida and T. Kida",
  title =        "On Performance of Compressed Pattern Matching on {VF}
                 Codes",
  crossref =     "Storer:2011:DDC",
  pages =        "486--486",
  year =         "2011",
  DOI =          "https://doi.org/10.1109/DCC.2011.89",
  bibdate =      "Tue Feb 5 11:58:09 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5749543",
  acknowledgement = ack-nhfb,
}

@Article{Zheng:2011:SPM,
  author =       "Kai Zheng and Hongbin Lu and Erich Nahum",
  title =        "Scalable Pattern Matching on Multicore Platform via
                 Dynamic Differentiated Distributed Detection
                 ({D$^4$})",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "60",
  number =       "3",
  pages =        "346--359",
  month =        mar,
  year =         "2011",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.2010.89",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Wed Jun 29 10:26:18 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Andoni:2012:SCE,
  author =       "Alexandr Andoni and Robert Krauthgamer",
  title =        "The smoothed complexity of edit distance",
  journal =      j-TALG,
  volume =       "8",
  number =       "4",
  pages =        "44:1--44:??",
  month =        sep,
  year =         "2012",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2344422.2344434",
  ISSN =         "1549-6325 (print), 1549-6333 (electronic)",
  ISSN-L =       "1549-6325",
  bibdate =      "Sat Mar 2 10:10:02 MST 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talg.bib",
  abstract =     "We initiate the study of the smoothed complexity of
                 sequence alignment, by proposing a semi-random model of
                 edit distance between two input strings, generated as
                 follows: First, an adversary chooses two binary strings
                 of length d and a longest common subsequence A of them.
                 Then, every character is perturbed independently with
                 probability p, except that A is perturbed in exactly
                 the same way inside the two strings. We design two
                 efficient algorithms that compute the edit distance on
                 smoothed instances up to a constant factor
                 approximation. The first algorithm runs in near-linear
                 time, namely d$^{{1 + \epsilon }}$ for any fixed $
                 \epsilon > 0 $. The second one runs in time sublinear
                 in $d$, assuming the edit distance is not too small.
                 These approximation and runtime guarantees are
                 significantly better than the bounds that were known
                 for worst-case inputs. Our technical contribution is
                 twofold. First, we rely on finding matches between
                 substrings in the two strings, where two substrings are
                 considered a match if their edit distance is relatively
                 small, a prevailing technique in commonly used
                 heuristics, such as PatternHunter of Ma et al. [2002].
                 Second, we effectively reduce the smoothed edit
                 distance to a simpler variant of (worst-case) edit
                 distance, namely, edit distance on permutations (a.k.a.
                 Ulam's metric). We are thus able to build on algorithms
                 developed for the Ulam metric, whose much better
                 algorithmic guarantees usually do not carry over to
                 general edit distance.",
  acknowledgement = ack-nhfb,
  articleno =    "44",
  fjournal =     "ACM Transactions on Algorithms (TALG)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J982",
}

@Article{Anonymous:2012:BRR,
  author =       "Anonymous",
  title =        "Book Review: {{\booktitle{Regular Expressions
                 Cookbook}}, Jan Goyvaerts and Steven Levithan, Second
                 edition, O'Reilly, ISBN 978-1-4493-1943-4}",
  journal =      j-NETWORK-SECURITY,
  volume =       "2012",
  number =       "11",
  pages =        "4--4",
  month =        nov,
  year =         "2012",
  CODEN =        "NTSCF5",
  DOI =          "https://doi.org/10.1016/S1353-4858(12)70100-9",
  ISSN =         "1353-4858 (print), 1872-9371 (electronic)",
  ISSN-L =       "1353-4858",
  bibdate =      "Mon Dec 4 17:00:48 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/network-security.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S1353485812701009",
  acknowledgement = ack-nhfb,
  fjournal =     "Network Security",
  journal-URL =  "https://www.sciencedirect.com/journal/network-security",
}

@Article{Asperti:2012:CPD,
  author =       "Andrea Asperti",
  title =        "A Compact Proof of Decidability for Regular Expression
                 Equivalence",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7406",
  pages =        "283--298",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-32347-8_19",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:21:53 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012g.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-32347-8_19/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-32347-8",
  book-URL =     "http://www.springerlink.com/content/978-3-642-32347-8",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Bando:2012:SLR,
  author =       "Masanori Bando and N. Sertac Artan and H. Jonathan
                 Chao",
  title =        "Scalable lookahead regular expression detection system
                 for deep packet inspection",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "20",
  number =       "3",
  pages =        "699--714",
  month =        jun,
  year =         "2012",
  CODEN =        "IEANEP",
  DOI =          "https://doi.org/10.1109/TNET.2011.2181411",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Mon Oct 22 11:13:33 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Regular expressions (RegExes) are widely used, yet
                 their inherent complexity often limits the total number
                 of RegExes that can be detected using a single chip for
                 a reasonable throughput. This limit on the number of
                 RegExes impairs the scalability of today's RegEx
                 detection systems. The scalability of existing schemes
                 is generally limited by the traditional detection
                 paradigm based on per-character-state processing and
                 state transition detection. The main focus of existing
                 schemes is on optimizing the number of states and the
                 required transitions, but not on optimizing the
                 suboptimal character-based detection method.
                 Furthermore, the potential benefits of allowing
                 out-of-sequence detection, instead of detecting
                 components of a RegEx in the order of appearance, have
                 not been explored. Lastly, the existing schemes do not
                 provide ways to adapt to the evolving RegExes. In this
                 paper, we propose Lookahead Finite Automata (LaFA) to
                 perform scalable RegEx detection. LaFA requires less
                 memory due to these three contributions: (1) providing
                 specialized and optimized detection modules to increase
                 resource utilization; (2) systematically reordering the
                 RegEx detection sequence to reduce the number of
                 concurrent operations; (3) sharing states among
                 automata for different RegExes to reduce resource
                 requirements. Here, we demonstrate that LaFA requires
                 an order of magnitude less memory compared to today's
                 state-of-the-art RegEx detection systems. Using LaFA, a
                 single-commodity field programmable gate array (FPGA)
                 chip can accommodate up to 25 000 (25 k) RegExes. Based
                 on the throughput of our LaFA prototype on FPGA, we
                 estimate that a 34-Gb/s throughput can be achieved.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J771",
}

@Article{Barcelo:2012:ELP,
  author =       "Pablo Barcel{\'o} and Leonid Libkin and Anthony W. Lin
                 and Peter T. Wood",
  title =        "Expressive Languages for Path Queries over
                 Graph-Structured Data",
  journal =      j-TODS,
  volume =       "37",
  number =       "4",
  pages =        "31:1--31:??",
  month =        dec,
  year =         "2012",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/2389241.2389250",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Thu Dec 20 19:03:29 MST 2012",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tods/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  abstract =     "For many problems arising in the setting of graph
                 querying (such as finding semantic associations in RDF
                 graphs, exact and approximate pattern matching,
                 sequence alignment, etc.), the power of standard
                 languages such as the widely studied conjunctive
                 regular path queries (CRPQs) is insufficient in at
                 least two ways. First, they cannot output paths and
                 second, more crucially, they cannot express
                 relationships among paths. We thus propose a class of
                 extended CRPQs, called ECRPQs, which add regular
                 relations on tuples of paths, and allow path variables
                 in the heads of queries. We provide several examples of
                 their usefulness in querying graph structured data, and
                 study their properties. We analyze query evaluation and
                 representation of tuples of paths in the output by
                 means of automata. We present a detailed analysis of
                 data and combined complexity of queries, and consider
                 restrictions that lower the complexity of ECRPQs to
                 that of relational conjunctive queries. We study the
                 containment problem, and look at further extensions
                 with first-order features, and with nonregular
                 relations that add arithmetic constraints on the
                 lengths of paths and numbers of occurrences of
                 labels.",
  acknowledgement = ack-nhfb,
  articleno =    "31",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
}

@Article{Baron:2012:SPM,
  author =       "Joshua Baron and Karim {El Defrawy} and Kirill
                 Minkovich and Rafail Ostrovsky and Eric Tressler",
  title =        "{5PM}: Secure Pattern Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7485",
  pages =        "222--240",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-32928-9_13",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:23:35 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012h.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-32928-9_13/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-32928-9",
  book-URL =     "http://www.springerlink.com/content/978-3-642-32928-9",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Bille:2012:SMV,
  author =       "Philip Bille and Inge Li G{\o}rtz and Hjalte Wedel
                 Vildh{\o}j and David Kofoed Wind",
  title =        "String matching with variable length gaps",
  journal =      j-THEOR-COMP-SCI,
  volume =       "443",
  number =       "1",
  pages =        "25--34",
  day =          "20",
  month =        jul,
  year =         "2012",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2012.03.029",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jun 11 14:41:50 MDT 2012",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397512002915",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Blunschi:2012:SGS,
  author =       "Lukas Blunschi and Claudio Jossen and Donald Kossmann
                 and Magdalini Mori and Kurt Stockinger",
  title =        "{SODA}: generating {SQL} for business users",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "5",
  number =       "10",
  pages =        "932--943",
  month =        jun,
  year =         "2012",
  CODEN =        "????",
  ISSN =         "2150-8097",
  bibdate =      "Tue Nov 6 16:43:13 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "The purpose of data warehouses is to enable business
                 analysts to make better decisions. Over the years the
                 technology has matured and data warehouses have become
                 extremely successful. As a consequence, more and more
                 data has been added to the data warehouses and their
                 schemas have become increasingly complex. These systems
                 still work great in order to generate pre-canned
                 reports. However, with their current complexity, they
                 tend to be a poor match for non tech-savvy business
                 analysts who need answers to ad-hoc queries that were
                 not anticipated. This paper describes the design,
                 implementation, and experience of the SODA system
                 (Search over DAta Warehouse). SODA bridges the gap
                 between the business needs of analysts and the
                 technical complexity of current data warehouses. SODA
                 enables a Google-like search experience for data
                 warehouses by taking keyword queries of business users
                 and automatically generating executable SQL. The key
                 idea is to use a graph pattern matching algorithm that
                 uses the metadata model of the data warehouse. Our
                 results with real data from a global player in the
                 financial services industry show that SODA produces
                 queries with high precision and recall, and makes it
                 much easier for business users to interactively explore
                 highly-complex data warehouses.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Bremler-Barr:2012:AMM,
  author =       "Anat Bremler-Barr and Yaron Koral",
  title =        "Accelerating multipattern matching on compressed
                 {HTTP} traffic",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "20",
  number =       "3",
  pages =        "970--983",
  month =        jun,
  year =         "2012",
  CODEN =        "IEANEP",
  DOI =          "https://doi.org/10.1109/TNET.2011.2172456",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Mon Oct 22 11:13:33 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Current security tools, using ``signature-based''
                 detection, do not handle compressed traffic, whose
                 market-share is constantly increasing. This paper
                 focuses on compressed HTTP traffic. HTTP uses GZIP
                 compression and requires some kind of decompression
                 phase before performing a string matching. We present a
                 novel algorithm, Aho--Corasick-based algorithm for
                 Compressed HTTP (ACCH), that takes advantage of
                 information gathered by the decompression phase in
                 order to accelerate the commonly used Aho--Corasick
                 pattern-matching algorithm. By analyzing real HTTP
                 traffic and real Web application firewall signatures,
                 we show that up to 84\% of the data can be skipped in
                 its scan. Surprisingly, we show that it is faster to
                 perform pattern matching on the compressed data, with
                 the penalty of decompression, than on regular traffic.
                 As far as we know, we are the first paper that analyzes
                 the problem of ``on-the-fly'' multipattern matching on
                 compressed HTTP traffic and suggest a solution.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J771",
}

@Article{Breslauer:2012:CTW,
  author =       "Dany Breslauer and Leszek G{\k{a}}sieniec and Roberto
                 Grossi",
  title =        "Constant-Time Word-Size String Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7354",
  pages =        "83--96",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-31265-6_7",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:20:44 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012f.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-31265-6_7/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-31265-6",
  book-URL =     "http://www.springerlink.com/content/978-3-642-31265-6",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Bulling:2012:MRR,
  author =       "Andreas Bulling and Jamie A. Ward and Hans Gellersen",
  title =        "Multimodal recognition of reading activity in transit
                 using body-worn sensors",
  journal =      j-TAP,
  volume =       "9",
  number =       "1",
  pages =        "2:1--2:??",
  month =        mar,
  year =         "2012",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2134203.2134205",
  ISSN =         "1544-3558 (print), 1544-3965 (electronic)",
  ISSN-L =       "1544-3558",
  bibdate =      "Fri Mar 30 17:41:07 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tap.bib",
  abstract =     "Reading is one of the most well-studied visual
                 activities. Vision research traditionally focuses on
                 understanding the perceptual and cognitive processes
                 involved in reading. In this work we recognize reading
                 activity by jointly analyzing eye and head movements of
                 people in an everyday environment. Eye movements are
                 recorded using an electrooculography (EOG) system; body
                 movements using body-worn inertial measurement units.
                 We compare two approaches for continuous recognition of
                 reading: String matching (STR) that explicitly models
                 the characteristic horizontal saccades during reading,
                 and a support vector machine (SVM) that relies on 90
                 eye movement features extracted from the eye movement
                 data. We evaluate both methods in a study performed
                 with eight participants reading while sitting at a
                 desk, standing, walking indoors and outdoors, and
                 riding a tram. We introduce a method to segment reading
                 activity by exploiting the sensorimotor coordination of
                 eye and head movements during reading. Using
                 person-independent training, we obtain an average
                 precision for recognizing reading of 88.9\% (recall
                 72.3\%) using STR and of 87.7\% (recall 87.9\%) using
                 SVM over all participants. We show that the proposed
                 segmentation scheme improves the performance of
                 recognizing reading events by more than 24\%. Our work
                 demonstrates that the joint analysis of eye and body
                 movements is beneficial for reading recognition and
                 opens up discussion on the wider applicability of a
                 multimodal recognition approach to other visual and
                 physical activities.",
  acknowledgement = ack-nhfb,
  articleno =    "2",
  fjournal =     "ACM Transactions on Applied Perception (TAP)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J932",
}

@Article{Burcsi:2012:AJP,
  author =       "P{\'e}ter Burcsi and Ferdinando Cicalese and Gabriele
                 Fici and Zsuzsanna Lipt{\'a}k",
  title =        "Algorithms for Jumbled Pattern Matching in Strings",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "23",
  number =       "2",
  pages =        "357--374",
  month =        feb,
  year =         "2012",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054112400175",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Sat Mar 24 15:27:30 MDT 2012",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Campanelli:2012:PMS,
  author =       "Matteo Campanelli and Domenico Cantone and Simone Faro
                 and Emanuele Giaquinta",
  title =        "Pattern Matching with Swaps in Practice",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "23",
  number =       "2",
  pages =        "323--342",
  month =        feb,
  year =         "2012",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054112400151",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Sat Mar 24 15:27:30 MDT 2012",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Cantone:2012:ABM,
  author =       "Domenico Cantone and Simone Faro and Emanuele
                 Giaquinta",
  title =        "Adapting {Boyer--Moore}-Like Algorithms for Searching
                 {Huffman} Encoded Texts",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "23",
  number =       "2",
  pages =        "343--356",
  month =        feb,
  year =         "2012",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054112400163",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Sat Mar 24 15:27:30 MDT 2012",
  bibsource =    "http://ejournals.wspc.com.sg/ijfcs/mkt/archive.shtml;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Champarnaud:2012:ARE,
  author =       "Jean-Marc Champarnaud and Hadrien Jeanne and Ludovic
                 Mignot",
  title =        "Approximate Regular Expressions and Their
                 Derivatives",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7183",
  pages =        "179--191",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-28332-1_16",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:25:47 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012b.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-28332-1_16/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-28332-1",
  book-URL =     "http://www.springerlink.com/content/978-3-642-28332-1",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Clifford:2012:PMM,
  author =       "Rapha{\"e}l Clifford and Markus Jalsenius and Ely
                 Porat and Benjamin Sach",
  title =        "Pattern Matching in Multiple Streams",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7354",
  pages =        "97--109",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-31265-6_8",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:20:44 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012f.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-31265-6_8/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-31265-6",
  book-URL =     "http://www.springerlink.com/content/978-3-642-31265-6",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@TechReport{Cox:2012:REM,
  author =       "Russ Cox",
  title =        "Regular Expression Matching with a Trigram Index, or
                 How {Google Code Search} worked",
  type =         "Report",
  institution =  "swtch.com",
  address =      "Cambridge, MA, USA",
  month =        jan,
  year =         "2012",
  bibdate =      "Tue Mar 27 11:39:17 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib;
                 https://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
  note =         "See also
                 \cite{Thompson:1968:PTR,Kernighan:1999:REL,Cox:2007:REM,Cox:2009:REM,Cox:2010:REM}",
  URL =          "http://swtch.com/~rsc/regexp/regexp4.html",
  acknowledgement = ack-nhfb,
}

@Article{Deng:2012:TPM,
  author =       "Ziqiang Deng and Husheng Liao and Hongyu Gao",
  title =        "Twig Pattern Matching Running on {XML} Streams",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7234",
  pages =        "35--42",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-29426-6_6",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:18:10 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012c.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-29426-6_6/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-29426-6",
  book-URL =     "http://www.springerlink.com/content/978-3-642-29426-6",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Fan:2012:PGD,
  author =       "Wenfei Fan and Xin Wang and Yinghui Wu",
  title =        "Performance guarantees for distributed reachability
                 queries",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "5",
  number =       "11",
  pages =        "1304--1316",
  month =        jul,
  year =         "2012",
  CODEN =        "????",
  ISSN =         "2150-8097",
  bibdate =      "Tue Nov 6 16:43:15 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "In the real world a graph is often fragmented and
                 distributed across different sites. This highlights the
                 need for evaluating queries on distributed graphs. This
                 paper proposes distributed evaluation algorithms for
                 three classes of queries: reachability for determining
                 whether one node can reach another, bounded
                 reachability for deciding whether there exists a path
                 of a bounded length between a pair of nodes, and
                 regular reachability for checking whether there exists
                 a path connecting two nodes such that the node labels
                 on the path form a string in a given regular
                 expression. We develop these algorithms based on
                 partial evaluation, to explore parallel computation.
                 When evaluating a query Q on a distributed graph G, we
                 show that these algorithms possess the following
                 performance guarantees, no matter how G is fragmented
                 and distributed: (1) each site is visited only once;
                 (2) the total network traffic is determined by the size
                 of Q and the fragmentation of G, independent of the
                 size of G; and (3) the response time is decided by the
                 largest fragment of G rather than the entire G. In
                 addition, we show that these algorithms can be readily
                 implemented in the MapReduce framework. Using synthetic
                 and real-life data, we experimentally verify that these
                 algorithms are scalable on large graphs, regardless of
                 how the graphs are distributed.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Faro:2012:FSA,
  author =       "Simone Faro and Thierry Lecroq",
  title =        "A Fast Suffix Automata Based Algorithm for Exact
                 Online String Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7381",
  pages =        "149--158",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-31606-7_13",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:21:20 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012f.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-31606-7_13/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-31606-7",
  book-URL =     "http://www.springerlink.com/content/978-3-642-31606-7",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Faro:2012:MSW,
  author =       "Simone Faro and Thierry Lecroq",
  title =        "A Multiple Sliding {Windows} Approach to Speed Up
                 String Matching Algorithms",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7276",
  pages =        "172--183",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-30850-5_16",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:19:01 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012d.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-30850-5_16/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-30850-5",
  book-URL =     "http://www.springerlink.com/content/978-3-642-30850-5",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Gawrychowski:2012:SEL,
  author =       "Pawe{\l} Gawrychowski",
  title =        "Simple and Efficient {LZW}-Compressed Multiple Pattern
                 Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7354",
  pages =        "232--242",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-31265-6_19",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:20:44 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012f.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-31265-6_19/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-31265-6",
  book-URL =     "http://www.springerlink.com/content/978-3-642-31265-6",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Gelade:2012:REC,
  author =       "Wouter Gelade and Marc Gyssens and Wim Martens",
  title =        "Regular Expressions with Counting: Weak versus Strong
                 Determinism",
  journal =      j-SIAM-J-COMPUT,
  volume =       "41",
  number =       "1",
  pages =        "160--190",
  month =        "????",
  year =         "2012",
  CODEN =        "SMJCAT",
  DOI =          "https://doi.org/10.1137/100814196",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  bibdate =      "Thu Feb 9 07:15:14 MST 2012",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/41/1;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://epubs.siam.org/sicomp/resource/1/smjcat/v41/i1/p160_s1",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
  onlinedate =   "January 31, 2012",
}

@Article{Gelade:2012:SCI,
  author =       "Wouter Gelade and Frank Neven",
  title =        "Succinctness of the Complement and Intersection of
                 Regular Expressions",
  journal =      j-TOCL,
  volume =       "13",
  number =       "1",
  pages =        "4:1--4:??",
  month =        jan,
  year =         "2012",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2071368.2071372",
  ISSN =         "1529-3785 (print), 1557-945X (electronic)",
  ISSN-L =       "1529-3785",
  bibdate =      "Thu Jan 26 16:08:06 MST 2012",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tocl/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tocl.bib",
  abstract =     "We study the succinctness of the complement and
                 intersection of regular expressions. In particular, we
                 show that when constructing a regular expression
                 defining the complement of a given regular expression,
                 a double exponential size increase cannot be avoided.
                 Similarly, when constructing a regular expression
                 defining the intersection of a fixed and an arbitrary
                 number of regular expressions, an exponential and
                 double exponential size increase, respectively, cannot
                 be avoided. All mentioned lower bounds improve the
                 existing ones by one exponential and are tight in the
                 sense that the target expression can be constructed in
                 the corresponding time class, that is, exponential or
                 double exponential time.",
  acknowledgement = ack-nhfb,
  articleno =    "4",
  fjournal =     "ACM Transactions on Computational Logic",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J773",
}

@Book{Goyvaerts:2012:REC,
  author =       "Jan Goyvaerts and Steven Levithan",
  title =        "Regular expressions cookbook",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Second",
  pages =        "xiv + 594",
  year =         "2012",
  ISBN =         "1-4493-1943-2 (paperback)",
  ISBN-13 =      "978-1-4493-1943-4 (paperback)",
  LCCN =         "NLS PB8.212.757/6",
  bibdate =      "Wed Nov 21 15:33:17 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ora.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 library.ox.ac.uk:210/ADVANCE",
  acknowledgement = ack-nhfb,
  subject =      "Computer programming; Text processing (Computer
                 science)",
  tableofcontents = "Introduction to regular expressions \\
                 Basic regular expression skills \\
                 Programming with regular expressions \\
                 Validation and formatting \\
                 Words, lines, and special characters \\
                 Numbers \\
                 Source code and log files \\
                 URLs, paths, and Internet addresses \\
                 Markup and data formats",
}

@InProceedings{Grossi:2012:WTM,
  author =       "Roberto Grossi and Giuseppe Ottaviano",
  title =        "The wavelet trie: maintaining an indexed sequence of
                 strings in compressed space",
  crossref =     "Krotzsch:2012:PPA",
  pages =        "203--214",
  year =         "2012",
  DOI =          "https://doi.org/10.1145/2213556.2213586",
  bibdate =      "Tue Nov 6 11:31:12 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "An indexed sequence of strings is a data structure for
                 storing a string sequence that supports random access,
                 searching, range counting and analytics operations,
                 both for exact matches and prefix search. String
                 sequences lie at the core of column-oriented databases,
                 log processing, and other storage and query tasks. In
                 these applications each string can appear several times
                 and the order of the strings in the sequence is
                 relevant. The prefix structure of the strings is
                 relevant as well: common prefixes are sought in strings
                 to extract interesting features from the sequence.
                 Moreover, space-efficiency is highly desirable as it
                 translates directly into higher performance, since more
                 data can fit in fast memory. We introduce and study the
                 problem of compressed indexed sequence of strings,
                 representing indexed sequences of strings in
                 nearly-optimal compressed space, both in the static and
                 dynamic settings, while preserving provably good
                 performance for the supported operations. We present a
                 new data structure for this problem, the Wavelet Trie,
                 which combines the classical Patricia Trie with the
                 Wavelet Tree, a succinct data structure for storing a
                 compressed sequence. The resulting Wavelet Trie
                 smoothly adapts to a sequence of strings that changes
                 over time. It improves on the state-of-the-art
                 compressed data structures by supporting a dynamic
                 alphabet (i.e. the set of distinct strings) and prefix
                 queries, both crucial requirements in the
                 aforementioned applications, and on traditional indexes
                 by reducing space occupancy to close to the entropy of
                 the sequence.",
  acknowledgement = ack-nhfb,
}

@InProceedings{Groz:2012:DRE,
  author =       "Benot{\^\i}t Groz and Sebastian Maneth and Slawek
                 Staworko",
  title =        "Deterministic regular expressions in linear time",
  crossref =     "Krotzsch:2012:PPA",
  pages =        "49--60",
  year =         "2012",
  DOI =          "https://doi.org/10.1145/2213556.2213566",
  bibdate =      "Tue Nov 6 11:31:12 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Deterministic regular expressions are widely used in
                 XML processing. For instance, all regular expressions
                 in DTDs and XML Schemas are required to be
                 deterministic. In this paper we show that determinism
                 of a regular expression $e$ can be tested in linear
                 time. The best known algorithms, based on the Glushkov
                 automaton, require {$ O(\sigma |e|) $} time, where $
                 \sigma $ is the number of distinct symbols in $e$. We
                 further show that matching a word $w$ against an
                 expression $e$ can be achieved in combined linear time
                 {$ O(|e| + |w|) $}, for a wide range of deterministic
                 regular expressions: (i) star-free (for multiple input
                 words), (ii) bounded-occurrence, i.e., expressions in
                 which each symbol appears a bounded number of times,
                 and (iii) bounded plus-depth, i.e., expressions in
                 which the nesting depth of alternating plus (union) and
                 concatenation symbols is bounded. Our algorithms use a
                 new structural decomposition of the parse tree of $e$.
                 For matching arbitrary deterministic regular
                 expressions we present an {$ O(|e| + |w| \log \log |e|)
                 $} time algorithm.",
  acknowledgement = ack-nhfb,
}

@Article{Grozea:2012:SMI,
  author =       "Cristian Grozea and Florin Manea and Mike M{\"u}ller
                 and Dirk Nowotka",
  title =        "String Matching with Involutions",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7445",
  pages =        "106--117",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-32894-7_11",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:22:44 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012g.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-32894-7_11/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-32894-7",
  book-URL =     "http://www.springerlink.com/content/978-3-642-32894-7",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Gulwani:2012:SDM,
  author =       "Sumit Gulwani and William R. Harris and Rishabh
                 Singh",
  title =        "Spreadsheet data manipulation using examples",
  journal =      j-CACM,
  volume =       "55",
  number =       "8",
  pages =        "97--105",
  month =        aug,
  year =         "2012",
  CODEN =        "CACMA2",
  DOI =          "https://doi.org/10.1145/2240236.2240260",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Mon Aug 20 11:13:09 MDT 2012",
  bibsource =    "http://www.acm.org/pubs/contents/journals/cacm/;
                 https://www.math.utah.edu/pub/tex/bib/cacm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Millions of computer end users need to perform tasks
                 over large spreadsheet data, yet lack the programming
                 knowledge to do such tasks automatically. We present a
                 programming by example methodology that allows end
                 users to automate such repetitive tasks. Our
                 methodology involves designing a domain-specific
                 language and developing a synthesis algorithm that can
                 learn programs in that language from user-provided
                 examples. We present instantiations of this methodology
                 for particular domains of tasks: (a) syntactic
                 transformations of strings using restricted forms of
                 regular expressions, conditionals, and loops, (b)
                 semantic transformations of strings involving lookup in
                 relational tables, and (c) layout transformations on
                 spreadsheet tables. We have implemented this technology
                 as an add-in for the Microsoft Excel Spreadsheet system
                 and have evaluated it successfully over several
                 benchmarks picked from various Excel help forums.",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
}

@Article{Hovland:2012:IPR,
  author =       "Dag Hovland",
  title =        "The inclusion problem for regular expressions",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "78",
  number =       "6",
  pages =        "1795--1813",
  month =        nov,
  year =         "2012",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1016/j.jcss.2011.12.003",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:27:20 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000011001486",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Hundt:2012:ETD,
  author =       "Christian Hundt and Florian Wendland",
  title =        "Efficient Two-Dimensional Pattern Matching with
                 Scaling and Rotation and Higher-Order Interpolation",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7354",
  pages =        "124--137",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-31265-6_10",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:20:44 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012f.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-31265-6_10/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-31265-6",
  book-URL =     "http://www.springerlink.com/content/978-3-642-31265-6",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Jiang:2012:SPM,
  author =       "Kunpeng Jiang and Huifang Guo and Shengping Zhu and
                 Julong Lan",
  title =        "Static Patterns Matching for High Speed Networks",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7473",
  pages =        "15--22",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-34062-8_2",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:23:20 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012h.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-34062-8_2/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-34062-8",
  book-URL =     "http://www.springerlink.com/content/978-3-642-34062-8",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Kiezun:2012:HSW,
  author =       "Adam Kiezun and Vijay Ganesh and Shay Artzi and Philip
                 J. Guo and Pieter Hooimeijer and Michael D. Ernst",
  title =        "{HAMPI}: a solver for word equations over strings,
                 regular expressions, and context-free grammars",
  journal =      j-TOSEM,
  volume =       "21",
  number =       "4",
  pages =        "25:1--25:??",
  month =        nov,
  year =         "2012",
  CODEN =        "ATSMER",
  DOI =          "https://doi.org/10.1145/2377656.2377662",
  ISSN =         "1049-331X (print), 1557-7392 (electronic)",
  ISSN-L =       "1049-331X",
  bibdate =      "Sat Feb 2 06:46:47 MST 2013",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tosem/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tosem.bib",
  abstract =     "Many automatic testing, analysis, and verification
                 techniques for programs can be effectively reduced to a
                 constraint-generation phase followed by a
                 constraint-solving phase. This separation of concerns
                 often leads to more effective and maintainable software
                 reliability tools. The increasing efficiency of
                 off-the-shelf constraint solvers makes this approach
                 even more compelling. However, there are few effective
                 and sufficiently expressive off-the-shelf solvers for
                 string constraints generated by analysis of
                 string-manipulating programs, so researchers end up
                 implementing their own ad-hoc solvers. To fulfill this
                 need, we designed and implemented Hampi, a solver for
                 string constraints over bounded string variables. Users
                 of Hampi specify constraints using regular expressions,
                 context-free grammars, equality between string terms,
                 and typical string operations such as concatenation and
                 substring extraction. Hampi then finds a string that
                 satisfies all the constraints or reports that the
                 constraints are unsatisfiable. We demonstrate Hampi's
                 expressiveness and efficiency by applying it to program
                 analysis and automated testing. We used Hampi in static
                 and dynamic analyses for finding SQL injection
                 vulnerabilities in Web applications with hundreds of
                 thousands of lines of code. We also used Hampi in the
                 context of automated bug finding in C programs using
                 dynamic systematic testing (also known as concolic
                 testing). We then compared Hampi with another string
                 solver, CFGAnalyzer, and show that Hampi is several
                 times faster. Hampi's source code, documentation, and
                 experimental data are available at
                 \path=http://people.csail.mit.edu/akiezun/hampi=",
  acknowledgement = ack-nhfb,
  articleno =    "25",
  fjournal =     "ACM Transactions on Software Engineering and
                 Methodology",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J790",
}

@Article{Klein:2012:SDM,
  author =       "Shmuel T. Klein and Dana Shapira",
  title =        "The String-to-Dictionary Matching Problem",
  journal =      j-COMP-J,
  volume =       "55",
  number =       "11",
  pages =        "1347--1356",
  month =        nov,
  year =         "2012",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/bxs004",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Thu Nov 1 11:25:36 MDT 2012",
  bibsource =    "http://comjnl.oxfordjournals.org/content/55/11.toc;
                 https://www.math.utah.edu/pub/tex/bib/compj2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/55/11/1347.full.pdf+html",
  acknowledgement = ack-nhfb,
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  onlinedate =   "February 17, 2012",
}

@Article{Krauss:2012:PPR,
  author =       "Alexander Krauss and Tobias Nipkow",
  title =        "Proof Pearl: Regular Expression Equivalence and
                 Relation Algebra",
  journal =      j-J-AUTOM-REASON,
  volume =       "49",
  number =       "1",
  pages =        "95--106",
  month =        jun,
  year =         "2012",
  CODEN =        "JAREEW",
  DOI =          "https://doi.org/10.1007/s10817-011-9223-4",
  ISSN =         "0168-7433 (print), 1573-0670 (electronic)",
  ISSN-L =       "0168-7433",
  bibdate =      "Sat Apr 2 10:51:00 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jautomreason.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/s10817-011-9223-4",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Autom. Reason.",
  fjournal =     "Journal of Automated Reasoning",
  journal-URL =  "http://link.springer.com/journal/10817",
}

@Article{Kucherov:2012:CDP,
  author =       "Gregory Kucherov and Yakov Nekrich and Tatiana
                 Starikovskaya",
  title =        "Cross-Document Pattern Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7354",
  pages =        "196--207",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-31265-6_16",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:20:44 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012f.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-31265-6_16/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-31265-6",
  book-URL =     "http://www.springerlink.com/content/978-3-642-31265-6",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Kulekci:2012:FPM,
  author =       "M. O{\u{g}}uzhan K{\"u}lekci and Jeffrey Scott Vitter
                 and Bojian Xu",
  title =        "Fast Pattern-Matching via $k$-bit Filtering Based Text
                 Decomposition",
  journal =      j-COMP-J,
  volume =       "55",
  number =       "1",
  pages =        "62--68",
  month =        jan,
  year =         "2012",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/bxq090",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Thu Dec 22 12:46:32 MST 2011",
  bibsource =    "http://comjnl.oxfordjournals.org/content/55/1.toc;
                 https://www.math.utah.edu/pub/tex/bib/compj2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/55/1/62.full.pdf+html",
  acknowledgement = ack-nhfb,
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  onlinedate =   "December 20, 2010",
}

@Article{Kurz:2012:CLI,
  author =       "Alexander Kurz and Tomoyuki Suzuki and Emilio Tuosto",
  title =        "A Characterisation of Languages on Infinite Alphabets
                 with Nominal Regular Expressions",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7604",
  pages =        "193--208",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-33475-7_14",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:25:41 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012k.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-33475-7_14/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-33475-7",
  book-URL =     "http://www.springerlink.com/content/978-3-642-33475-7",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Labarre:2012:RBP,
  author =       "Anthony Labarre",
  title =        "Review of {{\booktitle{Combinatorial Pattern Matching
                 Algorithms in Computational Biology using Perl and R}},
                 by Gabriel Valiente}",
  journal =      j-SIGACT,
  volume =       "43",
  number =       "3",
  pages =        "48--50",
  month =        sep,
  year =         "2012",
  CODEN =        "SIGNDM",
  DOI =          "https://doi.org/10.1145/2421096.2421107",
  ISSN =         "0163-5700 (print), 1943-5827 (electronic)",
  ISSN-L =       "0163-5700",
  bibdate =      "Sun May 5 10:25:39 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/s-plus.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigact.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGACT News",
  journal-URL =  "https://dl.acm.org/loi/sigact",
}

@Article{Labarre:2012:RCP,
  author =       "Anthony Labarre",
  title =        "Review of {{\booktitle{Combinatorial Pattern Matching
                 Algorithms in Computational Biology using Perl and R}},
                 by Gabriel Valiente}",
  journal =      j-SIGACT,
  volume =       "43",
  number =       "3",
  pages =        "48--50",
  month =        sep,
  year =         "2012",
  CODEN =        "SIGNDM",
  DOI =          "https://doi.org/10.1145/2421096.2421107",
  ISSN =         "0163-5700 (print), 1943-5827 (electronic)",
  ISSN-L =       "0163-5700",
  bibdate =      "Sun May 5 10:25:39 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/s-plus.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigact.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGACT News",
  journal-URL =  "http://dl.acm.org/citation.cfm?id=J697",
}

@Article{LeBlond:2012:CPB,
  author =       "Stevens {Le Blond} and Fabrice {Le Fessant} and Erwan
                 {Le Merrer}",
  title =        "Choosing partners based on availability in {P2P}
                 networks",
  journal =      j-TAAS,
  volume =       "7",
  number =       "2",
  pages =        "25:1--25:??",
  month =        jul,
  year =         "2012",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2240166.2240175",
  ISSN =         "1556-4665 (print), 1556-4703 (electronic)",
  ISSN-L =       "1556-4665",
  bibdate =      "Tue Nov 6 19:20:32 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/taas.bib",
  abstract =     "Availability of applications or devices is known to be
                 one of the most critical variables impacting the
                 performances of software systems. We study in this
                 article the problem of finding peers matching a given
                 availability pattern in a peer-to-peer (P2P) system.
                 Motivated by practical examples, we specify two formal
                 problems of availability matching that arise in real
                 applications: disconnection matching, where peers look
                 for partners expected to disconnect at the same time,
                 and presence matching, where peers look for partners
                 expected to be online simultaneously in the future. As
                 a scalable and inexpensive solution, we propose to use
                 epidemic protocols for topology management; we provide
                 corresponding metrics for both matching problems. We
                 evaluated this solution by simulating two P2P
                 applications, task scheduling and file storage, over a
                 new trace of the eDonkey network, the largest one with
                 availability information. We first proved the existence
                 of regularity patterns in the sessions of 14M peers
                 over 27 days. We also showed that, using only 7 days of
                 history, a simple predictor could select predictable
                 peers and successfully predicted their online periods
                 for the next week. Finally, simulations showed that our
                 simple solution provided good partners fast enough to
                 match the needs of both applications, and that
                 consequently, these applications performed as
                 efficiently at a much lower cost. This solution is
                 purely distributed as it does not rely on any central
                 server or oracle to operate. We believe that this work
                 will be useful for many P2P applications for which it
                 has been shown that choosing good partners, based on
                 their availability, drastically improves their
                 performance and stability.",
  acknowledgement = ack-nhfb,
  articleno =    "25",
  fjournal =     "ACM Transactions on Autonomous and Adaptive Systems
                 (TAAS)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1010",
}

@Article{Li:2012:MQG,
  author =       "Dan Li and Xiaoshan Li and Volker Stolz",
  title =        "Model querying with graphical notation of {QVT}
                 relations",
  journal =      j-SIGSOFT,
  volume =       "37",
  number =       "4",
  pages =        "1--8",
  month =        jul,
  year =         "2012",
  CODEN =        "SFENDP",
  DOI =          "https://doi.org/10.1145/2237796.2237808",
  ISSN =         "0163-5948 (print), 1943-5843 (electronic)",
  ISSN-L =       "0163-5948",
  bibdate =      "Wed Aug 1 17:16:14 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "As a standard high-level model transformation
                 language, QVT Relations defines a graphical notation,
                 which provides a concise, intuitive way to specify
                 transformations. However, QVT Relations relies only on
                 the textual language OCL for model querying, leading to
                 verbose and complicated OCL expressions. Here, we
                 present a graphical model query facility based on the
                 checking semantics and pattern matching of QVT
                 Relations. The query facility also borrows from QVT
                 Relations the graphical notation. In addition we
                 propose an approach to map the queries into XSLT to
                 facilitate their execution. We have developed a tool
                 for designing the queries and automatically generating
                 the XSLT programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGSOFT Software Engineering Notes",
  journal-URL =  "https://dl.acm.org/loi/sigsoft",
}

@Article{Li:2012:WHT,
  author =       "Yinan Li and Jignesh M. Patel and Allison Terrell",
  title =        "{WHAM}: a High-Throughput Sequence Alignment Method",
  journal =      j-TODS,
  volume =       "37",
  number =       "4",
  pages =        "28:1--28:??",
  month =        dec,
  year =         "2012",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/2389241.2389247",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Thu Dec 20 19:03:29 MST 2012",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tods/;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  abstract =     "Over the last decade, the cost of producing genomic
                 sequences has dropped dramatically due to the current
                 so-called next-generation sequencing methods. However,
                 these next-generation sequencing methods are critically
                 dependent on fast and sophisticated data processing
                 methods for aligning a set of query sequences to a
                 reference genome using rich string matching models. The
                 focus of this work is on the design, development and
                 evaluation of a data processing system for this crucial
                 ``short read alignment'' problem. Our system, called
                 WHAM, employs hash-based indexing methods and bitwise
                 operations for sequence alignments. It allows rich
                 match models and it is significantly faster than the
                 existing state-of-the-art methods. In addition, its
                 relative speedup over the existing method is poised to
                 increase in the future in which read sequence lengths
                 will increase.",
  acknowledgement = ack-nhfb,
  articleno =    "28",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
}

@Article{Lin:2012:AAA,
  author =       "Jie Lin and Don Adjeroh",
  title =        "All-Against-All Circular Pattern Matching",
  journal =      j-COMP-J,
  volume =       "55",
  number =       "7",
  pages =        "897--906",
  month =        jul,
  year =         "2012",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/bxr126",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Fri Jun 29 12:32:07 MDT 2012",
  bibsource =    "http://comjnl.oxfordjournals.org/content/55/7.toc;
                 https://www.math.utah.edu/pub/bibnet/authors/t/turing-alan-mathison.bib;
                 https://www.math.utah.edu/pub/tex/bib/compj2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Special Focus on the Centenary of Alan Turing.",
  URL =          "http://comjnl.oxfordjournals.org/content/55/7/897.full.pdf+html",
  acknowledgement = ack-nhfb,
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  onlinedate =   "December 16, 2011",
}

@InProceedings{Losemann:2012:CEP,
  author =       "Katja Losemann and Wim Martens",
  title =        "The complexity of evaluating path expressions in
                 {SPARQL}",
  crossref =     "Krotzsch:2012:PPA",
  pages =        "101--112",
  year =         "2012",
  DOI =          "https://doi.org/10.1145/2213556.2213573",
  bibdate =      "Tue Nov 6 11:31:12 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The World Wide Web Consortium (W3C) recently
                 introduced property paths in SPARQL 1.1, a query
                 language for RDF data. Property paths allow SPARQL
                 queries to evaluate regular expressions over graph
                 data. However, they differ from standard regular
                 expressions in several notable aspects. For example,
                 they have a limited form of negation, they have
                 numerical occurrence indicators as syntactic sugar, and
                 their semantics on graphs is defined in a non-standard
                 manner. We formalize the W3C semantics of property
                 paths and investigate various query evaluation problems
                 on graphs. More specifically, let x and y be two nodes
                 in an edge-labeled graph and r be an expression. We
                 study the complexities of (1) deciding whether there
                 exists a path from x to y that matches r and (2)
                 counting how many paths from x to y match r. Our main
                 results show that, compared to an alternative semantics
                 of regular expressions on graphs, the complexity of (1)
                 and (2) under W3C semantics is significantly higher.
                 Whereas the alternative semantics remains in polynomial
                 time for large fragments of expressions, the W3C
                 semantics makes problems (1) and (2) intractable almost
                 immediately. As a side-result, we prove that the
                 membership problem for regular expressions with
                 numerical occurrence indicators and negation is in
                 polynomial time.",
  acknowledgement = ack-nhfb,
}

@Article{Marschall:2012:PAA,
  author =       "Tobias Marschall and Inke Herms and Hans-Michael
                 Kaltenbach and Sven Rahmann",
  title =        "Probabilistic Arithmetic Automata and Their
                 Applications",
  journal =      j-TCBB,
  volume =       "9",
  number =       "6",
  pages =        "1737--1750",
  month =        nov,
  year =         "2012",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2012.109",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Wed Dec 19 17:33:56 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "We present a comprehensive review on probabilistic
                 arithmetic automata (PAAs), a general model to describe
                 chains of operations whose operands depend on chance,
                 along with two algorithms to numerically compute the
                 distribution of the results of such probabilistic
                 calculations. PAAs provide a unifying framework to
                 approach many problems arising in computational biology
                 and elsewhere. We present five different applications,
                 namely (1) pattern matching statistics on random texts,
                 including the computation of the distribution of
                 occurrence counts, waiting times, and clump sizes under
                 hidden Markov background models; (2) exact analysis of
                 window-based pattern matching algorithms; (3)
                 sensitivity of filtration seeds used to detect
                 candidate sequence alignments; (4) length and mass
                 statistics of peptide fragments resulting from
                 enzymatic cleavage reactions; and (5) read length
                 statistics of 454 and IonTorrent sequencing reads. The
                 diversity of these applications indicates the
                 flexibility and unifying character of the presented
                 framework. While the construction of a PAA depends on
                 the particular application, we single out a frequently
                 applicable construction method: We introduce
                 deterministic arithmetic automata (DAAs) to model
                 deterministic calculations on sequences, and
                 demonstrate how to construct a PAA from a given DAA and
                 a finite-memory random text model. This procedure is
                 used for all five discussed applications and greatly
                 simplifies the construction of PAAs. Implementations
                 are available as part of the MoSDi package. Its
                 application programming interface facilitates the rapid
                 development of new applications based on the PAA
                 framework.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Martens:2012:DAX,
  author =       "Wim Martens and Matthias Niewerth and Frank Neven and
                 Thomas Schwentick",
  title =        "Developing and analyzing {XSDs} through {BonXai}",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "5",
  number =       "12",
  pages =        "1994--1997",
  month =        aug,
  year =         "2012",
  CODEN =        "????",
  ISSN =         "2150-8097",
  bibdate =      "Tue Nov 6 16:43:21 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "BonXai is a versatile schema specification language
                 expressively equivalent to XML Schema. It is not
                 intended as a replacement for XML Schema but it can
                 serve as an additional, user-friendly front-end. It
                 offers a simple way and a lightweight syntax to specify
                 the context of elements based on regular expressions
                 rather than on types. In this demo we show the
                 front-end capabilities of BonXai and exemplify its
                 potential to offer a novel way to view existing XML
                 Schema Definitions. In particular, we present several
                 usage scenarios specifically targeted to showcase the
                 ease of specifying, modifying, and understanding XML
                 Schema Definitions through BonXai.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Moore:2012:MLF,
  author =       "J. Strother Moore",
  title =        "Meta-level features in an industrial-strength theorem
                 prover",
  journal =      j-SIGPLAN,
  volume =       "47",
  number =       "1",
  pages =        "425--426",
  month =        jan,
  year =         "2012",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2103621.2103707",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Mar 15 18:16:55 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/common-lisp.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The ACL2 theorem prover---the current incarnation of
                 `the' Boyer--Moore theorem prover---is a theorem prover
                 for an extension of a first-order, applicative subset
                 of Common Lisp. The ACL2 system provides a useful
                 specification and modeling language as well as a useful
                 mechanical theorem proving environment. ACL2 is in use
                 at several major microprocessor manufacturers to verify
                 functional correctness of important components of
                 commercial designs. This talk explores the design of
                 ACL2 and the tradeoffs that have turned out to be
                 pivotal to its success.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  remark =       "POPL '12 conference proceedings.",
}

@Article{Moraru:2012:EPM,
  author =       "Iulian Moraru and David G. Andersen",
  title =        "Exact pattern matching with feed-forward {Bloom}
                 filters",
  journal =      j-ACM-J-EXP-ALGORITHMICS,
  volume =       "17",
  number =       "??",
  pages =        "3.4:1--3.4:??",
  year =         "2012",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2133803.2330085",
  ISSN =         "1084-6654",
  bibdate =      "Wed Jan 21 07:42:23 MST 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jea.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This article presents a new, memory efficient and
                 cache-optimized algorithm for simultaneously searching
                 for a large number of patterns in a very large corpus.
                 This algorithm builds upon the Rabin--Karp string
                 search algorithm and incorporates a new type of Bloom
                 filter that we call a feed-forward Bloom filter. While
                 it retains the asymptotic time complexity of previous
                 multiple pattern matching algorithms, we show that this
                 technique, along with a CPU architecture-aware design
                 of the Bloom filter, can provide speed-ups between $ 2
                 \times $ and $ 30 \times $, and memory consumption
                 reductions as large as $ 50 \times $ when compared with
                 grep. Our algorithm is also well suited for
                 implementations on GPUs: A modern GPU can search for 3
                 million patterns at a rate of 580MB/s, and for 100
                 million patterns (a prohibitive number for traditional
                 algorithms) at a rate of 170MB/s.",
  acknowledgement = ack-nhfb,
  articleno =    "3.4",
  fjournal =     "Journal of Experimental Algorithmics (JEA)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J430",
}

@Article{Moreira:2012:DRE,
  author =       "Nelma Moreira and David Pereira and Sim{\~a}o Melo de
                 Sousa",
  title =        "Deciding Regular Expressions (In-){Equivalence} in
                 {Coq}",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7560",
  pages =        "98--113",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-33314-9_7",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:24:57 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012j.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-33314-9_7/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-33314-9",
  book-URL =     "http://www.springerlink.com/content/978-3-642-33314-9",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Neatherway:2012:TBA,
  author =       "Robin P. Neatherway and Steven J. Ramsay and Chih-Hao
                 Luke Ong",
  title =        "A traversal-based algorithm for higher-order model
                 checking",
  journal =      j-SIGPLAN,
  volume =       "47",
  number =       "9",
  pages =        "353--364",
  month =        sep,
  year =         "2012",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2398856.2364578",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Nov 15 16:40:19 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Higher-order model checking --- the model checking of
                 trees generated by higher-order recursion schemes
                 (HORS) --- is a natural generalisation of finite-state
                 and pushdown model checking. Recent work has shown that
                 it can serve as a basis for software model checking for
                 functional languages such as ML and Haskell. In this
                 paper, we introduce higher-order recursion schemes with
                 cases (HORSC), which extend HORS with a
                 definition-by-cases construct (to express program
                 branching based on data) and non-determinism (to
                 express abstractions of behaviours). This paper is a
                 study of the universal HORSC model checking problem for
                 deterministic trivial automata: does the automaton
                 accept every tree in the tree language generated by the
                 given HORSC? We first characterise the model checking
                 problem by an intersection type system extended with a
                 carefully restricted form of union types. We then
                 present an algorithm for deciding the model checking
                 problem, which is based on the notion of traversals
                 induced by the fully abstract game semantics of these
                 schemes, but presented as a goal-directed construction
                 of derivations in the intersection and union type
                 system. We view HORSC model checking as a suitable
                 backend engine for an approach to verifying functional
                 programs. We have implemented the algorithm in a tool
                 called TravMC, and demonstrated its effectiveness on a
                 test suite of programs, including abstract models of
                 functional programs obtained via an
                 abstraction-refinement procedure from pattern-matching
                 recursion schemes.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "ICFP '12 conference proceedings.",
}

@Article{Oh:2012:MTS,
  author =       "Doohwan Oh and Won W. Ro",
  title =        "Multi-Threading and Suffix Grouping on Massive
                 Multiple Pattern Matching Algorithm",
  journal =      j-COMP-J,
  volume =       "55",
  number =       "11",
  pages =        "1331--1346",
  month =        nov,
  year =         "2012",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/bxs002",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Thu Nov 1 11:25:36 MDT 2012",
  bibsource =    "http://comjnl.oxfordjournals.org/content/55/11.toc;
                 https://www.math.utah.edu/pub/tex/bib/compj2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/55/11/1331.full.pdf+html",
  acknowledgement = ack-nhfb,
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  onlinedate =   "February 2, 2012",
}

@Article{Pandey:2012:PDS,
  author =       "Kusum Lata Pandey and Suneeta Agarwal and Sanjay Misra
                 and Rajesh Prasad",
  title =        "Plagiarism Detection in Software Using Efficient
                 String Matching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7336",
  pages =        "147--156",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-31128-4_11",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:20:20 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012e.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-31128-4_11/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-31128-4",
  book-URL =     "http://www.springerlink.com/content/978-3-642-31128-4",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Pao:2012:MSS,
  author =       "Derek Pao and Xing Wang",
  title =        "Multi-Stride String Searching for High-Speed Content
                 Inspection",
  journal =      j-COMP-J,
  volume =       "55",
  number =       "10",
  pages =        "1216--1231",
  month =        oct,
  year =         "2012",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/bxs093",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Fri Oct 26 08:44:19 MDT 2012",
  bibsource =    "http://comjnl.oxfordjournals.org/content/55/10.toc;
                 https://www.math.utah.edu/pub/tex/bib/compj2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/55/10/1216.full.pdf+html",
  acknowledgement = ack-nhfb,
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  onlinedate =   "July 12, 2012",
}

@Article{Peng:2012:TBN,
  author =       "Kunyang Peng and Qunfeng Dong",
  title =        "{TCAM}-based {NFA} implementation",
  journal =      j-SIGMETRICS,
  volume =       "40",
  number =       "1",
  pages =        "379--380",
  month =        jun,
  year =         "2012",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2318857.2254802",
  ISSN =         "0163-5999 (print), 1557-9484 (electronic)",
  ISSN-L =       "0163-5999",
  bibdate =      "Fri Nov 9 11:06:39 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigmetrics.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Regular expression matching as the core packet
                 inspection engine of network systems has long been
                 striving to be both fast in matching speed (like DFA)
                 and scalable in storage space (like NFA). Recently,
                 ternary content addressable memory (TCAM) has been
                 investigated as a promising way out, by implementing
                 DFA using TCAM for regular express matching. In this
                 paper, we present the first method for implementing NFA
                 using TCAM. Through proper TCAM encoding, our method
                 matches each input byte with one single TCAM lookup ---
                 operating at precisely the same speed as DFA, while
                 using a number of TCAM entries that can be close to NFA
                 size. These properties make our method an important
                 step along a new path --- TCAM-based NFA implementation
                 --- towards the long-standing goal of fast and scalable
                 regular expression matching.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGMETRICS Performance Evaluation Review",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J618",
}

@Article{Salmela:2012:ACB,
  author =       "Leena Salmela",
  title =        "Average complexity of backward $q$-gram string
                 matching algorithms",
  journal =      j-INFO-PROC-LETT,
  volume =       "112",
  number =       "11",
  pages =        "433--437",
  day =          "15",
  month =        jun,
  year =         "2012",
  CODEN =        "IFPLAT",
  DOI =          "https://doi.org/10.1016/j.ipl.2012.02.010",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon May 21 07:12:59 MDT 2012",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019012000592",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Schafer:2012:DCH,
  author =       "Benjamin Carrion Schafer and Kazutoshi Wakabayashi",
  title =        "Divide and conquer high-level synthesis design space
                 exploration",
  journal =      j-TODAES,
  volume =       "17",
  number =       "3",
  pages =        "29:1--29:??",
  month =        jun,
  year =         "2012",
  CODEN =        "ATASFO",
  DOI =          "https://doi.org/10.1145/2209291.2209302",
  ISSN =         "1084-4309 (print), 1557-7309 (electronic)",
  ISSN-L =       "1084-4309",
  bibdate =      "Tue Jul 31 16:58:51 MDT 2012",
  bibsource =    "http://www.acm.org/pubs/contents/journals/todaes/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/todaes.bib",
  abstract =     "A method to accelerate the Design Space Exploration
                 (DSE) of behavioral descriptions for high-level
                 synthesis based on a divide and conquer method called
                 Divide and Conquer Exploration Algorithm (DC-ExpA) is
                 presented. DC-ExpA parses an untimed behavioral
                 description given in C or SystemC and clusters
                 interdependent operations which are in turn explored
                 independently by inserting synthesis directives
                 automatically in the source code. The method then
                 continues by combining the exploration results to
                 obtain only Pareto-optimal designs. This method
                 accelerates the design space exploration considerably
                 and is compared against two previous methods: an
                 Adaptive Simulated Annealer Exploration Algorithm
                 (ASA-ExpA) that shows good optimality at high runtimes,
                 and a pattern matching method called Clustering Design
                 Space Exploration Acceleration (CDS-ExpA) that is fast
                 but suboptimal. Our proposed method is orthogonal to
                 previous exploration methods that focus on the
                 exploration of resource constraints, allocation,
                 binding, and/or scheduling. Our proposed method on
                 contrary sets local synthesis directives that decide
                 upon the overall architectural structure of the design
                 (e.g., mapping certain arrays to memories or
                 registers). Results show that DC-ExpA explores the
                 design space on average 61\% faster than ASA-ExpA,
                 obtaining comparable results indicated by several
                 quality indicators, for example, distance to reference
                 Pareto-front, hypervolume, and Pareto dominance.
                 Compared to CDS-ExpA it is 69\% slower, but obtains
                 much betters results compared to the same quality
                 indicators.",
  acknowledgement = ack-nhfb,
  articleno =    "29",
  fjournal =     "ACM Transactions on Design Automation of Electronic
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J776",
}

@Article{Schmid:2012:ICR,
  author =       "Markus L. Schmid",
  title =        "Inside the Class of {REGEX} Languages",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7410",
  pages =        "73--84",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-31653-1_8",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:21:58 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012g.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-31653-1_8/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-31653-1",
  book-URL =     "http://www.springerlink.com/content/978-3-642-31653-1",
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Singh:2012:LSS,
  author =       "Rishabh Singh and Sumit Gulwani",
  title =        "Learning semantic string transformations from
                 examples",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "5",
  number =       "8",
  pages =        "740--751",
  month =        apr,
  year =         "2012",
  CODEN =        "????",
  ISSN =         "2150-8097",
  bibdate =      "Tue Nov 6 16:43:10 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "We address the problem of performing semantic
                 transformations on strings, which may represent a
                 variety of data types (or their combination) such as a
                 column in a relational table, time, date, currency,
                 etc. Unlike syntactic transformations, which are based
                 on regular expressions and which interpret a string as
                 a sequence of characters, semantic transformations
                 additionally require exploiting the semantics of the
                 data type represented by the string, which may be
                 encoded as a database of relational tables. Manually
                 performing such transformations on a large collection
                 of strings is error prone and cumbersome, while
                 programmatic solutions are beyond the skill-set of
                 end-users. We present a programming by example
                 technology that allows end-users to automate such
                 repetitive tasks. We describe an expressive
                 transformation language for semantic manipulation that
                 combines table lookup operations and syntactic
                 manipulations. We then present a synthesis algorithm
                 that can learn all transformations in the language that
                 are consistent with the user-provided set of
                 input-output examples. We have implemented this
                 technology as an add-in for the Microsoft Excel
                 Spreadsheet system and have evaluated it successfully
                 over several benchmarks picked from various Excel
                 help-forums.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Steele:2012:PLL,
  author =       "Guy L. {Steele, Jr.}",
  title =        "Programming language life cycles",
  journal =      j-SIGADA-LETTERS,
  volume =       "32",
  number =       "3",
  pages =        "95--96",
  month =        dec,
  year =         "2012",
  CODEN =        "AALEE5",
  DOI =          "https://doi.org/10.1145/2402709.2402705",
  ISSN =         "1094-3641 (print), 1557-9476 (electronic)",
  ISSN-L =       "1094-3641",
  bibdate =      "Sun May 5 10:05:12 MDT 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigada.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "HILT '12 conference proceedings.",
  abstract =     "New programming languages keep getting invented, and
                 old languages (most of them) eventually die. Many
                 languages are eventually reduced to, if anything, a
                 single surviving slogan or idea. (Examples: COBOL =
                 programs look like English; SNOBOL = pattern matching
                 on strings.) How do ideas about what programmers want
                 or need to do drive decisions made by language
                 designers? We'll look at some of these ideas, and also
                 at the origin, evolution, and possible destinations of
                 certain ideas pursued during the development of the
                 Fortress programming language, speculating on the
                 forces that drive these life cycles.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGAda Ada Letters",
  journal-URL =  "https://dl.acm.org/loi/sigada",
}

@Article{Sun:2012:ESM,
  author =       "Zhao Sun and Hongzhi Wang and Haixun Wang and Bin Shao
                 and Jianzhong Li",
  title =        "Efficient subgraph matching on billion node graphs",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "5",
  number =       "9",
  pages =        "788--799",
  month =        may,
  year =         "2012",
  CODEN =        "????",
  ISSN =         "2150-8097",
  bibdate =      "Tue Nov 6 16:43:11 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "The ability to handle large scale graph data is
                 crucial to an increasing number of applications. Much
                 work has been dedicated to supporting basic graph
                 operations such as subgraph matching, reachability,
                 regular expression matching, etc. In many cases, graph
                 indices are employed to speed up query processing.
                 Typically, most indices require either super-linear
                 indexing time or super-linear indexing space.
                 Unfortunately, for very large graphs, super-linear
                 approaches are almost always infeasible. In this paper,
                 we study the problem of subgraph matching on
                 billion-node graphs. We present a novel algorithm that
                 supports efficient subgraph matching for graphs
                 deployed on a distributed memory store. Instead of
                 relying on super-linear indices, we use efficient graph
                 exploration and massive parallel computing for query
                 processing. Our experimental results demonstrate the
                 feasibility of performing subgraph matching on
                 web-scale graph data.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{TranconyWidemann:2012:PPMa,
  author =       "Baltasar {Tranc{\'o}n y Widemann} and Markus Lepper",
  title =        "{Paisley}: Pattern Matching {\`a} la Carte",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7307",
  pages =        "240--247",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-30476-7_16",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:19:43 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012e.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-30476-7_16/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-30476-7",
  book-URL =     "http://www.springerlink.com/content/978-3-642-30476-7",
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{TranconyWidemann:2012:PPMb,
  author =       "Baltasar {Tranc{\'o}n y Widemann} and Markus Lepper",
  title =        "{Paisley}: Pattern Matching {\`a} la Carte",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7307",
  pages =        "240--247",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-30476-7_16",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:19:43 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012e.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-30476-7_16/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-30476-7",
  book-URL =     "http://www.springerlink.com/content/978-3-642-30476-7",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Tumeo:2012:ACS,
  author =       "Antonino Tumeo and Oreste Villa and Daniel G.
                 Chavarria-Miranda",
  title =        "{Aho--Corasick} String Matching on Shared and
                 Distributed-Memory Parallel Architectures",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "23",
  number =       "3",
  pages =        "436--443",
  month =        mar,
  year =         "2012",
  CODEN =        "ITDSEO",
  DOI =          "https://doi.org/10.1109/TPDS.2011.181",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Thu Mar 01 14:48:10 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranspardistsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Parallel and Distributed
                 Systems",
  journal-URL =  "http://www.computer.org/tpds/archives.htm",
}

@Article{Valgenti:2012:GGH,
  author =       "Victor C. Valgenti and Jatin Chhugani and Yan Sun and
                 Nadathur Satish and Min Sik Kim and Changkyu Kim",
  title =        "{GPP}-Grep: High-Speed Regular Expression Processing
                 Engine on General Purpose Processors",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "7462",
  pages =        "334--353",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-33338-5_17",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Dec 19 15:23:06 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs2012h.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-642-33338-5_17/",
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-33338-5",
  book-URL =     "http://www.springerlink.com/content/978-3-642-33338-5",
  fjournal =     "Lecture Notes in Computer Science",
  journal-URL =  "http://link.springer.com/bookseries/558",
}

@Article{Varol:2012:HMA,
  author =       "Cihan Varol and Coskun Bayrak",
  title =        "Hybrid Matching Algorithm for Personal Names",
  journal =      j-JDIQ,
  volume =       "3",
  number =       "4",
  pages =        "8:1--8:??",
  month =        sep,
  year =         "2012",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2348828.2348830",
  ISSN =         "1936-1955",
  bibdate =      "Thu Nov 8 18:27:14 MST 2012",
  bibsource =    "http://www.acm.org/pubs/contents/journals/jdqi/;
                 https://www.math.utah.edu/pub/tex/bib/jdiq.bib;
                 https://www.math.utah.edu/pub/tex/bib/spell.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Companies acquire personal information from phone,
                 World Wide Web, or email in order to sell or send an
                 advertisement about their product. However, when this
                 information is acquired, moved, copied, or edited, the
                 data may lose its quality. Often, the use of data
                 administrators or a tool that has limited capabilities
                 to correct the mistyped information can cause many
                 problems. Moreover, most of the correction techniques
                 are particularly implemented for the words used in
                 daily conversations. Since personal names have
                 different characteristics compared to general text, a
                 hybrid matching algorithm (PNRS) which employs phonetic
                 encoding, string matching and statistical facts to
                 provide a possible candidate for misspelled names is
                 developed. At the end, the efficiency of the proposed
                 algorithm is compared with other well known spelling
                 correction techniques.",
  acknowledgement = ack-nhfb,
  articleno =    "8",
  fjournal =     "Journal of Data and Information Quality (JDIQ)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1191",
}

@Article{Veanes:2012:SFS,
  author =       "Margus Veanes and Pieter Hooimeijer and Benjamin
                 Livshits and David Molnar and Nikolaj Bjorner",
  title =        "Symbolic finite state transducers: algorithms and
                 applications",
  journal =      j-SIGPLAN,
  volume =       "47",
  number =       "1",
  pages =        "137--150",
  month =        jan,
  year =         "2012",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2103621.2103674",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Mar 15 18:16:55 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Finite automata and finite transducers are used in a
                 wide range of applications in software engineering,
                 from regular expressions to specification languages. We
                 extend these classic objects with symbolic alphabets
                 represented as parametric theories. Admitting
                 potentially infinite alphabets makes this
                 representation strictly more general and succinct than
                 classical finite transducers and automata over strings.
                 Despite this, the main operations, including
                 composition, checking that a transducer is
                 single-valued, and equivalence checking for
                 single-valued symbolic finite transducers are effective
                 given a decision procedure for the background theory.
                 We provide novel algorithms for these operations and
                 extend composition to symbolic transducers augmented
                 with registers. Our base algorithms are unusual in that
                 they are nonconstructive, therefore, we also supply a
                 separate model generation algorithm that can quickly
                 find counterexamples in the case two symbolic finite
                 transducers are not equivalent. The algorithms give
                 rise to a complete decidable algebra of symbolic
                 transducers. Unlike previous work, we do not need any
                 syntactic restriction of the formulas on the
                 transitions, only a decision procedure. In practice we
                 leverage recent advances in satisfiability modulo
                 theory (SMT) solvers. We demonstrate our techniques on
                 four case studies, covering a wide range of
                 applications. Our techniques can synthesize string
                 pre-images in excess of 8,000 bytes in roughly a
                 minute, and we find that our new encodings
                 significantly outperform previous techniques in
                 succinctness and speed of analysis.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "POPL '12 conference proceedings.",
}

@Article{Volanschi:2012:PMM,
  author =       "Nic Volanschi",
  title =        "Pattern matching for the masses using custom
                 notations",
  journal =      j-SCI-COMPUT-PROGRAM,
  volume =       "77",
  number =       "5",
  pages =        "609--635",
  day =          "1",
  month =        may,
  year =         "2012",
  CODEN =        "SCPGD4",
  DOI =          "https://doi.org/10.1016/j.scico.2011.12.002",
  ISSN =         "0167-6423 (print), 1872-7964 (electronic)",
  ISSN-L =       "0167-6423",
  bibdate =      "Wed Feb 29 07:03:02 MST 2012",
  bibsource =    "http://www.sciencedirect.com/science/journal/01676423;
                 https://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0167642311002243",
  acknowledgement = ack-nhfb,
  fjournal =     "Science of Computer Programming",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01676423",
}

@Article{Wang:2012:GRE,
  author =       "Yu Wang and Yang Xiang and Wanlei Zhou and Shunzheng
                 Yu",
  title =        "Generating regular expression signatures for network
                 traffic classification in trusted network management",
  journal =      j-J-NETW-COMPUT-APPL,
  volume =       "35",
  number =       "3",
  pages =        "992--1000",
  month =        may,
  year =         "2012",
  CODEN =        "JNCAF3",
  ISSN =         "1084-8045 (print), 1095-8592 (electronic)",
  ISSN-L =       "1084-8045",
  bibdate =      "Wed Jan 28 15:44:17 MST 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jnetwcomputappl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S1084804511000713",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Netw. Comput. Appl.",
  fjournal =     "Journal of Network and Computer Applications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/10848045",
}

@Article{Wang:2012:RCM,
  author =       "Shu-Lin Wang and Yi-Hai Zhu and Wei Jia and De-Shuang
                 Huang",
  title =        "Robust Classification Method of Tumor Subtype by Using
                 Correlation Filters",
  journal =      j-TCBB,
  volume =       "9",
  number =       "2",
  pages =        "580--591",
  month =        mar,
  year =         "2012",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2011.135",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Thu Jan 26 16:30:44 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "Tumor classification based on Gene Expression Profiles
                 (GEPs), which is of great benefit to the accurate
                 diagnosis and personalized treatment for different
                 types of tumor, has drawn a great attention in recent
                 years. This paper proposes a novel tumor classification
                 method based on correlation filters to identify the
                 overall pattern of tumor subtype hidden in
                 differentially expressed genes. Concretely, two
                 correlation filters, i.e., Minimum Average Correlation
                 Energy (MACE) and Optimal Tradeoff Synthetic
                 Discriminant Function (OTSDF), are introduced to
                 determine whether a test sample matches the templates
                 synthesized for each subclass. The experiments on six
                 publicly available data sets indicate that the proposed
                 method is robust to noise, and can more effectively
                 avoid the effects of dimensionality curse.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Yang:2012:HPC,
  author =       "Yi-Hua Edward Yang and Viktor K. Prasanna",
  title =        "High-Performance and Compact Architecture for Regular
                 Expression Matching on {FPGA}",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "61",
  number =       "7",
  pages =        "1013--1025",
  month =        jul,
  year =         "2012",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.2011.129",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Fri Jul 27 08:32:31 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Yun:2012:ETB,
  author =       "SangKyun Yun",
  title =        "An Efficient {TCAM}-Based Implementation of
                 Multipattern Matching Using Covered State Encoding",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "61",
  number =       "2",
  pages =        "213--221",
  month =        feb,
  year =         "2012",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.2010.273",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Fri Jan 13 17:55:10 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Zeng:2012:CSB,
  author =       "Qiang Zeng and Hai Zhuge",
  title =        "Comments on {``Stack-based Algorithms for Pattern
                 Matching on DAGs''}",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "5",
  number =       "7",
  pages =        "668--679",
  month =        mar,
  year =         "2012",
  CODEN =        "????",
  ISSN =         "2150-8097",
  bibdate =      "Tue Nov 6 16:43:09 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "The paper ``Stack-based Algorithms for Pattern
                 Matching on DAGs'' generalizes the classical holistic
                 twig join algorithms and proposes PathStackD,
                 TwigStackD and DagStackD to respectively evaluate path,
                 twig and DAG pattern queries on directed acyclic
                 graphs. In this paper, we investigate the major results
                 of that paper, pointing out several discrepancies and
                 proposing solutions to resolving them. We show that the
                 original algorithms do not find particular types of
                 query solutions that are common in practice. We also
                 analyze the effect of an underlying assumption on the
                 correctness of the algorithms and discuss the
                 pre-filtering process that the original work proposes
                 to prune redundant nodes. Our experimental study on
                 both real and synthetic data substantiates our
                 conclusions.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Zhai:2012:MML,
  author =       "Deming Zhai and Hong Chang and Shiguang Shan and Xilin
                 Chen and Wen Gao",
  title =        "Multiview Metric Learning with Global Consistency and
                 Local Smoothness",
  journal =      j-TIST,
  volume =       "3",
  number =       "3",
  pages =        "53:1--53:??",
  month =        may,
  year =         "2012",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2168752.2168767",
  ISSN =         "2157-6904 (print), 2157-6912 (electronic)",
  ISSN-L =       "2157-6904",
  bibdate =      "Tue Nov 6 18:47:23 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tist.bib",
  abstract =     "In many real-world applications, the same object may
                 have different observations (or descriptions) from
                 multiview observation spaces, which are highly related
                 but sometimes look different from each other.
                 Conventional metric-learning methods achieve
                 satisfactory performance on distance metric computation
                 of data in a single-view observation space, but fail to
                 handle well data sampled from multiview observation
                 spaces, especially those with highly nonlinear
                 structure. To tackle this problem, we propose a new
                 method called Multiview Metric Learning with Global
                 consistency and Local smoothness (MVML-GL) under a
                 semisupervised learning setting, which jointly
                 considers global consistency and local smoothness. The
                 basic idea is to reveal the shared latent feature space
                 of the multiview observations by embodying global
                 consistency constraints and preserving local geometric
                 structures. Specifically, this framework is composed of
                 two main steps. In the first step, we seek a global
                 consistent shared latent feature space, which not only
                 preserves the local geometric structure in each space
                 but also makes those labeled corresponding instances as
                 close as possible. In the second step, the explicit
                 mapping functions between the input spaces and the
                 shared latent space are learned via regularized locally
                 linear regression. Furthermore, these two steps both
                 can be solved by convex optimizations in closed form.
                 Experimental results with application to manifold
                 alignment on real-world datasets of pose and facial
                 expression demonstrate the effectiveness of the
                 proposed method.",
  acknowledgement = ack-nhfb,
  articleno =    "53",
  fjournal =     "ACM Transactions on Intelligent Systems and Technology
                 (TIST)",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1318",
}

@Article{Zhou:2012:PSG,
  author =       "Yahan Zhou and Haibin Huang and Li-Yi Wei and Rui
                 Wang",
  title =        "Point sampling with general noise spectrum",
  journal =      j-TOG,
  volume =       "31",
  number =       "4",
  pages =        "76:1--76:11",
  month =        jul,
  year =         "2012",
  CODEN =        "ATGRDF",
  ISSN =         "0730-0301 (print), 1557-7368 (electronic)",
  ISSN-L =       "0730-0301",
  bibdate =      "Thu Jul 26 18:44:43 MDT 2012",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tog/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tog.bib",
  abstract =     "Point samples with different spectral noise properties
                 (often defined using color names such as white, blue,
                 green, and red) are important for many science and
                 engineering disciplines including computer graphics.
                 While existing techniques can easily produce white and
                 blue noise samples, relatively little is known for
                 generating other noise patterns. In particular, no
                 single algorithm is available to generate different
                 noise patterns according to user-defined spectra. In
                 this paper, we describe an algorithm for generating
                 point samples that match a user-defined Fourier
                 spectrum function. Such a spectrum function can be
                 either obtained from a known sampling method, or
                 completely constructed by the user. Our key idea is to
                 convert the Fourier spectrum function into a
                 differential distribution function that describes the
                 samples' local spatial statistics; we then use a
                 gradient descent solver to iteratively compute a sample
                 set that matches the target differential distribution
                 function. Our algorithm can be easily modified to
                 achieve adaptive sampling, and we provide a GPU-based
                 implementation. Finally, we present a variety of
                 different sample patterns obtained using our algorithm,
                 and demonstrate suitable applications.",
  acknowledgement = ack-nhfb,
  articleno =    "76",
  fjournal =     "ACM Transactions on Graphics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J778",
}

@Article{Zhu:2012:GFE,
  author =       "Haohan Zhu and George Kollios and Vassilis Athitsos",
  title =        "A generic framework for efficient and effective
                 subsequence retrieval",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "5",
  number =       "11",
  pages =        "1579--1590",
  month =        jul,
  year =         "2012",
  CODEN =        "????",
  ISSN =         "2150-8097",
  bibdate =      "Tue Nov 6 16:43:15 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "This paper proposes a general framework for matching
                 similar subsequences in both time series and string
                 databases. The matching results are pairs of query
                 subsequences and database subsequences. The framework
                 finds all possible pairs of similar subsequences if the
                 distance measure satisfies the ``consistency''
                 property, which is a property introduced in this paper.
                 We show that most popular distance functions, such as
                 the Euclidean distance, DTW, ERP, the Frech{\'e}t
                 distance for time series, and the Hamming distance and
                 Levenshtein distance for strings, are all
                 ``consistent''. We also propose a generic index
                 structure for metric spaces named ``reference net''.
                 The reference net occupies {$ O(n) $} space, where $n$
                 is the size of the dataset and is optimized to work
                 well with our framework. The experiments demonstrate
                 the ability of our method to improve retrieval
                 performance when combined with diverse distance
                 measures. The experiments also illustrate that the
                 reference net scales well in terms of space overhead
                 and query time.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Zou:2012:APM,
  author =       "Lei Zou and Lei Chen and M. Tamer {\"O}zsu and Dongyan
                 Zhao",
  title =        "Answering pattern match queries in large graph
                 databases via graph embedding",
  journal =      j-VLDB-J,
  volume =       "21",
  number =       "1",
  pages =        "97--120",
  month =        feb,
  year =         "2012",
  CODEN =        "VLDBFR",
  DOI =          "https://doi.org/10.1007/s00778-011-0238-6",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Tue Jan 31 06:48:57 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  abstract =     "The growing popularity of graph databases has
                 generated interesting data management problems, such as
                 subgraph search, shortest path query, reachability
                 verification, and pattern matching. Among these, a
                 pattern match query is more flexible compared with a
                 subgraph search and more informative compared with a
                 shortest path or a reachability query. In this paper,
                 we address distance-based pattern match queries over a
                 large data graph G. Due to the huge search space, we
                 adopt a filter-and-refine framework to answer a pattern
                 match query over a large graph. We first find a set of
                 candidate matches by a graph embedding technique and
                 then evaluate these to find the exact matches.",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Zu:2012:GBN,
  author =       "Yuan Zu and Ming Yang and Zhonghu Xu and Lin Wang and
                 Xin Tian and Kunyang Peng and Qunfeng Dong",
  title =        "{GPU}-based {NFA} implementation for memory efficient
                 high speed regular expression matching",
  journal =      j-SIGPLAN,
  volume =       "47",
  number =       "8",
  pages =        "129--140",
  month =        aug,
  year =         "2012",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2370036.2145833",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Sep 12 12:11:57 MDT 2012",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "PPOPP '12 conference proceedings.",
  abstract =     "Regular expression pattern matching is the foundation
                 and core engine of many network functions, such as
                 network intrusion detection, worm detection, traffic
                 analysis, web applications and so on. DFA-based
                 solutions suffer exponentially exploding state space
                 and cannot be remedied without sacrificing matching
                 speed. Given this scalability problem of DFA-based
                 methods, there has been increasing interest in
                 NFA-based methods for memory efficient regular
                 expression matching. To achieve high matching speed
                 using NFA, it requires potentially massive parallel
                 processing, and hence represents an ideal programming
                 task on Graphic Processor Unit (GPU). Based on in-depth
                 understanding of NFA properties as well as GPU
                 architecture, we propose effective methods for fitting
                 NFAs into GPU architecture through proper data
                 structure and parallel programming design, so that
                 GPU's parallel processing power can be better utilized
                 to achieve high speed regular expression matching.
                 Experiment results demonstrate that, compared with the
                 existing GPU-based NFA implementation method [9], our
                 proposed methods can boost matching speed by 29~46
                 times, consistently yielding above 10Gbps matching
                 speed on NVIDIA GTX-460 GPU. Meanwhile, our design only
                 needs a small amount of memory space, growing
                 exponentially more slowly than DFA size. These results
                 make our design an effective solution for memory
                 efficient high speed regular expression matching, and
                 clearly demonstrate the power and potential of GPU as a
                 platform for memory efficient high speed regular
                 expression matching.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Abel:2013:CPI,
  author =       "Andreas Abel and Brigitte Pientka and David Thibodeau
                 and Anton Setzer",
  title =        "{Copatterns}: programming infinite structures by
                 observations",
  journal =      j-SIGPLAN,
  volume =       "48",
  number =       "1",
  pages =        "27--38",
  month =        jan,
  year =         "2013",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2480359.2429075",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jul 1 17:15:03 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Inductive datatypes provide mechanisms to define
                 finite data such as finite lists and trees via
                 constructors and allow programmers to analyze and
                 manipulate finite data via pattern matching. In this
                 paper, we develop a dual approach for working with
                 infinite data structures such as streams. Infinite data
                 inhabits coinductive datatypes which denote greatest
                 fixpoints. Unlike finite data which is defined by
                 constructors we define infinite data by observations.
                 Dual to pattern matching, a tool for analyzing finite
                 data, we develop the concept of copattern matching,
                 which allows us to synthesize infinite data. This leads
                 to a symmetric language design where pattern matching
                 on finite and infinite data can be mixed. We present a
                 core language for programming with infinite structures
                 by observations together with its operational semantics
                 based on (co)pattern matching and describe coverage of
                 copatterns. Our language naturally supports both
                 call-by-name and call-by-value interpretations and can
                 be seamlessly integrated into existing languages like
                 Haskell and ML. We prove type soundness for our
                 language and sketch how copatterns open new directions
                 for solving problems in the interaction of coinductive
                 and dependent types.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "POPL '13 conference proceedings.",
}

@Article{Abel:2013:WRC,
  author =       "Andreas M. Abel and Brigitte Pientka",
  title =        "Wellfounded recursion with copatterns: a unified
                 approach to termination and productivity",
  journal =      j-SIGPLAN,
  volume =       "48",
  number =       "9",
  pages =        "185--196",
  month =        sep,
  year =         "2013",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2544174.2500591",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Nov 27 18:32:10 MST 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "In this paper, we study strong normalization of a core
                 language based on System F-omega which supports
                 programming with finite and infinite structures.
                 Building on our prior work, finite data such as finite
                 lists and trees are defined via constructors and
                 manipulated via pattern matching, while infinite data
                 such as streams and infinite trees is defined by
                 observations and synthesized via copattern matching. In
                 this work, we take a type-based approach to strong
                 normalization by tracking size information about finite
                 and infinite data in the type. This guarantees
                 compositionality. More importantly, the duality of
                 pattern and copatterns provide a unifying semantic
                 concept which allows us for the first time to elegantly
                 and uniformly support both well-founded induction and
                 coinduction by mere rewriting. The strong normalization
                 proof is structured around Girard's reducibility
                 candidates. As such our system allows for
                 non-determinism and does not rely on coverage. Since
                 System F-omega is general enough that it can be the
                 target of compilation for the Calculus of
                 Constructions, this work is a significant step towards
                 representing observation-centric infinite data in proof
                 assistants such as Coq and Agda.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "ICFP '13 conference proceedings.",
}

@Article{Abouelella:2013:HEI,
  author =       "Fatma Abouelella and Tom Davidson and Wim Meeus and
                 Karel Bruneel and Dirk Stroobandt",
  title =        "How to efficiently implement dynamic circuit
                 specialization systems",
  journal =      j-TODAES,
  volume =       "18",
  number =       "3",
  pages =        "35:1--35:??",
  month =        jul,
  year =         "2013",
  CODEN =        "ATASFO",
  DOI =          "https://doi.org/10.1145/2491477.2491479",
  ISSN =         "1084-4309 (print), 1557-7309 (electronic)",
  ISSN-L =       "1084-4309",
  bibdate =      "Sat Jul 27 08:09:07 MDT 2013",
  bibsource =    "http://www.acm.org/pubs/contents/journals/todaes/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/todaes.bib",
  abstract =     "Dynamic circuit specialization (DCS) is a technique
                 used to implement FPGA applications where some of the
                 input data, called parameters, change slowly compared
                 to other inputs. Each time the parameter values change,
                 the FPGA is reconfigured by a configuration that is
                 specialized for those new parameter values. This
                 specialized configuration is much smaller and faster
                 than a regular configuration. However, the overhead
                 associated with the specialization process should be
                 minimized to achieve the desired benefits of using the
                 DCS technique. This overhead is represented by both the
                 FPGA resources needed to specialize the FPGA at runtime
                 and by the specialization time. The introduction of
                 parameterized configurations [Bruneel and Stroobandt
                 2008] has improved the efficiency of DCS
                 implementations. However, the specialization overhead
                 still takes a considerable amount of resources and
                 time. In this article, we explore how to efficiently
                 build DCS systems by presenting a variety of possible
                 solutions for the specialization process and the
                 overhead associated with each of them. We split the
                 specialization process into two main phases: the
                 evaluation and the configuration phase. The PowerPC
                 embedded processor, the MicroBlaze, and a customized
                 processor (CP) are used as alternatives in the
                 evaluation phase. In the configuration phase, the ICAP
                 and a custom configuration interface (SRL
                 configuration) are used as alternatives. Each solution
                 is used to implement a DCS system for three
                 applications: an adaptive finite impulse response (FIR)
                 filter, a ternary content-addressable memory (TCAM),
                 and a regular expression matcher (RegEx). The
                 experiments show that the use of our CP along with the
                 SRL configuration achieves minimum overhead in terms of
                 resources and time. Our CP is 1.8 and 3.5 times smaller
                 than the PowerPC and the area-optimized implementation
                 of the MicroBlaze, respectively. Moreover, the use of
                 the CP enables a more compact representation for the
                 parameterized configuration in comparison to both the
                 PowerPC and the MicroBlaze processors. For instance, in
                 the FIR, the parameterized configuration compiled for
                 our CP is 6--7 times smaller than that for the embedded
                 processors.",
  acknowledgement = ack-nhfb,
  articleno =    "35",
  fjournal =     "ACM Transactions on Design Automation of Electronic
                 Systems (TODAES)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J776",
}

@Article{Alonso:2013:ABM,
  author =       "Laurent Alonso and Edward M. Reingold",
  title =        "Analysis of {Boyer} and {Moore}'s {MJRTY} algorithm",
  journal =      j-INFO-PROC-LETT,
  volume =       "113",
  number =       "13",
  pages =        "495--497",
  day =          "15",
  month =        jul,
  year =         "2013",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue May 7 14:14:17 MDT 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019013001166",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190/",
  keywords =     "MJRTY (Majority) algorithm",
}

@Misc{Anonymous:2013:TC,
  author =       "Anonymous",
  title =        "{TRE} (Computing)",
  howpublished = "Encyclopedia article",
  year =         "2013",
  bibdate =      "Thu Aug 17 13:59:28 2023",
  bibsource =    "https://laurikari.net/tre/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://en.wikipedia.org/wiki/TRE_(computing)",
  abstract =     "TRE is an open-source library for pattern matching in
                 text, which works like a regular expression engine with
                 the ability to do approximate string matching",
  acknowledgement = ack-nhfb,
}

@Article{Atallah:2013:LVR,
  author =       "Mikhail J. Atallah and Elena Grigorescu and Yi Wu",
  title =        "A lower-variance randomized algorithm for approximate
                 string matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "113",
  number =       "18",
  pages =        "690--692",
  day =          "15",
  month =        sep,
  year =         "2013",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon Jul 8 16:33:18 MDT 2013",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019013001622",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Badkobeh:2013:BJS,
  author =       "Golnaz Badkobeh and Gabriele Fici and Steve Kroon and
                 Zsuzsanna Lipt{\'a}k",
  title =        "Binary jumbled string matching for highly run-length
                 compressible texts",
  journal =      j-INFO-PROC-LETT,
  volume =       "113",
  number =       "17",
  pages =        "604--608",
  day =          "30",
  month =        aug,
  year =         "2013",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon Jul 1 18:58:27 MDT 2013",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019013001415",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@InProceedings{Bagan:2013:TRS,
  author =       "Guillaume Bagan and Angela Bonifati and Benoit Groz",
  title =        "A trichotomy for regular simple path queries on
                 graphs",
  crossref =     "Hull:2013:SPC",
  pages =        "261--272",
  year =         "2013",
  DOI =          "https://doi.org/10.1145/2463664.2467795",
  bibdate =      "Wed Mar 5 07:53:56 MST 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Regular path queries (RPQs) select vertices connected
                 by some path in a graph. The edge labels of such a path
                 have to form a word that matches a given regular
                 expression. We investigate the evaluation of RPQs with
                 an additional constraint that prevents multiple
                 traversals of the same vertices. Those regular simple
                 path queries (RSPQs) quickly become intractable, even
                 for basic languages such as (aa) * or a*ba*. In this
                 paper, we establish a comprehensive classification of
                 regular languages with respect to the complexity of the
                 corresponding regular simple path query problem. More
                 precisely, we identify for which languages RSPQs can be
                 evaluated in polynomial time, and show that evaluation
                 is NP-complete for languages outside this fragment. We
                 thus fully characterize the frontier between
                 tractability and intractability for RSPQs, and we
                 refine our results to show the following trichotomy:
                 evaluation of RSPQs is either AC0 , NL-complete or
                 NP-complete in data complexity, depending on the
                 language L. The fragment identified also admits a
                 simple characterization in terms of regular
                 expressions. Finally, we also discuss the complexity of
                 deciding whether a language L belongs to the fragment
                 above. We consider several alternative representations
                 of L: DFAs, NFAs or regular expressions, and prove that
                 this problem is NL-complete for the first
                 representation and PSPACE-complete for the other two.
                 As a conclusion we extend our results from edge-labeled
                 graphs to vertex-labeled graphs.",
  acknowledgement = ack-nhfb,
}

@Article{Barcelo:2013:PRE,
  author =       "Pablo Barcel{\'o} and Juan Reutter and Leonid Libkin",
  title =        "Parameterized regular expressions and their
                 languages",
  journal =      j-THEOR-COMP-SCI,
  volume =       "474",
  number =       "??",
  pages =        "21--45",
  day =          "25",
  month =        feb,
  year =         "2013",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2012.12.036",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Feb 12 17:38:13 MST 2013",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397513000029",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Baron:2013:SPM,
  author =       "Joshua Baron and Karim {El Defrawy} and Kirill
                 Minkovich and Rafail Ostrovsky and Eric Tressler",
  title =        "{5PM}: Secure pattern matching",
  journal =      j-J-COMP-SECUR,
  volume =       "21",
  number =       "5",
  pages =        "601--625",
  month =        "????",
  year =         "2013",
  CODEN =        "JCSIET",
  DOI =          "https://doi.org/10.3233/JCS-130481",
  ISSN =         "0926-227X (print), 1875-8924 (electronic)",
  ISSN-L =       "0926-227X",
  bibdate =      "Tue May 24 06:25:59 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsecur.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer Security",
  journal-URL =  "http://content.iospress.com/journals/journal-of-computer-security",
}

@Article{Bast:2013:EFS,
  author =       "Hannah Bast and Marjan Celikik",
  title =        "Efficient fuzzy search in large text collections",
  journal =      j-TOIS,
  volume =       "31",
  number =       "2",
  pages =        "10:1--10:??",
  month =        may,
  year =         "2013",
  CODEN =        "ATISET",
  ISSN =         "1046-8188",
  ISSN-L =       "0734-2047",
  bibdate =      "Fri May 17 19:16:24 MDT 2013",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tois/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tois.bib",
  abstract =     "We consider the problem of fuzzy full-text search in
                 large text collections, that is, full-text search which
                 is robust against errors both on the side of the query
                 as well as on the side of the documents. Standard
                 inverted-index techniques work extremely well for
                 ordinary full-text search but fail to achieve
                 interactive query times (below 100 milliseconds) for
                 fuzzy full-text search even on moderately-sized text
                 collections (above 10 GBs of text). We present new
                 preprocessing techniques that achieve interactive query
                 times on large text collections (100 GB of text, served
                 by a single machine). We consider two similarity
                 measures, one where the query terms match similar terms
                 in the collection (e.g., algorithm matches algoritm or
                 vice versa) and one where the query terms match terms
                 with a similar prefix in the collection (e.g., alori
                 matches algorithm). The latter is important when we
                 want to display results instantly after each keystroke
                 (search as you type). All algorithms have been fully
                 integrated into the CompleteSearch engine.",
  acknowledgement = ack-nhfb,
  articleno =    "10",
  fjournal =     "ACM Transactions on Information Systems (TOIS)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J779",
}

@Article{Becchi:2013:DTS,
  author =       "Michela Becchi and Patrick Crowley",
  title =        "{A-DFA}: a Time- and Space-Efficient {DFA} Compression
                 Algorithm for Fast Regular Expression Evaluation",
  journal =      j-TACO,
  volume =       "10",
  number =       "1",
  pages =        "4:1--4:26",
  month =        apr,
  year =         "2013",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2445572.2445576",
  ISSN =         "1544-3566 (print), 1544-3973 (electronic)",
  ISSN-L =       "1544-3566",
  bibdate =      "Fri Apr 5 18:36:16 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/taco.bib",
  abstract =     "Modern network intrusion detection systems need to
                 perform regular expression matching at line rate in
                 order to detect the occurrence of critical patterns in
                 packet payloads. While Deterministic Finite Automata
                 (DFAs) allow this operation to be performed in linear
                 time, they may exhibit prohibitive memory requirements.
                 Kumar et al. [2006a] have proposed Delayed Input DFAs
                 (D2FAs), which provide a trade-off between the memory
                 requirements of the compressed DFA and the number of
                 states visited for each character processed, which in
                 turn affects the memory bandwidth required to evaluate
                 regular expressions. In this article we introduce
                 Amortized time --- bandwidth overhead DFAs ( A --- DFAs
                 ), a general compression technique that results in at
                 most N ( k + 1)/ k state traversals when processing a
                 string of length N, k being a positive integer. In
                 comparison to the D2FA approach, our technique achieves
                 comparable levels of compression with lower provable
                 bounds on memory bandwidth (or greater compression for
                 a given bandwidth bound). Moreover, the A-DFA algorithm
                 has lower complexity, can be applied during DFA
                 creation, and is suitable for scenarios where a
                 compressed DFA needs to be dynamically built or
                 updated. Finally, we show how to combine A-DFA with
                 alphabet reduction and multistride DFAs, two techniques
                 aimed at reducing the memory space and bandwidth
                 requirement of DFAs, and discuss memory encoding
                 schemes suitable for A-DFAs.",
  acknowledgement = ack-nhfb,
  articleno =    "4",
  fjournal =     "ACM Transactions on Architecture and Code Optimization
                 (TACO)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J924",
}

@TechReport{Beebe:2013:BPM,
  author =       "Nelson H. F. Beebe",
  title =        "A Bibliography on Pattern Matching, Regular
                 Expressions, and String Matching",
  institution =  inst-UTAH-MATH,
  address =      inst-UTAH-MATH:adr,
  pages =        "292",
  day =          "13",
  month =        mar,
  year =         "2013",
  bibdate =      "Wed Mar 13 18:40:11 2013",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/b/beebe-nelson-h-f.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "This report is updated frequently.",
  URL =          "https://www.math.utah.edu/pub/tex/bib/index-table-s.html#string-matching",
  acknowledgement = ack-nhfb,
  ORCID-numbers = "Beebe, Nelson H. F./0000-0001-7281-4263",
}

@Article{Bjorklund:2013:SRP,
  author =       "Johanna Bj{\"o}rklund and Lars-Daniel {\"O}hman",
  title =        "Simulation relations for pattern matching in directed
                 graphs",
  journal =      j-THEOR-COMP-SCI,
  volume =       "485",
  number =       "??",
  pages =        "1--15",
  day =          "13",
  month =        may,
  year =         "2013",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon May 6 18:32:46 MDT 2013",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S030439751300234X",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Bloom:2013:RSP,
  author =       "Bard Bloom and Martin J. Hirzel",
  title =        "Robust scripting via patterns",
  journal =      j-SIGPLAN,
  volume =       "48",
  number =       "2",
  pages =        "29--40",
  month =        feb,
  year =         "2013",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2480360.2384582",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jul 1 17:15:12 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Dynamic typing in scripting languages is a two-edged
                 sword. On the one hand, it can be more flexible and
                 more concise than static typing. On the other hand, it
                 can lead to less robust code. We argue that patterns
                 can give scripts much of the robustness of static
                 typing, without losing the flexibility and concision of
                 dynamic typing. To make this case, we describe a rich
                 pattern system in the dynamic language Thorn. Thorn
                 patterns interact with its control constructs and
                 scoping rules to support concise and robust
                 test-and-extract idioms. Thorn patterns encompass an
                 extensive set of features from ML-style patterns to
                 regular expressions and beyond. And Thorn patterns can
                 be first-class and support pattern-punning (mirror
                 constructor syntax). Overall, this paper describes a
                 powerful pattern system that makes scripting more
                 robust.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  remark =       "DLS '12 conference proceedings.",
}

@Article{Boyen:2013:MMM,
  author =       "Peter Boyen and Frank Neven and Dries {Van Dyck} and
                 Felipe Valentim and Aalt van Dijk",
  title =        "Mining Minimal Motif Pair Sets Maximally Covering
                 Interactions in a Protein--Protein Interaction
                 Network",
  journal =      j-TCBB,
  volume =       "10",
  number =       "1",
  pages =        "73--86",
  month =        jan,
  year =         "2013",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2012.165",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Mon Jun 10 07:28:56 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "Correlated motif covering (CMC) is the problem of
                 finding a set of motif pairs, i.e., pairs of patterns,
                 in the sequences of proteins from a protein-protein
                 interaction network (PPI-network) that describe the
                 interactions in the network as concisely as possible.
                 In other words, a perfect solution for CMC would be a
                 minimal set of motif pairs that describes the
                 interaction behavior perfectly in the sense that two
                 proteins from the network interact if and only if their
                 sequences match a motif pair in the minimal set. In
                 this paper, we introduce and formally define CMC and
                 show that it is closely related to the red-blue set
                 cover (RBSC) problem and its weighted version
                 (WRBSC)-both well-known NP-hard problems for that there
                 exist several algorithms with known approximation
                 factor guarantees. We prove the hardness of
                 approximation of CMC by providing an approximation
                 factor preserving reduction from RBSC to CMC. We show
                 the existence of a theoretical approximation algorithm
                 for CMC by providing an approximation factor preserving
                 reduction from CMC to WRBSC. We adapt the latter
                 algorithm into a functional heuristic for CMC, called
                 CMC-approx, and experimentally assess its performance
                 and biological relevance. The implementation in Java
                 can be found at {\tt
                 http://bioinformatics.uhasselt.be}.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Breslauer:2013:SRT,
  author =       "Dany Breslauer and Roberto Grossi and Filippo
                 Mignosi",
  title =        "Simple real-time constant-space string matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "483",
  number =       "??",
  pages =        "2--9",
  day =          "29",
  month =        apr,
  year =         "2013",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon May 6 18:32:37 MDT 2013",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397512010900",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Butman:2013:PMU,
  author =       "Ayelet Butman and Peter Clifford and Rapha{\"e}l
                 Clifford and Markus Jalsenius and Noa Lewenstein and
                 Benny Porat and Ely Porat and Benjamin Sach",
  title =        "Pattern Matching under Polynomial Transformation",
  journal =      j-SIAM-J-COMPUT,
  volume =       "42",
  number =       "2",
  pages =        "611--633",
  month =        "????",
  year =         "2013",
  CODEN =        "SMJCAT",
  DOI =          "https://doi.org/10.1137/110853327",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  bibdate =      "Tue Feb 11 17:21:19 MST 2014",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/42/2;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp/",
  onlinedate =   "January 2013",
}

@Article{Cantone:2013:ESM,
  author =       "Domenico Cantone and Salvatore Cristofaro and Simone
                 Faro",
  title =        "Efficient string-matching allowing for non-overlapping
                 inversions",
  journal =      j-THEOR-COMP-SCI,
  volume =       "483",
  number =       "??",
  pages =        "85--95",
  day =          "29",
  month =        apr,
  year =         "2013",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2012.06.009",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon May 6 18:32:37 MDT 2013",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397512005452",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Chan:2013:MAP,
  author =       "Tak-Ming Chan and Leung-Yau Lo and Ho-Yin Sze-To and
                 Kwong-Sak Leung and Xinshu Xiao and Man-Hon Wong",
  title =        "Modeling Associated Protein-{DNA} Pattern Discovery
                 with Unified Scores",
  journal =      j-TCBB,
  volume =       "10",
  number =       "3",
  pages =        "696--707",
  month =        may,
  year =         "2013",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2013.60",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Wed Nov 27 16:23:40 MST 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "Understanding protein-DNA interactions, specifically
                 transcription factor (TF) and transcription factor
                 binding site (TFBS) bindings, is crucial in deciphering
                 gene regulation. The recent associated TF-TFBS pattern
                 discovery combines one-sided motif discovery on both
                 the TF and the TFBS sides. Using sequences only, it
                 identifies the short protein-DNA binding cores
                 available only in high-resolution 3D structures. The
                 discovered patterns lead to promising subtype and
                 disease analysis applications. While the related
                 studies use either association rule mining or existing
                 TFBS annotations, none has proposed any formal unified
                 (both-sided) model to prioritize the top verifiable
                 associated patterns. We propose the unified scores and
                 develop an effective pipeline for associated TF-TFBS
                 pattern discovery. Our stringent instance-level
                 evaluations show that the patterns with the top unified
                 scores match with the binding cores in 3D structures
                 considerably better than the previous works, where up
                 to 90 percent of the top 20 scored patterns are
                 verified. We also introduce extended verification from
                 literature surveys, where the high unified scores
                 correspond to even higher verification percentage. The
                 top scored patterns are confirmed to match the known
                 WRKY binding cores with no available 3D structures and
                 agree well with the top binding affinities of in vivo
                 experiments.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Chen:2013:EMT,
  author =       "Chien-Chi Chen and Sheng-De Wang",
  title =        "An efficient multicharacter transition string-matching
                 engine based on the {Aho--Corasick} algorithm",
  journal =      j-TACO,
  volume =       "10",
  number =       "4",
  pages =        "25:1--25:??",
  month =        dec,
  year =         "2013",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2541228.2541232",
  ISSN =         "1544-3566 (print), 1544-3973 (electronic)",
  ISSN-L =       "1544-3566",
  bibdate =      "Mon Dec 23 10:31:41 MST 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/taco.bib",
  abstract =     "A string-matching engine capable of inspecting
                 multiple characters in parallel can multiply the
                 throughput. However, the space required for
                 implementing a matching engine that can process
                 multiple characters in parallel generally grows
                 exponentially with respect to the characters to be
                 processed in parallel. Based on the Aho--Corasick
                 algorithm (AC-algorithm), this work presents a novel
                 multicharacter transition Nondeterministic Finite
                 Automaton (NFA) approach, called multicharacter AC-NFA,
                 to allow for the inspection of multiple characters in
                 parallel. This approach first converts an AC-trie to an
                 AC-NFA by allowing for the simultaneous activation of
                 multiple states and then converts the AC-NFA to a
                 $k$-character AC-NFA by an algorithm with concatenation
                 operations and assistant transitions. Additionally, the
                 alignment problem, which occurs while multiple
                 characters are being inspected in parallel, is solved
                 using assistant transitions. Moreover, a corresponding
                 output is provided for each inspected character by
                 introducing priority multiplexers to determine the
                 final matching outputs during implementation of the
                 multicharacter AC-NFA. Consequently, the number of
                 derived $k$-character transitions grows linearly with
                 respect to the number $k$. Furthermore, the derived
                 multicharacter AC-NFA is implemented on FPGAs for
                 evaluation. The resulting throughput grows
                 approximately 14 times and the hardware cost grows
                 about 18 times for 16-character AC-NFA implementation,
                 as compared with that for 1-character AC-NFA
                 implementation. The achievable throughput is 21.4Gbps
                 for the 16-character AC-NFA implementation operating at
                 a 167.36MHz clock.",
  acknowledgement = ack-nhfb,
  articleno =    "25",
  fjournal =     "ACM Transactions on Architecture and Code Optimization
                 (TACO)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J924",
}

@InProceedings{Chen:2013:PPP,
  author =       "X. Chen and B. Jones and M. Becchi and T. Wolf",
  editor =       "Walid A. Najjar",
  booktitle =    "2013 {ACM/IEEE} Symposium on Architectures for
                 Networking and Communications Systems ({ANCS})",
  title =        "Picking pesky parameters: Optimizing regular
                 expression matching in practice",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "203--213",
  year =         "2013",
  DOI =          "https://doi.org/10.1109/ANCS.2013.6665202",
  ISBN =         "1-4799-1640-4, 1-4799-1639-0",
  ISBN-13 =      "978-1-4799-1640-5, 978-1-4799-1639-9",
  LCCN =         "QA76.9.A73",
  bibdate =      "Fri Apr 15 13:51:41 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Chen:2013:TCF,
  author =       "Yang Chen and Alex Groce and Chaoqiang Zhang and
                 Weng-Keen Wong and Xiaoli Fern and Eric Eide and John
                 Regehr",
  title =        "Taming compiler fuzzers",
  journal =      j-SIGPLAN,
  volume =       "48",
  number =       "6",
  pages =        "197--208",
  month =        jun,
  year =         "2013",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2499370.2462173",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jul 1 17:15:38 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Aggressive random testing tools (``fuzzers'') are
                 impressively effective at finding compiler bugs. For
                 example, a single test-case generator has resulted in
                 more than 1,700 bugs reported for a single JavaScript
                 engine. However, fuzzers can be frustrating to use:
                 they indiscriminately and repeatedly find bugs that may
                 not be severe enough to fix right away. Currently,
                 users filter out undesirable test cases using ad hoc
                 methods such as disallowing problematic features in
                 tests and grepping test results. This paper formulates
                 and addresses the fuzzer taming problem: given a
                 potentially large number of random test cases that
                 trigger failures, order them such that diverse,
                 interesting test cases are highly ranked. Our
                 evaluation shows our ability to solve the fuzzer taming
                 problem for 3,799 test cases triggering 46 bugs in a C
                 compiler and 2,603 test cases triggering 28 bugs in a
                 JavaScript engine.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  remark =       "PLDI '13 conference proceedings.",
}

@Article{Christou:2013:ESC,
  author =       "M. Christou and M. Crochemore and C. S. Iliopoulos and
                 M. Kubica and S. P. Pissis and J. Radoszewski and W.
                 Rytter and B. Szreder and T. Wale{\'n}",
  title =        "Efficient seed computation revisited",
  journal =      j-THEOR-COMP-SCI,
  volume =       "483",
  number =       "??",
  pages =        "171--181",
  day =          "29",
  month =        apr,
  year =         "2013",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2011.12.078",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon May 6 18:32:37 MDT 2013",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397511010632",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
  keywords =     "cover; linear time cover algorithm; seed in a string;
                 suffix tree",
}

@Article{Clifford:2013:SLB,
  author =       "Rapha{\"e}l Clifford and Markus Jalsenius and Ely
                 Porat and Benjamin Sach",
  title =        "Space lower bounds for online pattern matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "483",
  number =       "??",
  pages =        "68--74",
  day =          "29",
  month =        apr,
  year =         "2013",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon May 6 18:32:37 MDT 2013",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397512005816",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Colazzo:2013:ALI,
  author =       "Dario Colazzo and Giorgio Ghelli and Luca Pardini and
                 Carlo Sartiani",
  title =        "Almost-linear inclusion for {XML} regular expression
                 types",
  journal =      j-TODS,
  volume =       "38",
  number =       "3",
  pages =        "15:1--15:??",
  month =        aug,
  year =         "2013",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/2508020.2508022",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Fri Aug 30 16:33:21 MDT 2013",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tods/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  abstract =     "Type inclusion is a fundamental operation in every
                 type-checking compiler, but it is quite expensive for
                 XML manipulation languages. A polynomial inclusion
                 checking algorithm for an expressive family of XML type
                 languages is known, but it runs in quadratic time both
                 in the best and in the worst cases. We present here an
                 algorithm that has a linear-time backbone, and resorts
                 to the quadratic approach for some specific parts of
                 the compared types. Our experiments show that the new
                 algorithm is much faster than the quadratic one, and
                 that it typically runs in linear time, hence it can be
                 used as a building block for a practical type-checking
                 compiler.",
  acknowledgement = ack-nhfb,
  articleno =    "15",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
}

@Article{Colazzo:2013:EAI,
  author =       "D. Colazzo and G. Ghelli and L. Pardini and C.
                 Sartiani",
  title =        "Efficient asymmetric inclusion of regular expressions
                 with interleaving and counting for {XML}
                 type-checking",
  journal =      j-THEOR-COMP-SCI,
  volume =       "492",
  number =       "??",
  pages =        "88--116",
  day =          "24",
  month =        jun,
  year =         "2013",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jul 8 16:38:50 MDT 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397513003319",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Deo:2013:PSA,
  author =       "Mrinal Deo and Sean Keely",
  title =        "Parallel suffix array and least common prefix for the
                 {GPU}",
  journal =      j-SIGPLAN,
  volume =       "48",
  number =       "8",
  pages =        "197--206",
  month =        aug,
  year =         "2013",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2517327.2442536",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Aug 26 13:48:51 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "PPoPP '13 Conference proceedings.",
  abstract =     "Suffix Array (SA) is a data structure formed by
                 sorting the suffixes of a string into lexicographic
                 order. SAs have been used in a variety of applications,
                 most notably in pattern matching and Burrows--Wheeler
                 Transform (BWT) based lossless data compression. SAs
                 have also become the data structure of choice for many,
                 if not all, string processing problems to which suffix
                 tree methodology is applicable. Over the last two
                 decades researchers have proposed many suffix array
                 construction algorithm (SACAs). We do a systematic
                 study of the main classes of SACAs with the intent of
                 mapping them onto a data parallel architecture like the
                 GPU. We conclude that skew algorithm [12], a linear
                 time recursive algorithm, is the best candidate for
                 GPUs as all its phases can be efficiently mapped to a
                 data parallel hardware. Our OpenCL implementation of
                 skew algorithm achieves a throughput of up to 25
                 MStrings/sec and a speedup of up to 34x and 5.8x over a
                 single threaded CPU implementation using a discrete GPU
                 and APU respectively. We also compare our OpenCL
                 implementation against the fastest known CPU
                 implementation based on induced copying and achieve a
                 speedup of up to 3.7x. Using SA we construct BWT on GPU
                 and achieve a speedup of 11x over the fastest known BWT
                 on GPU. Suffix arrays are often augmented with the
                 longest common prefix (LCP) information. We design a
                 novel high-performance parallel algorithm for computing
                 LCP on the GPU. Our GPU implementation of LCP achieves
                 a speedup of up to 25x and 4.3x on discrete GPU and APU
                 respectively.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{ElDefrawy:2013:BDS,
  author =       "Karim {El Defrawy} and Sky Faber",
  title =        "Blindfolded Data Search via Secure Pattern Matching",
  journal =      j-COMPUTER,
  volume =       "46",
  number =       "12",
  pages =        "68--75",
  month =        dec,
  year =         "2013",
  CODEN =        "CPTRB4",
  DOI =          "https://doi.org/10.1109/MC.2013.73",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Tue Mar 4 08:53:21 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computer2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer",
  journal-URL =  "http://www.computer.org/portal/web/csdl/magazines/computer",
}

@InProceedings{Fagin:2013:SFF,
  author =       "Ronald Fagin and Benny Kimelfeld and Frederick Reiss
                 and Stijn Vansummeren",
  title =        "Spanners: a formal framework for information
                 extraction",
  crossref =     "Hull:2013:SPC",
  pages =        "37--48",
  year =         "2013",
  DOI =          "https://doi.org/10.1145/2463664.2463665",
  bibdate =      "Wed Mar 5 07:53:56 MST 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "An intrinsic part of information extraction is the
                 creation and manipulation of relations extracted from
                 text. In this paper, we develop a foundational
                 framework where the central construct is what we call a
                 spanner. A spanner maps an input string into relations
                 over the spans (intervals specified by bounding
                 indices) of the string. The focus of this paper is on
                 the representation of spanners. Conceptually, there are
                 two kinds of such representations. Spanners defined in
                 a primitive representation extract relations directly
                 from the input string; those defined in an algebra
                 apply algebraic operations to the primitively
                 represented spanners. This framework is driven by
                 SystemT, an IBM commercial product for text analysis,
                 where the primitive representation is that of regular
                 expressions with capture variables. We define
                 additional types of primitive spanner representations
                 by means of two kinds of automata that assign spans to
                 variables. We prove that the first kind has the same
                 expressive power as regular expressions with capture
                 variables; the second kind expresses precisely the
                 algebra of the regular spanners---the closure of the
                 first kind under standard relational operators. The
                 core spanners extend the regular ones by
                 string-equality selection (an extension used in
                 SystemT). We give some fundamental results on the
                 expressiveness of regular and core spanners. As an
                 example, we prove that regular spanners are closed
                 under difference (and complement), but core spanners
                 are not. Finally, we establish connections with related
                 notions in the literature.",
  acknowledgement = ack-nhfb,
}

@Article{Fan:2013:DTG,
  author =       "Wenfei Fan and Xin Wang and Yinghui Wu",
  title =        "Diversified top-$k$ graph pattern matching",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "6",
  number =       "13",
  pages =        "1510--1521",
  month =        aug,
  year =         "2013",
  CODEN =        "????",
  ISSN =         "2150-8097",
  bibdate =      "Fri Dec 13 05:57:09 MST 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Graph pattern matching has been widely used in e.g.,
                 social data analysis. A number of matching algorithms
                 have been developed that, given a graph pattern $Q$ and
                 a graph $G$, compute the set $ M(Q, G) $ of matches of
                 $Q$ in $G$. However, these algorithms often return an
                 excessive number of matches, and are expensive on large
                 real-life social graphs. Moreover, in practice many
                 social queries are to find matches of a specific
                 pattern node, rather than the entire $ M(Q, G) $. This
                 paper studies top- $k$ graph pattern matching. (1) We
                 revise graph pattern matching defined in terms of
                 simulation, by supporting a designated output node $ u
                 o $. Given $G$ and $Q$, it is to find those nodes in $
                 M(Q, G) $ that match $ u o $, instead of the large set
                 $ M(Q, G) $. (2) We study two classes of functions for
                 ranking the matches: relevance functions $ \delta r() $
                 based on, e.g., social impact, and distance functions $
                 \delta d() $ to cover diverse elements. (3) We develop
                 two algorithms for computing top-$k$ matches of $ u o $
                 based on $ \delta r() $, with the early termination
                 property, i.e., they find top-$k$ matches without
                 computing the entire $ M(Q, G) $. (4) We also study
                 diversified top-$k$ matching, a bi-criteria
                 optimization problem based on both $ \delta r() $ and $
                 \delta d() $. We show that its decision problem is
                 NP-complete. Nonetheless, we provide an approximation
                 algorithm with performance guarantees and a heuristic
                 one with the early termination property. (5) Using
                 real-life and synthetic data, we experimentally verify
                 that our (diversified) top-$k$ matching algorithms are
                 effective, and outperform traditional matching
                 algorithms in efficiency.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Fan:2013:DTK,
  author =       "Wenfei Fan and Xin Wang and Yinghui Wu",
  title =        "Diversified top-$k$ graph pattern matching",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "6",
  number =       "13",
  pages =        "1510--1521",
  month =        aug,
  year =         "2013",
  CODEN =        "????",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Fri Dec 13 05:57:09 MST 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Graph pattern matching has been widely used in e.g.,
                 social data analysis. A number of matching algorithms
                 have been developed that, given a graph pattern $Q$ and
                 a graph $G$, compute the set $ M(Q, G) $ of matches of
                 $Q$ in $G$. However, these algorithms often return an
                 excessive number of matches, and are expensive on large
                 real-life social graphs. Moreover, in practice many
                 social queries are to find matches of a specific
                 pattern node, rather than the entire $ M(Q, G) $. This
                 paper studies top- $k$ graph pattern matching. (1) We
                 revise graph pattern matching defined in terms of
                 simulation, by supporting a designated output node $ u
                 o $. Given $G$ and $Q$, it is to find those nodes in $
                 M(Q, G) $ that match $ u o $, instead of the large set
                 $ M(Q, G) $. (2) We study two classes of functions for
                 ranking the matches: relevance functions $ \delta r() $
                 based on, e.g., social impact, and distance functions $
                 \delta d() $ to cover diverse elements. (3) We develop
                 two algorithms for computing top-$k$ matches of $ u o $
                 based on $ \delta r() $, with the early termination
                 property, i.e., they find top-$k$ matches without
                 computing the entire $ M(Q, G) $. (4) We also study
                 diversified top-$k$ matching, a bi-criteria
                 optimization problem based on both $ \delta r() $ and $
                 \delta d() $. We show that its decision problem is
                 NP-complete. Nonetheless, we provide an approximation
                 algorithm with performance guarantees and a heuristic
                 one with the early termination property. (5) Using
                 real-life and synthetic data, we experimentally verify
                 that our (diversified) top-$k$ matching algorithms are
                 effective, and outperform traditional matching
                 algorithms in efficiency.",
  acknowledgement = ack-nhfb,
  ajournal =     "Proc. VLDB Endowment",
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Fan:2013:IGP,
  author =       "Wenfei Fan and Xin Wang and Yinghui Wu",
  title =        "Incremental graph pattern matching",
  journal =      j-TODS,
  volume =       "38",
  number =       "3",
  pages =        "18:1--18:??",
  month =        aug,
  year =         "2013",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/2489791",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Fri Aug 30 16:33:21 MDT 2013",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tods/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  abstract =     "Graph pattern matching is commonly used in a variety
                 of emerging applications such as social network
                 analysis. These applications highlight the need for
                 studying the following two issues. First, graph pattern
                 matching is traditionally defined in terms of subgraph
                 isomorphism or graph simulation. These notions,
                 however, often impose too strong a topological
                 constraint on graphs to identify meaningful matches.
                 Second, in practice a graph is typically large, and is
                 frequently updated with small changes. It is often
                 prohibitively expensive to recompute matches starting
                 from scratch via batch algorithms when the graph is
                 updated. This article studies these two issues. (1) We
                 propose to define graph pattern matching based on a
                 notion of bounded simulation, which extends graph
                 simulation by specifying the connectivity of nodes in a
                 graph within a predefined number of hops. We show that
                 bounded simulation is able to find sensible matches
                 that the traditional matching notions fail to catch. We
                 also show that matching via bounded simulation is in
                 cubic time, by giving such an algorithm. (2) We provide
                 an account of results on incremental graph pattern
                 matching, for matching defined with graph simulation,
                 bounded simulation, and subgraph isomorphism. We show
                 that the incremental matching problem is unbounded,
                 that is, its cost is not determined alone by the size
                 of the changes in the input and output, for all these
                 matching notions. Nonetheless, when matching is defined
                 in terms of simulation or bounded simulation,
                 incremental matching is semibounded, that is, its
                 worst-time complexity is bounded by a polynomial in the
                 size of the changes in the input, output, and auxiliary
                 information that is necessarily maintained to reuse
                 previous computation, and the size of graph patterns.
                 We also develop incremental matching algorithms for
                 graph simulation and bounded simulation, by minimizing
                 unnecessary recomputation. In contrast, matching based
                 on subgraph isomorphism is neither bounded nor
                 semibounded. (3) We experimentally verify the
                 effectiveness and efficiency of these algorithms, and
                 show that: (a) the revised notion of graph pattern
                 matching allows us to identify communities commonly
                 found in real-life networks, and (b) the incremental
                 algorithms substantially outperform their batch
                 counterparts in response to small changes. These
                 suggest a promising framework for real-life graph
                 pattern matching.",
  acknowledgement = ack-nhfb,
  articleno =    "18",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
}

@Article{Faro:2013:EOS,
  author =       "Simone Faro and Thierry Lecroq",
  title =        "The exact online string matching problem: a review of
                 the most recent results",
  journal =      j-COMP-SURV,
  volume =       "45",
  number =       "2",
  pages =        "13:1--13:42",
  month =        feb,
  year =         "2013",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/2431211.2431212",
  ISSN =         "0360-0300 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  bibdate =      "Thu Mar 7 11:42:33 MST 2013",
  bibsource =    "http://www.acm.org/pubs/contents/journals/surveys/;
                 https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This article addresses the online exact string
                 matching problem which consists in finding all
                 occurrences of a given pattern $p$ in a text $t$. It is
                 an extensively studied problem in computer science,
                 mainly due to its direct applications to such diverse
                 areas as text, image and signal processing, speech
                 analysis and recognition, information retrieval, data
                 compression, computational biology and chemistry. In
                 the last decade more than 50 new algorithms have been
                 proposed for the problem, which add up to a wide set of
                 (almost 40) algorithms presented before 2000. In this
                 article we review the string matching algorithms
                 presented in the last decade and present experimental
                 results in order to bring order among the dozens of
                 articles published in this area.",
  acknowledgement = ack-nhfb,
  articleno =    "13",
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
}

@Article{Feder:2013:ECA,
  author =       "Tom{\'a}s Feder and Carlos Subi",
  title =        "Edge-coloring almost bipartite multigraphs",
  journal =      j-INFO-PROC-LETT,
  volume =       "113",
  number =       "18",
  pages =        "685--689",
  day =          "15",
  month =        sep,
  year =         "2013",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon Jul 8 16:33:18 MDT 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019013001737",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190/",
}

@Article{Gawrychowski:2013:OPM,
  author =       "Pawel Gawrychowski",
  title =        "Optimal Pattern Matching in {LZW} Compressed Strings",
  journal =      j-TALG,
  volume =       "9",
  number =       "3",
  pages =        "25:1--25:??",
  month =        jun,
  year =         "2013",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2483699.2483705",
  ISSN =         "1549-6325 (print), 1549-6333 (electronic)",
  ISSN-L =       "1549-6325",
  bibdate =      "Mon Jun 24 09:39:46 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talg.bib",
  abstract =     "We consider the following variant of the classical
                 pattern matching problem: given an uncompressed pattern
                 $ p [1 \ldots {} m] $ and a compressed representation
                 of a string {$ t [1 \ldots {} N] $}, does $p$ occur in
                 $t$ ? When $t$ is compressed using the LZW method, we
                 are able to detect the occurrence in optimal linear
                 time, thus answering a question of Amir et al. [1994].
                 Previous results implied solutions with complexities {$
                 O(n \log m + m) $} Amir et al. [1994], {$ O(n + m^{1 +
                 \epsilon }) $} [Kosaraju 1995], or (randomized) {$ O(n
                 \log N n + m) $} [Farach and Thorup 1995], where $n$ is
                 the size of the compressed representation of $t$. Our
                 algorithm is conceptually simple and fully
                 deterministic.",
  acknowledgement = ack-nhfb,
  articleno =    "25",
  fjournal =     "ACM Transactions on Algorithms (TALG)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J982",
}

@Article{Giaquinta:2013:APM,
  author =       "Emanuele Giaquinta and Szymon Grabowski and Kimmo
                 Fredriksson",
  title =        "Approximate pattern matching with $k$-mismatches in
                 packed text",
  journal =      j-INFO-PROC-LETT,
  volume =       "113",
  number =       "19--21",
  pages =        "693--697",
  month =        sep # "\slash " # oct,
  year =         "2013",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon Sep 9 07:26:45 MDT 2013",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019013001919",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Giaquinta:2013:NAB,
  author =       "Emanuele Giaquinta and Szymon Grabowski",
  title =        "New algorithms for binary jumbled pattern matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "113",
  number =       "14--16",
  pages =        "538--542",
  month =        jul # "\slash " # aug,
  year =         "2013",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon Jul 1 18:58:11 MDT 2013",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019013001300",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Gonzalez-Alvarez:2013:AAD,
  author =       "Cecilia Gonz{\'a}lez-{\'A}lvarez and Jennifer B.
                 Sartor and Carlos {\'A}lvarez and Daniel
                 Jim{\'e}nez-Gonz{\'a}lez and Lieven Eeckhout",
  title =        "Accelerating an application domain with specialized
                 functional units",
  journal =      j-TACO,
  volume =       "10",
  number =       "4",
  pages =        "47:1--47:??",
  month =        dec,
  year =         "2013",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2541228.2555303",
  ISSN =         "1544-3566 (print), 1544-3973 (electronic)",
  ISSN-L =       "1544-3566",
  bibdate =      "Thu Jan 9 10:42:35 MST 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/taco.bib",
  abstract =     "Hardware specialization has received renewed interest
                 recently as chips are hitting power limits. Chip
                 designers of traditional processor architectures have
                 primarily focused on general-purpose computing,
                 partially due to time-to-market pressure and simpler
                 design processes. But new power limits require some
                 chip specialization. Although hardware configured for a
                 specific application yields large speedups for
                 low-power dissipation, its design is more complex and
                 less reusable. We instead explore domain-based
                 specialization, a scalable approach that balances
                 hardware's reusability and performance efficiency. We
                 focus on specialization using customized compute units
                 that accelerate particular operations. In this article,
                 we develop automatic techniques to identify code
                 sequences from different applications within a domain
                 that can be targeted to a new custom instruction that
                 will be run inside a configurable specialized
                 functional unit (SFU). We demonstrate that using a
                 canonical representation of computations finds more
                 common code sequences among applications that can be
                 mapped to the same custom instruction, leading to
                 larger speedups while specializing a smaller core area
                 than previous pattern-matching techniques. We also
                 propose new heuristics to narrow the search space of
                 domain-specific custom instructions, finding those that
                 achieve the best performance across applications. We
                 estimate the overall performance achieved with our
                 automatic techniques using hardware models on a set of
                 nine media benchmarks, showing that when limiting the
                 core area devoted to specialization, the SFU
                 customization with the largest speedups includes both
                 application- and domain-specific custom instructions.
                 We demonstrate that exploring domain-specific hardware
                 acceleration is key to continued computing system
                 performance improvements.",
  acknowledgement = ack-nhfb,
  articleno =    "47",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J924",
}

@Article{Gruber:2013:PSR,
  author =       "Hermann Gruber and Markus Holzer",
  title =        "Provably Shorter Regular Expressions from Finite
                 Automata",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "24",
  number =       "8",
  pages =        "1255--??",
  month =        dec,
  year =         "2013",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054113500330",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Wed Apr 2 05:58:19 MDT 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@InCollection{Haber:2013:ESE,
  author =       "Stuart Haber and William Horne and Pratyusa Manadhata
                 and Miranda Mowbray and Prasad Rao",
  booktitle =    "Language and Automata Theory and Applications",
  title =        "Efficient Submatch Extraction for Practical Regular
                 Expressions",
  crossref =     "Dediu:2013:LAT",
  pages =        "323--334",
  year =         "2013",
  DOI =          "https://doi.org/10.1007/978-3-642-37064-9_29",
  bibdate =      "Mon Sep 7 07:23:13 2020",
  bibsource =    "http://www.labs.hpe.com/techreports/2012/HPL-2012-41R1.pdf;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  remark =       "From the abstract: ``Our experimental results show
                 that, for a large set of regular expressions used in
                 practice, our algorithm is approximately twice as fast
                 as Java's backtracking based regular expression library
                 and approximately twenty times faster than the RE2
                 regular expression engine.''",
}

@Article{Han:2013:IPF,
  author =       "Yo-Sub Han",
  title =        "An Improved Prefix-Free Regular-Expression Matching",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "24",
  number =       "5",
  pages =        "679--??",
  month =        aug,
  year =         "2013",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054113500238",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Mon Dec 2 17:11:05 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Han:2013:SEH,
  author =       "Yo-Sub Han",
  title =        "State Elimination Heuristics for Short Regular
                 Expressions",
  journal =      j-FUND-INFO,
  volume =       "128",
  number =       "4",
  pages =        "445--462",
  month =        oct,
  year =         "2013",
  CODEN =        "FUMAAJ",
  DOI =          "https://doi.org/10.3233/FI-2013-952",
  ISSN =         "0169-2968 (print), 1875-8681 (electronic)",
  ISSN-L =       "0169-2968",
  bibdate =      "Sat Mar 5 17:17:55 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fundinfo2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Fundamenta Informaticae",
  journal-URL =  "http://content.iospress.com/journals/fundamenta-informaticae",
}

@Article{Hao:2013:TPP,
  author =       "Tianyong Hao and Chunshen Zhu",
  title =        "Toward a Professional Platform for {Chinese} Character
                 Conversion",
  journal =      j-TALIP,
  volume =       "12",
  number =       "1",
  pages =        "1:1--1:??",
  month =        mar,
  year =         "2013",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2425327.2425328",
  ISSN =         "1530-0226 (print), 1558-3430 (electronic)",
  ISSN-L =       "1530-0226",
  bibdate =      "Sat Mar 2 09:25:42 MST 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talip.bib",
  abstract =     "Increasing communication among Chinese-speaking
                 regions using respectively traditional and simplified
                 Chinese character systems has highlighted the
                 subtle-yet-extensive differences between the two
                 systems, which can lead to unexpected hindrance in
                 converting characters from one to the other. This
                 article proposes a new priority-based multi-data
                 resources management model, with a new algorithm called
                 Fused Conversion algorithm from Multi-Data resources
                 (FCMD), to ensure more context-sensitive, human
                 controllable, and thus more reliable conversions, by
                 drawing on reverse maximum matching, n -gram-based
                 statistical model and pattern-based learning and
                 matching. After parameter training on the Tagged
                 Chinese Gigaword corpus, its conversion precision
                 reaches 91.5\% in context-sensitive cases, the most
                 difficult part in the conversion, with an overall
                 precision rate at 99.8\%, a significant improvement
                 over the state-of-the-art models. The conversion
                 platform based on the model has extra features such as
                 data resource selection and $n$-grams self-learning
                 ability, providing a more sophisticated tool good
                 especially for high-end professional uses.",
  acknowledgement = ack-nhfb,
  articleno =    "1",
  fjournal =     "ACM Transactions on Asian Language Information
                 Processing",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?&idx=J820",
}

@Article{Homer:2013:POG,
  author =       "Michael Homer and James Noble and Kim B. Bruce and
                 Andrew P. Black and David J. Pearce",
  title =        "Patterns as objects in {Grace}",
  journal =      j-SIGPLAN,
  volume =       "48",
  number =       "2",
  pages =        "17--28",
  month =        feb,
  year =         "2013",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2480360.2384581",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jul 1 17:15:12 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Object orientation and pattern matching are often seen
                 as conflicting approaches to program design.
                 Object-oriented programs place type-dependent behavior
                 inside objects and invoke it via dynamic dispatch,
                 while pattern-matching programs place type-dependent
                 behavior outside data structures and invoke it via
                 multiway conditionals (case statements). Grace is a
                 new, dynamic, object-oriented language designed to
                 support teaching: to this end, Grace needs to support
                 both styles. We explain how this conflict can be
                 resolved gracefully: by modelling patterns and cases as
                 partial functions, reifying those functions as objects,
                 and then building up complex patterns from simpler ones
                 using pattern combinators. We describe the
                 implementation of this design as an object-oriented
                 framework, and a case study of its effectiveness.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "DLS '12 conference proceedings.",
}

@Article{I:2013:PPM,
  author =       "Tomohiro I and Shunsuke Inenaga and Masayuki Takeda",
  title =        "Palindrome pattern matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "483",
  number =       "??",
  pages =        "162--170",
  day =          "29",
  month =        apr,
  year =         "2013",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2012.01.047",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon May 6 18:32:37 MDT 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397512001041",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Isradisaikul:2013:REP,
  author =       "Chinawat Isradisaikul and Andrew C. Myers",
  title =        "Reconciling exhaustive pattern matching with objects",
  journal =      j-SIGPLAN,
  volume =       "48",
  number =       "6",
  pages =        "343--354",
  month =        jun,
  year =         "2013",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2499370.2462194",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Jul 1 17:15:38 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Pattern matching, an important feature of functional
                 languages, is in conflict with data abstraction and
                 extensibility, which are central to object-oriented
                 languages. Modal abstraction offers an integration of
                 deep pattern matching and convenient iteration
                 abstractions into an object-oriented setting; however,
                 because of data abstraction, it is challenging for a
                 compiler to statically verify properties such as
                 exhaustiveness. In this work, we extend modal
                 abstraction in the JMatch language to support static,
                 modular reasoning about exhaustiveness and redundancy.
                 New matching specifications allow these properties to
                 be checked using an SMT solver. We also introduce
                 expressive pattern-matching constructs. Our evaluation
                 shows that these new features enable more concise code
                 and that the performance of checking exhaustiveness and
                 redundancy is acceptable.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "PLDI '13 conference proceedings.",
}

@Article{Jiang:2013:PSE,
  author =       "Song Jiang and Xiaoning Ding and Yuehai Xu and Kei
                 Davis",
  title =        "A Prefetching Scheme Exploiting both Data Layout and
                 Access History on Disk",
  journal =      j-TOS,
  volume =       "9",
  number =       "3",
  pages =        "10:1--10:??",
  month =        aug,
  year =         "2013",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2508010",
  ISSN =         "1553-3077 (print), 1553-3093 (electronic)",
  ISSN-L =       "1553-3077",
  bibdate =      "Thu Dec 12 18:12:47 MST 2013",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tos/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tos.bib",
  abstract =     "Prefetching is an important technique for improving
                 effective hard disk performance. A prefetcher seeks to
                 accurately predict which data will be requested and
                 load it ahead of the arrival of the corresponding
                 requests. Current disk prefetch policies in major
                 operating systems track access patterns at the level of
                 file abstraction. While this is useful for exploiting
                 application-level access patterns, for two reasons
                 file-level prefetching cannot realize the full
                 performance improvements achievable by prefetching.
                 First, certain prefetch opportunities can only be
                 detected by knowing the data layout on disk, such as
                 the contiguous layout of file metadata or data from
                 multiple files. Second, nonsequential access of disk
                 data (requiring disk head movement) is much slower than
                 sequential access, and the performance penalty for
                 mis-prefetching a randomly located block, relative to
                 that of a sequential block, is correspondingly greater.
                 To overcome the inherent limitations of prefetching at
                 logical file level, we propose to perform prefetching
                 directly at the level of disk layout, and in a portable
                 way. Our technique, called DiskSeen, is intended to be
                 supplementary to, and to work synergistically with, any
                 present file-level prefetch policies. DiskSeen tracks
                 the locations and access times of disk blocks and,
                 based on analysis of their temporal and spatial
                 relationships, seeks to improve the sequentiality of
                 disk accesses and overall prefetching performance. It
                 also implements a mechanism to minimize
                 mis-prefetching, on a per-application basis, to
                 mitigate the corresponding performance penalty. Our
                 implementation of the DiskSeen scheme in the Linux 2.6
                 kernel shows that it can significantly improve the
                 effectiveness of prefetching, reducing execution times
                 by 20\%--60\% for microbenchmarks and real applications
                 such as grep, CVS, and TPC-H. Even for workloads
                 specifically designed to expose its weaknesses,
                 DiskSeen incurs only minor performance loss.",
  acknowledgement = ack-nhfb,
  articleno =    "10",
  fjournal =     "ACM Transactions on Storage",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J960",
}

@Article{Jones:2013:FPU,
  author =       "Capers Jones",
  title =        "Function points as a universal software metric",
  journal =      j-SIGSOFT,
  volume =       "38",
  number =       "4",
  pages =        "1--27",
  month =        jul,
  year =         "2013",
  CODEN =        "SFENDP",
  DOI =          "https://doi.org/10.1145/2492248.2492268",
  ISSN =         "0163-5948 (print), 1943-5843 (electronic)",
  ISSN-L =       "0163-5948",
  bibdate =      "Wed Aug 1 17:16:27 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigsoft2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Function point metrics are the most accurate and
                 effective metrics yet developed for software sizing and
                 also for studying software productivity, quality,
                 costs, risks, and economic value. Unlike the older
                 ``lines of code'' metric function points can be used to
                 study requirements, design, and in fact all software
                 activities from development through maintenance. In the
                 future function point metrics can easily become a
                 universal metric used for all software applications and
                 for all software contracts in all countries. The
                 government of Brazil already requires function points
                 for all software contracts, and South Korea and Italy
                 may soon follow. However, there are some logistical
                 problems with function point metrics that need to be
                 understood and overcome in order for function point
                 metrics to become the primary metric for software
                 economic analysis. Manual function point counting is
                 too slow and costly to be used on large software
                 projects above 10,000 function points in size. Also,
                 application size is not constant but grows at about 2\%
                 per calendar month during development and 8\% or more
                 per calendar year for as long as software is in active
                 use. This paper discusses a method of high-speed
                 function point counting that can size any application
                 in less than two minutes, and which can predict
                 application growth during development and for five
                 years after release. This new method is based on
                 pattern matching and is covered by U.S. utility patent
                 application and hence is patent pending.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGSOFT Software Engineering Notes",
  journal-URL =  "https://dl.acm.org/citation.cfm?id=J728",
}

@Article{Kamthe:2013:IWL,
  author =       "Ankur Kamthe and Miguel {\'A}
                 Carreira-Perpi{\~n}{\'a}n and Alberto E. Cerpa",
  title =        "Improving wireless link simulation using multilevel
                 {Markov} models",
  journal =      j-TOSN,
  volume =       "10",
  number =       "1",
  pages =        "17:1--17:??",
  month =        nov,
  year =         "2013",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2529991",
  ISSN =         "1550-4859 (print), 1550-4867 (electronic)",
  ISSN-L =       "1550-4859",
  bibdate =      "Thu Mar 13 07:56:30 MDT 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tosn.bib",
  abstract =     "Modeling the behavior of 802.15.4 links is a
                 nontrivial problem, because 802.15.4 links experience
                 different level of dynamics at short and long time
                 scales. This makes the design of a suitable model that
                 combines the different dynamics at different time
                 scales a nontrivial problem. We propose a novel
                 multilevel approach, the M{\&}M model, involving hidden
                 Markov models (HMMs) and mixtures of multivariate
                 Bernoullis (MMBs) for modeling the long and short
                 time-scale behavior of wireless links from 802.15.4
                 test beds. We characterize the synthetic traces
                 generated from our model of the wireless link in terms
                 of the mean and variance of the packet reception rates
                 from the data traces, comparison of distributions of
                 run lengths, and conditional packet delivery functions
                 of successive packet receptions (1's) and losses (0's).
                 Our results show that when compared to the closest-fit
                 pattern matching model in TOSSIM, the proposed modeling
                 approach is able to mimic the behavior of the data
                 traces quite closely, with differences in packet
                 reception rates of the empirical and simulated traces
                 of less than 1.9\% on average and 6.6\% in the worst
                 case. Moreover, the simulated links from our proposed
                 approach were able to account for long runs of 1's and
                 0's as observed in empirical data traces.",
  acknowledgement = ack-nhfb,
  articleno =    "17",
  fjournal =     "ACM Transactions on Sensor Networks (TOSN)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J981",
}

@Article{Kawahito:2013:IRF,
  author =       "Motohiro Kawahito and Hideaki Komatsu and Takao
                 Moriyama and Hiroshi Inoue and Toshio Nakatani",
  title =        "Idiom recognition framework using topological
                 embedding",
  journal =      j-TACO,
  volume =       "10",
  number =       "3",
  pages =        "13:1--13:??",
  month =        sep,
  year =         "2013",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2512431",
  ISSN =         "1544-3566 (print), 1544-3973 (electronic)",
  ISSN-L =       "1544-3566",
  bibdate =      "Mon Sep 16 17:20:12 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/taco.bib;
                 https://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
  abstract =     "Modern processors support hardware-assist instructions
                 (such as TRT and TROT instructions on the IBM System z)
                 to accelerate certain functions such as delimiter
                 search and character conversion. Such special
                 instructions are often used in high-performance
                 libraries, but their exploitation in optimizing
                 compilers has been limited. We devised a new idiom
                 recognition technique based on a topological embedding
                 algorithm to detect idiom patterns in the input
                 programs more aggressively than in previous approaches
                 using exact pattern matching. Our approach can detect a
                 pattern even if the code segment does not exactly match
                 the idiom. For example, we can detect a code segment
                 that includes additional code within the idiom pattern.
                 We also propose an instruction simplification for the
                 idiom recognition. This optimization analyzes all of
                 the usages of the output of the optimized code for a
                 specific idiom. If we find that we do not need an
                 actual value for the output but only a value in a
                 subrange, then we can assign a value in that subrange
                 as the output. The code generation can generate faster
                 code with this optimization. We implemented our new
                 idiom recognition approach based on the Java
                 Just-In-Time (JIT) compiler that is part of the J9 Java
                 Virtual Machine, and we supported several important
                 idioms for the special hardware-assist instructions on
                 the IBM System z and on some models of the IBM System
                 p. To demonstrate the effectiveness of our technique,
                 we performed two experiments. The first experiment was
                 to see how many more patterns we can detect compared to
                 the previous approach. The second experiment measured
                 the performance improvements over the previous
                 approaches. For the first experiment, we used the Java
                 Compatibility Kit (JCK) API tests. For the second
                 experiment we used the IBM XML parser, SPECjvm98, and
                 SPCjbb2000. In summary, relative to a baseline
                 implementation using exact pattern matching, our
                 algorithm converted 76\% more loops in JCK tests. On a
                 z9, we also observed significant average performance
                 improvement of the XML parser by 54\%, of SPECjvm98 by
                 1.9\%, and of SPECjbb2000 by 4.4\%. Finally, we
                 observed that the JIT compilation time increased by
                 only 0.32\% to 0.44\%.",
  acknowledgement = ack-nhfb,
  articleno =    "13",
  fjournal =     "ACM Transactions on Architecture and Code Optimization
                 (TACO)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J924",
}

@Article{Kouzinopoulos:2013:EOT,
  author =       "Charalampos S. Kouzinopoulos and Konstantinos G.
                 Margaritis",
  title =        "Exact online two-dimensional pattern matching using
                 multiple pattern matching algorithms",
  journal =      j-ACM-J-EXP-ALGORITHMICS,
  volume =       "18",
  number =       "1",
  pages =        "2.4:1--2.4:??",
  month =        dec,
  year =         "2013",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2513148",
  ISSN =         "1084-6654",
  ISSN-L =       "1084-6654",
  bibdate =      "Wed May 21 14:36:03 MDT 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jea.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Baker and Bird and Baeza-Yates and Regnier are two of
                 the most efficient and widely used algorithms for exact
                 online two-dimensional pattern matching. Both use the
                 automaton of the Aho--Corasick multiple pattern
                 matching algorithm to locate all the occurrences of a
                 two-dimensional pattern in a two-dimensional input
                 string, a data structure that is considered by many as
                 inefficient, especially when used to process long
                 patterns or data using large alphabet sizes. This
                 article presents variants of the Baker and Bird and the
                 Baeza-Yates and Regnier algorithms that use the data
                 structures of the Set Horspool, Wu-Manber, Set Backward
                 Oracle Matching, and SOG multiple pattern matching
                 algorithms in place of the automaton of Aho--Corasick
                 and evaluates their performance experimentally in terms
                 of preprocessing and searching time.",
  acknowledgement = ack-nhfb,
  articleno =    "2.4",
  fjournal =     "Journal of Experimental Algorithmics (JEA)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J430",
}

@Article{Kubica:2013:LTA,
  author =       "M. Kubica and T. Kulczy{\'n}ski and J. Radoszewski and
                 W. Rytter and T. Wale{\'n}",
  title =        "A linear time algorithm for consecutive permutation
                 pattern matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "113",
  number =       "12",
  pages =        "430--433",
  day =          "30",
  month =        jun,
  year =         "2013",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Apr 16 06:15:28 MDT 2013",
  bibsource =    "http://www.sciencedirect.com/science/journal/00200190;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019013000926",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Le:2013:MEM,
  author =       "Hoang Le and Viktor K. Prasanna",
  title =        "A Memory-Efficient and Modular Approach for
                 Large-Scale String Pattern Matching",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "62",
  number =       "5",
  pages =        "844--857",
  month =        may,
  year =         "2013",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.2012.38",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Tue Apr 30 12:26:22 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Lee:2013:PMS,
  author =       "Tsern-Huei Lee and Nai-Lun Huang",
  title =        "A pattern-matching scheme with high throughput
                 performance and low memory requirement",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "21",
  number =       "4",
  pages =        "1104--1116",
  month =        aug,
  year =         "2013",
  CODEN =        "IEANEP",
  DOI =          "https://doi.org/10.1109/TNET.2012.2224881",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Mon Sep 9 17:27:57 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Pattern-matching techniques have recently been applied
                 to network security applications such as intrusion
                 detection, virus protection, and spam filters. The
                 widely used Aho--Corasick (AC) algorithm can
                 simultaneously match multiple patterns while providing
                 a worst-case performance guarantee. However, as
                 transmission technologies improve, the AC algorithm
                 cannot keep up with transmission speeds in high-speed
                 networks. Moreover, it may require a huge amount of
                 space to store a two-dimensional state transition table
                 when the total length of patterns is large. In this
                 paper, we present a pattern-matching architecture
                 consisting of a stateful pre-filter and an AC-based
                 verification engine. The stateful pre-filter is optimal
                 in the sense that it is equivalent to utilizing all
                 previous query results. In addition, the filter can be
                 easily realized with bitmaps and simple bitwise-AND and
                 shift operations. The size of the two-dimensional state
                 transition table in our proposed architecture is
                 proportional to the number of patterns, as opposed to
                 the total length of patterns in previous designs. Our
                 proposed architecture achieves a significant
                 improvement in both throughput performance and memory
                 usage.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J771",
}

@Article{Li:2013:OPS,
  author =       "Bin Li and Steven C. H. Hoi",
  title =        "Online portfolio selection: a survey",
  journal =      j-COMP-SURV,
  volume =       "46",
  number =       "3",
  pages =        "35:1--35:??",
  month =        jan,
  year =         "2013",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/2512962",
  ISSN =         "0360-0300 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  bibdate =      "Thu Feb 6 07:33:31 MST 2014",
  bibsource =    "http://www.acm.org/pubs/contents/journals/surveys/;
                 https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Online portfolio selection is a fundamental problem in
                 computational finance, which has been extensively
                 studied across several research communities, including
                 finance, statistics, artificial intelligence, machine
                 learning, and data mining. This article aims to provide
                 a comprehensive survey and a structural understanding
                 of online portfolio selection techniques published in
                 the literature. From an online machine learning
                 perspective, we first formulate online portfolio
                 selection as a sequential decision problem, and then we
                 survey a variety of state-of-the-art approaches, which
                 are grouped into several major categories, including
                 benchmarks, Follow-the-Winner approaches,
                 Follow-the-Loser approaches, Pattern-Matching--based
                 approaches, and Meta-Learning Algorithms. In addition
                 to the problem formulation and related algorithms, we
                 also discuss the relationship of these algorithms with
                 the capital growth theory so as to better understand
                 the similarities and differences of their underlying
                 trading ideas. This article aims to provide a timely
                 and comprehensive survey for both machine learning and
                 data mining researchers in academia and quantitative
                 portfolio managers in the financial industry to help
                 them understand the state of the art and facilitate
                 their research and practical applications. We also
                 discuss some open issues and evaluate some emerging new
                 trends for future research.",
  acknowledgement = ack-nhfb,
  articleno =    "35",
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
}

@InProceedings{Libkin:2013:TRA,
  author =       "Leonid Libkin and Juan Reutter and Domagoj Vrgoc",
  title =        "Trial for {RDF}: adapting graph query languages for
                 {RDF} data",
  crossref =     "Hull:2013:SPC",
  pages =        "201--212",
  year =         "2013",
  DOI =          "https://doi.org/10.1145/2463664.2465226",
  bibdate =      "Wed Mar 5 07:53:56 MST 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Querying RDF data is viewed as one of the main
                 applications of graph query languages, and yet the
                 standard model of graph databases --- essentially
                 labeled graphs --- is different from the triples-based
                 model of RDF. While encodings of RDF databases into
                 graph data exist, we show that even the most natural
                 ones are bound to lose some functionality when used in
                 conjunction with graph query languages. The solution is
                 to work directly with triples, but then many properties
                 taken for granted in the graph database context (e.g.,
                 reachability) lose their natural meaning. Our goal is
                 to introduce languages that work directly over triples
                 and are closed, i.e., they produce sets of triples,
                 rather than graphs. Our basic language is called TriAL,
                 or Triple Algebra: it guarantees closure properties by
                 replacing the product with a family of join operations.
                 We extend TriAL with recursion, and explain why such an
                 extension is more intricate for triples than for
                 graphs. We present a declarative language, namely a
                 fragment of datalog, capturing the recursive algebra.
                 For both languages, the combined complexity of query
                 evaluation is given by low-degree polynomials. We
                 compare our languages with relational languages, such
                 as finite-variable logics, and previously studied graph
                 query languages such as adaptations of XPath, regular
                 path queries, and nested regular expressions; many of
                 these languages are subsumed by the recursive triple
                 algebra. We also provide examples of the usefulness of
                 TriAL in querying graph and RDF data.",
  acknowledgement = ack-nhfb,
}

@Article{Lin:2013:APM,
  author =       "Cheng-Hung Lin and Chen-Hsiung Liu and Lung-Sheng
                 Chien and Shih-Chieh Chang",
  title =        "Accelerating Pattern Matching Using a Novel Parallel
                 Algorithm on {GPUs}",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "62",
  number =       "10",
  pages =        "1906--1916",
  month =        oct,
  year =         "2013",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.2012.254",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Fri Nov 15 08:54:34 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Liu:2013:IAA,
  author =       "Nan Liu and Haitao Jiang and Daming Zhu and Binhai
                 Zhu",
  title =        "An Improved Approximation Algorithm for Scaffold
                 Filling to Maximize the Common Adjacencies",
  journal =      j-TCBB,
  volume =       "10",
  number =       "4",
  pages =        "905--913",
  month =        jul,
  year =         "2013",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2013.100",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Thu Jan 9 15:33:59 MST 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "Scaffold filling is a new combinatorial optimization
                 problem in genome sequencing. The one-sided scaffold
                 filling problem can be described as given an incomplete
                 genome $ (I) $ and a complete (reference) genome $ (G)
                 $, fill the missing genes into $ (I) $ such that the
                 number of common (string) adjacencies between the
                 resulting genome $ (I^{\prime }) $ and $ (G) $ is
                 maximized. This problem is NP-complete for genome with
                 duplicated genes and the best known approximation
                 factor is 1.33, which uses a greedy strategy. In this
                 paper, we prove a better lower bound of the optimal
                 solution, and devise a new algorithm by exploiting the
                 maximum matching method and a local improvement
                 technique, which improves the approximation factor to
                 1.25. For genome with gene repetitions, this is the
                 only known NP-complete problem which admits an
                 approximation with a small constant factor (less than
                 1.5).",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Losemann:2013:CRE,
  author =       "Katja Losemann and Wim Martens",
  title =        "The complexity of regular expressions and property
                 paths in {SPARQL}",
  journal =      j-TODS,
  volume =       "38",
  number =       "4",
  pages =        "24:1--24:??",
  month =        nov,
  year =         "2013",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/2494529",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Mon Dec 9 11:35:10 MST 2013",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tods/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  abstract =     "The World Wide Web Consortium (W3C) recently
                 introduced property paths in SPARQL 1.1, a query
                 language for RDF data. Property paths allow SPARQL
                 queries to evaluate regular expressions over
                 graph-structured data. However, they differ from
                 standard regular expressions in several notable
                 aspects. For example, they have a limited form of
                 negation, they have numerical occurrence indicators as
                 syntactic sugar, and their semantics on graphs is
                 defined in a nonstandard manner. We formalize the W3C
                 semantics of property paths and investigate various
                 query evaluation problems on graphs. More specifically,
                 let $x$ and $y$ be two nodes in an edge-labeled graph
                 and $r$ be an expression. We study the complexities of:
                 (1) deciding whether there exists a path from $x$ to
                 $y$ that matches $r$ and (2) counting how many paths
                 from $x$ to $y$ match $r$. Our main results show that,
                 compared to an alternative semantics of regular
                 expressions on graphs, the complexity of (1) and (2)
                 under W3C semantics is significantly higher. Whereas
                 the alternative semantics remains in polynomial time
                 for large fragments of expressions, the W3C semantics
                 makes problems (1) and (2) intractable almost
                 immediately. As a side-result, we prove that the
                 membership problem for regular expressions with
                 numerical occurrence indicators and negation is in
                 polynomial time.",
  acknowledgement = ack-nhfb,
  articleno =    "24",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
}

@Article{Lu:2013:NFM,
  author =       "Chia Wei Lu and Chin Lung Lu and R. C. T. Lee",
  title =        "A new filtration method and a hybrid strategy for
                 approximate string matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "481",
  number =       "??",
  pages =        "9--17",
  day =          "15",
  month =        apr,
  year =         "2013",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Apr 16 05:48:59 MDT 2013",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397513001540",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Mooney:2013:SPM,
  author =       "Carl H. Mooney and John F. Roddick",
  title =        "Sequential pattern mining --- approaches and
                 algorithms",
  journal =      j-COMP-SURV,
  volume =       "45",
  number =       "2",
  pages =        "19:1--19:39",
  month =        feb,
  year =         "2013",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/2431211.2431218",
  ISSN =         "0360-0300 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  bibdate =      "Thu Mar 7 11:42:33 MST 2013",
  bibsource =    "http://www.acm.org/pubs/contents/journals/surveys/;
                 https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Sequences of events, items, or tokens occurring in an
                 ordered metric space appear often in data and the
                 requirement to detect and analyze frequent subsequences
                 is a common problem. Sequential Pattern Mining arose as
                 a subfield of data mining to focus on this field. This
                 article surveys the approaches and algorithms proposed
                 to date.",
  acknowledgement = ack-nhfb,
  articleno =    "19",
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
}

@Article{Okcan:2013:SEA,
  author =       "Alper Okcan and Mirek Riedewald and Biswanath Panda
                 and Daniel Fink",
  title =        "{Scolopax}: exploratory analysis of scientific data",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "6",
  number =       "12",
  pages =        "1298--1301",
  month =        aug,
  year =         "2013",
  CODEN =        "????",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Fri Dec 13 05:57:00 MST 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "The formulation of hypotheses based on patterns found
                 in data is an essential component of scientific
                 discovery. As larger and richer data sets become
                 available, new scalable and user-friendly tools for
                 scientific discovery through data analysis are needed.
                 We demonstrate Scolopax, which explores the idea of a
                 search engine for hypotheses. It has an intuitive user
                 interface that supports sophisticated queries. Scolopax
                 can explore a huge space of possible hypotheses,
                 returning a ranked list of those that best match the
                 user preferences. To scale to large and complex data
                 sets, Scolopax relies on parallel data management and
                 mining techniques. These include model training,
                 efficient model summary generation, and novel parallel
                 join techniques that together with traditional
                 approaches such as clustering manipulate massive
                 model-summary collections to find the most interesting
                 hypotheses. This demonstration of Scolopax uses a real
                 observational data set, provided by the Cornell Lab of
                 Ornithology. It contains more than 3.3 million bird
                 sightings reported by citizen scientists and has almost
                 2500 attributes. Conference attendees have the
                 opportunity to make novel discoveries in this data set,
                 ranging from identifying variables that strongly affect
                 bird populations in specific regions to detecting more
                 sophisticated patterns such as habitat competition and
                 migration.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Poleksic:2013:IAM,
  author =       "Aleksandar Poleksic",
  title =        "Improved Algorithms for Matching $r$-Separated Sets
                 with Applications to Protein Structure Alignment",
  journal =      j-TCBB,
  volume =       "10",
  number =       "1",
  pages =        "226--229",
  month =        jan,
  year =         "2013",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2012.135",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Mon Jun 10 07:28:56 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "The Largest Common Point-set (LCP) and the Pattern
                 Matching (PM) problems have received much attention in
                 the fields of pattern matching, computer vision and
                 computational biology. Perhaps, the most important
                 application of these problems is the protein structural
                 alignment, which seeks to find a superposition of a
                 pair of input proteins that maximizes a given protein
                 structure similarity metric. Although it has been shown
                 that LCP and PM are both tractable problems, the
                 running times of existing algorithms are high-degree
                 polynomials. Here, we present novel methods for finding
                 approximate and exact threshold-LCP and threshold-PM
                 for r-separated sets, in general, and protein 3D
                 structures, in particular. Improved running times of
                 our methods are achieved by building upon several
                 different, previously published techniques.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Qiao:2013:TKN,
  author =       "Miao Qiao and Lu Qin and Hong Cheng and Jeffrey Xu Yu
                 and Wentao Tian",
  title =        "Top-$k$ nearest keyword search on large graphs",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "6",
  number =       "10",
  pages =        "901--912",
  month =        aug,
  year =         "2013",
  CODEN =        "????",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Fri Dec 13 05:56:50 MST 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "It is quite common for networks emerging nowadays to
                 have labels or textual contents on the nodes. On such
                 networks, we study the problem of top-$k$ nearest
                 keyword ($k$-NK) search. In a network $G$ modeled as an
                 undirected graph, each node is attached with zero or
                 more keywords, and each edge is assigned with a weight
                 measuring its length. Given a query node $q$ in $G$ and
                 a keyword $ \lambda $, a $k$-NK query seeks $k$ nodes
                 which contain $ \lambda $ and are nearest to $q$.
                 $k$-NK is not only useful as a stand-alone query but
                 also as a building block for tackling complex graph
                 pattern matching problems. The key to an accurate
                 $k$-NK result is a precise shortest distance estimation
                 in a graph. Based on the latest distance oracle
                 technique, we build a shortest path tree for a distance
                 oracle and use the tree distance as a more accurate
                 estimation. With such representation, the original
                 $k$-NK query on a graph can be reduced to answering the
                 query on a set of trees and then assembling the results
                 obtained from the trees. We propose two efficient
                 algorithms to report the exact $k$-NK result on a tree.
                 One is query time optimized for a scenario when a small
                 number of result nodes are of interest to users. The
                 other handles $k$-NK queries for an arbitrarily large
                 $k$ efficiently. In obtaining a $k$-NK result on a
                 graph from that on trees, a global storage technique is
                 proposed to further reduce the index size and the query
                 time. Extensive experimental results conform with our
                 theoretical findings, and demonstrate the effectiveness
                 and efficiency of our $k$-NK algorithms on large real
                 graphs.",
  acknowledgement = ack-nhfb,
  ajournal =     "Proc. VLDB Endowment",
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Qiao:2013:TNK,
  author =       "Miao Qiao and Lu Qin and Hong Cheng and Jeffrey Xu Yu
                 and Wentao Tian",
  title =        "Top-$k$ nearest keyword search on large graphs",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "6",
  number =       "10",
  pages =        "901--912",
  month =        aug,
  year =         "2013",
  CODEN =        "????",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Fri Dec 13 05:56:50 MST 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "It is quite common for networks emerging nowadays to
                 have labels or textual contents on the nodes. On such
                 networks, we study the problem of top-$k$ nearest
                 keyword ($k$-NK) search. In a network $G$ modeled as an
                 undirected graph, each node is attached with zero or
                 more keywords, and each edge is assigned with a weight
                 measuring its length. Given a query node $q$ in $G$ and
                 a keyword $ \lambda $, a $k$-NK query seeks $k$ nodes
                 which contain $ \lambda $ and are nearest to $q$.
                 $k$-NK is not only useful as a stand-alone query but
                 also as a building block for tackling complex graph
                 pattern matching problems. The key to an accurate
                 $k$-NK result is a precise shortest distance estimation
                 in a graph. Based on the latest distance oracle
                 technique, we build a shortest path tree for a distance
                 oracle and use the tree distance as a more accurate
                 estimation. With such representation, the original
                 $k$-NK query on a graph can be reduced to answering the
                 query on a set of trees and then assembling the results
                 obtained from the trees. We propose two efficient
                 algorithms to report the exact $k$-NK result on a tree.
                 One is query time optimized for a scenario when a small
                 number of result nodes are of interest to users. The
                 other handles $k$-NK queries for an arbitrarily large
                 $k$ efficiently. In obtaining a $k$-NK result on a
                 graph from that on trees, a global storage technique is
                 proposed to further reduce the index size and the query
                 time. Extensive experimental results conform with our
                 theoretical findings, and demonstrate the effectiveness
                 and efficiency of our $k$-NK algorithms on large real
                 graphs.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Qin:2013:ASS,
  author =       "Jianbin Qin and Wei Wang and Chuan Xiao and Yifei Lu
                 and Xuemin Lin and Haixun Wang",
  title =        "Asymmetric signature schemes for efficient exact edit
                 similarity query processing",
  journal =      j-TODS,
  volume =       "38",
  number =       "3",
  pages =        "16:1--16:??",
  month =        aug,
  year =         "2013",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/2508020.2508023",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Fri Aug 30 16:33:21 MDT 2013",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tods/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  abstract =     "Given a query string Q, an edit similarity search
                 finds all strings in a database whose edit distance
                 with {$Q$} is no more than a given threshold $ \tau $ .
                 Most existing methods answering edit similarity queries
                 employ schemes to generate string subsequences as
                 signatures and generate candidates by set overlap
                 queries on query and data signatures. In this article,
                 we show that for any such signature scheme, the lower
                 bound of the minimum number of signatures is $ \tau + 1
                 $, which is lower than what is achieved by existing
                 methods. We then propose several asymmetric signature
                 schemes, that is, extracting different numbers of
                 signatures for the data and query strings, which
                 achieve this lower bound. A basic asymmetric scheme is
                 first established on the basis of matching $q$-chunks
                 and $q$-grams between two strings. Two efficient query
                 processing algorithms (IndexGram and IndexChunk) are
                 developed on top of this scheme. We also propose novel
                 candidate pruning methods to further improve the
                 efficiency. We then generalize the basic scheme by
                 incorporating novel ideas of floating $q$-chunks,
                 optimal selection of $q$-chunks, and reducing the
                 number of signatures using global ordering. As a
                 result, the Super and Turbo families of schemes are
                 developed together with their corresponding query
                 processing algorithms. We have conducted a
                 comprehensive experimental study using the six
                 asymmetric algorithms and nine previous
                 state-of-the-art algorithms. The experiment results
                 clearly showcase the efficiency of our methods and
                 demonstrate space and time characteristics of our
                 proposed algorithms.",
  acknowledgement = ack-nhfb,
  articleno =    "16",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
}

@Article{Sadoghi:2013:AOB,
  author =       "Mohammad Sadoghi and Hans-Arno Jacobsen",
  title =        "Analysis and optimization for {Boolean} expression
                 indexing",
  journal =      j-TODS,
  volume =       "38",
  number =       "2",
  pages =        "8:1--8:??",
  month =        jun,
  year =         "2013",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/2487259.2487260",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Mon Jul 1 18:44:25 MDT 2013",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tods/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  abstract =     "BE-Tree is a novel dynamic data structure designed to
                 efficiently index Boolean expressions over a
                 high-dimensional discrete space. BE Tree-copes with
                 both high-dimensionality and expressiveness of Boolean
                 expressions by introducing an effective two-phase
                 space-cutting technique that specifically utilizes the
                 discrete and finite domain properties of the space.
                 Furthermore, BE-Tree employs self-adjustment policies
                 to dynamically adapt the tree as the workload changes.
                 Moreover, in BE-Tree, we develop two novel
                 cache-conscious predicate evaluation techniques,
                 namely, lazy and bitmap evaluations, that also exploit
                 the underlying discrete and finite space to
                 substantially reduce BE-Tree's matching time by up to
                 75\% BE-Tree is a general index structure for matching
                 Boolean expression which has a wide range of
                 applications including (complex) event processing,
                 publish/subscribe matching, emerging applications in
                 cospaces, profile matching for targeted web
                 advertising, and approximate string matching. Finally,
                 the superiority of BE-Tree is proven through a
                 comprehensive evaluation with state-of-the-art index
                 structures designed for matching Boolean expressions.",
  acknowledgement = ack-nhfb,
  articleno =    "8",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
}

@Article{Sarma:2013:ULB,
  author =       "Anish Das Sarma and Foto N. Afrati and Semih Salihoglu
                 and Jeffrey D. Ullman",
  title =        "Upper and lower bounds on the cost of a map-reduce
                 computation",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "6",
  number =       "4",
  pages =        "277--288",
  month =        feb,
  year =         "2013",
  CODEN =        "????",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Fri Dec 13 05:56:22 MST 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "In this paper we study the tradeoff between
                 parallelism and communication cost in a map-reduce
                 computation. For any problem that is not
                 ``embarrassingly parallel,'' the finer we partition the
                 work of the reducers so that more parallelism can be
                 extracted, the greater will be the total communication
                 between mappers and reducers. We introduce a model of
                 problems that can be solved in a single round of
                 map-reduce computation. This model enables a generic
                 recipe for discovering lower bounds on communication
                 cost as a function of the maximum number of inputs that
                 can be assigned to one reducer. We use the model to
                 analyze the tradeoff for three problems: finding pairs
                 of strings at Hamming distance d, finding triangles and
                 other patterns in a larger graph, and matrix
                 multiplication. For finding strings of Hamming distance
                 1, we have upper and lower bounds that match exactly.
                 For triangles and many other graphs, we have upper and
                 lower bounds that are the same to within a constant
                 factor. For the problem of matrix multiplication, we
                 have matching upper and lower bounds for one-round
                 map-reduce algorithms. We are also able to explore
                 two-round map-reduce algorithms for matrix
                 multiplication and show that these never have more
                 communication, for a given reducer size, than the best
                 one-round algorithm, and often have significantly
                 less.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Schmid:2013:ICR,
  author =       "Markus L. Schmid",
  title =        "Inside the Class of Regex Languages",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "24",
  number =       "7",
  pages =        "1117--??",
  month =        nov,
  year =         "2013",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054113400340",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Thu Feb 27 13:50:02 MST 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Schmidt:2013:PSM,
  author =       "Thorsten-Walther Schmidt and Jan Nov{\'a}k and
                 Johannes Meng and Anton S. Kaplanyan and Tim Reiner and
                 Derek Nowrouzezahrai and Carsten Dachsbacher",
  title =        "Path-space manipulation of physically-based light
                 transport",
  journal =      j-TOG,
  volume =       "32",
  number =       "4",
  pages =        "129:1--129:??",
  month =        jul,
  year =         "2013",
  CODEN =        "ATGRDF",
  DOI =          "https://doi.org/10.1145/2461912.2461980",
  ISSN =         "0730-0301 (print), 1557-7368 (electronic)",
  ISSN-L =       "0730-0301",
  bibdate =      "Sat Jul 13 11:43:20 MDT 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tog.bib",
  abstract =     "Industry-quality content creation relies on tools for
                 lighting artists to quickly prototype, iterate, and
                 refine final renders. As industry-leading studios
                 quickly adopt physically-based rendering (PBR) across
                 their art generation pipelines, many existing tools
                 have become unsuitable as they address only simple
                 effects without considering underlying PBR concepts and
                 constraints. We present a novel light transport
                 manipulation technique that operates directly on
                 path-space solutions of the rendering equation. We
                 expose intuitive direct and indirect manipulation
                 approaches to edit complex effects such as
                 (multi-refracted) caustics, diffuse and glossy indirect
                 bounces, and direct/indirect shadows. With our sketch-
                 and object-space selection, all built atop a
                 parameterized regular expression engine, artists can
                 search and isolate shading effects to inspect and edit.
                 We classify and filter paths on the fly and visualize
                 the selected transport phenomena. We survey artists who
                 used our tool to manipulate complex phenomena on both
                 static and animated scenes.",
  acknowledgement = ack-nhfb,
  articleno =    "129",
  fjournal =     "ACM Transactions on Graphics",
  journal-URL =  "https://dl.acm.org/loi/tog",
}

@Book{Stroustrup:2013:CPL,
  author =       "Bjarne Stroustrup",
  title =        "The {C++} programming language",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  edition =      "Fourth",
  pages =        "xiv + 1346",
  year =         "2013",
  ISBN =         "0-321-56384-0 (paperback), 0-321-95832-2 (hardcover),
                 0-13-352283-0 (e-book)",
  ISBN-13 =      "978-0-321-56384-2 (paperback), 978-0-321-95832-7
                 (hardcover), 978-0-13-352283-9 (e-book)",
  LCCN =         "QA76.73.C153 S77 2013",
  bibdate =      "Mon Sep 6 13:47:44 MDT 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/prng.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The new C++11 standard allows programmers to express
                 ideas more clearly, simply, and directly, and to write
                 faster, more efficient code. Bjarne Stroustrup, the
                 designer and original implementer of C++, has
                 reorganized, extended, and completely rewritten his
                 definitive reference and tutorial for programmers who
                 want to use C++ most effectively. The C++ Programming
                 Language, Fourth Edition, delivers meticulous, richly
                 explained, and integrated coverage of the entire
                 language-its facilities, abstraction mechanisms,
                 standard libraries, and key design techniques.
                 Throughout, Stroustrup presents concise, ``pure C++11''
                 examples, which have been carefully crafted to clarify
                 both usage and program design. To promote deeper
                 understanding, the author provides extensive
                 cross-references, both within the book and to the ISO
                 standard. New C++11 coverage includes Support for
                 concurrency Regular expressions, resource management
                 pointers, random numbers, and improved containers
                 General and uniform initialization, simplified
                 for-statements, move semantics, and Unicode support
                 Lambdas, general constant expressions, control over
                 class defaults, variadic templates, template aliases,
                 and user-defined literals Compatibility issues Topics
                 addressed in this comprehensive book include Basic
                 facilities: type, object, scope, storage, computation
                 fundamentals, and more Modularity, as supported by
                 namespaces, source files, and exception handling C++
                 abstraction, including classes, class hierarchies, and
                 templates in support of a synthesis of traditional
                 programming, object-oriented programming, and generic
                 programming Standard Library: containers, algorithms,
                 iterators, utilities, strings, stream I/O, locales,
                 numerics, and more The C++ basic memory model, in depth
                 This fourth edition makes C++11 thoroughly accessible
                 to programmers moving from C++98 or other languages,
                 while introducing insights and techniques that even
                 cutting-edge C++11 programmers will find indispensable.
                 This book features an enhanced, layflat binding, which
                 allows the book to stay open more easily when placed on
                 a flat surface. This special binding method ---
                 noticeable by a small space inside the spine also
                 increases durability.",
  acknowledgement = ack-nhfb,
  libnote =      "Not in my library.",
  subject =      "C++ (Computer program language); Computer programming;
                 C++ (Langage de programmation); Programmation
                 (Informatique); C++ (Computer program language);
                 Computer programming.",
  tableofcontents = "Part I: Introductory Material \\
                 1. Notes to the Reader \\
                 2. A Tour of C++: The Basics \\
                 3. A Tour of C++: Abstraction Mechanisms \\
                 4. A Tour of C++: Containers and Algorithms \\
                 5. A Tour of C++: Concurrency and Utilities \\
                 Part II: Basic Facilities \\
                 6. Types and Declarations \\
                 7. Pointers, Arrays, and References \\
                 8. Structures, Unions, and Enumerations \\
                 9. Statements \\
                 10. Expressions \\
                 11. Select Operations \\
                 12. Functions \\
                 13. Exception Handling \\
                 14. Namespaces \\
                 15. Source Files and Programs \\
                 Part III: Abstraction Mechanisms \\
                 16. Classes \\
                 17. Construction, Cleanup, Copy, and Move \\
                 18. Overloading \\
                 19. Special Operators \\
                 20. Derived Classes \\
                 21. Class Hierarchies \\
                 22. Run-Time Type Information \\
                 23. Templates \\
                 24. Generic Programming \\
                 25. Specialization \\
                 26. Instantiation \\
                 27. Templates and Hierarchies \\
                 28. Metaprogramming \\
                 29. A Matrix Design \\
                 Part IV: The Standard Library \\
                 30. Standard Library Summary \\
                 31. STL Containers \\
                 32. STL Algorithms \\
                 33. STL Iterators \\
                 34. Memory and Resources \\
                 35. Utilities \\
                 36. Strings \\
                 37. Regular Expressions \\
                 38. I/O Streams \\
                 39. Locales \\
                 40. Numerics \\
                 41. Concurrency \\
                 42. Threads and Tasks \\
                 43. The C Standard Library \\
                 44. Compatibility",
}

@Article{Tateishi:2013:PIS,
  author =       "Takaaki Tateishi and Marco Pistoia and Omer Tripp",
  title =        "Path- and index-sensitive string analysis based on
                 monadic second-order logic",
  journal =      j-TOSEM,
  volume =       "22",
  number =       "4",
  pages =        "33:1--33:??",
  month =        oct,
  year =         "2013",
  CODEN =        "ATSMER",
  DOI =          "https://doi.org/10.1145/2522920.2522926",
  ISSN =         "1049-331X (print), 1557-7392 (electronic)",
  ISSN-L =       "1049-331X",
  bibdate =      "Wed Oct 30 12:18:03 MDT 2013",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tosem/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tosem.bib",
  abstract =     "We propose a novel technique for statically verifying
                 the strings generated by a program. The verification is
                 conducted by encoding the program in Monadic
                 Second-order Logic (M2L). We use M2L to describe
                 constraints among program variables and to abstract
                 built-in string operations. Once we encode a program in
                 M2L, a theorem prover for M2L, such as MONA, can
                 automatically check if a string generated by the
                 program satisfies a given specification, and if not,
                 exhibit a counterexample. With this approach, we can
                 naturally encode relationships among strings,
                 accounting also for cases in which a program
                 manipulates strings using indices. In addition, our
                 string analysis is path sensitive in that it accounts
                 for the effects of string and Boolean comparisons, as
                 well as regular-expression matches. We have implemented
                 our string analysis algorithm, and used it to augment
                 an industrial security analysis for Web applications by
                 automatically detecting and verifying sanitizers ---
                 methods that eliminate malicious patterns from
                 untrusted strings, making these strings safe to use in
                 security-sensitive operations. On the 8 benchmarks we
                 analyzed, our string analyzer discovered 128 previously
                 unknown sanitizers, compared to 71 sanitizers detected
                 by a previously presented string analysis.",
  acknowledgement = ack-nhfb,
  articleno =    "33",
  fjournal =     "ACM Transactions on Software Engineering and
                 Methodology",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J790",
}

@Article{Tomohiro:2013:PPM,
  author =       "Tomohiro I and Shunsuke Inenaga and Masayuki Takeda",
  title =        "Palindrome pattern matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "483",
  number =       "??",
  pages =        "162--170",
  day =          "29",
  month =        apr,
  year =         "2013",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2012.01.047",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon May 6 18:32:37 MDT 2013",
  bibsource =    "http://www.sciencedirect.com/science/journal/03043975;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397512001041",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Toyoda:2013:PDD,
  author =       "Machiko Toyoda and Yasushi Sakurai and Yoshiharu
                 Ishikawa",
  title =        "Pattern discovery in data streams under the time
                 warping distance",
  journal =      j-VLDB-J,
  volume =       "22",
  number =       "3",
  pages =        "295--318",
  month =        jun,
  year =         "2013",
  CODEN =        "VLDBFR",
  DOI =          "https://doi.org/10.1007/s00778-012-0289-3",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Wed Jul 17 17:37:10 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  abstract =     "Subsequence matching is a basic problem in the field
                 of data stream mining. In recent years, there has been
                 significant research effort spent on efficiently
                 finding subsequences similar to a query sequence.
                 Another challenging issue in relation to subsequence
                 matching is how we identify common local patterns when
                 both sequences are evolving. This problem arises in
                 trend detection, clustering, and outlier detection.
                 Dynamic time warping (DTW) is often used for
                 subsequence matching and is a powerful similarity
                 measure. However, the straightforward method using DTW
                 incurs a high computation cost for this problem. In
                 this paper, we propose a one-pass algorithm,
                 CrossMatch, that achieves the above goal. CrossMatch
                 addresses two important challenges: (1) how can we
                 identify common local patterns efficiently without any
                 omission? (2) how can we find common local patterns in
                 data stream processing? To tackle these challenges,
                 CrossMatch incorporates three ideas: (1) a scoring
                 function, which computes the DTW distance indirectly to
                 reduce the computation cost, (2) a position matrix,
                 which stores starting positions to keep track of common
                 local patterns in a streaming fashion, and (3) a
                 streaming algorithm, which identifies common local
                 patterns efficiently and outputs them on the fly. We
                 provide a theoretical analysis and prove that our
                 algorithm does not sacrifice accuracy. Our experimental
                 evaluation and case studies show that CrossMatch can
                 incrementally discover common local patterns in data
                 streams within constant time (per update) and space.",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Traytel:2013:VDP,
  author =       "Dmitriy Traytel and Tobias Nipkow",
  title =        "Verified decision procedures for {MSO} on words based
                 on derivatives of regular expressions",
  journal =      j-SIGPLAN,
  volume =       "48",
  number =       "9",
  pages =        "3--12",
  month =        sep,
  year =         "2013",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2544174.2500612",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Nov 27 18:32:10 MST 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Monadic second-order logic on finite words (MSO) is a
                 decidable yet expressive logic into which many decision
                 problems can be encoded. Since MSO formulas correspond
                 to regular languages, equivalence of MSO formulas can
                 be reduced to the equivalence of some regular
                 structures (e.g. automata). This paper presents a
                 verified functional decision procedure for MSO formulas
                 that is not based on automata but on regular
                 expressions. Functional languages are ideally suited
                 for this task: regular expressions are data types and
                 functions on them are defined by pattern matching and
                 recursion and are verified by structural induction.
                 Decision procedures for regular expression equivalence
                 have been formalized before, usually based on
                 Brzozowski derivatives. Yet, for a straightforward
                 embedding of MSO formulas into regular expressions an
                 extension of regular expressions with a projection
                 operation is required. We prove total correctness and
                 completeness of an equivalence checker for regular
                 expressions extended in that way. We also define a
                 language-preserving translation of formulas into
                 regular expressions with respect to two different
                 semantics of MSO. Our results have been formalized and
                 verified in the theorem prover Isabelle. Using
                 Isabelle's code generation facility, this yields purely
                 functional, formally verified programs that decide
                 equivalence of MSO formulas.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "ICFP '13 conference proceedings.",
}

@Article{Tseng:2013:NNE,
  author =       "Kuo-Kun Tseng and Fu-Fu Zeng and Huang-Nan Huang and
                 Yiming Liu and Jeng-Shyang Pan and W. H. Ip and C. H.
                 Wu",
  title =        "A new non-exact {Aho--Corasick} framework for {ECG}
                 classification",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "41",
  number =       "2",
  pages =        "41--46",
  month =        may,
  year =         "2013",
  CODEN =        "CANED2",
  DOI =          "https://doi.org/10.1145/2490302.2490310",
  ISSN =         "0163-5964 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Sat Jun 1 11:00:26 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigarch.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The Aho--Corasick (AC) algorithm is a popular and
                 useful exact string matching algorithm for text
                 searching and deep packet inspection. However, it has
                 seldom been used for non-exact classification or
                 identification. We propose a novel framework to make
                 use of AC for non-exact matching in the ECG
                 identification. The AC classification (ACC) algorithm
                 converts ECG waveforms into several short patterns for
                 AC, and decides the identification result by AC matched
                 counting value. In our experiments, the results are
                 surprisingly good and superior to previous algorithms.
                 So, we designed an AC algorithm application for
                 non-exact classification with high accuracy. Meanwhile,
                 ACC inherits the advantage from AC of being capable of
                 handling a large pattern set with linear time
                 complexity.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@Article{Wang:2013:MMC,
  author =       "Hao Wang and Shi Pu and Gabe Knezek and Jyh-Charn
                 Liu",
  title =        "{MIN-MAX}: A Counter-Based Algorithm for Regular
                 Expression Matching",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "24",
  number =       "1",
  pages =        "92--103",
  month =        jan,
  year =         "2013",
  CODEN =        "ITDSEO",
  DOI =          "https://doi.org/10.1109/TPDS.2012.116",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Wed May 1 08:02:21 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranspardistsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Parallel and Distributed
                 Systems",
  journal-URL =  "http://www.computer.org/tpds/archives.htm",
}

@Article{Wang:2013:RPM,
  author =       "Meng Wang and Jeremy Gibbons and Kazutaka Matsuda and
                 Zhenjiang Hu",
  title =        "Refactoring pattern matching",
  journal =      j-SCI-COMPUT-PROGRAM,
  volume =       "78",
  number =       "11",
  pages =        "2216--2242",
  day =          "1",
  month =        nov,
  year =         "2013",
  CODEN =        "SCPGD4",
  ISSN =         "0167-6423 (print), 1872-7964 (electronic)",
  ISSN-L =       "0167-6423",
  bibdate =      "Tue Sep 3 06:34:38 MDT 2013",
  bibsource =    "http://www.sciencedirect.com/science/journal/01676423;
                 https://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0167642312001426",
  acknowledgement = ack-nhfb,
  fjournal =     "Science of Computer Programming",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01676423",
}

@Article{Xiao:2013:EET,
  author =       "Chuan Xiao and Jianbin Qin and Wei Wang and Yoshiharu
                 Ishikawa and Koji Tsuda and Kunihiko Sadakane",
  title =        "Efficient error-tolerant query autocompletion",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "6",
  number =       "6",
  pages =        "373--384",
  month =        apr,
  year =         "2013",
  CODEN =        "????",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Fri Dec 13 05:56:32 MST 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Query autocompletion is an important feature saving
                 users many keystrokes from typing the entire query. In
                 this paper we study the problem of query autocompletion
                 that tolerates errors in users' input using edit
                 distance constraints. Previous approaches index data
                 strings in a trie, and continuously maintain all the
                 prefixes of data strings whose edit distance from the
                 query are within the threshold. The major inherent
                 problem is that the number of such prefixes is huge for
                 the first few characters of the query and is
                 exponential in the alphabet size. This results in slow
                 query response even if the entire query approximately
                 matches only few prefixes. In this paper, we propose a
                 novel neighborhood generation-based algorithm,
                 IncNGTrie, which can achieve up to two orders of
                 magnitude speedup over existing methods for the
                 error-tolerant query autocompletion problem. Our
                 proposed algorithm only maintains a small set of active
                 nodes, thus saving both space and time to process the
                 query. We also study efficient duplicate removal which
                 is a core problem in fetching query answers. In
                 addition, we propose optimization techniques to reduce
                 our index size, as well as discussions on several
                 extensions to our method. The efficiency of our method
                 is demonstrated against existing methods through
                 extensive experiments on real datasets.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Yang:2013:RSS,
  author =       "Yi-Hua E. Yang and Viktor K. Prasanna",
  title =        "Robust and Scalable String Pattern Matching for Deep
                 Packet Inspection on Multicore Processors",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "24",
  number =       "11",
  pages =        "2283--2292",
  month =        nov,
  year =         "2013",
  CODEN =        "ITDSEO",
  DOI =          "https://doi.org/10.1109/TPDS.2012.217",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Fri Nov 15 10:31:20 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranspardistsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Parallel and Distributed
                 Systems",
  journal-URL =  "http://www.computer.org/tpds/archives.htm",
}

@Article{Yu:2013:EDA,
  author =       "Xiaodong Yu and Michela Becchi",
  title =        "Exploring different automata representations for
                 efficient regular expression matching on {GPUs}",
  journal =      j-SIGPLAN,
  volume =       "48",
  number =       "8",
  pages =        "287--288",
  month =        aug,
  year =         "2013",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2517327.2442548",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Mon Aug 26 13:48:51 MDT 2013",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "PPoPP '13 Conference proceedings.",
  abstract =     "Regular expression matching is a central task in
                 several networking (and search) applications and has
                 been accelerated on a variety of parallel
                 architectures. All solutions are based on finite
                 automata (either in deterministic or non-deterministic
                 form), and mostly focus on effective memory
                 representations for such automata. Recently, a handful
                 of work has proposed efficient regular expression
                 matching designs for GPUs; however, most of them aim at
                 achieving good performance on small datasets. Nowadays,
                 practical solutions must support the increased size and
                 complexity of real world datasets. In this work, we
                 explore the deployment and optimization of different
                 GPU designs of regular expression matching engines,
                 focusing on large datasets containing a large number of
                 complex patterns.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Zha:2013:GGH,
  author =       "Xinyan Zha and Sartaj Sahni",
  title =        "{GPU-to-GPU} and Host-to-Host Multipattern String
                 Matching on a {GPU}",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "62",
  number =       "6",
  pages =        "1156--1169",
  month =        jun,
  year =         "2013",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.2012.61",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Tue Apr 30 12:26:22 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Zhao:2013:EPG,
  author =       "Xiang Zhao and Chuan Xiao and Xuemin Lin and Wei Wang
                 and Yoshiharu Ishikawa",
  title =        "Efficient processing of graph similarity queries with
                 edit distance constraints",
  journal =      j-VLDB-J,
  volume =       "22",
  number =       "6",
  pages =        "727--752",
  month =        dec,
  year =         "2013",
  CODEN =        "VLDBFR",
  DOI =          "https://doi.org/10.1007/s00778-013-0306-1",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Thu Feb 13 09:58:45 MST 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  abstract =     "Graphs are widely used to model complicated data
                 semantics in many applications in bioinformatics,
                 chemistry, social networks, pattern recognition, etc. A
                 recent trend is to tolerate noise arising from various
                 sources such as erroneous data entries and find
                 similarity matches. In this paper, we study graph
                 similarity queries with edit distance constraints.
                 Inspired by the q -gram idea for string similarity
                 problems, our solution extracts paths from graphs as
                 features for indexing. We establish a lower bound of
                 common features to generate candidates. Efficient
                 algorithms are proposed to handle three types of graph
                 similarity queries by exploiting both matching and
                 mismatching features as well as degree information to
                 improve the filtering and verification on candidates.
                 We demonstrate the proposed algorithms significantly
                 outperform existing approaches with extensive
                 experiments on real and synthetic datasets.",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Amit:2014:LEP,
  author =       "Mika Amit and Rolf Backofen and Steffen Heyne and Gad
                 M. Landau and Mathias M{\"o}hl and Christina Otto and
                 Sebastian Will",
  title =        "Local exact pattern matching for non-fixed {RNA}
                 structures",
  journal =      j-TCBB,
  volume =       "11",
  number =       "1",
  pages =        "219--230",
  month =        jan,
  year =         "2014",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2013.2297113",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Thu Nov 6 16:13:12 MST 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "Detecting local common sequence-structure regions of
                 RNAs is a biologically important problem. Detecting
                 such regions allows biologists to identify functionally
                 relevant similarities between the inspected molecules.
                 We developed dynamic programming algorithms for finding
                 common structure-sequence patterns between two RNAs.
                 The RNAs are given by their sequence and a set of
                 potential base pairs with associated probabilities. In
                 contrast to prior work on local pattern matching of
                 RNAs, we support the breaking of arcs. This allows us
                 to add flexibility over matching only fixed structures;
                 potentially matching only a similar subset of specified
                 base pairs. We present an $ O(n^3) $ algorithm for
                 local exact pattern matching between two nested RNAs,
                 and an $ O(n^3 \log n) $ algorithm for one nested RNA
                 and one bounded-unlimited RNA. In addition, an
                 algorithm for approximate pattern matching is
                 introduced that for two given nested RNAs and a number
                 $k$, finds the maximal local pattern matching score
                 between the two RNAs with at most $k$ mismatches in $
                 O(n^3 k^2)$ time. Finally, we present an $ O(n^3)$
                 algorithm for finding the most similar subforest
                 between two nested RNAs.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Apostolico:2014:MSS,
  author =       "Alberto Apostolico and P{\'e}ter L. Erd{\H{o}}s and
                 Istv{\'a}n Mikl{\'o}s and Johannes Siemons",
  title =        "Modulated string searching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "525",
  number =       "??",
  pages =        "23--29",
  day =          "13",
  month =        mar,
  year =         "2014",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Mar 8 16:44:06 MST 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397513007652",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Avigad:2014:FVM,
  author =       "Jeremy Avigad and John Harrison",
  title =        "Formally verified mathematics",
  journal =      j-CACM,
  volume =       "57",
  number =       "4",
  pages =        "66--75",
  month =        apr,
  year =         "2014",
  CODEN =        "CACMA2",
  DOI =          "https://doi.org/10.1145/2591012",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Wed May 21 10:20:09 MDT 2014",
  bibsource =    "http://www.acm.org/pubs/contents/journals/cacm/;
                 https://www.math.utah.edu/pub/tex/bib/cacm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/kepler.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "With the help of computational proof assistants,
                 formal verification could become the new standard for
                 rigor in mathematics.",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  keywords =     "ACL2 proof system; Boyer--Moore NQTHM theorem prover;
                 Brouwer Fixed-Point Theorem; Coq proof system; de
                 Bruijn factor; EQP theorem prover; Four Color Theorem;
                 G{\"o}del Incompleteness Theorem; HOL proof system; HOL
                 Light proof system; Isabelle proof checker; LCF proof
                 checker; Milawa proof system; Mizar proof checker;
                 Nuprl proof system; Prime Number Theorem; Project
                 Flyspeck (Formal Proof of the Kepler Conjecture);
                 Prototype Verification System (PVS) proof system;
                 SSReflect proof language; Univalent Foundations
                 Project",
}

@Article{Barcelo:2014:QRG,
  author =       "Pablo Barcel{\'o} and Leonid Libkin and Juan L.
                 Reutter",
  title =        "Querying Regular Graph Patterns",
  journal =      j-J-ACM,
  volume =       "61",
  number =       "1",
  pages =        "8:1--8:??",
  month =        jan,
  year =         "2014",
  CODEN =        "JACOAH",
  DOI =          "https://doi.org/10.1145/2559905",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Wed Feb 5 17:06:24 MST 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Graph data appears in a variety of application
                 domains, and many uses of it, such as querying,
                 matching, and transforming data, naturally result in
                 incompletely specified graph data, that is, graph
                 patterns. While queries need to be posed against such
                 data, techniques for querying patterns are generally
                 lacking, and properties of such queries are not well
                 understood. Our goal is to study the basics of querying
                 graph patterns. The key features of patterns we
                 consider here are node and label variables and edges
                 specified by regular expressions. We provide a
                 classification of patterns, and study standard graph
                 queries on graph patterns. We give precise
                 characterizations of both data and combined complexity
                 for each class of patterns. If complexity is high, we
                 do further analysis of features that lead to
                 intractability, as well as lower-complexity
                 restrictions. Since our patterns are based on regular
                 expressions, query answering for them can be captured
                 by a new automata model. These automata have two modes
                 of acceptance: one captures queries returning nodes,
                 and the other queries returning paths. We study
                 properties of such automata, and the key computational
                 tasks associated with them. Finally, we provide
                 additional restrictions for tractability, and show that
                 some intractable cases can be naturally cast as
                 instances of constraint satisfaction problems.",
  acknowledgement = ack-nhfb,
  articleno =    "8",
  fjournal =     "Journal of the ACM",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
}

@Article{Bartoli:2014:ASR,
  author =       "Alberto Bartoli and Giorgio Davanzo and Andrea {De
                 Lorenzo} and Eric Medvet and Enrico Sorio",
  title =        "Automatic Synthesis of Regular Expressions from
                 Examples",
  journal =      j-COMPUTER,
  volume =       "47",
  number =       "12",
  pages =        "72--80",
  month =        dec,
  year =         "2014",
  CODEN =        "CPTRB4",
  DOI =          "https://doi.org/10.1109/MC.2014.344",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Fri Feb 13 11:56:32 MST 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computer2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://csdl.computer.org/csdl/mags/co/2014/12/mco2014120072-abs.html",
  abstract-URL = "http://csdl.computer.org/csdl/mags/co/2014/12/mco2014120072-abs.html",
  acknowledgement = ack-nhfb,
  journal-URL =  "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
}

@Article{Ben-Kiki:2014:TOP,
  author =       "Oren Ben-Kiki and Philip Bille and Dany Breslauer and
                 Leszek G{\k{a}}sieniec and Roberto Grossi and Oren
                 Weimann",
  title =        "Towards optimal packed string matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "525",
  number =       "??",
  pages =        "111--129",
  day =          "13",
  month =        mar,
  year =         "2014",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Mar 8 16:44:06 MST 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397513004672",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Bernardi:2014:DPD,
  author =       "Mario Luca Bernardi and Marta Cimitile and Giuseppe
                 {Di Lucca}",
  title =        "Design pattern detection using a {DSL}-driven graph
                 matching approach",
  journal =      j-J-SOFTW-EVOL-PROC,
  volume =       "26",
  number =       "12",
  pages =        "1233--1266",
  month =        dec,
  year =         "2014",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1002/smr.1674",
  ISSN =         "2047-7473 (print), 2047-7481 (electronic)",
  ISSN-L =       "2047-7473",
  bibdate =      "Wed Jan 31 13:48:31 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsoftwevolproc.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Software: Evolution and Process",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)2047-7481",
}

@Article{Bremler-Barr:2014:CSP,
  author =       "Anat Bremler-Barr and David Hay and Yaron Koral",
  title =        "{CompactDFA}: Scalable pattern matching using longest
                 prefix match solutions",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "22",
  number =       "2",
  pages =        "415--428",
  month =        apr,
  year =         "2014",
  CODEN =        "IEANEP",
  DOI =          "https://doi.org/10.1109/TNET.2013.2253119",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Wed Jun 11 19:05:55 MDT 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "A central component in all contemporary intrusion
                 detection systems (IDSs) is their pattern matching
                 algorithms, which are often based on constructing and
                 traversing a deterministic finite automaton (DFA) that
                 represents the patterns. While this approach ensures
                 deterministic time guarantees, modern IDSs need to deal
                 with hundreds of patterns, thus requiring to store very
                 large DFAs, which usually do not fit in fast memory.
                 This results in a major bottleneck on the throughput of
                 the IDS, as well as its power consumption and cost. We
                 propose a novel method to compress DFAs by observing
                 that the name used by common DFA encoding is
                 meaningless. While regular DFAs store separately each
                 transition between two states, we use this degree of
                 freedom and encode states in such a way that all
                 transitions to a specific state are represented by a
                 single prefix that defines a set of current states. Our
                 technique applies to a large class of automata, which
                 can be categorized by simple properties. Then, the
                 problem of pattern matching is reduced to the
                 well-studied problem of Longest Prefix Match (LPM),
                 which can be solved either in ternary
                 content-addressable memory (TCAM), in commercially
                 available IP-lookup chips, or in software.
                 Specifically, we show that with a TCAM our scheme can
                 reach a throughput of 10 Gb/s with low power
                 consumption.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J771",
}

@Article{Breslauer:2014:RTS,
  author =       "Dany Breslauer and Zvi Galil",
  title =        "Real-Time Streaming String-Matching",
  journal =      j-TALG,
  volume =       "10",
  number =       "4",
  pages =        "22:1--22:??",
  month =        aug,
  year =         "2014",
  DOI =          "https://doi.org/10.1145/2635814",
  ISSN =         "1549-6325 (print), 1549-6333 (electronic)",
  ISSN-L =       "1549-6325",
  bibdate =      "Mon Sep 1 11:11:53 MDT 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talg.bib",
  abstract =     "This article presents a real-time randomized streaming
                 string-matching algorithm that uses $ O(\log m) $
                 space. The algorithm only makes one-sided small
                 probability false-positive errors, possibly reporting
                 phantom occurrences of the pattern, but never missing
                 an actual occurrence.",
  acknowledgement = ack-nhfb,
  articleno =    "22",
  fjournal =     "ACM Transactions on Algorithms (TALG)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J982",
}

@Article{Chen:2014:BPA,
  author =       "Kuei-Hao Chen and Guan-Shieng Huang and Richard
                 Chia-Tung Lee",
  title =        "Bit-Parallel Algorithms for Exact Circular String
                 Matching",
  journal =      j-COMP-J,
  volume =       "57",
  number =       "5",
  pages =        "731--743",
  month =        may,
  year =         "2014",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/bxt023",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Mon May 5 14:45:59 MDT 2014",
  bibsource =    "http://comjnl.oxfordjournals.org/content/57/5.toc;
                 https://www.math.utah.edu/pub/tex/bib/compj2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/57/5/731.full.pdf+html",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  onlinedate =   "March 3, 2013",
}

@Article{Cockx:2014:PMK,
  author =       "Jesper Cockx and Dominique Devriese and Frank
                 Piessens",
  title =        "Pattern matching without {K}",
  journal =      j-SIGPLAN,
  volume =       "49",
  number =       "9",
  pages =        "257--268",
  month =        sep,
  year =         "2014",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2692915.2628139",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue May 12 17:41:21 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Dependent pattern matching is an intuitive way to
                 write programs and proofs in dependently typed
                 languages. It is reminiscent of both pattern matching
                 in functional languages and case analysis in on-paper
                 mathematics. However, in general it is incompatible
                 with new type theories such as homotopy type theory
                 (HoTT). As a consequence, proofs in such theories are
                 typically harder to write and to understand. The source
                 of this incompatibility is the reliance of dependent
                 pattern matching on the so-called K axiom --- also
                 known as the uniqueness of identity proofs --- which is
                 inadmissible in HoTT. The Agda language supports an
                 experimental criterion to detect definitions by pattern
                 matching that make use of the K axiom, but so far it
                 lacked a formal correctness proof. In this paper, we
                 propose a new criterion for dependent pattern matching
                 without K, and prove it correct by a translation to
                 eliminators in the style of Goguen et al. (2006). Our
                 criterion both allows more good definitions than
                 existing proposals, and solves a previously undetected
                 problem in the criterion offered by Agda. It has been
                 implemented in Agda and is the first to be supported by
                 a formal proof. Thus it brings the benefits of
                 dependent pattern matching to contexts where we cannot
                 assume K, such as HoTT. It also points the way to new
                 forms of dependent pattern matching, for example on
                 higher inductive types.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "ICFP '14 conference proceedings.",
}

@Article{Cole:2014:TDP,
  author =       "Richard Cole and Carmit Hazay and Moshe Lewenstein and
                 Dekel Tsur",
  title =        "Two-Dimensional Parameterized Matching",
  journal =      j-TALG,
  volume =       "11",
  number =       "2",
  pages =        "12:1--12:??",
  month =        oct,
  year =         "2014",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2650220",
  ISSN =         "1549-6325 (print), 1549-6333 (electronic)",
  ISSN-L =       "1549-6325",
  bibdate =      "Thu Oct 30 17:42:56 MDT 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talg.bib",
  abstract =     "Two equal-length strings, or two equal-sized
                 two-dimensional texts, parameterize match (p-match) if
                 there is a one-one mapping (relative to the alphabet)
                 of their characters. Two-dimensional parameterized
                 matching is the task of finding all $ m \times m $
                 substrings of an $ n \times n $ text that p-match an $
                 m \times m $ pattern. This models searching for color
                 images with changing of color maps, for example. We
                 present two algorithms that solve the two-dimensional
                 parameterized matching problem. The time complexities
                 of our algorithms are $ O (n^2 \log^2 m) $ and $ O (n^2
                 + m^{2.5} \polylog (m)) $. Our algorithms are faster
                 than the $ O (n^2 m \log^2 m \log \log m) $ time
                 algorithm for this problem of Amir et al. [2006]. A key
                 step in both of our algorithms is to count the number
                 of distinct characters in every $ m \times m $
                 substring of an $ n \times n $ string. We show how to
                 solve this problem in $ O (n^2) $ time. This result may
                 be of independent interest.",
  acknowledgement = ack-nhfb,
  articleno =    "12",
  fjournal =     "ACM Transactions on Algorithms (TALG)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J982",
}

@Article{Elseidy:2014:GFS,
  author =       "Mohammed Elseidy and Ehab Abdelhamid and Spiros
                 Skiadopoulos and Panos Kalnis",
  title =        "{GraMi}: frequent subgraph and pattern mining in a
                 single large graph",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "7",
  number =       "7",
  pages =        "517--528",
  month =        mar,
  year =         "2014",
  CODEN =        "????",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Wed Feb 4 09:22:07 MST 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Mining frequent subgraphs is an important operation on
                 graphs; it is defined as finding all subgraphs that
                 appear frequently in a database according to a given
                 frequency threshold. Most existing work assumes a
                 database of many small graphs, but modern applications,
                 such as social networks, citation graphs, or
                 protein-protein interactions in bioinformatics, are
                 modeled as a single large graph. In this paper we
                 present GraMi, a novel framework for frequent subgraph
                 mining in a single large graph. GraMi undertakes a
                 novel approach that only finds the minimal set of
                 instances to satisfy the frequency threshold and avoids
                 the costly enumeration of all instances required by
                 previous approaches. We accompany our approach with a
                 heuristic and optimizations that significantly improve
                 performance. Additionally, we present an extension of
                 GraMi that mines frequent patterns. Compared to
                 subgraphs, patterns offer a more powerful version of
                 matching that captures transitive interactions between
                 graph nodes (like friend of a friend) which are very
                 common in modern applications. Finally, we present
                 CGraMi, a version supporting structural and semantic
                 constraints, and AGraMi, an approximate version
                 producing results with no false positives. Our
                 experiments on real data demonstrate that our framework
                 is up to 2 orders of magnitude faster and discovers
                 more interesting patterns than existing approaches.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Esparza:2014:PBV,
  author =       "Javier Esparza and Pierre Ganty and Tom{\'a}s Poch",
  title =        "Pattern-Based Verification for Multithreaded
                 Programs",
  journal =      j-TOPLAS,
  volume =       "36",
  number =       "3",
  pages =        "9:1--9:??",
  month =        sep,
  year =         "2014",
  CODEN =        "ATPSDT",
  DOI =          "https://doi.org/10.1145/2629644",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Tue Oct 28 17:06:29 MDT 2014",
  bibsource =    "http://www.acm.org/pubs/contents/journals/toplas/;
                 https://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toplas.bib",
  abstract =     "Pattern-based verification checks the correctness of
                 program executions that follow a given pattern, a
                 regular expression over the alphabet of program
                 transitions of the form $ w_1^*, \ldots {},_n^* $ w.
                 For multithreaded programs, the alphabet of the pattern
                 is given by the reads and writes to the shared storage.
                 We study the complexity of pattern-based verification
                 for multithreaded programs with shared counters and
                 finite variables. While unrestricted verification is
                 undecidable for abstracted multithreaded programs with
                 recursive procedures and PSPACE-complete for abstracted
                 multithreaded while-programs (even without counters),
                 we show that pattern-based verification is NP-complete
                 for both classes, even in the presence of counters. We
                 then conduct a multiparameter analysis to study the
                 complexity of the problem on its three natural
                 parameters (number of threads+counters+variables,
                 maximal size of a thread, size of the pattern) and on
                 two parameters related to thread structure (maximal
                 number of procedures per thread and longest simple path
                 of procedure calls). We present an algorithm that for a
                 fixed number of threads, counters, variables, and
                 pattern size solves the verification problem in $ {\rm
                 st}^{O ({\rm lsp} + \lceil log ({\rm pr} + 1) \rceil)}
                 $ time, where $ {\rm st} $ is the maximal size of a
                 thread, $ {\rm pr} $ is the maximal number of
                 procedures per thread, and $ {\rm lsp} $ is the longest
                 simple path of procedure calls.",
  acknowledgement = ack-nhfb,
  articleno =    "9",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@TechReport{Grathwohl:2014:CCR,
  author =       "Niels Bj{\o}rn Bugge Grathwohl and Fritz Henglein and
                 Ulrik Terp Rasmussen",
  title =        "A crash-course in regular expression parsing and
                 regular expressions as types",
  type =         "Technical report",
  number =       "??",
  institution =  "Department of Computer Science (DIKU), University of
                 Copenhagen",
  address =      "Copenhagen, Denmark",
  pages =        "40",
  day =          "21",
  month =        aug,
  year =         "2014",
  bibdate =      "Fri Sep 22 12:59:49 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://di.ku.dk/kmc/documents/AiPL-CrashCourse.pdf",
  acknowledgement = ack-nhfb,
}

@Article{Guo:2014:LSS,
  author =       "Jiong Guo and Danny Hermelin and Christian
                 Komusiewicz",
  title =        "Local search for string problems: Brute-force is
                 essentially optimal",
  journal =      j-THEOR-COMP-SCI,
  volume =       "525",
  number =       "??",
  pages =        "30--41",
  day =          "13",
  month =        mar,
  year =         "2014",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Mar 8 16:44:06 MST 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397513003575",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Hanada:2014:ACL,
  author =       "Hiroyuki Hanada and Mineichi Kudo and Atsuyoshi
                 Nakamura",
  title =        "Average-case linear-time similar substring searching
                 by the $q$-gram distance",
  journal =      j-THEOR-COMP-SCI,
  volume =       "530",
  number =       "??",
  pages =        "23--41",
  day =          "17",
  month =        apr,
  year =         "2014",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Wed Mar 26 06:01:23 MDT 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397514001285",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Hazay:2014:CSP,
  author =       "Carmit Hazay and Tomas Toft",
  title =        "Computationally Secure Pattern Matching in the
                 Presence of Malicious Adversaries",
  journal =      j-J-CRYPTOLOGY,
  volume =       "27",
  number =       "2",
  pages =        "358--395",
  month =        apr,
  year =         "2014",
  CODEN =        "JOCREQ",
  DOI =          "https://doi.org/10.1007/s00145-013-9147-8",
  ISSN =         "0933-2790 (print), 1432-1378 (electronic)",
  ISSN-L =       "0933-2790",
  bibdate =      "Sat Apr 19 14:41:17 MDT 2014",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0933-2790&volume=27&issue=2;
                 https://www.math.utah.edu/pub/tex/bib/jcryptology.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/s00145-013-9147-8",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Cryptology",
  journal-URL =  "http://link.springer.com/journal/145",
}

@Article{Heil:2014:APH,
  author =       "Timothy Heil and Anil Krishna and Nicholas Lindberg
                 and Farnaz Toussi and Steven Vanderwiel",
  title =        "Architecture and Performance of the Hardware
                 Accelerators in {IBM}'s {PowerEN} Processor",
  journal =      j-TOPC,
  volume =       "1",
  number =       "1",
  pages =        "5:1--5:??",
  month =        sep,
  year =         "2014",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2588888",
  ISSN =         "2329-4949 (print), 2329-4957 (electronic)",
  ISSN-L =       "2329-4949",
  bibdate =      "Fri Oct 17 12:28:03 MDT 2014",
  bibsource =    "http://topc.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/topc.bib",
  abstract =     "Computation at the edge of a datacenter has unique
                 characteristics. It deals with streaming data from
                 multiple sources, going to multiple destinations, often
                 requiring repeated application of one or more of
                 several standard algorithmic kernels. These kernels,
                 related to encryption, compression, XML Parsing and
                 regular expression searching on the data, demand a high
                 data processing rate and power efficiency. This
                 suggests the use of hardware acceleration for key
                 functions. However, robust general purpose processing
                 support is necessary to orchestrate the flow of data
                 between accelerators, as well as perform tasks that are
                 not suited to acceleration. Further, these accelerators
                 must be tightly integrated with the general purpose
                 computation in order to keep invocation overhead and
                 latency low. The accelerators must be easy for software
                 to use, and the system must be flexible enough to
                 support evolving networking standards. In this article,
                 we describe and evaluate the architecture of IBM's
                 PowerEN processor, with a focus on PowerEN's
                 architectural enhancements and its on-chip hardware
                 accelerators. PowerEN unites the throughput of
                 application-specific accelerators with the
                 programmability of general purpose cores on a single
                 coherent memory architecture. Hardware acceleration
                 improves throughput by orders of magnitude in some
                 cases compared to equivalent computation on the general
                 purpose cores. By offloading work to the accelerators,
                 general purpose cores are freed to simultaneously work
                 on computation less suited to acceleration.",
  acknowledgement = ack-nhfb,
  articleno =    "5",
  fjournal =     "ACM Transactions on Parallel Computing",
  journal-URL =  "http://dl.acm.org/citation.cfm?id=2632163",
}

@Article{Jiang:2014:SSJ,
  author =       "Yu Jiang and Guoliang Li and Jianhua Feng and Wen-Syan
                 Li",
  title =        "String similarity joins: an experimental evaluation",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "7",
  number =       "8",
  pages =        "625--636",
  month =        apr,
  year =         "2014",
  CODEN =        "????",
  ISSN =         "2150-8097",
  bibdate =      "Wed Feb 4 09:22:10 MST 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "String similarity join is an important operation in
                 data integration and cleansing that finds similar
                 string pairs from two collections of strings. More than
                 ten algorithms have been proposed to address this
                 problem in the recent two decades. However, existing
                 algorithms have not been thoroughly compared under the
                 same experimental framework. For example, some
                 algorithms are tested only on specific datasets. This
                 makes it rather difficult for practitioners to decide
                 which algorithms should be used for various scenarios.
                 To address this problem, in this paper we provide a
                 comprehensive survey on a wide spectrum of existing
                 string similarity join algorithms, classify them into
                 different categories based on their main techniques,
                 and compare them through extensive experiments on a
                 variety of real-world datasets with different
                 characteristics. We also report comprehensive findings
                 obtained from the experiments and provide new insights
                 about the strengths and weaknesses of existing
                 similarity join algorithms which can guide
                 practitioners to select appropriate algorithms for
                 various scenarios.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Keil:2014:EDA,
  author =       "Matthias Keil and Peter Thiemann",
  title =        "Efficient dynamic access analysis using {JavaScript}
                 proxies",
  journal =      j-SIGPLAN,
  volume =       "49",
  number =       "2",
  pages =        "49--60",
  month =        feb,
  year =         "2014",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2578856.2508176",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Jun 26 06:09:05 MDT 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/java2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "DLS '13 conference proceedings.",
  abstract =     "JSConTest introduced the notions of effect monitoring
                 and dynamic effect inference for JavaScript. It enables
                 the description of effects with path specifications
                 resembling regular expressions. It is implemented by an
                 offline source code transformation. To overcome the
                 limitations of the JSConTest implementation, we
                 redesigned and reimplemented effect monitoring by
                 taking advantage of JavaScript proxies. Our new design
                 avoids all drawbacks of the prior implementation. It
                 guarantees full interposition; it is not restricted to
                 a subset of JavaScript; it is self-maintaining; and its
                 scalability to large programs is significantly better
                 than with JSConTest. The improved scalability has two
                 sources. First, the reimplementation is significantly
                 faster than the original, transformation-based
                 implementation. Second, the reimplementation relies on
                 the fly-weight pattern and on trace reduction to
                 conserve memory. Only the combination of these
                 techniques enables monitoring and inference for large
                 programs.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "DLS '13 conference proceedings.",
}

@Article{Kim:2014:OPM,
  author =       "Jinil Kim and Peter Eades and Rudolf Fleischer and
                 Seok-Hee Hong and Costas S. Iliopoulos and Kunsoo Park
                 and Simon J. Puglisi and Takeshi Tokuyama",
  title =        "Order-preserving matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "525",
  number =       "??",
  pages =        "68--79",
  day =          "13",
  month =        mar,
  year =         "2014",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Mar 8 16:44:06 MST 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397513007585",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Kimelfeld:2014:TMS,
  author =       "Benny Kimelfeld and Christopher R{\'e}",
  title =        "Transducing {Markov} sequences",
  journal =      j-J-ACM,
  volume =       "61",
  number =       "5",
  pages =        "32:1--32:??",
  month =        aug,
  year =         "2014",
  CODEN =        "JACOAH",
  DOI =          "https://doi.org/10.1145/2630065",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  bibdate =      "Mon Sep 8 18:59:32 MDT 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "A Markov sequence is a basic statistical model
                 representing uncertain sequential data, and it is used
                 within a plethora of applications, including speech
                 recognition, image processing, computational biology,
                 radio-frequency identification (RFID), and information
                 extraction. The problem of querying a Markov sequence
                 is studied under the conventional semantics of querying
                 a probabilistic database, where queries are formulated
                 as finite-state transducers. Specifically, the
                 complexity of two main problems is analyzed. The first
                 problem is that of computing the confidence
                 (probability) of an answer. The second is the
                 enumeration of the answers in the order of decreasing
                 confidence (with the generation of the top- $k$ answers
                 as a special case), or in an approximate order thereof.
                 In particular, it is shown that enumeration in any
                 subexponential-approximate order is generally
                 intractable (even for some fixed transducers), and a
                 matching upper bound is obtained through a proposed
                 heuristic. Due to this hardness, a special
                 consideration is given to restricted (yet common)
                 classes of transducers that extract matches of a
                 regular expression (subject to prefix and suffix
                 constraints), and it is shown that these classes are,
                 indeed, significantly more tractable.",
  acknowledgement = ack-nhfb,
  articleno =    "32",
  fjournal =     "Journal of the ACM",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
}

@Article{Lewenstein:2014:LSI,
  author =       "Moshe Lewenstein and J. Ian Munro and Venkatesh Raman
                 and Sharma V. Thankachan",
  title =        "Less space: Indexing for queries with wildcards",
  journal =      j-THEOR-COMP-SCI,
  volume =       "557",
  number =       "??",
  pages =        "120--127",
  day =          "6",
  month =        nov,
  year =         "2014",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Fri Oct 31 17:23:02 MDT 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397514006562",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Liu:2014:PRP,
  author =       "Fang Liu",
  title =        "\pkg{gset}: An {R} Package for Exact Sequential Test
                 of Equivalence Hypothesis Based on Bivariate
                 Non-Central $t$-Statistics",
  journal =      j-R-JOURNAL,
  volume =       "6",
  number =       "2",
  pages =        "174--184",
  month =        dec,
  year =         "2014",
  CODEN =        "????",
  ISSN =         "2073-4859",
  bibdate =      "Thu Aug 13 15:54:57 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/rjournal.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://journal.r-project.org/archive/2014-2/RJournal_2014-2_liu.pdf",
  acknowledgement = ack-r-project,
  fjournal =     "The R Journal",
  journal-URL =  "http://journal.r-project.org/",
}

@Article{Londhe:2014:MTC,
  author =       "Nikhil Londhe and Vishrawas Gopalakrishnan and Aidong
                 Zhang and Hung Q. Ngo and Rohini Srihari",
  title =        "Matching titles with cross title web-search enrichment
                 and community detection",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "7",
  number =       "12",
  pages =        "1167--1178",
  month =        aug,
  year =         "2014",
  CODEN =        "????",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Wed Feb 4 17:20:26 MST 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Title matching refers roughly to the following
                 problem. We are given two strings of text obtained from
                 different data sources. The texts refer to some
                 underlying physical entities and the problem is to
                 report whether the two strings refer to the same
                 physical entity or not. There are manifestations of
                 this problem in a variety of domains, such as product
                 or bibliography matching, and location or person
                 disambiguation. We propose a new approach to solving
                 this problem, consisting of two main components. The
                 first component uses Web searches to ``enrich'' the
                 given pair of titles: making titles that refer to the
                 same physical entity more similar, and those which do
                 not, much less similar. A notion of similarity is then
                 measured using the second component, where the tokens
                 from the two titles are modelled as vertices of a
                 ``social'' network graph. A ``strength of ties'' style
                 of clustering algorithm is then applied on this to see
                 whether they form one cohesive ``community'' (matching
                 titles), or separately clustered communities
                 (mismatching titles). Experimental results confirm the
                 effectiveness of our approach over existing title
                 matching methods across several input domains.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Book{Lopez:2014:MPR,
  author =       "F{\'e}lix L{\'o}pez and V{\'i}ctor Romero",
  title =        "Mastering {Python} regular expressions: leverage
                 regular expressions in {Python} even for the most
                 complex features",
  publisher =    "Packt Pub.",
  address =      "Birmingham, UK",
  pages =        "110",
  year =         "2014",
  ISBN =         "1-78328-315-7 (paperback), 1-78328-316-5 (e-book)",
  ISBN-13 =      "978-1-78328-315-6 (paperback), 978-1-78328-316-3
                 (e-book)",
  LCCN =         "QA76.73.P98 L67 2014",
  bibdate =      "Wed Oct 14 08:01:33 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       "Community experience distilled",
  URL =          "http://alltitles.ebrary.com/Doc?id=10842105;
                 http://proquest.safaribooksonline.com/?fpi=9781783283156;
                 http://proquest.tech.safaribooksonline.de/9781783283156",
  acknowledgement = ack-nhfb,
  subject =      "Python (Computer program language); Text processing
                 (Computer science); COMPUTERS / Programming Languages /
                 Python",
}

@Article{Ma:2014:SSC,
  author =       "Shuai Ma and Yang Cao and Wenfei Fan and Jinpeng Huai
                 and Tianyu Wo",
  title =        "Strong simulation: Capturing topology in graph pattern
                 matching",
  journal =      j-TODS,
  volume =       "39",
  number =       "1",
  pages =        "4:1--4:??",
  month =        jan,
  year =         "2014",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/2528937",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Wed Feb 5 11:31:16 MST 2014",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tods/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  abstract =     "Graph pattern matching is finding all matches in a
                 data graph for a given pattern graph and is often
                 defined in terms of subgraph isomorphism, an
                 NP-complete problem. To lower its complexity, various
                 extensions of graph simulation have been considered
                 instead. These extensions allow graph pattern matching
                 to be conducted in cubic time. However, they fall short
                 of capturing the topology of data graphs, that is,
                 graphs may have a structure drastically different from
                 pattern graphs they match, and the matches found are
                 often too large to understand and analyze. To rectify
                 these problems, this article proposes a notion of
                 strong simulation, a revision of graph simulation for
                 graph pattern matching. (1) We identify a set of
                 criteria for preserving the topology of graphs matched.
                 We show that strong simulation preserves the topology
                 of data graphs and finds a bounded number of matches.
                 (2) We show that strong simulation retains the same
                 complexity as earlier extensions of graph simulation by
                 providing a cubic-time algorithm for computing strong
                 simulation. (3) We present the locality property of
                 strong simulation which allows us to develop an
                 effective distributed algorithm to conduct graph
                 pattern matching on distributed graphs. (4) We
                 experimentally verify the effectiveness and efficiency
                 of these algorithms using both real-life and synthetic
                 data.",
  acknowledgement = ack-nhfb,
  articleno =    "4",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
}

@Article{Ma:2014:TAC,
  author =       "Lin Ma and Kunal Agrawal and Roger D. Chamberlain",
  title =        "Theoretical analysis of classic algorithms on
                 highly-threaded many-core {GPUs}",
  journal =      j-SIGPLAN,
  volume =       "49",
  number =       "8",
  pages =        "391--392",
  month =        aug,
  year =         "2014",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2692916.2555285",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Nov 26 16:26:30 MST 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The Threaded many-core memory (TMM) model provides a
                 framework to analyze the performance of algorithms on
                 GPUs. Here, we investigate the effectiveness of the TMM
                 model by analyzing algorithms for 3 classic problems
                 --- suffix tree/array for string matching, fast Fourier
                 transform, and merge sort --- under this model. Our
                 findings indicate that the TMM model can explain and
                 predict previously unexplained trends and artifacts in
                 experimental data.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "PPoPP '14 conference proceedings.",
}

@Article{Manole:2014:PSP,
  author =       "Sagi Manole and Amit Golander and Shlomo Weiss",
  title =        "Protein Sequence Pattern Matching: Leveraging
                 Application Specific Hardware Accelerators",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "63",
  number =       "2",
  pages =        "448--460",
  month =        feb,
  year =         "2014",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.2012.187",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Tue Jan 28 18:02:57 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Martin:2014:TCR,
  author =       "Marko Martin and Mira Mezini and Sebastian Erdweg",
  title =        "Template constructors for reusable object
                 initialization",
  journal =      j-SIGPLAN,
  volume =       "49",
  number =       "3",
  pages =        "43--52",
  month =        mar,
  year =         "2014",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2637365.2517212",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Jun 26 05:58:25 MDT 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/java2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Reuse of and abstraction over object initialization
                 logic is not properly supported in mainstream
                 object-oriented languages. This may result in
                 significant amount of boilerplate code and
                 proliferation of constructors in subclasses. It also
                 makes it impossible for mixins to extend the
                 initialization interface of classes they are applied
                 to. We propose template constructors, which employ
                 template parameters and pattern matching of them
                 against signatures of superclass constructors to enable
                 a one-to-many binding of super-calls. We demonstrate
                 how template constructors solve the aforementioned
                 problems. We present a formalization of the concept, a
                 Java-based implementation, and use cases which exercise
                 its strengths.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  remark =       "GPCE '13 conference proceedings.",
}

@Article{Medeiros:2014:RPE,
  author =       "S{\'e}rgio Medeiros and Fabio Mascarenhas and Roberto
                 Ierusalimschy",
  title =        "From regexes to parsing expression grammars",
  journal =      j-SCI-COMPUT-PROGRAM,
  volume =       "93 (part A)",
  number =       "??",
  pages =        "3--18",
  day =          "1",
  month =        nov,
  year =         "2014",
  CODEN =        "SCPGD4",
  DOI =          "https://doi.org/10.1016/j.scico.2012.11.006",
  ISSN =         "0167-6423 (print), 1872-7964 (electronic)",
  ISSN-L =       "0167-6423",
  bibdate =      "Sat Aug 16 11:32:59 MDT 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0167642312002171",
  acknowledgement = ack-nhfb,
  fjournal =     "Science of Computer Programming",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01676423/",
}

@Article{Meiners:2014:FRE,
  author =       "Chad R. Meiners and Jignesh Patel and Eric Norige and
                 Alex X. Liu and Eric Torng",
  title =        "Fast Regular Expression Matching Using Small {TCAM}",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "22",
  number =       "1",
  pages =        "94--109",
  month =        feb,
  year =         "2014",
  CODEN =        "IEANEP",
  DOI =          "https://doi.org/10.1109/TNET.2013.2256466",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Tue Mar 4 18:22:52 MST 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Regular expression (RE) matching is a core component
                 of deep packet inspection in modern networking and
                 security devices. In this paper, we propose the first
                 hardware-based RE matching approach that uses ternary
                 content addressable memory (TCAM), which is available
                 as off-the-shelf chips and has been widely deployed in
                 modern networking devices for tasks such as packet
                 classification. We propose three novel techniques to
                 reduce TCAM space and improve RE matching speed:
                 transition sharing, table consolidation, and variable
                 striding. We tested our techniques on eight real-world
                 RE sets, and our results show that small TCAMs can be
                 used to store large deterministic finite automata
                 (DFAs) and achieve potentially high RE matching
                 throughput. For space, we can store each of the
                 corresponding eight DFAs with 25,000 states in a
                 0.59-Mb TCAM chip. Using a different TCAM encoding
                 scheme that facilitates processing multiple characters
                 per transition, we can achieve potential RE matching
                 throughput of 10-19 Gb/s for each of the eight DFAs
                 using only a single 2.36-Mb TCAM chip.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J771",
}

@Article{Mohanty:2014:SOS,
  author =       "Pragyan (Sheela) Mohanty and Spyros Tragoudas",
  title =        "Scalable Offline Searches in {DNA} Sequences",
  journal =      j-JETC,
  volume =       "11",
  number =       "2",
  pages =        "18:1--18:??",
  month =        nov,
  year =         "2014",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2660774",
  ISSN =         "1550-4832 (print), 1550-4840 (electronic)",
  ISSN-L =       "1550-4832",
  bibdate =      "Wed Nov 5 18:01:28 MST 2014",
  bibsource =    "http://www.acm.org/pubs/contents/journals/jetc/;
                 https://www.math.utah.edu/pub/tex/bib/jetc.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Searching for a particular pattern in a very large DNA
                 database is a fundamental and essential component in
                 computational biology. In the biological world, pattern
                 matching is required for finding repeats in a
                 particular DNA sequence, finding motif, aligning
                 sequences, and other similar tasks. Due to an immense
                 amount and continuous increase of biological data, the
                 searching process requires very fast algorithms. A
                 function-based tool set for fast offline pattern
                 searches in large DNA sequences is proposed. The method
                 benefits from the use of Boolean functions, their
                 compact storage using canonical data structure, and the
                 existence of built-in operators for these data
                 structures. Experiments on DNA sequences from the NCBI
                 database show that the proposed approach is scalable.
                 The time complexity depends on the size of the data
                 structure used for storing the function that represents
                 the DNA sequence. It is shown that the presented
                 approach exhibits sublinear time complexity to the DNA
                 sequence size.",
  acknowledgement = ack-nhfb,
  articleno =    "18",
  fjournal =     "ACM Journal on Emerging Technologies in Computing
                 Systems (JETC)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J967",
}

@Article{Mytkowicz:2014:DPF,
  author =       "Todd Mytkowicz and Madanlal Musuvathi and Wolfram
                 Schulte",
  title =        "Data-parallel finite-state machines",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "42",
  number =       "1",
  pages =        "529--542",
  month =        mar,
  year =         "2014",
  CODEN =        "CANED2",
  DOI =          "https://doi.org/10.1145/2654822.2541988",
  ISSN =         "0163-5964 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Mon Aug 18 17:12:47 MDT 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigarch.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "A finite-state machine (FSM) is an important
                 abstraction for solving several problems, including
                 regular-expression matching, tokenizing text, and
                 Huffman decoding. FSM computations typically involve
                 data-dependent iterations with unpredictable
                 memory-access patterns making them difficult to
                 parallelize. This paper describes a parallel algorithm
                 for FSMs that breaks dependences across iterations by
                 efficiently enumerating transitions from all possible
                 states on each input symbol. This allows the algorithm
                 to utilize various sources of data parallelism
                 available on modern hardware, including vector
                 instructions and multiple processors/cores. For
                 instance, on benchmarks from three FSM applications:
                 regular expressions, Huffman decoding, and HTML
                 tokenization, the parallel algorithm achieves up to a
                 3x speedup over optimized sequential baselines on a
                 single core, and linear speedups up to 21x on 8
                 cores.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
  remark =       "ASPLOS '14 conference proceedings.",
}

@Article{Nakano:2014:OIA,
  author =       "Koji Nakano",
  title =        "Optimal implementations of the approximate string
                 matching and the approximate discrete signal matching
                 on the memory machine models",
  journal =      j-INT-J-PAR-EMER-DIST-SYS,
  volume =       "29",
  number =       "2",
  pages =        "104--118",
  year =         "2014",
  DOI =          "https://doi.org/10.1080/17445760.2013.773330",
  bibdate =      "Thu Mar 6 05:45:38 MST 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/intjparemerdistsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Parallel, Emergent and
                 Distributed Systems: IJPEDS",
  journal-URL =  "http://www.tandfonline.com/loi/gpaa20",
}

@Article{Ni:2014:HCD,
  author =       "Lionel Ni and Lei Chen and Lei Kang and Siyuan Liu",
  title =        "How to Conduct Distributed Incomplete Pattern
                 Matching",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "25",
  number =       "4",
  pages =        "982--992",
  month =        apr,
  year =         "2014",
  CODEN =        "ITDSEO",
  DOI =          "https://doi.org/10.1109/TPDS.2013.128",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Mon Aug 25 07:12:16 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranspardistsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Parallel and Distributed
                 Systems",
  journal-URL =  "http://www.computer.org/tpds/archives.htm",
}

@Article{Patel:2014:BSE,
  author =       "Jignesh Patel and Alex X. Liu and Eric Torng",
  title =        "Bypassing space explosion in high-speed regular
                 expression matching",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "22",
  number =       "6",
  pages =        "1701--1714",
  month =        dec,
  year =         "2014",
  CODEN =        "IEANEP",
  DOI =          "https://doi.org/10.1109/TNET.2014.2309014",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Thu Feb 12 18:29:37 MST 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Network intrusion detection and prevention systems
                 commonly use regular expression (RE) signatures to
                 represent individual security threats. While the
                 corresponding deterministic finite state automata (DFA)
                 for any one RE is typically small, the DFA that
                 corresponds to the entire set of REs is usually too
                 large to be constructed or deployed. To address this
                 issue, a variety of alternative automata
                 implementations that compress the size of the final
                 automaton have been proposed such as extended finite
                 automata (XFA) and delayed input DFA (D$^2$ FA). The
                 resulting final automata are typically much smaller
                 than the corresponding DFA. However, the previously
                 proposed automata construction algorithms do suffer
                 from some drawbacks. First, most employ a ``Union then
                 Minimize'' framework where the automata for each RE are
                 first joined before minimization occurs. This leads to
                 an expensive nondeterministic finite automata (NFA) to
                 DFA subset construction on a relatively large NFA.
                 Second, most construct the corresponding large DFA as
                 an intermediate step. In some cases, this DFA is so
                 large that the final automaton cannot be constructed
                 even though the final automaton is small enough to be
                 deployed. In this paper, we propose a ``Minimize then
                 Union'' framework for constructing compact alternative
                 automata focusing on the D$^2$ FA. We show that we can
                 construct an almost optimal final D$^2$ FA with small
                 intermediate parsers. The key to our approach is a
                 space-and time-efficient routine for merging two
                 compact D$^2$ FA into a compact D$^2$ FA. In our
                 experiments, our algorithm runs on average 155 times
                 faster and uses 1500 times less memory than previous
                 algorithms. For example, we are able to construct a
                 D$^2$ FA with over 80 000 000 states using only 1 GB of
                 main memory in only 77 min.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J771",
}

@Article{Petermann:2014:GBD,
  author =       "Andr{\'e} Petermann and Martin Junghanns and Robert
                 M{\"u}ller and Erhard Rahm",
  title =        "Graph-based data integration and business intelligence
                 with {BIIIG}",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "7",
  number =       "13",
  pages =        "1577--1580",
  month =        aug,
  year =         "2014",
  CODEN =        "????",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Wed Feb 4 17:20:31 MST 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "We demonstrate BIIIG (Business Intelligence with
                 Integrated Instance Graphs), a new system for
                 graph-based data integration and analysis. It aims at
                 improving business analytics compared to traditional
                 OLAP approaches by comprehensively tracking
                 relationships between entities and making them
                 available for analysis. BIIIG supports a largely
                 automatic data integration pipeline for metadata and
                 instance data. Metadata from heterogeneous sources are
                 integrated in a so-called Unified Metadata Graph (UMG)
                 while instance data is combined in a single integrated
                 instance graph (IIG). A unique feature of BIIIG is the
                 concept of business transaction graphs, which are
                 derived from the IIG and which reflect all steps
                 involved in a specific business process. Queries and
                 analysis tasks can refer to the entire instance graph
                 or sets of business transaction graphs. In the
                 demonstration, we perform all data integration steps
                 and present analytic queries including pattern matching
                 and graph-based aggregation of business measures.",
  acknowledgement = ack-nhfb,
  ajournal =     "Proc. VLDB Endowment",
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Book{Romero:2014:MPR,
  author =       "Victor Romero",
  title =        "Mastering {Python} regular expressions",
  publisher =    "Shroff Publishers",
  address =      "????",
  year =         "2014",
  ISBN =         "93-5110-550-4",
  ISBN-13 =      "978-93-5110-550-3",
  LCCN =         "????",
  bibdate =      "Wed Oct 14 08:00:43 MDT 2015",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Rostami:2014:RRE,
  author =       "Masoud Rostami and Mehrdad Majzoobi and Farinaz
                 Koushanfar and Dan S. Wallach and Srinivas Devadas",
  title =        "Robust and Reverse-Engineering Resilient {PUF}
                 Authentication and Key-Exchange by Substring Matching",
  journal =      j-IEEE-TRANS-EMERG-TOP-COMPUT,
  volume =       "2",
  number =       "1",
  pages =        "37--49",
  month =        mar,
  year =         "2014",
  DOI =          "https://doi.org/10.1109/TETC.2014.2300635",
  ISSN =         "2168-6750 (print), 2376-4562 (electronic)",
  bibdate =      "Thu Sep 21 14:02:06 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetransemergtopcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Emerging Topics in Computing",
  journal-URL =  "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=6245516",
  keywords =     "Physical Unclonable Function (PUF)",
}

@Book{Schildt:2014:JCRb,
  editor =       "Herbert Schildt",
  title =        "{Java}: The Complete Reference",
  publisher =    pub-MCGRAW-HILL,
  address =      pub-MCGRAW-HILL:adr,
  edition =      "Ninth",
  pages =        "xxxiv + 1274",
  year =         "2014",
  ISBN =         "0-07-180855-8 (paperback), 0-07-180925-2,
                 0-07-180856-6",
  ISBN-13 =      "978-0-07-180855-2, 978-0-07-180925-2,
                 978-0-07-180856-9",
  LCCN =         "QA76.73.J38 S332 2014eb",
  bibdate =      "Thu Dec 4 13:05:57 MST 2014",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/java2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Fully updated for Java SE 8, this edition explains how
                 to develop, compile, debug, and run Java programs. The
                 book covers the entire Java language, including its
                 syntax, keywords, and fundamental programming
                 principles, as well as significant portions of the Java
                 API library. JavaBeans, servlets, applets, and Swing
                 are examined and real-world examples demonstrate Java
                 in action. New Java SE 8 features such as lambda
                 expressions, the stream library, and the default
                 interface method are discussed in detail. This Oracle
                 Press resource also offers a solid introduction to
                 JavaFX. Topics covered include: data types, variables,
                 arrays, and operators; control statements; classes,
                 objects, and methods; method overloading and
                 overriding; inheritance; interfaces and packages;
                 exception handling; multithreaded programming;
                 enumerations, autoboxing, and annotations; I/O classes;
                 generics; lambda expressions; string handling;
                 collections framework; networking; event handling; AWT
                 and Swing; concurrent and stream API; regular
                 expressions; JavaFX; JavaBeans; and applets and
                 servlets.",
  acknowledgement = ack-nhfb,
  shorttableofcontents = "The history and evolution of Java \\
                 An overview of Java \\
                 Data types, variables, and arrays \\
                 Operators \\
                 Control statements \\
                 Introducing classes \\
                 A closer look at methods and classes \\
                 Inheritance \\
                 Packages and interfaces \\
                 Exception handling \\
                 Multithreaded programming \\
                 Enumerations, autoboxing, and annotations (metadata)
                 \\
                 I/O, applets, and other topics \\
                 Generics \\
                 Lambda expressions \\
                 String handling \\
                 Exploring java.lang \\
                 Java.util part 1: the collections framework \\
                 Java.util part 2: more utility classes \\
                 Input/output: exploring java.io \\
                 Exploring NIO \\
                 Networking \\
                 The applet class \\
                 Event handling \\
                 Introducing the AWT: working with windows, graphics,
                 and text \\
                 Using AWT controls, layout managers, and menus \\
                 Images \\
                 The concurrency utilities \\
                 The stream API \\
                 Regular expressions and other packages \\
                 Introducing swing \\
                 Exploring swing \\
                 Introducing swing menus \\
                 Introducing JavaFX GUI programming \\
                 Exploring JavaFX controls \\
                 Introducing JavaFX menus \\
                 Java beans \\
                 Introducing servlets \\
                 Using Java's documentation comments",
  subject =      "Java (Langage de programmation); Programmation
                 Internet; Java (Computer program language); Internet
                 programming; Internet programming.; Java (Computer
                 program language)",
  tableofcontents = "Part I. The Java language \\
                 1. The history and evolution of Java: Java's lineage;
                 The creation of Java; How Java changed the Internet;
                 Java's magic: the bytecode; Servlets: Java on the
                 server side; The Java buzzwords; The evolution of Java;
                 Java SE 8; A culture of innovation \\
                 2. An overview of Java: Object-oriented programming; A
                 first simple program; A second short program; Two
                 control statements; Using blocks of code; Lexical
                 issues; The Java class libraries \\
                 3. Data types, variables, and arrays: Java is a
                 strongly typed language; The primitive types; Integers;
                 Floating-point types; Characters; Booleans; A closer
                 look at literals; Variables; Type conversion and
                 casting; Automatic type promotion in expressions;
                 Arrays; A few words about strings; A note to C/C++
                 programmers about pointers \\
                 4. Operators: Arithmetic operators; The bitwise
                 operators; Relational operators; Boolean logical
                 operators; The assignment operator; The ? operator;
                 Operator precedence; Using parentheses \\
                 5. Control statements: Java's selection statements;
                 Iteration statements; Jump statements \\
                 6. Introducing classes: Class fundamentals; Declaring
                 objects; Assigning object reference variables;
                 Introducing methods; Constructors; The this keyword;
                 Garbage collection; The finalize() method; A stack
                 class \\
                 7. A closer look at methods and classes: Overloading
                 methods; Using objects as parameters; A closer look at
                 argument passing; Returning objects; Recursion;
                 Introducing access control; Understanding static;
                 Introducing final; Arrays revisited; Introducing nested
                 and inner classes; Exploring the string class; Using
                 command-line arguments; Varargs: variable-length
                 arguments \\
                 8. Inheritance: Inheritance basics; Using super;
                 Creating a multilevel hierarchy; When constructors are
                 executed; Method overriding; Dynamic method dispatch;
                 Using abstract classes; Using final with inheritance;
                 The object class \\
                 9. Packages and interfaces: Packages; Access
                 protection; Importing packages; Interfaces; Default
                 interface methods; Use static methods in an interface;
                 Final thoughts on packages and interfaces \\
                 10. Exception handling: Exception-handling
                 fundamentals; Exception types; Uncaught exceptions;
                 Using try and catch; Multiple catch clauses; Nested try
                 statements; Throw; Throws; Finally; Java's build-in
                 exceptions; Creating your own exception subclasses;
                 Chained exceptions; Three recently added exception
                 features; Using exceptions \\
                 11. Multithreaded programming: The Java thread model;
                 The main thread; Creating a thread; Creating multiple
                 threads; Using isAlive() and join(); Thread priorities;
                 Synchronization; Interthread communication; Suspending,
                 resuming, and stopping threads; Obtaining a thread's
                 state; Using multithreading \\
                 12. Enumerations, autoboxing, and annotations
                 (metadata): Enumerations; Type wrappers; Autoboxing;
                 Annotations (metadata); Type annotations; Repeating
                 annotations \\
                 13. I/O, applets, and other topics: I/O basics; Reading
                 console input; Writing console output; The PrintWriter
                 class; Reading and writing files; Automatically closing
                 a file; Applet fundamentals; The transient and volatile
                 modifiers; Using instanceof; Strictfp; Native methods;
                 Problems with native methods; Using assert; Static
                 import; Invoking overloaded constructors through
                 this(); Compact API profiles \\
                 14. Generics: What are generics?; A simple generics
                 example; A generic class with two type parameters; The
                 general form of a generic class; Bounded types; Using
                 wildcard arguments; Creating a generic method; Generic
                 interfaces; Raw types and legacy code; Generic class
                 hierarchies; Type inference with generics; Erasure;
                 Ambiguity errors; Some generic restrictions \\
                 15. Lambda expressions: Introducing lambda expressions;
                 Block lambda expressions; Generic functional
                 interfaces; Passing lambda expressions as arguments;
                 Lambda expressions and exceptions; Lambda expressions
                 and variable capture; Method references; Constructor
                 references; Predefined functional interfaces \\
                 Part II. The Java library. \\
                 16. String handling: The string constructors; String
                 length; Special string operations; Character
                 extraction; String comparison; Searching strings;
                 Modifying a string; Data conversion using valueOf();
                 Changing the case of characters within a string;
                 Joining strings; Additional string methods;
                 StringBuffer; StringBuilder \\
                 17. Exploring java.lang: Primitive type wrappers; Void;
                 Process; Runtime; ProcessBuilder; System; Object; Using
                 clone() and the cloneable interface; Class;
                 ClassLoader; Math; StrictMath; Compiler; Thread,
                 ThreadGroup and runnable; ThreadLocal and
                 InheritableThreadLocal; Package; RuntimePermission;
                 Throwable; SecurityManager; StackTraceElement; Enum;
                 ClassValue; The CharSequence interface; The comparable
                 interface; The appendable interface; The iterable
                 interface; The readable interface; The AutoCloseable
                 interface; The Thread.UncaughtExceptionHandler
                 interface; The java.lang subpackages \\
                 18. java.util Part 1: The collections framework:
                 Collections overview; JDK 5 changed the collections
                 framework; The collection interfaces; The collection
                 classes; Accessing a collection via an iterator;
                 Spliterators; Storing user-defined classes in
                 collections; The RandomAccess interface; Working with
                 maps; Comparators; The collection algorithms; Arrays;
                 The legacy classes and interfaces; Parting thoughts on
                 collections \\
                 19. java.util Part 2: More utility classes:
                 StringTokenizer; BitSet; Optional, OptionalDouble,
                 OptionalInt, and OptionalLong; Date; Calendar;
                 GregorianCalendar; TimeZone; SimpleTimeZone; Locale;
                 Random; Observable; Timer and TimerTask; Currency;
                 Formatter; Scanner; The ResourceBundle,
                 ListResourceBundle, and PropertyResourceBundle classes;
                 Miscellaneous utility classes and interfaces; The
                 java.util subpackages \\
                 20. Input/output: exploring java.io: The I/O classes
                 and interfaces; File; The AutoCloseable, Closeable, and
                 flushable interfaces; I/O exceptions; Two ways to close
                 a stream; The stream classes; The byte streams; The
                 character streams; The console class; Serialization;
                 Stream benefits \\
                 21. Exploring NIO: The NIO classes; NIO fundamentals;
                 Enhancements added to NIO by JDK 7; Using the NIO
                 system; Pre-JDK 7 channel-based examples \\
                 22. Networking: Networking basics; The networking
                 classes and interfaces; Inet/Address; Inet4Address and
                 Inet6Address; TCP/IP client sockets; URL;
                 URLConnection; HttpURLConnection; The URI class;
                 Cookies; TCP/IP server sockets; Datagrams \\
                 23. The applet class: Two types of applets; Applet
                 basics; Applet architecture; An applet skeleton; Simple
                 applet display methods; Requesting repainting; Using
                 the status window; The HTML APPLET tag; Passing
                 parameters to applets; getDocumentBase() and
                 getCodeBase(); AppletContext and showDocument(); The
                 AudioClip interface; The AppletStub interface;
                 Outputting to the console \\
                 24. Event handling: Two event handling mechanisms; The
                 delegation event model; Event classes; The KeyEvent
                 class; Sources of events; Event listener interfaces;
                 Using the delegation event model; Adapter classes;
                 Inner classes \\
                 25. Introducing the AWT: working with windows,
                 graphics, and text: AWT classes; Window fundamentals;
                 Working with frame windows; Creating a frame window in
                 an AWT-based applet; Creating a windowed program;
                 Displaying information within a window; Introducing
                 graphics; Working with color; Setting the paint mode;
                 Working with fonts; Managing text output using
                 FontMetrics \\
                 26. Using AWT controls, layout managers, and menus: AWT
                 control fundamentals; Labels; Using buttons; Applying
                 check boxes; CheckboxGroup; Choice controls; Using
                 lists; Managing scroll bars; Using a TextField; Using a
                 TextArea; Understanding layout managers; Menu bars and
                 menus; Dialog boxes; FileDialog; A word about
                 overriding paint() \\
                 27. Images: File formats; Image fundamentals: creating,
                 loading, and displaying; ImageObserver; Double
                 buffering; MediaTracker; ImageProducer; ImageConsumer;
                 ImageFilter; Additional imaging classes \\
                 28. The concurrency utilities: The concurrent API
                 packages; Using synchronization objects; Phaser; Using
                 an executor; The TimeUnit enumeration; the concurrent
                 collections; Locks; Atomic operations; Parallel
                 programming via the fork/join framework; The
                 concurrency utilities versus Java's traditional
                 approach \\
                 29. The stream API: Stream basics; Reduction
                 operations; Using parallel streams; Mapping;
                 Collecting; Iterators and streams; More to explore in
                 the stream API \\
                 30. Regular expressions and other packages: The core
                 Java API packages; Regular expression processing;
                 Reflection; Remote method invocation (RMI); Formatting
                 date and time with java.text; The time and date API
                 added by JDK 8 \\
                 Part III. Introducing GUI programming with swing \\
                 31. Introducing swing: The origins of swing; Swing is
                 built on the AWT; Two key swing features; The MVC
                 connection; Components and containers; The swing
                 packages; A simple swing application; Event handling;
                 Create a swing applet; Painting in swing \\
                 32. Exploring swing: JLabel and ImageIcon; JTextField;
                 The swing buttons; JTabbedPane; JScrollPane; JList;
                 JComboBox; Trees; JTable \\
                 33. Introducing swing menus: Menu basics; An overview
                 of JMenuBar, JMenu, and JMenuItem; Create a main menu;
                 Add Mnemonics and accelerators to menu items; Add
                 images and tooltips to menu items; Use
                 JRadioButtonMenuItem and JCheckBoxMenuItem; Create a
                 popup menu; Create a toolbar; Use actions; Put the
                 entire MenuDemo program together; Continuing your
                 exploration of swing \\
                 Part IV. Introducing GUI programming with JavaFX \\
                 34. Introducing JavaFX GUI programming: JavaFX basic
                 concepts; A JavaFX application skeleton; Compiling and
                 running a JavaFX program; The application thread; A
                 simple JavaFX control: label; Using buttons and events;
                 Drawing directly on a canvas \\
                 35. Exploring JavaFX controls: Using image and
                 ImageView; ToggleButton; RadioButton; CheckBox;
                 ListView; ComboBox; TextField; ScrollPane; TreeView;
                 Introducing effects and transforms; Adding tooltips;
                 Disabling a control \\
                 36. Introducing JavaFX menus: Menu basics; An overview
                 of MenuBar, Menu, and MenuItem; Create a main menu; Add
                 mnemonics and accelerators to menu items; Add images to
                 menu items; Use RadioMenuItem and CheckMenuItem; Create
                 a context menu; Create a toolbar; Put the entire
                 MenuDemo program together; Continuing your exploration
                 of JavaFX \\
                 Part V. Applying Java \\
                 37. Java beans: What is a Java bean?; Advantages of
                 Java beans; Introspection; Bound and constrained
                 properties; Persistence; Customizers; The Java beans
                 API; A bean example \\
                 38. Introducing servlets: Background; The life cycle of
                 a servlet; Servlet development options; Using Tomcat; A
                 simple servlet; The servlet API; The javax.servlet
                 package; Reading servlet parameters; The
                 javax.servlet.http package; Handling HTTP requests and
                 responses; Using cookies; Session tracking \\
                 Appendix. Using Java's documentation comments: The
                 javadoc tags; The general form of a documentation
                 comment; What javadoc outputs; An example that uses
                 documentation comments",
}

@Article{Schoepe:2014:STI,
  author =       "Daniel Schoepe and Daniel Hedin and Andrei Sabelfeld",
  title =        "{SeLINQ}: tracking information across
                 application-database boundaries",
  journal =      j-SIGPLAN,
  volume =       "49",
  number =       "9",
  pages =        "25--38",
  month =        sep,
  year =         "2014",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2692915.2628151",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue May 12 17:41:21 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The root cause for confidentiality and integrity
                 attacks against computing systems is insecure
                 information flow. The complexity of modern systems
                 poses a major challenge to secure end-to-end
                 information flow, ensuring that the insecurity of a
                 single component does not render the entire system
                 insecure. While information flow in a variety of
                 languages and settings has been thoroughly studied in
                 isolation, the problem of tracking information across
                 component boundaries has been largely out of reach of
                 the work so far. This is unsatisfactory because
                 tracking information across component boundaries is
                 necessary for end-to-end security. This paper proposes
                 a framework for uniform tracking of information flow
                 through both the application and the underlying
                 database. Key enabler of the uniform treatment is
                 recent work by Cheney et al., which studies database
                 manipulation via an embedded language-integrated query
                 language (with Microsoft's LINQ on the backend).
                 Because both the host language and the embedded query
                 languages are functional F\#-like languages, we are
                 able to leverage information-flow enforcement for
                 functional languages to obtain information-flow control
                 for databases ``for free'', synergize it with
                 information-flow control for applications and thus
                 guarantee security across application-database
                 boundaries. We develop the formal results in the form
                 of a security type system that includes a treatment of
                 algebraic data types and pattern matching, and
                 establish its soundness. On the practical side, we
                 implement the framework and demonstrate its usefulness
                 in a case study with a realistic movie rental
                 database.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "ICFP '14 conference proceedings.",
}

@Article{Siren:2014:IGP,
  author =       "Jouni Sir{\'e}n and Niko V{\"a}lim{\"a}ki and Veli
                 M{\"a}kinen",
  title =        "Indexing graphs for path queries with applications in
                 genome research",
  journal =      j-TCBB,
  volume =       "11",
  number =       "2",
  pages =        "375--388",
  month =        mar,
  year =         "2014",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2013.2297101",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Thu Nov 6 16:13:18 MST 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "We propose a generic approach to replace the canonical
                 sequence representation of genomes with graph
                 representations, and study several applications of such
                 extensions. We extend the Burrows--Wheeler transform
                 (BWT) of strings to acyclic directed labeled graphs, to
                 support path queries as an extension to substring
                 searching. We develop, apply, and tailor this technique
                 to (a) read alignment on an extended BWT index of a
                 graph representing pan-genome, i.e., reference genome
                 and known variants of it; and (b) split-read alignment
                 on an extended BWT index of a splicing graph. Other
                 possible applications include probe/primer design,
                 alignments to assembly graphs, and alignments to
                 phylogenetic tree of partial-order graphs. We report
                 several experiments on the feasibility and
                 applicability of the approach. Especially on
                 highly-polymorphic genome regions our pan-genome index
                 is making a significant improvement in alignment
                 accuracy.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Solodkyy:2014:OPM,
  author =       "Yuriy Solodkyy and Gabriel {Dos Reis} and Bjarne
                 Stroustrup",
  title =        "Open pattern matching for {C++}",
  journal =      j-SIGPLAN,
  volume =       "49",
  number =       "3",
  pages =        "33--42",
  month =        mar,
  year =         "2014",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2637365.2517222",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Jun 26 05:58:25 MDT 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Pattern matching is an abstraction mechanism that can
                 greatly simplify source code. We present
                 functional-style pattern matching for C++ implemented
                 as a library, called Mach7$^1$. All the patterns are
                 user-definable, can be stored in variables, passed
                 among functions, and allow the use of class
                 hierarchies. As an example, we implement common
                 patterns used in functional languages. Our approach to
                 pattern matching is based on compile-time composition
                 of pattern objects through concepts. This is superior
                 (in terms of performance and expressiveness) to
                 approaches based on run-time composition of polymorphic
                 pattern objects. In particular, our solution allows
                 mapping functional code based on pattern matching
                 directly into C++ and produces code that is only a few
                 percent slower than hand-optimized C++ code. The
                 library uses an efficient type switch construct,
                 further extending it to multiple scrutinees and general
                 patterns. We compare the performance of pattern
                 matching to that of double dispatch and open
                 multi-methods in C++.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "GPCE '13 conference proceedings.",
}

@Article{Song:2014:EPM,
  author =       "Chunyao Song and Tingjian Ge and Cindy Chen and Jie
                 Wang",
  title =        "Event pattern matching over graph streams",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "8",
  number =       "4",
  pages =        "413--424",
  month =        dec,
  year =         "2014",
  CODEN =        "????",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Mon Feb 9 18:24:35 MST 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "A graph is a fundamental and general data structure
                 underlying all data applications. Many applications
                 today call for the management and query capabilities
                 directly on graphs. Real time graph streams, as seen in
                 road networks, social and communication networks, and
                 web requests, are such applications. Event pattern
                 matching requires the awareness of graph structures,
                 which is different from traditional complex event
                 processing. It also requires a focus on the dynamicity
                 of the graph, time order constraints in patterns, and
                 online query processing, which deviates significantly
                 from previous work on subgraph matching as well. We
                 study the semantics and efficient online algorithms for
                 this important and intriguing problem, and evaluate our
                 approaches with extensive experiments over real world
                 datasets in four different domains.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Stolee:2014:SSS,
  author =       "Kathryn T. Stolee and Sebastian Elbaum and Daniel
                 Dobos",
  title =        "Solving the Search for Source Code",
  journal =      j-TOSEM,
  volume =       "23",
  number =       "3",
  pages =        "26:1--26:??",
  month =        may,
  year =         "2014",
  CODEN =        "ATSMER",
  DOI =          "https://doi.org/10.1145/2581377",
  ISSN =         "1049-331X (print), 1557-7392 (electronic)",
  ISSN-L =       "1049-331X",
  bibdate =      "Tue Oct 7 19:00:52 MDT 2014",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tosem/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tosem.bib",
  abstract =     "Programmers frequently search for source code to reuse
                 using keyword searches. The search effectiveness in
                 facilitating reuse, however, depends on the
                 programmer's ability to specify a query that captures
                 how the desired code may have been implemented.
                 Further, the results often include many irrelevant
                 matches that must be filtered manually. More semantic
                 search approaches could address these limitations, yet
                 existing approaches are either not flexible enough to
                 find approximate matches or require the programmer to
                 define complex specifications as queries. We propose a
                 novel approach to semantic code search that addresses
                 several of these limitations and is designed for
                 queries that can be described using a concrete
                 input/output example. In this approach, programmers
                 write lightweight specifications as inputs and expected
                 output examples. Unlike existing approaches to semantic
                 search, we use an SMT solver to identify programs or
                 program fragments in a repository, which have been
                 automatically transformed into constraints using
                 symbolic analysis, that match the programmer-provided
                 specification. We instantiated and evaluated this
                 approach in subsets of three languages, the Java String
                 library, Yahoo! Pipes mashup language, and SQL select
                 statements, exploring its generality, utility, and
                 trade-offs. The results indicate that this approach is
                 effective at finding relevant code, can be used on its
                 own or to filter results from keyword searches to
                 increase search precision, and is adaptable to find
                 approximate matches and then guide modifications to
                 match the user specifications when exact matches do not
                 already exist. These gains in precision and flexibility
                 come at the cost of performance, for which underlying
                 factors and mitigation strategies are identified.",
  acknowledgement = ack-nhfb,
  articleno =    "26",
  fjournal =     "ACM Transactions on Software Engineering and
                 Methodology",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J790",
}

@InCollection{Sulzmann:2014:FEM,
  author =       "Martin Sulzmann and Pippijn van Steenhoven",
  editor =       "Albert Cohen",
  booktitle =    "{Compiler Construction: 23rd International Conference,
                 CC 2014, Held as Part of the European Joint Conferences
                 on Theory and Practice of Software, ETAPS 2014,
                 Grenoble, France, April 5--13, 2014, Proceedings}",
  title =        "A Flexible and Efficient {ML} Lexer Tool Based on
                 Extended Regular Expression Submatching",
  volume =       "8409",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  bookpages =    "xii + 251 + 124",
  pages =        "174--191",
  year =         "2014",
  DOI =          "https://doi.org/10.1007/978-3-642-54807-9_10",
  bibdate =      "Fri Sep 22 15:27:44 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-54807-9",
}

@InCollection{Sulzmann:2014:PRE,
  author =       "Martin Sulzmann and Kenny Zhuo Ming Lu",
  editor =       "Michael Codish and Eijiro Sumii",
  booktitle =    "Functional and Logic Programming: {12th International
                 Symposium, FLOPS 2014, Kanazawa, Japan, June 4--6,
                 2014. Proceedings}",
  title =        "{POSIX} Regular Expression Parsing with Derivatives",
  volume =       "8475",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  bookpages =    "xvi + 353 + 81",
  pages =        "203--220",
  year =         "2014",
  DOI =          "https://doi.org/10.1007/978-3-319-07151-0_13",
  bibdate =      "Fri Sep 22 15:24:05 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-319-07151-0",
}

@Article{Tan:2014:REQ,
  author =       "Tony Tan and Domagoj Vrgo{\v{c}}",
  title =        "Regular Expressions for Querying Data Graphs",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "25",
  number =       "8",
  pages =        "971--??",
  month =        dec,
  year =         "2014",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054114400188",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Wed Feb 25 17:18:16 MST 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Tanaka:2014:IEE,
  author =       "Shunji Tanaka",
  title =        "Improved exact enumerative algorithms for the planted
                 $ (l, d)$-motif search problem",
  journal =      j-TCBB,
  volume =       "11",
  number =       "2",
  pages =        "361--374",
  month =        mar,
  year =         "2014",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2014.2306842",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Thu Nov 6 16:13:18 MST 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "In this paper efficient exact algorithms are proposed
                 for the planted $ (l, d)$-motif search problem. This
                 problem is to find all motifs of length $l$ that are
                 planted in each input string with at most $d$
                 mismatches. The ``quorum'' version of this problem is
                 also treated in this paper to find motifs planted not
                 in all input strings but in at least $q$ input strings.
                 The proposed algorithms are based on the previous
                 algorithms called qPMSPruneI and qPMS7 that traverse a
                 search tree starting from a $l$-length substring of an
                 input string. To improve these previous algorithms,
                 several techniques are introduced, which contribute to
                 reducing the computation time for the traversal. In
                 computational experiments, it will be shown that the
                 proposed algorithms outperform the previous
                 algorithms.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Tang:2014:EPP,
  author =       "Zhenjun Tang and Xianquan Zhang and Chunqiang Yu and
                 Dan He",
  title =        "Efficient point pattern matching algorithm for planar
                 point sets under transform of translation, rotation and
                 scale",
  journal =      j-APPL-MATH-COMP,
  volume =       "232",
  number =       "??",
  pages =        "624--631",
  day =          "1",
  month =        apr,
  year =         "2014",
  CODEN =        "AMHCBQ",
  ISSN =         "0096-3003 (print), 1873-5649 (electronic)",
  ISSN-L =       "0096-3003",
  bibdate =      "Mon Mar 24 17:33:07 MDT 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/applmathcomput2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0096300314001246",
  acknowledgement = ack-nhfb,
  fjournal =     "Applied Mathematics and Computation",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00963003/",
}

@Article{vanderLoo:2014:PRP,
  author =       "Mark {van der Loo}",
  title =        "\pkg{stringdist}: an {R} Package for Approximate
                 String Matching",
  journal =      j-R-JOURNAL,
  volume =       "6",
  number =       "1",
  pages =        "111--122",
  month =        jun,
  year =         "2014",
  CODEN =        "????",
  ISSN =         "2073-4859",
  bibdate =      "Thu Aug 13 15:54:57 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/rjournal.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://journal.r-project.org/archive/2014-1/RJournal_2014-1_loo.pdf",
  acknowledgement = ack-r-project,
  fjournal =     "The R Journal",
  journal-URL =  "http://journal.r-project.org/",
}

@Article{vanderLoo:2014:PSR,
  author =       "Mark {van der Loo}",
  title =        "\pkg{stringdist}: an {R} Package for Approximate
                 String Matching",
  journal =      j-R-JOURNAL,
  volume =       "6",
  number =       "1",
  pages =        "111--122",
  month =        jun,
  year =         "2014",
  CODEN =        "????",
  ISSN =         "2073-4859",
  bibdate =      "Thu Aug 13 15:54:57 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/rjournal.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://journal.r-project.org/archive/2014-1/RJournal_2014-1_loo.pdf",
  acknowledgement = ack-r-project,
  fjournal =     "The R Journal",
  journal-URL =  "http://journal.r-project.org/",
}

@Article{Wandelt:2014:SAS,
  author =       "Sebastian Wandelt and Dong Deng and Stefan Gerdjikov
                 and Shashwat Mishra and Petar Mitankin and Manish Patil
                 and Enrico Siragusa and Alexander Tiskin and Wei Wang
                 and Jiaying Wang and Ulf Leser",
  title =        "State-of-the-art in string similarity search and
                 join",
  journal =      j-SIGMOD,
  volume =       "43",
  number =       "1",
  pages =        "64--76",
  month =        mar,
  year =         "2014",
  CODEN =        "SRECD8",
  DOI =          "https://doi.org/10.1145/2627692.2627706",
  ISSN =         "0163-5808 (print), 1943-5835 (electronic)",
  ISSN-L =       "0163-5808",
  bibdate =      "Wed May 21 18:46:50 MDT 2014",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigmod.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "String similarity search and its variants are
                 fundamental problems with many applications in areas
                 such as data integration, data quality, computational
                 linguistics, or bioinformatics. A plethora of methods
                 have been developed over the last decades. Obtaining an
                 overview of the state-of-the-art in this field is
                 difficult, as results are published in various domains
                 without much cross-talk, papers use different data sets
                 and often study subtle variations of the core problems,
                 and the sheer number of proposed methods exceeds the
                 capacity of a single research group. In this paper, we
                 report on the results of the probably largest benchmark
                 ever performed in this field. To overcome the resource
                 bottleneck, we organized the benchmark as an
                 international competition, a workshop at EDBT/ICDT
                 2013. Various teams from different fields and from all
                 over the world developed or tuned programs for two
                 crisply defined problems. All algorithms were evaluated
                 by an external group on two machines. Altogether, we
                 compared 14 different programs on two string matching
                 problems (k-approximate search and k-approximate join)
                 using data sets of increasing sizes and with different
                 characteristics from two different domains. We compare
                 programs primarily by wall clock time, but also provide
                 results on memory usage, indexing time, batch query
                 effects and scalability in terms of CPU cores. Results
                 were averaged over several runs and confirmed on a
                 second, different hardware platform. A particularly
                 interesting observation is that disciplines can and
                 should learn more from each other, with the three best
                 teams rooting in computational linguistics, databases,
                 and bioinformatics, respectively.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGMOD Record (ACM Special Interest Group on
                 Management of Data)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J689",
}

@Article{Wang:2014:ESS,
  author =       "Jiannan Wang and Guoliang Li and Jianhua Feng",
  title =        "Extending string similarity join to tolerant fuzzy
                 token matching",
  journal =      j-TODS,
  volume =       "39",
  number =       "1",
  pages =        "7:1--7:??",
  month =        jan,
  year =         "2014",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/2535628",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Wed Feb 5 11:31:16 MST 2014",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tods/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  abstract =     "String similarity join that finds similar string pairs
                 between two string sets is an essential operation in
                 many applications and has attracted significant
                 attention recently in the database community. A
                 significant challenge in similarity join is to
                 implement an effective fuzzy match operation to find
                 all similar string pairs which may not match exactly.
                 In this article, we propose a new similarity function,
                 called fuzzy-token-matching-based similarity which
                 extends token-based similarity functions (e.g., jaccard
                 similarity and cosine similarity) by allowing fuzzy
                 match between two tokens. We study the problem of
                 similarity join using this new similarity function and
                 present a signature-based method to address this
                 problem. We propose new signature schemes and develop
                 effective pruning techniques to improve the
                 performance. We also extend our techniques to support
                 weighted tokens. Experimental results show that our
                 method achieves high efficiency and result quality and
                 significantly outperforms state-of-the-art
                 approaches.",
  acknowledgement = ack-nhfb,
  articleno =    "7",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
}

@Article{Wang:2014:ODA,
  author =       "Hung-Lung Wang and Kuan-Yu Chen",
  title =        "One-dimensional approximate point set pattern matching
                 with {$ L_p $}-norm",
  journal =      j-THEOR-COMP-SCI,
  volume =       "521",
  number =       "??",
  pages =        "42--50",
  day =          "13",
  month =        feb,
  year =         "2014",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Mon Jan 27 18:51:00 MST 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397513008669",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Wu:2014:FMN,
  author =       "Chunhan Wu and Xingyuan Zhang and Christian Urban",
  title =        "A Formalisation of the {Myhill--Nerode Theorem} Based
                 on Regular Expressions",
  journal =      j-J-AUTOM-REASON,
  volume =       "52",
  number =       "4",
  pages =        "451--480",
  month =        apr,
  year =         "2014",
  CODEN =        "JAREEW",
  DOI =          "https://doi.org/10.1007/s10817-013-9297-2",
  ISSN =         "0168-7433 (print), 1573-0670 (electronic)",
  ISSN-L =       "0168-7433",
  bibdate =      "Sat Apr 2 10:51:10 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jautomreason.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/s10817-013-9297-2",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Autom. Reason.",
  fjournal =     "Journal of Automated Reasoning",
  journal-URL =  "http://link.springer.com/journal/10817",
}

@Article{Zhang:2014:EPS,
  author =       "Dongxiang Zhang and Chee-Yong Chan and Kian-Lee Tan",
  title =        "An efficient publish\slash subscribe index for
                 e-commerce databases",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "7",
  number =       "8",
  pages =        "613--624",
  month =        apr,
  year =         "2014",
  CODEN =        "????",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Wed Feb 4 09:22:10 MST 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Many of today's publish/subscribe (pub/sub) systems
                 have been designed to cope with a large volume of
                 subscriptions and high event arrival rate (velocity).
                 However, in many novel applications (such as
                 e-commerce), there is an increasing variety of items,
                 each with different attributes. This leads to a very
                 high-dimensional and sparse database that existing
                 pub/sub systems can no longer support effectively. In
                 this paper, we propose an efficient in-memory index
                 that is scalable to the volume and update of
                 subscriptions, the arrival rate of events and the
                 variety of subscribable attributes. The index is also
                 extensible to support complex scenarios such as
                 prefix/suffix filtering and regular expression
                 matching. We conduct extensive experiments on synthetic
                 datasets and two real datasets (AOL query log and Ebay
                 products). The results demonstrate the superiority of
                 our index over state-of-the-art methods: our index
                 incurs orders of magnitude less index construction
                 time, consumes a small amount of memory and performs
                 event matching efficiently.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Zheng:2014:MMS,
  author =       "Yuxin Zheng and Zhifeng Bao and Lidan Shou and Anthony
                 K. H. Tung",
  title =        "{MESA}: a map service to support fuzzy type-ahead
                 search over geo-textual data",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "7",
  number =       "13",
  pages =        "1545--1548",
  month =        aug,
  year =         "2014",
  CODEN =        "????",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Wed Feb 4 17:20:31 MST 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Geo-textual data are ubiquitous these days. Recent
                 study on spatial keyword search focused on the
                 processing of queries which retrieve objects that match
                 certain keywords within a spatial region. To ensure
                 effective data retrieval, various extensions were done
                 including the tolerance of errors in keyword matching
                 and the search-as-you-type feature using prefix
                 matching. We present MESA, a map application to support
                 different variants of spatial keyword query. In this
                 demonstration, we adopt the autocompletion paradigm
                 that generates the initial query as a prefix matching
                 query. If there are few matching results, other
                 variants are performed as a form of relaxation that
                 reuses the processing done in earlier phases. The types
                 of relaxation allowed include spatial region expansion
                 and exact/approximate prefix/substring matching. MESA
                 adopts the client-server architecture. It provides
                 fuzzy type-ahead search over geo-textual data. The core
                 of MESA is to adopt a unifying search strategy, which
                 incrementally applies the relaxation in an appropriate
                 order to maximize the efficiency of query processing.
                 In addition, MESA equips a user-friendly interface to
                 interact with users and visualize results. MESA also
                 provides customized search to meet the needs of
                 different users.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Zhou:2014:TCS,
  author =       "Shizhe Zhou and Changyun Jiang and Sylvain Lefebvre",
  title =        "Topology-constrained synthesis of vector patterns",
  journal =      j-TOG,
  volume =       "33",
  number =       "6",
  pages =        "215:1--215:??",
  month =        nov,
  year =         "2014",
  CODEN =        "ATGRDF",
  DOI =          "https://doi.org/10.1145/2661229.2661238",
  ISSN =         "0730-0301 (print), 1557-7368 (electronic)",
  ISSN-L =       "0730-0301",
  bibdate =      "Fri Nov 14 19:16:26 MST 2014",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tog/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tog.bib",
  abstract =     "Decorative patterns are observed in many forms of art,
                 typically enriching the visual aspect of otherwise
                 simple shapes. Such patterns are especially difficult
                 to create, as they often exhibit intricate structural
                 details and at the same time have to precisely match
                 the size and shape of the underlying geometry. In the
                 field of Computer Graphics, several approaches have
                 been proposed to automatically synthesize a decorative
                 pattern along a curve, from an example. This empowers
                 non expert users with a simple brush metaphor, allowing
                 them to easily paint complex structured decorations. We
                 extend this idea to the space of design and
                 fabrication. The major challenge is to properly account
                 for the topology of the produced patterns. In
                 particular, our technique ensures that synthesized
                 patterns will be made of exactly one connected
                 component, so that once printed they form a single
                 object. To achieve this goal we propose a two steps
                 synthesis process, first synthesizing the topology of
                 the pattern and later synthesizing its exact geometry.
                 We introduce topology descriptors that efficiently
                 capture the topology of the pattern synthesized so far.
                 We propose several applications of our method, from
                 designing objects using synthesized patterns along
                 curves and within rectangles, to the decoration of
                 surfaces with a dedicated smooth frame interpolation.
                 Using our technique, designers paint structured
                 patterns that can be fabricated into solid, tangible
                 objects, creating unusual and surprising designs of
                 lamps, chairs and laces from examples.",
  acknowledgement = ack-nhfb,
  articleno =    "215",
  fjournal =     "ACM Transactions on Graphics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J778",
}

@Article{Aksoy:2015:RPE,
  author =       "Cem Aksoy and Aggeliki Dimitriou and Dimitri
                 Theodoratos",
  title =        "Reasoning with patterns to effectively answer {XML}
                 keyword queries",
  journal =      j-VLDB-J,
  volume =       "24",
  number =       "3",
  pages =        "441--465",
  month =        jun,
  year =         "2015",
  CODEN =        "VLDBFR",
  DOI =          "https://doi.org/10.1007/s00778-015-0384-3",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Fri May 15 17:21:03 MDT 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  abstract =     "Keyword search is a popular technique for searching
                 tree-structured data on the Web because it frees the
                 user from knowing a complex query language and the
                 structure of the data sources. However, the imprecision
                 of the keyword queries usually results in a very large
                 number of results of which only a few are relevant to
                 the query. Multiple previous approaches have tried to
                 address this problem. They exploit the structural
                 properties of the tree data in order to filter out
                 irrelevant results. This is not an easy task though,
                 and in the general case, these approaches show low
                 precision and/or recall and low quality of result
                 ranking. In this paper, we argue that exploiting the
                 structural relationships of the query matches locally
                 in the data tree is not sufficient and a global
                 analysis of the keyword matches in the data tree is
                 necessary in order to assign meaningful semantics to
                 keyword queries. We present an original approach for
                 answering keyword queries which extracts structural
                 patterns of the query matches and reasons with them in
                 order to return meaningful results ranked with respect
                 to their relevance to the query. Comparisons between
                 patterns are realized based on different types of
                 homomorphisms between patterns. As the number of
                 patterns is typically much smaller than that of the of
                 query matches, this global reasoning is feasible. We
                 design an efficient stack-based algorithm for
                 evaluating keyword queries on tree-structured data, and
                 we also devise a heuristic extension which further
                 improves its performance. We run comprehensive
                 experiments on different datasets to evaluate the
                 efficiency of the algorithms and the effectiveness of
                 our ranking and filtering semantics. The experimental
                 results show that our approach produces results of
                 higher quality compared to previous ones and our
                 algorithms are fast and scale well with respect to the
                 input and output size.",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Alur:2015:DDL,
  author =       "Rajeev Alur and Loris D'Antoni and Mukund
                 Raghothaman",
  title =        "{DReX}: a Declarative Language for Efficiently
                 Evaluating Regular String Transformations",
  journal =      j-SIGPLAN,
  volume =       "50",
  number =       "1",
  pages =        "125--137",
  month =        jan,
  year =         "2015",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2775051.2676981",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue May 12 17:41:19 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We present DReX, a declarative language that can
                 express all regular string-to-string transformations,
                 and can still be efficiently evaluated. The class of
                 regular string transformations has a robust theoretical
                 foundation including multiple characterizations,
                 closure properties, and decidable analysis questions,
                 and admits a number of string operations such as
                 insertion, deletion, substring swap, and reversal.
                 Recent research has led to a characterization of
                 regular string transformations using a primitive set of
                 function combinators analogous to the definition of
                 regular languages using regular expressions. While
                 these combinators form the basis for the language DReX
                 proposed in this paper, our main technical focus is on
                 the complexity of evaluating the output of a DReX
                 program on a given input string. It turns out that the
                 natural evaluation algorithm involves dynamic
                 programming, leading to complexity that is cubic in the
                 length of the input string. Our main contribution is
                 identifying a consistency restriction on the use of
                 combinators in DReX programs, and a single-pass
                 evaluation algorithm for consistent programs with time
                 complexity that is linear in the length of the input
                 string and polynomial in the size of the program. We
                 show that the consistency restriction does not limit
                 the expressiveness, and whether a DReX program is
                 consistent can be checked efficiently. We report on a
                 prototype implementation, and evaluate it using a
                 representative set of text processing tasks.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "POPL '15 conference proceedings.",
}

@Article{Aycock:2015:SCS,
  author =       "J. Aycock",
  title =        "Short Communication: {Stringlish}: improved {English}
                 string searching in binary files",
  journal =      j-SPE,
  volume =       "45",
  number =       "11",
  pages =        "1591--1595",
  month =        nov,
  year =         "2015",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.2327",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Mon Feb 8 18:03:22 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "8 Apr 2015",
}

@Book{Balbaert:2015:RE,
  author =       "Ivo Balbaert",
  title =        "{Rust} Essentials",
  publisher =    pub-PACKT,
  address =      pub-PACKT:adr,
  pages =        "x + 161",
  year =         "2015",
  ISBN =         "1-78528-213-1",
  ISBN-13 =      "978-1-78528-213-3, 978-1-78528-576-9",
  LCCN =         "QA76.73.R87 B35 2015",
  bibdate =      "Tue Dec 10 05:44:53 MST 2019",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://proquest.safaribooksonline.com/9781785285769",
  abstract =     "Discover how to use Rust to write fast, secure, and
                 concurrent systems and applications In Detail Starting
                 by comparing Rust with other programming languages,
                 this book will show you where and how to use Rust. It
                 will discuss primitive types along with variables and
                 their scope, binding and casting, simple functions, and
                 ways to control execution flow in a program. Next, the
                 book covers flexible arrays, vectors, tuples, enums,
                 and structs. You will then generalize the code with
                 higher-order functions and generics applying it to
                 closures, iterators, consumers, and so on. Memory
                 safety is ensured by the compiler by using references,
                 pointers, boxes, reference counting, and atomic
                 reference counting. You will learn how to build macros
                 and crates and discover concurrency for multicore
                 execution. By the end of this book, you will have
                 successfully migrated to using Rust and will be able to
                 use it as your main programming language. What You Will
                 Learn Set up your Rust environment for maximum
                 productivity Bridge the performance gap between safe
                 and unsafe languages with Rust Use pattern matching to
                 create flexible code Apply generics and traits to
                 develop widely applicable code Organize your code in
                 modules and crates Build macros to extend Rust's
                 capabilities and reach Apply threads to tackle problems
                 concurrently and in distributed environments Interface
                 with C and isolate unsafe code Downloading the example
                 code for this book. You can download the example code
                 files for all Packt books you have purchased from your
                 account at http://www.PacktPub.com. If you purchased
                 this book elsewhere, you can visit
                 http://www.PacktPub.com/support and register to have
                 the files e-mailed directly to you.",
  acknowledgement = ack-nhfb,
  libnote =      "Not in my library.",
  subject =      "C (Computer program language); Software engineering; C
                 (Computer program language); Software engineering",
  tableofcontents = "Preface \\
                 1: Starting with Rust \\
                 The advantages of Rust \\
                 The trifecta of Rust \\
                 safety, speed, and concurrency \\
                 Comparison with other languages \\
                 Using Rust \\
                 Servo \\
                 Installing Rust \\
                 The Rust compiler \\
                 rustc \\
                 Our first program \\
                 Working with Cargo \\
                 Developer tools \\
                 Using Sublime Text \\
                 Other tools \\
                 Summary \\
                 2: Using Variables and Types \\
                 Comments \\
                 Global constants \\
                 Printing with string interpolation \\
                 Values and primitive types \\
                 Consulting Rust documentation \\
                 Binding variables to values \\
                 Mutable and immutable variables \\
                 Scope of a variable and shadowing \\
                 Type checking and conversions \\
                 Aliasing \\
                 Expressions \\
                 The stack and the heap \\
                 Summary \\
                 3: Using Functions and Control Structures \\
                 Branching on a condition \\
                 Looping \\
                 Functions \\
                 Documenting a function \\
                 Attributes \\
                 Conditional compilation \\
                 Testing \\
                 Testing with cargo \\
                 Summary \\
                 4: Structuring Data and Matching Patterns \\
                 Strings \\
                 Arrays, vectors, and slices \\
                 Vectors \\
                 Slices \\
                 Strings and arrays \\
                 Tuples \\
                 Structs \\
                 Enums \\
                 Result and Option \\
                 Getting input from the console \\
                 Matching patterns 7: Organizing Code and Macros \\
                 Modules and crates \\
                 Building crates \\
                 Defining a module \\
                 Visibility of items \\
                 Importing modules and file hierarchy \\
                 Importing external crates \\
                 Exporting a public interface \\
                 Adding external crates to a project \\
                 The test module \\
                 Macros \\
                 Why do we use macros? \\
                 Developing macros \\
                 Repetition \\
                 Creating a new function \\
                 Using macros from crates \\
                 Summary \\
                 8: Concurrency and Parallelism \\
                 Concurrency and threads \\
                 Creating threads \\
                 Starting a number of threads \\
                 Panicking threads \\
                 Thread-safety \\
                 Shared mutable state \\
                 The Sync trait \\
                 Communication through channels \\
                 Sending and receiving data \\
                 Synchronous and asynchronous communication \\
                 Summary \\
                 9: Programming at the Boundaries \\
                 Program arguments \\
                 Unsafe \\
                 Raw pointers \\
                 Interfacing with C \\
                 Using a C library \\
                 Inlining assembly code \\
                 Calling Rust from other languages \\
                 Summary \\
                 Appendix: Exploring Further \\
                 Stability of Rust and the standard library \\
                 The ecosystem of crates \\
                 Other resources for learning Rust \\
                 Files and databases \\
                 Graphics and games \\
                 Web development \\
                 Index",
}

@Article{Barowy:2015:FER,
  author =       "Daniel W. Barowy and Sumit Gulwani and Ted Hart and
                 Benjamin Zorn",
  title =        "{FlashRelate}: extracting relational data from
                 semi-structured spreadsheets using examples",
  journal =      j-SIGPLAN,
  volume =       "50",
  number =       "6",
  pages =        "218--228",
  month =        jun,
  year =         "2015",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2813885.2737952",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Feb 16 12:01:41 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "With hundreds of millions of users, spreadsheets are
                 one of the most important end-user applications.
                 Spreadsheets are easy to use and allow users great
                 flexibility in storing data. This flexibility comes at
                 a price: users often treat spreadsheets as a poor man's
                 database, leading to creative solutions for storing
                 high-dimensional data. The trouble arises when users
                 need to answer queries with their data. Data
                 manipulation tools make strong assumptions about data
                 layouts and cannot read these ad-hoc databases.
                 Converting data into the appropriate layout requires
                 programming skills or a major investment in manual
                 reformatting. The effect is that a vast amount of
                 real-world data is ``locked-in'' to a proliferation of
                 one-off formats. We introduce FlashRelate, a synthesis
                 engine that lets ordinary users extract structured
                 relational data from spreadsheets without programming.
                 Instead, users extract data by supplying examples of
                 output relational tuples. FlashRelate uses these
                 examples to synthesize a program in Flare. Flare is a
                 novel extraction language that extends regular
                 expressions with geometric constructs. An interactive
                 user interface on top of FlashRelate lets end users
                 extract data by point-and-click. We demonstrate that
                 correct Flare programs can be synthesized in seconds
                 from a small set of examples for 43 real-world
                 scenarios. Finally, our case study demonstrates
                 FlashRelate's usefulness addressing the widespread
                 problem of data trapped in corporate and government
                 formats.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "PLDI '15 conference proceedings.",
}

@Article{Basik:2015:STS,
  author =       "Fuat Bas{\i}k and Bu{\u{g}}ra Gedik and Hakan
                 Ferhatosmano{\u{g}}lu and Mert Emin Kalender",
  title =        "{S$^{33}$-TM}: scalable streaming short text
                 matching",
  journal =      j-VLDB-J,
  volume =       "24",
  number =       "6",
  pages =        "849--866",
  month =        dec,
  year =         "2015",
  CODEN =        "VLDBFR",
  DOI =          "https://doi.org/10.1007/s00778-015-0404-3",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Wed Nov 25 15:38:42 MST 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  abstract =     "Micro-blogging services have become major venues for
                 information creation, as well as channels of
                 information dissemination. Accordingly, monitoring them
                 for relevant information is a critical capability. This
                 is typically achieved by registering content-based
                 subscriptions with the micro-blogging service. Such
                 subscriptions are long-running queries that are
                 evaluated against the stream of posts. Given the
                 popularity and scale of micro-blogging services like
                 Twitter and Weibo, building a scalable infrastructure
                 to evaluate these subscriptions is a challenge. To
                 address this challenge, we present the S^33-TM system
                 for streaming short text matching. S^33-TM is organized
                 as a stream processing application, in the form of a
                 data parallel flow graph designed to be run on a data
                 center environment. It takes advantage of the structure
                 of the publications (posts) and subscriptions to
                 perform the matching in a scalable manner, without
                 broadcasting publications or subscriptions to all of
                 the matcher instances. The basic design of S^33-TM uses
                 a scoped multicast for publications and scoped anycast
                 for subscriptions. To further improve throughput, we
                 introduce publication routing algorithms that aim at
                 minimizing the scope of the multicasts. First set of
                 algorithms we develop are based on partitioning the
                 word co-occurrence frequency graph, with the aim of
                 routing posts that include commonly co-occurring words
                 to a small set of matchers. While effective, these
                 algorithms fell short in balancing the load. To address
                 this, we develop the SALB algorithm, which provides
                 better load balance by modeling the load more
                 accurately using the word-to-post bipartite graph. We
                 also develop a subscription placement algorithm, called
                 LASP, to group together similar subscriptions, in order
                 to minimize the subscription matching cost.
                 Furthermore, to achieve good scalability for increasing
                 number of nodes, we introduce techniques to handle
                 workload skew. Finally, we introduce load shedding
                 techniques for handling unexpected load spikes with
                 small impact on the accuracy. Our experimental results
                 show that S^33-TM is scalable. Furthermore, the SALB
                 algorithm provides more than 2.5\times 2.5$ \times $
                 throughput compared to the baseline multicast and
                 outperforms the graph partitioning-based approaches.",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Basik:2015:TSS,
  author =       "Fuat Bas{\i}k and Bu{\u{g}}ra Gedik and Hakan
                 Ferhatosmano{\u{g}}lu and Mert Emin Kalender",
  title =        "{S$^{33}$-TM}: scalable streaming short text
                 matching",
  journal =      j-VLDB-J,
  volume =       "24",
  number =       "6",
  pages =        "849--866",
  month =        dec,
  year =         "2015",
  CODEN =        "VLDBFR",
  DOI =          "https://doi.org/10.1007/s00778-015-0404-3",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Wed Nov 25 15:38:42 MST 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  abstract =     "Micro-blogging services have become major venues for
                 information creation, as well as channels of
                 information dissemination. Accordingly, monitoring them
                 for relevant information is a critical capability. This
                 is typically achieved by registering content-based
                 subscriptions with the micro-blogging service. Such
                 subscriptions are long-running queries that are
                 evaluated against the stream of posts. Given the
                 popularity and scale of micro-blogging services like
                 Twitter and Weibo, building a scalable infrastructure
                 to evaluate these subscriptions is a challenge. To
                 address this challenge, we present the S^33-TM system
                 for streaming short text matching. S^33-TM is organized
                 as a stream processing application, in the form of a
                 data parallel flow graph designed to be run on a data
                 center environment. It takes advantage of the structure
                 of the publications (posts) and subscriptions to
                 perform the matching in a scalable manner, without
                 broadcasting publications or subscriptions to all of
                 the matcher instances. The basic design of S^33-TM uses
                 a scoped multicast for publications and scoped anycast
                 for subscriptions. To further improve throughput, we
                 introduce publication routing algorithms that aim at
                 minimizing the scope of the multicasts. First set of
                 algorithms we develop are based on partitioning the
                 word co-occurrence frequency graph, with the aim of
                 routing posts that include commonly co-occurring words
                 to a small set of matchers. While effective, these
                 algorithms fell short in balancing the load. To address
                 this, we develop the SALB algorithm, which provides
                 better load balance by modeling the load more
                 accurately using the word-to-post bipartite graph. We
                 also develop a subscription placement algorithm, called
                 LASP, to group together similar subscriptions, in order
                 to minimize the subscription matching cost.
                 Furthermore, to achieve good scalability for increasing
                 number of nodes, we introduce techniques to handle
                 workload skew. Finally, we introduce load shedding
                 techniques for handling unexpected load spikes with
                 small impact on the accuracy. Our experimental results
                 show that S^33-TM is scalable. Furthermore, the SALB
                 algorithm provides more than 2.5\times 2.5$ \times $
                 throughput compared to the baseline multicast and
                 outperforms the graph partitioning-based approaches.",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Beal:2015:EPM,
  author =       "Richard Beal and Donald Adjeroh",
  title =        "Efficient pattern matching for {RNA} secondary
                 structures",
  journal =      j-THEOR-COMP-SCI,
  volume =       "592",
  number =       "??",
  pages =        "59--71",
  day =          "9",
  month =        aug,
  year =         "2015",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Jul 25 14:06:20 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2015.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S030439751500420X",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Bliznets:2015:KLB,
  author =       "Ivan Bliznets and Marek Cygan and Pawel Komosa and
                 Luk{\'a}s Mach",
  title =        "Kernelization lower bound for {Permutation Pattern
                 Matching}",
  journal =      j-INFO-PROC-LETT,
  volume =       "115",
  number =       "5",
  pages =        "527--531",
  month =        may,
  year =         "2015",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Feb 19 06:13:58 MST 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019015000101",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190/",
}

@Article{Champarnaud:2015:TSD,
  author =       "Jean-Marc Champarnaud and Jean-Philippe Dubernard and
                 Hadrien Jeanne and Ludovic Mignot",
  title =        "Two-Sided Derivatives for Regular Expressions and for
                 Hairpin Expressions",
  journal =      j-FUND-INFO,
  volume =       "137",
  number =       "4",
  pages =        "425--455",
  month =        oct,
  year =         "2015",
  CODEN =        "FUMAAJ",
  DOI =          "https://doi.org/10.3233/FI-2015-1189",
  ISSN =         "0169-2968 (print), 1875-8681 (electronic)",
  ISSN-L =       "0169-2968",
  bibdate =      "Sat Mar 5 17:20:34 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fundinfo2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Fundamenta Informaticae",
  journal-URL =  "http://content.iospress.com/journals/fundamenta-informaticae",
}

@Article{Chang:2015:OEE,
  author =       "Lijun Chang and Xuemin Lin and Wenjie Zhang and
                 Jeffrey Xu Yu and Ying Zhang and Lu Qin",
  title =        "Optimal enumeration: efficient top-$k$ tree matching",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "8",
  number =       "5",
  pages =        "533--544",
  month =        jan,
  year =         "2015",
  CODEN =        "????",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Mon Feb 9 18:24:35 MST 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Driven by many real applications, graph pattern
                 matching has attracted a great deal of attention
                 recently. Consider that a twig-pattern matching may
                 result in an extremely large number of matches in a
                 graph; this may not only confuse users by providing too
                 many results but also lead to high computational costs.
                 In this paper, we study the problem of top-$k$ tree
                 pattern matching; that is, given a rooted tree $T$,
                 compute its top-$k$ matches in a directed graph $G$
                 based on the twig-pattern matching semantics. We
                 firstly present a novel and optimal enumeration
                 paradigm based on the principle of Lawler's procedure.
                 We show that our enumeration algorithm runs in $ O(n_T
                 + \log k)$ time in each round where $ n_T$ is the
                 number of nodes in $T$. Considering that the time
                 complexity to output a match of $T$ is $ O(n_T)$ and $
                 n_T \geq \log k$ in practice, our enumeration technique
                 is optimal. Moreover, the cost of generating top-$1$
                 match of $T$ in our algorithm is $ O(m_R)$ where $ m_R$
                 is the number of edges in the transitive closure of a
                 data graph $G$ involving all relevant nodes to $T$. $
                 O(m_R)$ is also optimal in the worst case without
                 pre-knowledge of $G$. Consequently, our algorithm is
                 optimal with the running time $ O(m_R + k(n_T + \log
                 k))$ in contrast to the time complexity $ O(m_R \log k
                 + k n_T (\log k + d_T))$ of the existing technique
                 where $ d_T$ is the maximal node degree in $T$.
                 Secondly, a novel priority based access technique is
                 proposed, which greatly reduces the number of edges
                 accessed and results in a significant performance
                 improvement. Finally, we apply our techniques to the
                 general form of top-$k$ graph pattern matching problem
                 (i.e., query is a graph) to improve the existing
                 techniques. Comprehensive empirical studies demonstrate
                 that our techniques may improve the existing techniques
                 by orders of magnitude.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Chen:2015:PMV,
  author =       "Ke Chen and Zhong Zhou and Wei Wu",
  title =        "Progressive Motion Vector Clustering for Motion
                 Estimation and Auxiliary Tracking",
  journal =      j-TOMM,
  volume =       "11",
  number =       "3",
  pages =        "33:1--33:??",
  month =        jan,
  year =         "2015",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2700296",
  ISSN =         "1551-6857 (print), 1551-6865 (electronic)",
  ISSN-L =       "1551-6857",
  bibdate =      "Thu Feb 5 17:03:39 MST 2015",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tomccap/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tomccap.bib",
  abstract =     "The motion vector similarity between neighboring
                 blocks is widely used in motion estimation algorithms.
                 However, for nonneighboring blocks, they may also have
                 similar motions due to close depths or belonging to the
                 same object inside the scene. Therefore, the motion
                 vectors usually have several kinds of patterns, which
                 reveal a clustering structure. In this article, we
                 propose a progressive clustering algorithm, which
                 periodically counts the motion vectors of the past
                 blocks to make incremental clustering statistics. These
                 statistics are used as the motion vector predictors for
                 the following blocks. It is proved to be much more
                 efficient for one block to find the best-matching
                 candidate with the predictors. We also design the
                 clustering based search with CUDA for GPU acceleration.
                 Another interesting application of the clustering
                 statistics is persistent static object tracking. Based
                 on the statistics, several auxiliary tracking areas are
                 created to guide the object tracking. Even when the
                 target object has significant changes in appearance or
                 it disappears occasionally, its position still can be
                 predicted. The experiments on Xiph.org Video Test Media
                 dataset illustrate that our clustering based search
                 algorithm outperforms the mainstream and some
                 state-of-the-art motion estimation algorithms. It is 33
                 times faster on average than the full search algorithm
                 with only slightly higher mean-square error values in
                 the experiments. The tracking results show that the
                 auxiliary tracking areas help to locate the target
                 object effectively.",
  acknowledgement = ack-nhfb,
  articleno =    "33",
  fjournal =     "ACM Transactions on Multimedia Computing,
                 Communications, and Applications",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J961",
}

@Article{Cho:2015:FAO,
  author =       "Sukhyeun Cho and Joong Chae Na and Kunsoo Park and
                 Jeong Seop Sim",
  title =        "A fast algorithm for order-preserving pattern
                 matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "115",
  number =       "2",
  pages =        "397--402",
  month =        feb,
  year =         "2015",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Nov 20 09:46:44 MST 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019014002336",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190/",
}

@Article{Cochran:2015:PBP,
  author =       "Robert A. Cochran and Loris D'Antoni and Benjamin
                 Livshits and David Molnar and Margus Veanes",
  title =        "Program Boosting: Program Synthesis via
                 Crowd-Sourcing",
  journal =      j-SIGPLAN,
  volume =       "50",
  number =       "1",
  pages =        "677--688",
  month =        jan,
  year =         "2015",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2775051.2676973",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue May 12 17:41:19 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "In this paper, we investigate an approach to program
                 synthesis that is based on crowd-sourcing. With the
                 help of crowd-sourcing, we aim to capture the ``wisdom
                 of the crowds'' to find good if not perfect solutions
                 to inherently tricky programming tasks, which elude
                 even expert developers and lack an easy-to-formalize
                 specification. We propose an approach we call program
                 boosting, which involves crowd-sourcing imperfect
                 solutions to a difficult programming problem from
                 developers and then blending these programs together in
                 a way that improves their correctness. We implement
                 this approach in a system called CROWDBOOST and show in
                 our experiments that interesting and highly non-trivial
                 tasks such as writing regular expressions for URLs or
                 email addresses can be effectively crowd-sourced. We
                 demonstrate that carefully blending the crowd-sourced
                 results together consistently produces a boost,
                 yielding results that are better than any of the
                 starting programs. Our experiments on 465 program pairs
                 show consistent boosts in accuracy and demonstrate that
                 program boosting can be performed at a relatively
                 modest monetary cost.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "POPL '15 conference proceedings.",
}

@Article{DAntoni:2015:HCA,
  author =       "Loris D'Antoni and Dileep Kini and Rajeev Alur and
                 Sumit Gulwani and Mahesh Viswanathan and Bj{\"o}rn
                 Hartmann",
  title =        "How Can Automatic Feedback Help Students Construct
                 Automata?",
  journal =      j-TOCHI,
  volume =       "22",
  number =       "2",
  pages =        "9:1--9:??",
  month =        apr,
  year =         "2015",
  CODEN =        "ATCIF4",
  DOI =          "https://doi.org/10.1145/2723163",
  ISSN =         "1073-0516 (print), 1557-7325 (electronic)",
  ISSN-L =       "1073-0516",
  bibdate =      "Wed Apr 15 18:59:56 MDT 2015",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tochi/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tochi.bib",
  abstract =     "In computer-aided education, the goal of automatic
                 feedback is to provide a meaningful explanation of
                 students' mistakes. We focus on providing feedback for
                 constructing a deterministic finite automaton that
                 accepts strings that match a described pattern. Natural
                 choices for feedback are binary feedback
                 (correct/wrong) and a counterexample of a string that
                 is processed incorrectly. Such feedback is easy to
                 compute but might not provide the student enough help.
                 Our first contribution is a novel way to automatically
                 compute alternative conceptual hints. Our second
                 contribution is a rigorous evaluation of feedback with
                 377 students. We find that providing either
                 counterexamples or hints is judged as helpful,
                 increases student perseverance, and can improve problem
                 completion time. However, both strategies have
                 particular strengths and weaknesses. Since our feedback
                 is completely automatic, it can be deployed at scale
                 and integrated into existing massive open online
                 courses.",
  acknowledgement = ack-nhfb,
  articleno =    "9",
  fjournal =     "ACM Transactions on Computer-Human Interaction",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J756",
}

@Article{Deng:2015:UFA,
  author =       "Dong Deng and Guoliang Li and Jianhua Feng and Yi Duan
                 and Zhiguo Gong",
  title =        "A unified framework for approximate dictionary-based
                 entity extraction",
  journal =      j-VLDB-J,
  volume =       "24",
  number =       "1",
  pages =        "143--167",
  month =        feb,
  year =         "2015",
  CODEN =        "VLDBFR",
  DOI =          "https://doi.org/10.1007/s00778-014-0367-9",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Fri Mar 6 15:25:03 MST 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  abstract =     "Dictionary-based entity extraction identifies
                 predefined entities (e.g., person names or locations)
                 from documents. A recent trend for improving extraction
                 recall is to support approximate entity extraction,
                 which finds all substrings from documents that
                 approximately match entities in a given dictionary.
                 Existing methods to address this problem support either
                 token-based similarity (e.g., Jaccard Similarity) or
                 character-based dissimilarity (e.g., Edit Distance). It
                 calls for a unified method to support various
                 similarity/dissimilarity functions, since a unified
                 method can reduce the programming efforts, the hardware
                 requirements, and the manpower. In this paper, we
                 propose a unified framework to support various
                 similarity/dissimilarity functions, such as jaccard
                 similarity, cosine similarity, dice similarity, edit
                 similarity, and edit distance. Since many real-world
                 applications have high-performance requirement for
                 approximate entity extraction on data streams (e.g.,
                 Twitter), we focus on devising efficient algorithms to
                 achieve high performance. We find that many substrings
                 in documents have overlaps, and we can utilize the
                 shared computation across the overlaps to avoid
                 unnecessary redundant computation. To this end, we
                 propose efficient filtering algorithms and develop
                 effective pruning techniques. Experimental results show
                 our method achieves high performance and outperforms
                 state-of-the-art studies significantly.",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Doherty:2015:PMT,
  author =       "Jonathan Doherty and Kevin Curran and Paul McKevitt",
  title =        "Pattern Matching Techniques for Replacing Missing
                 Sections of Audio Streamed across Wireless Networks",
  journal =      j-TIST,
  volume =       "6",
  number =       "2",
  pages =        "25:1--25:??",
  month =        apr,
  year =         "2015",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2663358",
  ISSN =         "2157-6904 (print), 2157-6912 (electronic)",
  ISSN-L =       "2157-6904",
  bibdate =      "Tue Apr 21 11:29:25 MDT 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tist.bib",
  abstract =     "Streaming media on the Internet can be unreliable.
                 Services such as audio-on-demand drastically increase
                 the loads on networks; therefore, new, robust, and
                 highly efficient coding algorithms are necessary. One
                 method overlooked to date, which can work alongside
                 existing audio compression schemes, is that which takes
                 into account the semantics and natural repetition of
                 music. Similarity detection within polyphonic audio has
                 presented problematic challenges within the field of
                 music information retrieval. One approach to deal with
                 bursty errors is to use self-similarity to replace
                 missing segments. Many existing systems exist based on
                 packet loss and replacement on a network level, but
                 none attempt repairs of large dropouts of 5 seconds or
                 more. Music exhibits standard structures that can be
                 used as a forward error correction (FEC) mechanism. FEC
                 is an area that addresses the issue of packet loss with
                 the onus of repair placed as much as possible on the
                 listener's device. We have developed a
                 server--client-based framework (SoFI) for automatic
                 detection and replacement of large packet losses on
                 wireless networks when receiving time-dependent
                 streamed audio. Whenever dropouts occur, SoFI swaps
                 audio presented to the listener between a live stream
                 and previous sections of the audio stored locally.
                 Objective and subjective evaluations of SoFI where
                 subjects were presented with other simulated approaches
                 to audio repair together with simulations of
                 replacements including varying lengths of time in the
                 repair give positive results.",
  acknowledgement = ack-nhfb,
  articleno =    "25",
  fjournal =     "ACM Transactions on Intelligent Systems and Technology
                 (TIST)",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1318",
}

@Article{Fagin:2015:DSF,
  author =       "Ronald Fagin and Benny Kimelfeld and Frederick Reiss
                 and Stijn Vansummeren",
  title =        "Document Spanners: a Formal Approach to Information
                 Extraction",
  journal =      j-J-ACM,
  volume =       "62",
  number =       "2",
  pages =        "12:1--12:??",
  month =        may,
  year =         "2015",
  CODEN =        "JACOAH",
  DOI =          "https://doi.org/10.1145/2699442",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Tue May 12 06:16:04 MDT 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "An intrinsic part of information extraction is the
                 creation and manipulation of relations extracted from
                 text. In this article, we develop a foundational
                 framework where the central construct is what we call a
                 document spanner (or just spanner for short). A spanner
                 maps an input string into a relation over the spans
                 (intervals specified by bounding indices) of the
                 string. The focus of this article is on the
                 representation of spanners. Conceptually, there are two
                 kinds of such representations. Spanners defined in a
                 primitive representation extract relations directly
                 from the input string; those defined in an algebra
                 apply algebraic operations to the primitively
                 represented spanners. This framework is driven by
                 SystemT, an IBM commercial product for text analysis,
                 where the primitive representation is that of regular
                 expressions with capture variables. We define
                 additional types of primitive spanner representations
                 by means of two kinds of automata that assign spans to
                 variables. We prove that the first kind has the same
                 expressive power as regular expressions with capture
                 variables; the second kind expresses precisely the
                 algebra of the regular spanners-the closure of the
                 first kind under standard relational operators. The
                 core spanners extend the regular ones by
                 string-equality selection (an extension used in
                 SystemT). We give some fundamental results on the
                 expressiveness of regular and core spanners. As an
                 example, we prove that regular spanners are closed
                 under difference (and complement), but core spanners
                 are not. Finally, we establish connections with related
                 notions in the literature.",
  acknowledgement = ack-nhfb,
  articleno =    "12",
  fjournal =     "Journal of the ACM",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
}

@Article{Fan:2015:KG,
  author =       "Wenfei Fan and Zhe Fan and Chao Tian and Xin Luna
                 Dong",
  title =        "Keys for graphs",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "8",
  number =       "12",
  pages =        "1590--1601",
  month =        aug,
  year =         "2015",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/2824032.2824056",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Wed Sep 16 18:23:11 MDT 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Keys for graphs aim to uniquely identify entities
                 represented by vertices in a graph. We propose a class
                 of keys that are recursively defined in terms of graph
                 patterns, and are interpreted with subgraph
                 isomorphism. Extending conventional keys for relations
                 and XML, these keys find applications in object
                 identification, knowledge fusion and social network
                 reconciliation. As an application, we study the entity
                 matching problem that, given a graph $G$ and a set $
                 \Sigma $ of keys, is to find all pairs of entities
                 (vertices) in $G$ that are identified by keys in $
                 \Sigma $. We show that the problem is intractable, and
                 cannot be parallelized in logarithmic rounds.
                 Nonetheless, we provide two parallel scalable
                 algorithms for entity matching, in MapReduce and a
                 vertex-centric asynchronous model. Using real-life and
                 synthetic data, we experimentally verify the
                 effectiveness and scalability of the algorithms.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Fateman:2015:PAS,
  author =       "Richard Fateman",
  title =        "Partitioning of algebraic subexpressions in computer
                 algebra systems: an alternative to matching with an
                 application to symbolic integration",
  journal =      j-ACM-COMM-COMP-ALGEBRA,
  volume =       "49",
  number =       "2",
  pages =        "38--47",
  month =        jun,
  year =         "2015",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2815111.2815112",
  ISSN =         "1932-2232 (print), 1932-2240 (electronic)",
  ISSN-L =       "1932-2232",
  bibdate =      "Fri Aug 14 17:27:46 MDT 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/macsyma.bib;
                 https://www.math.utah.edu/pub/tex/bib/mathematica.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigsam.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "A popular technique to direct transformations of
                 algebraic expressions in a computer algebra system such
                 as Macsyma/Maxima or Mathematica is to first write out
                 a pattern or template for some expected class of
                 ``input'' expressions and use a built-in system routine
                 to match it, identifying pieces and giving them names,
                 then proceeding to compute with these parts. Sometimes
                 this is not such a good approach, and an alternative,
                 presented here, may be more appealing.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Communications in Computer Algebra",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1000",
}

@Article{Feng:2015:EQD,
  author =       "Yu Feng and Xinyu Wang and Isil Dillig and Calvin
                 Lin",
  title =        "{EXPLORER} : query- and demand-driven exploration of
                 interprocedural control flow properties",
  journal =      j-SIGPLAN,
  volume =       "50",
  number =       "10",
  pages =        "520--534",
  month =        oct,
  year =         "2015",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2858965.2814284",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Feb 16 12:01:43 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This paper describes a general framework and its
                 implementation in a tool called EXPLORER for statically
                 answering a class of interprocedural control flow
                 queries about Java programs. EXPLORER allows users to
                 formulate queries about feasible callstack
                 configurations using regular expressions, and it
                 employs a precise, demand-driven algorithm for
                 answering such queries. Specifically, EXPLORER
                 constructs an automaton A that is iteratively refined
                 until either the language accepted by A is empty
                 (meaning that the query has been refuted) or until no
                 further refinement is possible based on a precise,
                 context-sensitive abstraction of the program. We
                 evaluate EXPLORER by applying it to three different
                 program analysis tasks, namely, (1) analysis of the
                 observer design pattern in Java, (2) identification of
                 a class of performance bugs, and (3) analysis of
                 inter-component communication in Android applications.
                 Our evaluation shows that EXPLORER is both efficient
                 and precise.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "OOPSLA '15 conference proceedings.",
}

@Article{Feng:2015:RES,
  author =       "Weixing Feng and Peichao Sang and Deyuan Lian and
                 Yansheng Dong and Fengfei Song and Meng Li and Bo He
                 and Fenglin Cao and Yunlong Liu",
  title =        "{ResSeq}: enhancing short-read sequencing alignment by
                 rescuing error-containing reads",
  journal =      j-TCBB,
  volume =       "12",
  number =       "4",
  pages =        "795--798",
  month =        jul,
  year =         "2015",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2014.2366103",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Wed Sep 16 18:55:37 MDT 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "Next-generation short-read sequencing is widely
                 utilized in genomic studies. Biological applications
                 require an alignment step to map sequencing reads to
                 the reference genome, before acquiring expected genomic
                 information. This requirement makes alignment accuracy
                 a key factor for effective biological interpretation.
                 Normally, when accounting for measurement errors and
                 single nucleotide polymorphisms, short read mappings
                 with a few mismatches are generally considered
                 acceptable. However, to further improve the efficiency
                 of short-read sequencing alignment, we propose a method
                 to retrieve additional reliably aligned reads (reads
                 with more than a pre-defined number of mismatches),
                 using a Bayesian-based approach. In this method, we
                 first retrieve the sequence context around the
                 mismatched nucleotides within the already aligned
                 reads; these loci contain the genomic features where
                 sequencing errors occur. Then, using the derived
                 pattern, we evaluate the remaining (typically
                 discarded) reads with more than the allowed number of
                 mismatches, and calculate a score that represents the
                 probability that a specific alignment is correct. This
                 strategy allows the extraction of more reliably aligned
                 reads, therefore improving alignment sensitivity.
                 Implementation: The source code of our tool, ResSeq,
                 can be downloaded from:
                 https://github.com/hrbeubiocenter/Resseq.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Flouri:2015:LCS,
  author =       "Tomas Flouri and Emanuele Giaquinta and Kassian Kobert
                 and Esko Ukkonen",
  title =        "Longest common substrings with $k$ mismatches",
  journal =      j-INFO-PROC-LETT,
  volume =       "115",
  number =       "6--8",
  pages =        "643--647",
  month =        jun # "\slash " # aug,
  year =         "2015",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu May 28 06:03:49 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019015000459",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190/",
}

@Article{Gagie:2015:BJP,
  author =       "Travis Gagie and Danny Hermelin and Gad M. Landau and
                 Oren Weimann",
  title =        "Binary Jumbled Pattern Matching on Trees and Tree-Like
                 Structures",
  journal =      j-ALGORITHMICA,
  volume =       "73",
  number =       "3",
  pages =        "571--588",
  month =        nov,
  year =         "2015",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-014-9957-6",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Mon Jan 25 08:02:35 MST 2016",
  bibsource =    "http://link.springer.com/journal/453/73/3;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/s00453-014-9957-6",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Grabowski:2015:NLC,
  author =       "Szymon Grabowski",
  title =        "A note on the longest common substring with
                 $k$-mismatches problem",
  journal =      j-INFO-PROC-LETT,
  volume =       "115",
  number =       "6--8",
  pages =        "640--642",
  month =        jun # "\slash " # aug,
  year =         "2015",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu May 28 06:03:49 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019015000411",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190/",
}

@Article{Gruber:2015:FAR,
  author =       "Hermann Gruber and Markus Holzer",
  title =        "From Finite Automata to Regular Expressions and Back
                 --- A Summary on Descriptional Complexity",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "26",
  number =       "8",
  pages =        "1009--??",
  month =        dec,
  year =         "2015",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054115400110",
  ISSN =         "0129-0541 (print), 1793-6373 (electronic)",
  ISSN-L =       "0129-0541",
  bibdate =      "Thu Feb 25 06:16:52 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Guting:2015:ST,
  author =       "Ralf Hartmut G{\"u}ting and Fabio Vald{\'e}s and Maria
                 Luisa Damiani",
  title =        "Symbolic Trajectories",
  journal =      j-TSAS,
  volume =       "1",
  number =       "2",
  pages =        "7:1--7:51",
  month =        nov,
  year =         "2015",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2786756",
  ISSN =         "2374-0353 (print), 2374-0361 (electronic)",
  ISSN-L =       "2374-0353",
  bibdate =      "Thu Jun 15 14:51:01 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tsas.bib",
  URL =          "http://dl.acm.org/citation.cfm?id=2786756",
  abstract =     "Due to the proliferation of GPS-enabled devices in
                 vehicles or with people, large amounts of position data
                 are recorded every day and the management of such
                 mobility data, also called trajectories, is a very
                 active research field. A lot of effort has gone into
                 discovering ``semantics'' from the raw geometric
                 trajectories by relating them to the spatial
                 environment or finding patterns, for example, by data
                 mining techniques. A question is how the resulting
                 ``meaningful'' trajectories can be represented or
                 further queried. In this article, we propose a
                 systematic study of annotated trajectory databases. We
                 define a very simple generic model called symbolic
                 trajectory to capture a wide range of meanings derived
                 from a geometric trajectory. Essentially, a symbolic
                 trajectory is just a time-dependent label; variants
                 have sets of labels, places, or sets of places. They
                 are modeled as abstract data types and integrated into
                 a well-established framework of data types and
                 operations for moving objects. Symbolic trajectories
                 can represent, for example, the names of roads
                 traversed obtained by map matching, transportation
                 modes, speed profile, cells of a cellular network,
                 behaviors of animals, cinemas within 2km distance, and
                 so forth. Symbolic trajectories can be combined with
                 geometric trajectories to obtain annotated
                 trajectories. Besides the model, the main technical
                 contribution of the article is a language for pattern
                 matching and rewriting of symbolic trajectories. A
                 symbolic trajectory can be represented as a sequence of
                 pairs (called units) consisting of a time interval and
                 a label. A pattern consists of unit patterns
                 (specifications for time interval and/or label) and
                 wildcards, matching units and sequences of units,
                 respectively, and regular expressions over such
                 elements. It may further contain variables that can be
                 used in conditions and in rewriting. Conditions and
                 expressions in rewriting may use arbitrary operations
                 available for querying in the host DBMS environment,
                 which makes the language extensible and quite powerful.
                 We formally define the data model and syntax and
                 semantics of the pattern language. Query operations are
                 offered to integrate pattern matching, rewriting, and
                 classification of symbolic trajectories into a DBMS
                 querying environment. Implementation of the model using
                 finite state machines is described in detail. An
                 experimental evaluation demonstrates the efficiency of
                 the implementation. In particular, it shows dramatic
                 improvements in storage space and response time in a
                 comparison of symbolic and geometric trajectories for
                 some simple queries that can be executed on both
                 symbolic and raw trajectories.",
  acknowledgement = ack-nhfb,
  articleno =    "7",
  fjournal =     "ACM Transactions on Spatial Algorithms and Systems
                 (TSAS)",
  journal-URL =  "http://dl.acm.org/pub.cfm?id=J1514",
}

@Article{Hammoud:2015:DDR,
  author =       "Mohammad Hammoud and Dania Abed Rabbou and Reza Nouri
                 and Seyed-Mehdi-Reza Beheshti and Sherif Sakr",
  title =        "{DREAM}: distributed {RDF} engine with adaptive query
                 planner and minimal communication",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "8",
  number =       "6",
  pages =        "654--665",
  month =        feb,
  year =         "2015",
  CODEN =        "????",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Tue Feb 10 17:42:37 MST 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "The Resource Description Framework (RDF) and SPARQL
                 query language are gaining wide popularity and
                 acceptance. In this paper, we present DREAM, a
                 distributed and adaptive RDF system. As opposed to
                 existing RDF systems, DREAM avoids partitioning RDF
                 datasets and partitions only SPARQL queries. By not
                 partitioning datasets, DREAM offers a general paradigm
                 for different types of pattern matching queries, and
                 entirely averts intermediate data shuffling (only
                 auxiliary data are shuffled). Besides, by partitioning
                 queries, DREAM presents an adaptive scheme, which
                 automatically runs queries on various numbers of
                 machines depending on their complexities. Hence, in
                 essence DREAM combines the advantages of the
                 state-of-the-art centralized and distributed RDF
                 systems, whereby data communication is avoided and
                 cluster resources are aggregated. Likewise, it
                 precludes their disadvantages, wherein system resources
                 are limited and communication overhead is typically
                 hindering. DREAM achieves all its goals via employing a
                 novel graph-based, rule-oriented query planner and a
                 new cost model. We implemented DREAM and conducted
                 comprehensive experiments on a private cluster and on
                 the Amazon EC2 platform. Results show that DREAM can
                 significantly outperform three related popular RDF
                 systems.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Ileri:2015:SYT,
  author =       "Atalay Mert Ileri and M. Oguzhan K{\"u}lekci and
                 Bojian Xu",
  title =        "A simple yet time-optimal and linear-space algorithm
                 for shortest unique substring queries",
  journal =      j-THEOR-COMP-SCI,
  volume =       "562",
  number =       "??",
  pages =        "621--633",
  day =          "11",
  month =        jan,
  year =         "2015",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Dec 2 19:05:36 MST 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397514008470",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Jaskelioff:2015:FPS,
  author =       "Mauro Jaskelioff and Exequiel Rivas",
  title =        "Functional pearl: a smart view on datatypes",
  journal =      j-SIGPLAN,
  volume =       "50",
  number =       "9",
  pages =        "355--361",
  month =        sep,
  year =         "2015",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2858949.2784743",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Feb 16 12:01:43 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Left-nested list concatenations, left-nested binds on
                 the free monad, and left-nested choices in many
                 non-determinism monads have an algorithmically bad
                 performance. Can we solve this problem without losing
                 the ability to pattern-match on the computation?
                 Surprisingly, there is a deceptively simple solution:
                 use a smart view to pattern-match on the datatype. We
                 introduce the notion of smart view and show how it
                 solves the problem of slow left-nested operations. In
                 particular, we use the technique to obtain fast and
                 simple implementations of lists, of free monads, and of
                 two non-determinism monads.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "ICFP '15 conference proceedings.",
}

@Article{Jez:2015:FFC,
  author =       "Artur Jez",
  title =        "Faster Fully Compressed Pattern Matching by
                 Recompression",
  journal =      j-TALG,
  volume =       "11",
  number =       "3",
  pages =        "20:1--20:??",
  month =        jan,
  year =         "2015",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2631920",
  ISSN =         "1549-6325 (print), 1549-6333 (electronic)",
  ISSN-L =       "1549-6325",
  bibdate =      "Tue Jan 13 18:05:43 MST 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talg.bib",
  abstract =     "In this article, a fully compressed pattern matching
                 problem is studied. The compression is represented by
                 straight-line programs (SLPs) --- that is, context-free
                 grammars generating exactly one string; the term fully
                 means that both the pattern and the text are given in
                 the compressed form. The problem is approached using a
                 recently developed technique of local recompression:
                 the SLPs are refactored so that substrings of the
                 pattern and text are encoded in both SLPs in the same
                 way. To this end, the SLPs are locally decompressed and
                 then recompressed in a uniform way. This technique
                 yields an $ O((n + m) \log M) $ algorithm for
                 compressed pattern matching, assuming that $M$ fits in
                 $ O(1) $ machine words, where $ n(m) $ is the size of
                 the compressed representation of the text (pattern,
                 respectively), and $M$ is the size of the decompressed
                 pattern. If only $ m + n$ fits in $ O(1) $ machine
                 words, the running time increases to $ O((n + m) \log M
                 \log (n + m)) $. The previous best algorithm due to
                 Lifshits has $ O(n^2 m) $ running time.",
  acknowledgement = ack-nhfb,
  articleno =    "20",
  fjournal =     "ACM Transactions on Algorithms (TALG)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J982",
}

@Article{Jouannaud:2015:NHO,
  author =       "Jean-Pierre Jouannaud and Albert Rubio",
  title =        "Normal Higher-Order Termination",
  journal =      j-TOCL,
  volume =       "16",
  number =       "2",
  pages =        "13:1--13:??",
  month =        mar,
  year =         "2015",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2699913",
  ISSN =         "1529-3785 (print), 1557-945X (electronic)",
  ISSN-L =       "1529-3785",
  bibdate =      "Fri Aug 7 09:04:46 MDT 2015",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tocl/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tocl.bib",
  abstract =     "We extend the termination proof methods based on
                 reduction orderings to higher-order rewriting systems
                 based on higher-order pattern matching. We accommodate,
                 on the one hand, a weakly polymorphic, algebraic
                 extension of Church's simply typed $ \lambda $-calculus
                 and, on the other hand, any use of eta, as a reduction,
                 as an expansion, or as an equation. The user's rules
                 may be of any type in this type system, either a base,
                 functional, or weakly polymorphic type.",
  acknowledgement = ack-nhfb,
  articleno =    "13",
  fjournal =     "ACM Transactions on Computational Logic",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J773",
}

@Article{Karachalias:2015:GMT,
  author =       "Georgios Karachalias and Tom Schrijvers and Dimitrios
                 Vytiniotis and Simon Peyton Jones",
  title =        "{GADTs} meet their match: pattern-matching warnings
                 that account for {GADTs}, guards, and laziness",
  journal =      j-SIGPLAN,
  volume =       "50",
  number =       "9",
  pages =        "424--436",
  month =        sep,
  year =         "2015",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2858949.2784748",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Feb 16 12:01:43 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "For ML and Haskell, accurate warnings when a function
                 definition has redundant or missing patterns are
                 mission critical. But today's compilers generate bogus
                 warnings when the programmer uses guards (even simple
                 ones), GADTs, pattern guards, or view patterns. We give
                 the first algorithm that handles all these cases in a
                 single, uniform framework, together with an
                 implementation in GHC, and evidence of its utility in
                 practice.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "ICFP '15 conference proceedings.",
}

@Article{Katsarou:2015:PSI,
  author =       "Foteini Katsarou and Nikos Ntarmos and Peter
                 Triantafillou",
  title =        "Performance and scalability of indexed subgraph query
                 processing methods",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "8",
  number =       "12",
  pages =        "1566--1577",
  month =        aug,
  year =         "2015",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/2824032.2824054",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Wed Sep 16 18:23:11 MDT 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Graph data management systems have become very popular
                 as graphs are the natural data model for many
                 applications. One of the main problems addressed by
                 these systems is subgraph query processing; i.e., given
                 a query graph, return all graphs that contain the
                 query. The naive method for processing such queries is
                 to perform a subgraph isomorphism test against each
                 graph in the dataset. This obviously does not scale, as
                 subgraph isomorphism is NP-Complete. Thus, many
                 indexing methods have been proposed to reduce the
                 number of candidate graphs that have to underpass the
                 subgraph isomorphism test. In this paper, we identify a
                 set of key factors-parameters, that influence the
                 performance of related methods: namely, the number of
                 nodes per graph, the graph density, the number of
                 distinct labels, the number of graphs in the dataset,
                 and the query graph size. We then conduct comprehensive
                 and systematic experiments that analyze the sensitivity
                 of the various methods on the values of the key
                 parameters. Our aims are twofold: first to derive
                 conclusions about the algorithms' relative performance,
                 and, second, to stress-test all algorithms, deriving
                 insights as to their scalability, and highlight how
                 both performance and scalability depend on the above
                 factors. We choose six well-established indexing
                 methods, namely Grapes, CT-Index, GraphGrepSX, gIndex,
                 Tree+ $ \Delta $, and gCode, as representative
                 approaches of the overall design space, including the
                 most recent and best performing methods. We report on
                 their index construction time and index size, and on
                 query processing performance in terms of time and false
                 positive ratio. We employ both real and synthetic
                 datasets. Specifically, four real datasets of different
                 characteristics are used: AIDS, PDBS, PCM, and PPI. In
                 addition, we generate a large number of synthetic graph
                 datasets, empowering us to systematically study the
                 algorithms' performance and scalability versus the
                 aforementioned key parameters.",
  acknowledgement = ack-nhfb,
  ajournal =     "Proc. VLDB Endowment",
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Khan:2015:UGM,
  author =       "Arijit Khan and Lei Chen",
  title =        "On uncertain graphs modeling and queries",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "8",
  number =       "12",
  pages =        "2042--2043",
  month =        aug,
  year =         "2015",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/2824032.2824133",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Wed Sep 16 18:23:11 MDT 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Large-scale, highly-interconnected networks pervade
                 both our society and the natural world around us.
                 Uncertainty, on the other hand, is inherent in the
                 underlying data due to a variety of reasons, such as
                 noisy measurements, lack of precise information needs,
                 inference and prediction models, or explicit
                 manipulation, e.g., for privacy purposes. Therefore,
                 uncertain, or probabilistic, graphs are increasingly
                 used to represent noisy linked data in many emerging
                 application scenarios, and they have recently become a
                 hot topic in the database research community. While
                 many classical graph algorithms such as reachability
                 and shortest path queries become \# P -complete, and
                 hence, more expensive in uncertain graphs; various
                 complex queries are also emerging over uncertain
                 networks, such as pattern matching, information
                 diffusion, and influence maximization queries. In this
                 tutorial, we discuss the sources of uncertain graphs
                 and their applications, uncertainty modeling, as well
                 as the complexities and algorithmic advances on
                 uncertain graphs processing in the context of both
                 classical and emerging graph queries. We emphasize the
                 current challenges and highlight some future research
                 directions.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Kim:2015:TSI,
  author =       "Jinha Kim and Hyungyu Shin and Wook-Shin Han and
                 Sungpack Hong and Hassan Chafi",
  title =        "Taming subgraph isomorphism for {RDF} query
                 processing",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "8",
  number =       "11",
  pages =        "1238--1249",
  month =        jul,
  year =         "2015",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/2809974.2809985",
  ISSN =         "2150-8097",
  bibdate =      "Thu Jul 30 16:13:08 MDT 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "RDF data are used to model knowledge in various areas
                 such as life sciences, Semantic Web, bioinformatics,
                 and social graphs. The size of real RDF data reaches
                 billions of triples. This calls for a framework for
                 efficiently processing RDF data. The core function of
                 processing RDF data is subgraph pattern matching. There
                 have been two completely different directions for
                 supporting efficient subgraph pattern matching. One
                 direction is to develop specialized RDF query
                 processing engines exploiting the properties of RDF
                 data for the last decade, while the other direction is
                 to develop efficient subgraph isomorphism algorithms
                 for general, labeled graphs for over 30 years. Although
                 both directions have a similar goal (i.e., finding
                 subgraphs in data graphs for a given query graph), they
                 have been independently researched without clear
                 reason. We argue that a subgraph isomorphism algorithm
                 can be easily modified to handle the graph
                 homomorphism, which is the RDF pattern matching
                 semantics, by just removing the injectivity constraint.
                 In this paper, based on the state-of-the-art subgraph
                 isomorphism algorithm, we propose an in-memory
                 solution, Turbo$_{HOM + +}$, which is tamed for the RDF
                 processing, and we compare it with the representative
                 RDF processing engines for several RDF benchmarks in a
                 server machine where billions of triples can be loaded
                 in memory. In order to speed up Turbo$_{HOM + +}$, we
                 also provide a simple yet effective transformation and
                 a series of optimization techniques. Extensive
                 experiments using several RDF benchmarks show that
                 Turbo$_{HOM + +}$ consistently and significantly
                 outperforms the representative RDF engines.
                 Specifically, Turbo$_{HOM + +}$ outperforms its
                 competitors by up to five orders of magnitude.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Kocberber:2015:AMA,
  author =       "Onur Kocberber and Babak Falsafi and Boris Grot",
  title =        "Asynchronous memory access chaining",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "9",
  number =       "4",
  pages =        "252--263",
  month =        dec,
  year =         "2015",
  CODEN =        "????",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Sat Dec 19 17:42:25 MST 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "In-memory databases rely on pointer-intensive data
                 structures to quickly locate data in memory. A single
                 lookup operation in such data structures often exhibits
                 long-latency memory stalls due to dependent pointer
                 dereferences. Hiding the memory latency by launching
                 additional memory accesses for other lookups is an
                 effective way of improving performance of
                 pointer-chasing codes (e.g., hash table probes, tree
                 traversals). The ability to exploit such inter-lookup
                 parallelism is beyond the reach of modern out-of-order
                 cores due to the limited size of their instruction
                 window. Instead, recent work has proposed software
                 prefetching techniques that exploit inter-lookup
                 parallelism by arranging a set of independent lookups
                 into a group or a pipeline, and navigate their
                 respective pointer chains in a synchronized fashion.
                 While these techniques work well for highly regular
                 access patterns, they break down in the face of
                 irregularity across lookups. Such irregularity includes
                 variable-length pointer chains, early exit, and
                 read/write dependencies. This work introduces
                 Asynchronous Memory Access Chaining (AMAC), a new
                 approach for exploiting inter-lookup parallelism to
                 hide the memory access latency. AMAC achieves high
                 dynamism in dealing with irregularity across lookups by
                 maintaining the state of each lookup separately from
                 that of other lookups. This feature enables AMAC to
                 initiate a new lookup as soon as any of the in-flight
                 lookups complete. In contrast, the static arrangement
                 of lookups into a group or pipeline in existing
                 techniques precludes such adaptivity. Our results show
                 that AMAC matches or outperforms state-of-the-art
                 prefetching techniques on regular access patterns,
                 while delivering up to 2.3x higher performance under
                 irregular data structure lookups. AMAC fully utilizes
                 the available microarchitectural resources, generating
                 the maximum number of memory accesses allowed by
                 hardware in both single- and multi-threaded execution
                 modes.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Koneru:2015:DCA,
  author =       "Suvarna Vani Koneru and Bhavani S. Durga",
  title =        "Divide and conquer approach to contact map overlap
                 problem using {$2$D}-pattern mining of protein contact
                 networks",
  journal =      j-TCBB,
  volume =       "12",
  number =       "4",
  pages =        "729--737",
  month =        jul,
  year =         "2015",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2015.2394402",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Wed Sep 16 18:55:37 MDT 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "A novel approach to Contact Map Overlap (CMO) problem
                 is proposed using the two dimensional clusters present
                 in the contact maps. Each protein is represented as a
                 set of the non-trivial clusters of contacts extracted
                 from its contact map. The approach involves finding
                 matching regions between the two contact maps using
                 approximate 2D-pattern matching algorithm and dynamic
                 programming technique. These matched pairs of small
                 contact maps are submitted in parallel to a fast
                 heuristic CMO algorithm. The approach facilitates
                 parallelization at this level since all the pairs of
                 contact maps can be submitted to the algorithm in
                 parallel. Then, a merge algorithm is used in order to
                 obtain the overall alignment. As a proof of concept,
                 MSVNS, a heuristic CMO algorithm is used for global as
                 well as local alignment. The divide and conquer
                 approach is evaluated for two benchmark data sets that
                 of Skolnick and Ding et al. It is interesting to note
                 that along with achieving saving of time, better
                 overlap is also obtained for certain protein folds.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Kouzinopoulos:2015:MSM,
  author =       "Charalampos S. Kouzinopoulos and Panagiotis D.
                 Michailidis and Konstantinos G. Margaritis",
  title =        "Multiple String Matching on a {GPU} using {CUDAs}",
  journal =      j-SCPE,
  volume =       "16",
  number =       "2",
  pages =        "121--138",
  month =        "????",
  year =         "2015",
  CODEN =        "????",
  ISSN =         "1895-1767",
  ISSN-L =       "1895-1767",
  bibdate =      "Mon Jan 7 06:46:46 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 https://www.math.utah.edu/pub/tex/bib/scpe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.scpe.org/index.php/scpe/article/view/1085",
  acknowledgement = ack-nhfb,
  fjournal =     "Scalable Computing: Practice and Experience",
  journal-URL =  "http://www.scpe.org/",
}

@Article{Kumar:2015:IAM,
  author =       "Ajay Kumar and Anil Kumar Verma",
  title =        "An Improved Algorithm for the Metamorphosis of
                 Semi-Extended Regular Expressions to Deterministic
                 Finite Automata",
  journal =      j-COMP-J,
  volume =       "58",
  number =       "3",
  pages =        "448--456",
  month =        mar,
  year =         "2015",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/bxu049",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Wed Feb 25 17:24:32 MST 2015",
  bibsource =    "http://comjnl.oxfordjournals.org/content/58/3.toc;
                 https://www.math.utah.edu/pub/tex/bib/compj2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/58/3/448",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  onlinedate =   "June 22, 2014",
}

@Article{Kusudo:2015:BPA,
  author =       "Ko Kusudo and Fumihiko Ino and Kenichi Hagihara",
  title =        "A bit-parallel algorithm for searching multiple
                 patterns with various lengths",
  journal =      j-J-PAR-DIST-COMP,
  volume =       "76",
  number =       "??",
  pages =        "49--57",
  month =        feb,
  year =         "2015",
  CODEN =        "JPDCER",
  ISSN =         "0743-7315 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Mon Mar 9 10:30:03 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jpardistcomp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S074373151400210X",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315/",
}

@Article{Libkin:2015:RED,
  author =       "Leonid Libkin and Tony Tan and Domagoj Vrgoc",
  title =        "Regular expressions for data words",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "81",
  number =       "7",
  pages =        "1278--1297",
  month =        nov,
  year =         "2015",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1016/j.jcss.2015.03.005",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:27:30 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000015000276",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Lu:2015:BQA,
  author =       "Jiaheng Lu and Chunbin Lin and Wei Wang and Chen Li
                 and Xiaokui Xiao",
  title =        "Boosting the Quality of Approximate String Matching by
                 Synonyms",
  journal =      j-TODS,
  volume =       "40",
  number =       "3",
  pages =        "15:1--15:??",
  month =        oct,
  year =         "2015",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/2818177",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Sat Oct 24 11:43:27 MDT 2015",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tods/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  abstract =     "A string-similarity measure quantifies the similarity
                 between two text strings for approximate string
                 matching or comparison. For example, the strings
                 ``Sam'' and ``Samuel'' can be considered to be similar.
                 Most existing work that computes the similarity of two
                 strings only considers syntactic similarities, for
                 example, number of common words or $q$-grams. While
                 this is indeed an indicator of similarity, there are
                 many important cases where syntactically-different
                 strings can represent the same real-world object. For
                 example, ``Bill'' is a short form of ``William,'' and
                 ``Database Management Systems'' can be abbreviated as
                 ``DBMS.'' Given a collection of predefined synonyms,
                 the purpose of this article is to explore such existing
                 knowledge to effectively evaluate the similarity
                 between two strings and efficiently perform similarity
                 searches and joins, thereby boosting the quality of
                 approximate string matching. In particular, we first
                 present an expansion-based framework to measure string
                 similarities efficiently while considering synonyms. We
                 then study efficient algorithms for similarity searches
                 and joins by proposing two novel indexes, called
                 SI-trees and QP-trees, which combine
                 signature-filtering and length-filtering strategies. In
                 order to improve the efficiency of our algorithms, we
                 develop an estimator to estimate the size of candidates
                 to enable an online selection of signature filters.
                 This estimator provides strong low-error,
                 high-confidence guarantees while requiring only
                 logarithmic space and time costs, thus making our
                 method attractive both in theory and in practice.
                 Finally, the experimental results from a comprehensive
                 study of the algorithms with three real datasets verify
                 the effectiveness and efficiency of our approaches.",
  acknowledgement = ack-nhfb,
  articleno =    "15",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
}

@Article{Manilov:2015:FRT,
  author =       "Stanislav Manilov and Bj{\"o}rn Franke and Anthony
                 Magrath and Cedric Andrieu",
  title =        "Free Rider: a Tool for Retargeting Platform-Specific
                 Intrinsic Functions",
  journal =      j-SIGPLAN,
  volume =       "50",
  number =       "5",
  pages =        "5:1--5:??",
  month =        may,
  year =         "2015",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2808704.2754962",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Jul 31 19:39:44 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Short-vector SIMD and DSP instructions are popular
                 extensions to common ISAs. These extensions deliver
                 excellent performance and compact code for some
                 compute-intensive applications, but they require
                 specialised compiler support. To enable the programmer
                 to explicitly request the use of such an instruction,
                 many C compilers provide platform-specific intrinsic
                 functions, whose implementation is handled specially by
                 the compiler. The use of such intrinsics, however,
                 inevitably results in non-portable code. In this paper
                 we develop a novel methodology for retargeting such
                 non-portable code, which maps intrinsics from one
                 platform to another, taking advantage of similar
                 intrinsics on the target platform. We employ a
                 description language to specify the signature and
                 semantics of intrinsics and perform graph-based pattern
                 matching and high-level code transformations to derive
                 optimised implementations exploiting the target's
                 intrinsics, wherever possible. We demonstrate the
                 effectiveness of our new methodology, implemented in
                 the FREE RIDER tool, by automatically retargeting
                 benchmarks derived from OpenCV samples and a complex
                 embedded application optimised to run on an Arm
                 Cortex-M4 to an Intel Edison module with Sse4.2
                 instructions. We achieve a speedup of up to 3.73 over a
                 plain C baseline, and on average 96.0\% of the speedup
                 of manually ported and optimised versions of the
                 benchmarks.",
  acknowledgement = ack-nhfb,
  articleno =    "5",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  remark =       "LCTES '15 conference proceedings.",
}

@Article{Meister:2015:USD,
  author =       "Daniel Meister",
  title =        "Using swaps and deletes to make strings match",
  journal =      j-THEOR-COMP-SCI,
  volume =       "562",
  number =       "??",
  pages =        "606--620",
  day =          "11",
  month =        jan,
  year =         "2015",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Dec 2 19:05:36 MST 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2010.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397514008457",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Najam:2015:SPP,
  author =       "Maleeha Najam and Usman Younis and Raihan ur Rasool",
  title =        "Speculative parallel pattern matching using stride-$k$
                 {DFA} for deep packet inspection",
  journal =      j-J-NETW-COMPUT-APPL,
  volume =       "54",
  number =       "??",
  pages =        "78--87",
  month =        aug,
  year =         "2015",
  CODEN =        "JNCAF3",
  ISSN =         "1084-8045 (print), 1095-8592 (electronic)",
  ISSN-L =       "1084-8045",
  bibdate =      "Sat Aug 8 15:46:40 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jnetwcomputappl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S1084804515000867",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Network and Computer Applications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/10848045",
}

@Article{Nicolae:2015:SMM,
  author =       "Marius Nicolae and Sanguthevar Rajasekaran",
  title =        "On String Matching with Mismatches",
  journal =      j-ALGORITHMS-BASEL,
  volume =       "8",
  number =       "2",
  pages =        "248--270",
  month =        jun,
  year =         "2015",
  CODEN =        "ALGOCH",
  DOI =          "https://doi.org/10.3390/a8020248",
  ISSN =         "1999-4893 (electronic)",
  ISSN-L =       "1999-4893",
  bibdate =      "Fri May 3 13:50:13 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/algorithms.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.mdpi.com/1999-4893/8/2/248",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithms (Basel)",
  journal-URL =  "https://www.mdpi.com/journal/algorithms",
  pubdates =     "Received: 3 April 2015 / Accepted: 19 May 2015 /
                 Published: 26 May 2015",
}

@Article{Oliveira:2015:MRM,
  author =       "Bruno C. d. S. Oliveira and Shin-Cheng Mu and Shu-Hung
                 You",
  title =        "Modular reifiable matching: a list-of-functors
                 approach to two-level types",
  journal =      j-SIGPLAN,
  volume =       "50",
  number =       "12",
  pages =        "82--93",
  month =        dec,
  year =         "2015",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2887747.2804315",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Feb 16 12:01:44 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This paper presents Modular Reifiable Matching (MRM):
                 a new approach to two level types using a fixpoint of
                 list-of-functors representation. MRM allows the modular
                 definition of datatypes and functions by pattern
                 matching, using a style similar to the widely popular
                 Datatypes a la Carte (DTC) approach. However, unlike
                 DTC, MRM uses a fixpoint of list-of-functors approach
                 to two-level types. This approach has advantages that
                 help with various aspects of extensibility, modularity
                 and reuse. Firstly, modular pattern matching
                 definitions are collected using a list of matches that
                 is fully reifiable. This allows for extensible pattern
                 matching definitions to be easily reused/inherited, and
                 particular matches to be overridden. Such flexibility
                 is used, among other things, to implement extensible
                 generic traversals. Secondly, the subtyping relation
                 between lists of functors is quite simple, does not
                 require backtracking, and is easy to model in languages
                 like Haskell. MRM is implemented as a Haskell library,
                 and its use and applicability are illustrated through
                 various examples in the paper.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "Haskell '15 conference proceedings.",
}

@Article{Papadopoulos:2015:PAP,
  author =       "Dimitrios Papadopoulos and Charalampos Papamanthou and
                 Roberto Tamassia and Nikos Triandopoulos",
  title =        "Practical authenticated pattern matching with optimal
                 proof size",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "8",
  number =       "7",
  pages =        "750--761",
  month =        feb,
  year =         "2015",
  CODEN =        "????",
  ISSN =         "2150-8097",
  bibdate =      "Wed Apr 15 19:04:24 MDT 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/cryptography2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "We address the problem of authenticating pattern
                 matching queries over textual data that is outsourced
                 to an untrusted cloud server. By employing
                 cryptographic accumulators in a novel optimal
                 integrity-checking tool built directly over a suffix
                 tree, we design the first authenticated data structure
                 for verifiable answers to pattern matching queries
                 featuring fast generation of constant-size proofs. We
                 present two main applications of our new construction
                 to authenticate: (i) pattern matching queries over text
                 documents, and (ii) exact path queries over XML
                 documents. Answers to queries are verified by proofs of
                 size at most 500 bytes for text pattern matching, and
                 at most 243 bytes for exact path XML search,
                 independently of the document or answer size. By
                 design, our authentication schemes can also be
                 parallelized to offer extra efficiency during data
                 outsourcing. We provide a detailed experimental
                 evaluation of our schemes showing that for both
                 applications the times required to compute and verify a
                 proof are very small --- e.g., it takes less than $ 10
                 \mu $ s to generate a proof for a pattern (mis)match of
                 $ 10^2 $ characters in a text of $ 10^6 $ characters,
                 once the query has been evaluated.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Rendel:2015:ARL,
  author =       "Tillmann Rendel and Julia Trieflinger and Klaus
                 Ostermann",
  title =        "Automatic refunctionalization to a language with
                 copattern matching: with applications to the expression
                 problem",
  journal =      j-SIGPLAN,
  volume =       "50",
  number =       "9",
  pages =        "269--279",
  month =        sep,
  year =         "2015",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2858949.2784763",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Feb 16 12:01:43 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Defunctionalization and refunctionalization establish
                 a correspondence between first-class functions and
                 pattern matching, but the correspondence is not
                 symmetric: Not all uses of pattern matching can be
                 automatically refunctionalized to uses of higher-order
                 functions. To remedy this asymmetry, we generalize from
                 first-class functions to arbitrary codata. This leads
                 us to full defunctionalization and refunctionalization
                 between a codata language based on copattern matching
                 and a data language based on pattern matching. We
                 observe how programs can be written as matrices so that
                 they are modularly extensible in one dimension but not
                 the other. In this representation, defunctionalization
                 and refunctionalization correspond to matrix
                 transposition which effectively changes the dimension
                 of extensibility a program supports. This suggests
                 applications to the expression problem.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "ICFP '15 conference proceedings.",
}

@Book{Ruckert:2015:MSS,
  author =       "Martin Ruckert",
  title =        "The {MMIX} supplement: supplement to {{\booktitle{The
                 Art of Computer Programming, volumes 1, 2, 3}} by
                 Donald E. Knuth}",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "xxi + 193",
  year =         "2015",
  ISBN =         "0-13-399231-4 (paperback), 0-13-399289-6",
  ISBN-13 =      "978-0-13-399231-1 (paperback), 978-0-13-399289-2",
  LCCN =         "QA76.6 .K64 2005 Suppl. 1",
  bibdate =      "Wed Feb 4 10:19:23 MST 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fparith.bib;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/litprog.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/prng.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://mmix.cs.hm.edu/",
  abstract =     "In the first edition of Volume 1 of The Art of
                 Computer Programming, Donald E. Knuth introduced the
                 MIX computer and its machine language: a teaching tool
                 that powerfully illuminated the inner workings of the
                 algorithms he documents. Later, with the publication of
                 his Fascicle 1, Knuth introduced MMIX: a modern, 64-bit
                 RISC replacement to the now-obsolete MIX. Now, with
                 Knuth's guidance and approval, Martin Ruckert has
                 rewritten all MIX example programs from Knuth's Volumes
                 1--3 for MMIX, thus completing this MMIX update to the
                 original classic.\par

                 From Donald E. Knuth's Foreword:\par

                 ``I am thrilled to see the present book by Martin
                 Ruckert: It is jam-packed with goodies from which an
                 extraordinary amount can be learned. Martin has not
                 merely transcribed my early programs for MIX and recast
                 them in a modern idiom. He has penetrated to their
                 essence and rendered them anew with elegance and good
                 taste. His carefully checked code represents a
                 significant contribution to the art of pedagogy as well
                 as to the art of programming.''",
  acknowledgement = ack-nhfb,
  libnote =      "Not yet in my library.",
  subject =      "MMIX (Computer architecture); Assembly languages
                 (Electronic computers); Microcomputers; Programming",
  tableofcontents = "Foreword / iii \\
                 Preface / v \\
                 Style Guide / viii \\
                 Programming Techniques / xii \\
                 Basic Concepts / 1 \\
                 Applications to Permutations / 1 \\
                 Input and Output / 8 \\
                 Information Structures / 15 \\
                 Introduction / 15 \\
                 Sequential Allocation / 17 \\
                 Linked Allocation / 18 \\
                 Circular Lists / 25 \\
                 Doubly Linked Lists / 27 \\
                 Arrays and Orthogonal Lists / 36 \\
                 Traversing Binary Trees / 37 \\
                 Binary Tree Representation of Trees / 39 \\
                 Other Representations of Trees / 43 \\
                 Lists and Garbage Collection / 44 \\
                 Dynamic Storage Allocation / 45 \\
                 Random Numbers / 48 \\
                 Choice of modulus / 48 \\
                 Potency / 49 \\
                 Other Methods / 50 \\
                 Numerical Distributions / 51 \\
                 Summary / 52 \\
                 Arithmetic / 53 \\
                 Positional Number Systems / 53 \\
                 Single-Precision Calculations / 53 \\
                 Accuracy of Floating Point Arithmetic / 58 \\
                 Double-Precision Calculations / 58 \\
                 The Classical Algorithms / 62 \\
                 Radix Conversion / 68 \\
                 The Greatest Common Divisor / 70 \\
                 Analysis of Euclid's Algorithm / 71 \\
                 Factoring into Primes / 72 \\
                 Evaluation of Powers / 72 \\
                 Evaluation of Polynomials / 73 \\
                 Sorting / 74 \\
                 Internal Sorting / 74 \\
                 Sorting by Insertion / 76 \\
                 Sorting by Exchanging / 81 \\
                 Sorting by Selection / 87 \\
                 Sorting by Merging / 89 \\
                 Sorting by Distribution / 93 \\
                 Minimum-Comparison Sorting / 94 \\
                 Summary, History and Bibliography / 95 \\
                 Searching / 97 \\
                 Sequential Searching / 97 \\
                 Searching an Ordered Table / 99 \\
                 Binary Tree Searching / 102 \\
                 Balanced Trees / 103 \\
                 Digital Searching / 106 \\
                 Hashing / 108 \\
                 Answers to Exercises / 117 \\
                 The MMIX Assembly Language / 117 \\
                 Applications to Permutations / 120 \\
                 Input and Output / 120 \\
                 Introduction / 122 \\
                 Sequential Allocation / 123 \\
                 Linked Allocation / 124 \\
                 Circular Lists / 128 \\
                 Doubly Linked Lists / 130 \\
                 Arrays and Orthogonal Lists / 132 \\
                 Traversing Binary Trees / 134 \\
                 Binary Tree Representation of Trees / 136 \\
                 Lists and Garbage Collection / 139 \\
                 Dynamic Storage Allocation / 140 \\
                 Choice of modulus / 147 \\
                 Potency / 148 \\
                 Other Methods / 148 \\
                 Numerical Distributions / 149 \\
                 Summary / 150 \\
                 Positional Number Systems / 150 \\
                 Single-Precision Calculations / 151 \\
                 Accuracy of Floating Point Arithmetic / 152 \\
                 Double-Precision Calculations / 153 \\
                 The Classical Algorithms / 156 \\
                 Radix Conversion / 158 \\
                 The Greatest Common Divisor / 160 \\
                 Analysis of Euclid's Algorithm / 160 \\
                 Evaluation of Powers / 161 \\
                 Evaluation of Polynomials / 161 \\
                 Sorting / 162 \\
                 Internal Sorting / 162 \\
                 Sorting by Insertion / 165 \\
                 Sorting by Exchanging / 169 \\
                 Sorting by Selection / 174 \\
                 Sorting by Distribution / 179 \\
                 Minimum-Comparison Sorting / 180 \\
                 Summary, History, and Bibliography / 183 \\
                 Sequential Searching / 183 \\
                 Searching an Ordered Table / 184 \\
                 Binary Tree Searching / 185 \\
                 Balanced Trees / 185 \\
                 Digital Searching / 186 \\
                 Hashing / 186 \\
                 Acknowledgements / 188 \\
                 Index / 189",
}

@Article{Santini:2015:QSU,
  author =       "Simone Santini",
  title =        "Querying streams using regular expressions: some
                 semantics, decidability, and efficiency issues",
  journal =      j-VLDB-J,
  volume =       "24",
  number =       "6",
  pages =        "801--821",
  month =        dec,
  year =         "2015",
  CODEN =        "VLDBFR",
  DOI =          "https://doi.org/10.1007/s00778-015-0402-5",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Wed Nov 25 15:38:42 MST 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  abstract =     "This paper analyzes the decidability and complexity
                 problems that arise when matching regular expressions
                 on infinite streams of sets of symbols. We show that in
                 important application domains, several apparently
                 obvious semantics lead to detecting spurious events
                 (events that are mere artifacts of the semantics) or to
                 missing events of potential interest. We single out a
                 class of semantics, of interest in many applications,
                 which we dub use-and-throw: In a use-and-throw
                 semantics, an elementary event can participate in the
                 creation of at most one detected complex event. Many
                 areas of research have identified this as a desirable
                 requirement (we give the examples of databases and
                 video surveillance), but hitherto there has been no
                 systematic study of the characteristics of these
                 semantics, in particular their decidability and
                 algorithmic complexity. This paper is meant to provide
                 at least some initial answers on this subject. We
                 analyze several semantics, provide polynomial
                 algorithms for them, and prove their correctness and
                 their properties.",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Shahbaz:2015:AGV,
  author =       "Muzammil Shahbaz and Phil McMinn and Mark Stevenson",
  title =        "Automatic generation of valid and invalid test data
                 for string validation routines using web searches and
                 regular expressions",
  journal =      j-SCI-COMPUT-PROGRAM,
  volume =       "97 (part 4)",
  number =       "??",
  pages =        "405--425",
  day =          "1",
  month =        jan,
  year =         "2015",
  CODEN =        "SCPGD4",
  ISSN =         "0167-6423 (print), 1872-7964 (electronic)",
  ISSN-L =       "0167-6423",
  bibdate =      "Mon Nov 17 07:44:09 MST 2014",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0167642314001725",
  acknowledgement = ack-nhfb,
  fjournal =     "Science of Computer Programming",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01676423/",
}

@Article{Tran:2015:CLC,
  author =       "Nhat-Phuong Tran and Myungho Lee and Dong Hoon Choi",
  title =        "Cache Locality-Centric Parallel String Matching on
                 Many-Core Accelerator Chips",
  journal =      j-SCI-PROG,
  volume =       "2015",
  number =       "??",
  pages =        "937694:1--937694:20",
  month =        "????",
  year =         "2015",
  CODEN =        "SCIPEV",
  DOI =          "https://doi.org/10.1155/2015/937694",
  ISSN =         "1058-9244 (print), 1875-919X (electronic)",
  ISSN-L =       "1058-9244",
  bibdate =      "Tue Sep 20 07:53:44 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sciprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.hindawi.com/journals/sp/2015/937694/",
  acknowledgement = ack-nhfb,
  fjournal =     "Scientific Programming",
  journal-URL =  "https://www.hindawi.com/journals/sp/",
  journalabr =   "Sci. Prog",
}

@Article{Traytel:2015:VDP,
  author =       "Dmitriy Traytel and Tobias Nipkow",
  title =        "Verified decision procedures for {MSO} on words based
                 on derivatives of regular expressions",
  journal =      j-J-FUNCT-PROGRAM,
  volume =       "25",
  number =       "",
  pages =        "e18",
  month =        "????",
  year =         "2015",
  CODEN =        "JFPRES",
  DOI =          "https://doi.org/10.1017/S0956796815000246",
  ISSN =         "0956-7968 (print), 1469-7653 (electronic)",
  ISSN-L =       "0956-7968",
  bibdate =      "Mon Jul 22 09:36:08 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jfunctprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.cambridge.org/core/journals/journal-of-functional-programming/article/verified-decision-procedures-for-mso-on-words-based-on-derivatives-of-regular-expressions/18DCED718D5D525252C97EFA3501B4A4",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Funct. Program.",
  fjournal =     "Journal of Functional Programming",
  journal-URL =  "https://www.cambridge.org/core/journals/journal-of-functional-programming",
  onlinedate =   "05 November 2015",
}

@Article{Veanes:2015:DPS,
  author =       "Margus Veanes and Todd Mytkowicz and David Molnar and
                 Benjamin Livshits",
  title =        "Data-Parallel String-Manipulating Programs",
  journal =      j-SIGPLAN,
  volume =       "50",
  number =       "1",
  pages =        "139--152",
  month =        jan,
  year =         "2015",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2775051.2677014",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue May 12 17:41:19 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "String-manipulating programs are an important class of
                 programs with applications in malware detection,
                 graphics, input sanitization for Web security, and
                 large-scale HTML processing. This paper extends prior
                 work on BEK, an expressive domain-specific language for
                 writing string-manipulating programs, with algorithmic
                 insights that make BEK both analyzable and
                 data-parallel. By analyzable we mean that unlike most
                 general purpose programming languages, many algebraic
                 properties of a BEK program are decidable (i.e., one
                 can check whether two programs commute or compute the
                 inverse of a program). By data-parallel we mean that a
                 BEK program can compute on arbitrary subsections of its
                 input in parallel, thus exploiting parallel hardware.
                 This latter requirement is particularly important for
                 programs which operate on large data: without data
                 parallelism, a programmer cannot hide the latency of
                 reading data from various storage media (i.e., reading
                 a terabyte of data from a modern hard drive takes about
                 3 hours). With a data-parallel approach, the system can
                 split data across multiple disks and thus hide the
                 latency of reading the data. A BEK program is
                 expressive: a programmer can use conditionals, switch
                 statements, and registers --- or local variables --- in
                 order to implement common string-manipulating programs.
                 Unfortunately, this expressivity induces data
                 dependencies, which are an obstacle to parallelism. The
                 key contribution of this paper is an algorithm which
                 automatically removes these data dependencies by
                 mapping a BEK program into a intermediate format
                 consisting of symbolic transducers, which extend
                 classical transducers with symbolic predicates and
                 symbolic assignments. We present a novel algorithm that
                 we call exploration which performs symbolic loop
                 unrolling of these transducers to obtain simplified
                 versions of the original program. We show how these
                 simplified versions can then be lifted to a stateless
                 form, and from there compiled to data-parallel
                 hardware. To evaluate the efficacy of our approach, we
                 demonstrate up to 8x speedups for a number of
                 real-world, BEK programs, (e.g., HTML encoder and
                 decoder) on data-parallel hardware. To the best of our
                 knowledge, these are the first data parallel
                 implementation of these programs. To validate that our
                 approach is correct, we use an automatic testing
                 technique to compare our generated code to the original
                 implementations and find no semantic deviations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "POPL '15 conference proceedings.",
}

@Article{Wandelt:2015:MCS,
  author =       "Sebastian Wandelt and Ulf Leser",
  title =        "{MRCSI}: compressing and searching string collections
                 with multiple references",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "8",
  number =       "5",
  pages =        "461--472",
  month =        jan,
  year =         "2015",
  CODEN =        "????",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Mon Feb 9 18:24:35 MST 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Efficiently storing and searching collections of
                 similar strings, such as large populations of genomes
                 or long change histories of documents from Wikis, is a
                 timely and challenging problem. Several recent
                 proposals could drastically reduce space requirements
                 by exploiting the similarity between strings in
                 so-called reference-based compression. However, these
                 indexes are usually not searchable any more, i.e., in
                 these methods search efficiency is sacrificed for
                 storage efficiency. We propose Multi-Reference
                 Compressed Search Indexes (MRCSI) as a framework for
                 efficiently compressing dissimilar string collections.
                 In contrast to previous works which can use only a
                 single reference for compression, MRCSI (a) uses
                 multiple references for achieving increased compression
                 rates, where the reference set need not be specified by
                 the user but is determined automatically, and (b)
                 supports efficient approximate string searching with
                 edit distance constraints. We prove that finding the
                 smallest MRCSI is NP-hard. We then propose three
                 heuristics for computing MRCSIs achieving increasing
                 compression ratios. Compared to state-of-the-art
                 competitors, our methods target an interesting and
                 novel sweet-spot between high compression ratio versus
                 search efficiency.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Wang:2015:FPPb,
  author =       "Kai Wang and Jun Li",
  title =        "{FREME}: a pattern partition based engine for fast and
                 scalable regular expression matching in practice",
  journal =      j-J-NETW-COMPUT-APPL,
  volume =       "55",
  number =       "??",
  pages =        "154--169",
  month =        sep,
  year =         "2015",
  CODEN =        "JNCAF3",
  ISSN =         "1084-8045 (print), 1095-8592 (electronic)",
  ISSN-L =       "1084-8045",
  bibdate =      "Sat Aug 8 15:46:40 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jnetwcomputappl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S1084804515001198",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Network and Computer Applications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/10848045",
}

@Article{Wei:2015:TPE,
  author =       "Lei Wei and Michael K. Reiter",
  title =        "Toward practical encrypted email that supports
                 private, regular-expression searches",
  journal =      j-INT-J-INFO-SEC,
  volume =       "14",
  number =       "5",
  pages =        "397--416",
  month =        oct,
  year =         "2015",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1007/s10207-014-0268-3",
  ISSN =         "1615-5262 (print), 1615-5270 (electronic)",
  ISSN-L =       "1615-5262",
  bibdate =      "Tue Jan 23 16:01:44 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cryptography2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/intjinfosec.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/s10207-014-0268-3;
                 http://link.springer.com/content/pdf/10.1007/s10207-014-0268-3.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Information Security",
  journal-URL =  "https://link.springer.com/journal/10207",
  keywords =     "Cloud security; Private search on encrypted data;
                 Regular-expression search",
}

@Article{Yu:2015:EEA,
  author =       "Qiang Yu and Hongwei Huo and Jeffrey Scott Vitter and
                 Jun Huan and Yakov Nekrich",
  title =        "An efficient exact algorithm for the motif stem search
                 problem over large alphabets",
  journal =      j-TCBB,
  volume =       "12",
  number =       "2",
  pages =        "384--397",
  month =        mar,
  year =         "2015",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2014.2361668",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Fri Aug 28 05:40:09 MDT 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "In recent years, there has been an increasing interest
                 in planted ( l, d ) motif search (PMS) with
                 applications to discovering significant segments in
                 biological sequences. However, there has been little
                 discussion about PMS over large alphabets. This paper
                 focuses on motif stem search (MSS), which is recently
                 introduced to search motifs on large-alphabet inputs. A
                 motif stem is an l -length string with some wildcards.
                 The goal of the MSS problem is to find a set of stems
                 that represents a superset of all ( l, d ) motifs
                 present in the input sequences, and the superset is
                 expected to be as small as possible. The three main
                 contributions of this paper are as follows: (1) We
                 build motif stem representation more precisely by using
                 regular expressions. (2) We give a method for
                 generating all possible motif stems without redundant
                 wildcards. (3) We propose an efficient exact algorithm,
                 called StemFinder, for solving the MSS problem.
                 Compared with the previous MSS algorithms, StemFinder
                 runs much faster and reports fewer stems which
                 represent a smaller superset of all ( l, d ) motifs.
                 StemFinder is freely available at
                 http://sites.google.com/site/feqond/stemfinder.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Yu:2015:ESS,
  author =       "William Yu and Noah M. Daniels and David Christian
                 Danko and Bonnie Berger",
  title =        "Entropy-Scaling Search of Massive Biological Data",
  journal =      j-CELL-SYST,
  volume =       "1",
  number =       "2",
  pages =        "130--140",
  day =          "26",
  month =        aug,
  year =         "2015",
  DOI =          "https://doi.org/10.1016/j.cels.2015.08.004",
  ISSN =         "2405-4712",
  bibdate =      "Tue Sep 15 09:42:13 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://gems.csail.mit.edu/;
                 http://www.sciencedirect.com/science/article/pii/S2405471215000587",
  acknowledgement = ack-nhfb,
  fjournal =     "Cell Systems",
  journal-URL =  "http://www.sciencedirect.com/science/journal/24054712",
  keywords =     "compressed string searching; data compression",
}

@Article{Zhang:2015:ECS,
  author =       "Zhiwei Zhang and Jeffrey Xu Yu and Lu Qin and Lijun
                 Chang and Xuemin Lin",
  title =        "{I/O} efficient: computing {SCCs} in massive graphs",
  journal =      j-VLDB-J,
  volume =       "24",
  number =       "2",
  pages =        "245--270",
  month =        apr,
  year =         "2015",
  CODEN =        "VLDBFR",
  DOI =          "https://doi.org/10.1007/s00778-014-0372-z",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Wed Mar 18 19:14:35 MDT 2015",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  abstract =     "A strongly connected component ($ \mathsf {SCC}$) is a
                 maximal subgraph of a directed graph GG in which every
                 pair of nodes is reachable from each other in the $
                 \mathsf {SCC}$. With such a property, a general
                 directed graph can be represented by a directed acyclic
                 graph (DAG) by contracting every $ \mathsf {SCC}$ of GG
                 to a node in DAG. In many real applications that need
                 graph pattern matching, topological sorting, or
                 reachability query processing, the best way to deal
                 with a general directed graph is to deal with its DAG
                 representation. Therefore, finding all \mathsf
                 {SCC}SCCs in a directed graph GG is a critical
                 operation. The existing in-memory algorithms based on
                 depth first search (DFS) can find all $ \mathsf {SCC}$
                 s in linear time with respect to the size of a graph.
                 However, when a graph cannot reside entirely in the
                 main memory, the existing external or semi-external
                 algorithms to find all $ \mathsf {SCC}$ s have
                 limitation to achieve high I/O efficiency. In this
                 paper, we study new I/O-efficient semi-external
                 algorithms to find all $ \mathsf {SCC}$ s for a massive
                 directed graph GG that cannot reside in main memory
                 entirely. To overcome the deficiency of the existing
                 DFS-based semi-external algorithm that heavily relies
                 on a total order, we explore a weak order based on
                 which we investigate new algorithms. We propose a new
                 two-phase algorithm, namely, tree construction and tree
                 search. In the tree construction phase, a spanning tree
                 of GG can be constructed in bounded number of
                 sequential scans of GG. In the tree search phase, it
                 needs to sequentially scan the graph once to find all $
                 \mathsf {SCC}$ s. In addition, we propose a new
                 single-phase algorithm, which combines the tree
                 construction and tree search phases into a single
                 phase, with three new optimization techniques. They are
                 early acceptance, early rejection, and batch
                 processing. By the single-phase algorithm with the new
                 optimization techniques, we can significantly reduce
                 the number of I/Os and the CPU cost. We prove the
                 correctness of the algorithms. We conduct extensive
                 experimental studies using 4 real datasets including a
                 massive real dataset and several synthetic datasets to
                 confirm the I/O efficiency of our approaches.",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@InCollection{Zheng:2015:ESS,
  author =       "Yunhui Zheng and Vijay Ganesh and Sanu Subramanian and
                 Omer Tripp and Julian Dolby and Xiangyu Zhang",
  title =        "Effective Search-Space Pruning for Solvers of String
                 Equations, Regular Expressions and Length Constraints",
  crossref =     "Kroening:2015:CAV",
  pages =        "235--254",
  year =         "2015",
  DOI =          "https://doi.org/10.1007/978-3-319-21690-4_14",
  bibdate =      "Sat Jan 09 11:39:29 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/chapter/10.1007/978-3-319-21690-4_14",
  acknowledgement = ack-nhfb,
}

@Article{Afek:2016:MDE,
  author =       "Yehuda Afek and Anat Bremler-Barr and Yotam Harchol
                 and David Hay and Yaron Koral",
  title =        "Making {DPI} Engines Resilient to Algorithmic
                 Complexity Attacks",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "24",
  number =       "6",
  pages =        "3262--3275",
  month =        dec,
  year =         "2016",
  CODEN =        "IEANEP",
  DOI =          "https://doi.org/10.1109/TNET.2016.2518712",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Sat Jan 21 07:15:40 MST 2017",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This paper starts by demonstrating the vulnerability
                 of Deep Packet Inspection DPI mechanisms, which are at
                 the core of security devices, to algorithmic complexity
                 denial of service attacks, thus exposing a weakness in
                 the first line of defense of enterprise networks and
                 clouds. A system and a multi-core architecture to
                 defend from these algorithmic complexity attacks is
                 presented in the second part of the paper. The
                 integration of this system with two different DPI
                 engines is demonstrated and discussed. The
                 vulnerability is exposed by showing how a simple low
                 bandwidth cache-miss attack takes down the
                 Aho--Corasick AC pattern matching algorithm that lies
                 at the heart of most DPI engines. As a first step in
                 the mitigation of the attack, we have developed a
                 compressed variant of the AC algorithm that improves
                 the worst case performance under an attack. Still,
                 under normal traffic its running-time is worse than
                 classical AC implementations. To overcome this problem,
                 we introduce $ {\rm MCA}^2 $ --- Multi-Core
                 Architecture to Mitigate Complexity Attacks, which
                 dynamically combines the classical AC algorithm with
                 our compressed implementation, to provide a robust
                 solution to mitigate this cache-miss attack. We
                 demonstrate the effectiveness of our architecture by
                 examining cache-miss algorithmic complexity attacks
                 against DPI engines and show a goodput boost of up to
                 73\%. Finally, we show that our architecture may be
                 generalized to provide a principal solution to a wide
                 variety of algorithmic complexity attacks.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J771",
}

@Article{Angstadt:2016:RPP,
  author =       "Kevin Angstadt and Westley Weimer and Kevin Skadron",
  title =        "{RAPID} Programming of Pattern-Recognition
                 Processors",
  journal =      j-OPER-SYS-REV,
  volume =       "50",
  number =       "2",
  pages =        "593--605",
  month =        jun,
  year =         "2016",
  CODEN =        "OSRED8",
  DOI =          "https://doi.org/10.1145/2954680.2872393",
  ISSN =         "0163-5980 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Thu Jun 9 17:03:34 MDT 2016",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/opersysrev.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We present RAPID, a high-level programming language
                 and combined imperative and declarative model for
                 programming pattern-recognition processors, such as
                 Micron's Automata Processor (AP). The AP is a novel,
                 non-Von Neumann architecture for direct execution of
                 non-deterministic finite automata (NFAs), and has been
                 demonstrated to provide substantial speedup for a
                 variety of data-processing applications. RAPID is
                 clear, maintainable, concise, and efficient both at
                 compile and run time. Language features, such as code
                 abstraction and parallel control structures, map well
                 to pattern-matching problems, providing clarity and
                 maintainability. For generation of efficient runtime
                 code, we present algorithms to convert RAPID programs
                 into finite automata. Further, we introduce a
                 tessellation technique for configuring the AP, which
                 significantly reduces compile time, increases
                 programmer productivity, and improves maintainability.
                 We evaluate five RAPID programs against custom,
                 baseline implementations previously demonstrated to be
                 significantly accelerated by the AP. We find that RAPID
                 programs are much shorter in length, are expressible at
                 a higher level of abstraction than their handcrafted
                 counterparts, and yield generated code that is often
                 more compact. In addition, our tessellation technique
                 for configuring the AP has comparable device
                 utilization to, and results in compilation that is up
                 to four orders of magnitude faster than, current
                 solutions.",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J597",
}

@Article{Apostolico:2016:YST,
  author =       "Alberto Apostolico and Maxime Crochemore and Martin
                 Farach-Colton and Zvi Galil and S. Muthukrishnan",
  title =        "40 years of suffix trees",
  journal =      j-CACM,
  volume =       "59",
  number =       "4",
  pages =        "66--73",
  month =        apr,
  year =         "2016",
  CODEN =        "CACMA2",
  DOI =          "https://doi.org/10.1145/2810036",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Fri Apr 15 14:58:10 MDT 2016",
  bibsource =    "http://www.acm.org/pubs/contents/journals/cacm/;
                 https://www.math.utah.edu/pub/tex/bib/cacm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://cacm.acm.org/magazines/2016/4/200160/fulltext",
  abstract =     "Tracing the first four decades in the life of suffix
                 trees, their many incarnations, and their
                 applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
}

@Article{Arenas:2016:FAC,
  author =       "Marcelo Arenas and Francisco Maturana and Cristian
                 Riveros and Domagoj Vrgoc",
  title =        "A framework for annotating {CSV}-like data",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "9",
  number =       "11",
  pages =        "876--887",
  month =        jul,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/2983200.2983204",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Tue Sep 6 16:21:12 MDT 2016",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "In this paper, we propose a simple and expressive
                 framework for adding metadata to CSV documents and
                 their noisy variants. The framework is based on
                 annotating parts of the document that can be later used
                 to read, query, or exchange the data. The core of our
                 framework is a language based on extended regular
                 expressions that are used for selecting data. These
                 expressions are then combined using a set of rules in
                 order to annotate the data. We study the computational
                 complexity of implementing our framework and present an
                 efficient evaluation algorithm that runs in time
                 proportional to its output and linear in its input. As
                 a proof of concept, we test an implementation of our
                 framework against a large number of real world datasets
                 and show that it can be efficiently used in practice.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@InProceedings{Ausaf:2016:PLD,
  author =       "F. Ausaf and R. Dyckhoff and C. Urban",
  editor =       "Jasmin Christian Blanchette and Stephan Merz",
  booktitle =    "Interactive Theorem Proving: {7th International
                 Conference, ITP 2016, Nancy, France, August 22--25,
                 2016, Proceedings}",
  title =        "{POSIX} lexing with derivatives of regular expressions
                 (proof pearl)",
  volume =       "9807",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "69--86",
  year =         "2016",
  DOI =          "https://doi.org/10.1007/978-3-319-43144-4_5",
  bibdate =      "Fri Sep 22 12:35:48 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  acknowledgement = ack-nhfb,
  book-DOI =     "https://doi.org/10.1007/978-3-642-25379-9",
}

@Article{Avalle:2016:SAN,
  author =       "Matteo Avalle and Fulvio Risso and Riccardo Sisto",
  title =        "Scalable algorithms for {NFA} multi-striding and
                 {NFA}-based deep packet inspection on {GPUs}",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "24",
  number =       "3",
  pages =        "1704--1717",
  month =        jun,
  year =         "2016",
  CODEN =        "IEANEP",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Fri Sep 9 11:16:43 MDT 2016",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Finite state automata (FSA) are used by many network
                 processing applications to match complex sets of
                 regular expressions in network packets. In order to
                 make FSA-based matching possible even at the
                 ever-increasing speed of modern networks,
                 multi-striding has been introduced. This technique
                 increases input parallelism by transforming the
                 classical FSA that consumes input byte by byte into an
                 equivalent one that consumes input in larger units.
                 However, the algorithms used today for this
                 transformation are so complex that they often result
                 unfeasible for large and complex rule sets. This paper
                 presents a set of new algorithms that extend the
                 applicability of multi-striding to complex rule sets.
                 These algorithms can transform nondeterministic finite
                 automata (NFA) into their multi-stride form with
                 reduced memory and time requirements. Moreover, they
                 exploit the massive parallelism of graphical processing
                 units for NFA-based matching. The final result is a
                 boost of the overall processing speed on typical
                 regex-based packet processing applications, with a
                 speedup of almost one order of magnitude compared to
                 the current state-of-the-art algorithms.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J771",
}

@Article{Babenko:2016:CMM,
  author =       "Maxim Babenko and Pawe{\l} Gawrychowski and Tomasz
                 Kociumaka and Ignat Kolesnichenko and Tatiana
                 Starikovskaya",
  title =        "Computing minimal and maximal suffixes of a
                 substring",
  journal =      j-THEOR-COMP-SCI,
  volume =       "638",
  number =       "??",
  pages =        "112--121",
  day =          "25",
  month =        jul,
  year =         "2016",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Wed Jun 8 10:05:42 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2015.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397515007707",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Bartoli:2016:RBE,
  author =       "Alberto Bartoli and Andrea {De Lorenzo} and Eric
                 Medvet and Fabiano Tarlao",
  title =        "Regex-based entity extraction with active learning and
                 genetic programming",
  journal =      j-SIGAPP,
  volume =       "16",
  number =       "2",
  pages =        "7--15",
  month =        aug,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2993231.2993232",
  ISSN =         "1559-6915 (print), 1931-0161 (electronic)",
  ISSN-L =       "1559-6915",
  bibdate =      "Thu Jan 23 10:25:01 MST 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigapp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/2993231.2993232",
  abstract =     "We consider the long-standing problem of the automatic
                 generation of regular expressions for text extraction,
                 based solely on examples of the desired behavior. We
                 investigate several active learning approaches in which
                 the user annotates only one \ldots{}",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGAPP Applied Computing Review",
  journal-URL =  "https://dl.acm.org/loi/sigapp",
}

@Article{Beal:2016:CPP,
  author =       "Richard Beal and Donald Adjeroh",
  title =        "Compressed parameterized pattern matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "609 (part 1)",
  number =       "??",
  pages =        "129--142",
  day =          "4",
  month =        jan,
  year =         "2016",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Fri Dec 4 06:41:42 MST 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2015.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397515008440",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Brachthauser:2016:PFC,
  author =       "Jonathan Immanuel Brachth{\"a}user and Tillmann Rendel
                 and Klaus Ostermann",
  title =        "Parsing with first-class derivatives",
  journal =      j-SIGPLAN,
  volume =       "51",
  number =       "10",
  pages =        "588--606",
  month =        oct,
  year =         "2016",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3022671.2984026",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Sep 16 10:18:13 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Brzozowski derivatives, well known in the context of
                 regular expressions, have recently been rediscovered to
                 give a simplified explanation to parsers of
                 context-free languages. We add derivatives as a novel
                 first-class feature to a standard parser combinator
                 language. First-class derivatives enable an inversion
                 of the control flow, allowing to implement modular
                 parsers for languages that previously required separate
                 pre-processing steps or cross-cutting modifications of
                 the parsers. We show that our framework offers new
                 opportunities for reuse and supports a modular
                 definition of interesting use cases of layout-sensitive
                 parsing.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  remark =       "OOPSLA '16 conference proceedings.",
}

@Article{Bruner:2016:FAP,
  author =       "Marie-Louise Bruner and Martin Lackner",
  title =        "A Fast Algorithm for Permutation Pattern Matching
                 Based on Alternating Runs",
  journal =      j-ALGORITHMICA,
  volume =       "75",
  number =       "1",
  pages =        "84--117",
  month =        may,
  year =         "2016",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-015-0013-y",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Mon May 30 08:48:04 MDT 2016",
  bibsource =    "http://link.springer.com/journal/453/75/1;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/s00453-015-0013-y",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Chen:2016:PPP,
  author =       "Xinming Chen and Brandon Jones and Michela Becchi and
                 Tilman Wolf",
  title =        "Picking Pesky Parameters: Optimizing Regular
                 Expression Matching in Practice",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "27",
  number =       "5",
  pages =        "1430--1442",
  month =        may,
  year =         "2016",
  CODEN =        "ITDSEO",
  DOI =          "https://doi.org/10.1109/TPDS.2015.2453986",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Fri Apr 15 13:45:22 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranspardistsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.computer.org/csdl/trans/td/2016/05/07152954-abs.html",
  abstract-URL = "http://www.computer.org/csdl/trans/td/2016/05/07152954-abs.html",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Parallel and Distributed
                 Systems",
  journal-URL =  "http://www.computer.org/tpds/archives.htm",
}

@Article{Cockx:2016:EDP,
  author =       "Jesper Cockx and Dominique Devriese and Frank
                 Piessens",
  title =        "Eliminating dependent pattern matching without {K}",
  journal =      j-J-FUNCT-PROGRAM,
  volume =       "26",
  number =       "",
  pages =        "e16",
  month =        "????",
  year =         "2016",
  CODEN =        "JFPRES",
  DOI =          "https://doi.org/10.1017/S0956796816000174",
  ISSN =         "0956-7968 (print), 1469-7653 (electronic)",
  ISSN-L =       "0956-7968",
  bibdate =      "Mon Jul 22 09:36:09 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jfunctprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.cambridge.org/core/journals/journal-of-functional-programming/article/eliminating-dependent-pattern-matching-without-k/4BC4EA2D02D801E5ABED264FE5FB177A",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Funct. Program.",
  fjournal =     "Journal of Functional Programming",
  journal-URL =  "https://www.cambridge.org/core/journals/journal-of-functional-programming",
  onlinedate =   "30 August 2016",
}

@Article{Cockx:2016:UEP,
  author =       "Jesper Cockx and Dominique Devriese and Frank
                 Piessens",
  title =        "Unifiers as equivalences: proof-relevant unification
                 of dependently typed data",
  journal =      j-SIGPLAN,
  volume =       "51",
  number =       "9",
  pages =        "270--283",
  month =        sep,
  year =         "2016",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3022670.2951917",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Sep 16 10:18:13 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Dependently typed languages such as Agda, Coq and
                 Idris use a syntactic first-order unification algorithm
                 to check definitions by dependent pattern matching.
                 However, these algorithms don't adequately consider the
                 types of the terms being unified, leading to various
                 unintended results. As a consequence, they require ad
                 hoc restrictions to preserve soundness, but this makes
                 them very hard to prove correct, modify, or extend.
                 This paper proposes a framework for reasoning formally
                 about unification in a dependently typed setting. In
                 this framework, unification rules compute not just a
                 unifier but also a corresponding correctness proof in
                 the form of an equivalence between two sets of
                 equations. By rephrasing the standard unification rules
                 in a proof-relevant manner, they are guaranteed to
                 preserve soundness of the theory. In addition, it
                 enables us to safely add new rules that can exploit the
                 dependencies between the types of equations. Using our
                 framework, we reimplemented the unification algorithm
                 used by Agda. As a result, we were able to replace
                 previous ad hoc restrictions with formally verified
                 unification rules, fixing a number of bugs in the
                 process. We are convinced this will also enable the
                 addition of new and interesting unification rules in
                 the future, without compromising soundness along the
                 way.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  remark =       "ICFP '16 conference proceedings.",
}

@Article{Fagin:2016:DCI,
  author =       "Ronald Fagin and Benny Kimelfeld and Frederick Reiss
                 and Stijn Vansummeren",
  title =        "Declarative Cleaning of Inconsistencies in Information
                 Extraction",
  journal =      j-TODS,
  volume =       "41",
  number =       "1",
  pages =        "6:1--6:??",
  month =        apr,
  year =         "2016",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/2877202",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Mon Jun 20 11:19:20 MDT 2016",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tods/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  abstract =     "The population of a predefined relational schema from
                 textual content, commonly known as Information
                 Extraction (IE), is a pervasive task in contemporary
                 computational challenges associated with Big Data.
                 Since the textual content varies widely in nature and
                 structure (from machine logs to informal natural
                 language), it is notoriously difficult to write IE
                 programs that unambiguously extract the sought
                 information. For example, during extraction, an IE
                 program could annotate a substring as both an address
                 and a person name. When this happens, the extracted
                 information is said to be inconsistent, and some way of
                 removing inconsistencies is crucial to compute the
                 final output. Industrial-strength IE systems like GATE
                 and IBM SystemT therefore provide a built-in collection
                 of cleaning operations to remove inconsistencies from
                 extracted relations. These operations, however, are
                 collected in an ad hoc fashion through use cases.
                 Ideally, we would like to allow IE developers to
                 declare their own policies. But existing cleaning
                 operations are defined in an algorithmic way, and hence
                 it is not clear how to extend the built-in operations
                 without requiring low-level coding of internal or
                 external functions. We embark on the establishment of a
                 framework for declarative cleaning of inconsistencies
                 in IE through principles of database theory.
                 Specifically, building upon the formalism of document
                 spanners for IE, we adopt the concept of prioritized
                 repairs, which has been recently proposed as an
                 extension of the traditional database repairs to
                 incorporate priorities among conflicting facts. We show
                 that our framework captures the popular cleaning
                 policies, as well as the POSIX semantics for extraction
                 through regular expressions. We explore the problem of
                 determining whether a cleaning declaration is
                 unambiguous (i.e., always results in a single repair)
                 and whether it increases the expressive power of the
                 extraction language. We give both positive and negative
                 results, some of which are general and some of which
                 apply to policies used in practice.",
  acknowledgement = ack-nhfb,
  articleno =    "6",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
}

@Article{Ferragina:2016:CCO,
  author =       "Paolo Ferragina and Rossano Venturini",
  title =        "Compressed Cache-Oblivious String {B}-Tree",
  journal =      j-TALG,
  volume =       "12",
  number =       "4",
  pages =        "52:1--52:??",
  month =        sep,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2903141",
  ISSN =         "1549-6325 (print), 1549-6333 (electronic)",
  ISSN-L =       "1549-6325",
  bibdate =      "Fri Sep 2 19:05:47 MDT 2016",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talg.bib",
  abstract =     "In this article, we study three variants of the
                 well-known prefix-search problem for strings, and we
                 design solutions for the cache-oblivious model which
                 improve the best known results. Among these
                 contributions, we close (asymptotically) the classic
                 problem, which asks for the detection of the set of
                 strings that share the longest common prefix with a
                 queried pattern by providing an I/O-optimal solution
                 that matches the space lower bound for tries up to a
                 constant multiplicative factor of the form $ (1 +
                 \epsilon) $, for $ \epsilon > 0 $. Our solutions hinge
                 upon a novel compressed storage scheme that adds the
                 ability to decompress prefixes of the stored strings
                 I/O-optimally to the elegant locality-preserving front
                 coding (Bender et al. 2006) still preserving its space
                 bounds.",
  acknowledgement = ack-nhfb,
  articleno =    "52",
  fjournal =     "ACM Transactions on Algorithms (TALG)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J982",
}

@Article{Fraigniaud:2016:OAL,
  author =       "Pierre Fraigniaud and Amos Korman",
  title =        "An Optimal Ancestry Labeling Scheme with Applications
                 to {XML} Trees and Universal Posets",
  journal =      j-J-ACM,
  volume =       "63",
  number =       "1",
  pages =        "6:1--6:??",
  month =        mar,
  year =         "2016",
  CODEN =        "JACOAH",
  DOI =          "https://doi.org/10.1145/2794076",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  bibdate =      "Wed May 4 17:20:31 MDT 2016",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "In this article, we solve the ancestry-labeling scheme
                 problem, which aims at assigning the shortest possible
                 labels (bit strings) to nodes of rooted trees, so
                 ancestry queries between any two nodes can be answered
                 by inspecting their assigned labels only. This problem
                 was introduced more than 20 years ago by Kannan et al.
                 [1988] and is among the most well-studied problems in
                 the field of informative labeling schemes. We construct
                 an ancestry-labeling scheme for n node trees with label
                 size $ \log_2 n + O (\log \log n) $ bits, thus matching
                 the $ \log_2 n + \Omega (\log \log n) $ bits lower
                 bound given by Alstrup et al. [2003]. Our scheme is
                 based on a simplified ancestry scheme that operates
                 extremely well on a restricted set of trees. In
                 particular, for the set of $n$-node trees with a depth
                 of at most $d$, the simplified ancestry scheme enjoys
                 label size of $ \log_2 n + 2 \log_2 d + O (1)$ bits.
                 Since the depth of most XML trees is at most some small
                 constant, such an ancestry scheme may be of practical
                 use. In addition, we also obtain an adjacency labeling
                 scheme that labels $n$-node trees of depth $d$ with
                 labels of size $ \log_2 n + 3 \log_2 d + O (1)$ bits.
                 All our schemes assign the labels in linear time, and
                 guarantee that any query can be answered in constant
                 time. Finally, our ancestry scheme finds applications
                 to the construction of small universal partially
                 ordered sets (posets). Specifically, for any fixed
                 integer $k$, it enables the construction of a universal
                 poset of size $ {\~ O}(n^k)$ for the family of
                 $n$-element posets with a tree dimension of at most
                 $k$. Up to lower-order terms, this bound is tight
                 thanks to a lower bound of $ n^{k - o(1)}$ by to Alon
                 and Scheinerman [1988].",
  acknowledgement = ack-nhfb,
  articleno =    "6",
  fjournal =     "Journal of the ACM",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
}

@Article{Garhwal:2016:PFR,
  author =       "Sunita Garhwal and Ram Jiwari",
  title =        "Parallel Fuzzy Regular Expression and its Conversion
                 to Epsilon-Free Fuzzy Automaton",
  journal =      j-COMP-J,
  volume =       "59",
  number =       "9",
  pages =        "1383--1391",
  month =        sep,
  year =         "2016",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/bxv104",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Mon Sep 12 11:39:16 MDT 2016",
  bibsource =    "http://comjnl.oxfordjournals.org/content/59/9.toc;
                 https://www.math.utah.edu/pub/tex/bib/compj2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/59/9/1383",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  onlinedate =   "December 17, 2015",
}

@Article{Gawrychowski:2016:OPP,
  author =       "Pawel Gawrychowski and Przemyslaw Uzna{\'n}ski",
  title =        "Order-preserving pattern matching with $k$
                 mismatches",
  journal =      j-THEOR-COMP-SCI,
  volume =       "638",
  number =       "??",
  pages =        "136--144",
  day =          "25",
  month =        jul,
  year =         "2016",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Wed Jun 8 10:05:42 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2015.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397515007690",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Grathwohl:2016:KCN,
  author =       "Bj{\o}rn Bugge Grathwohl and Fritz Henglein and Ulrik
                 Terp Rasmussen and Kristoffer Aalund S{\o}holm and
                 Sebastian Paaske T{\o}rholm",
  title =        "{Kleenex}: compiling nondeterministic transducers to
                 deterministic streaming transducers",
  journal =      j-SIGPLAN,
  volume =       "51",
  number =       "1",
  pages =        "284--297",
  month =        jan,
  year =         "2016",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2914770.2837647",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Jun 9 17:13:57 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We present and illustrate Kleenex, a language for
                 expressing general nondeterministic finite transducers,
                 and its novel compilation to streaming string
                 transducers with essentially optimal streaming
                 behavior, worst-case linear-time performance and
                 sustained high throughput. Its underlying theory is
                 based on transducer decomposition into oracle and
                 action machines: the oracle machine performs streaming
                 greedy disambiguation of the input; the action machine
                 performs the output actions. In use cases Kleenex
                 achieves consistently high throughput rates around the
                 1 Gbps range on stock hardware. It performs well,
                 especially in complex use cases, in comparison to both
                 specialized and related tools such as GNUawk, GNUsed,
                 GNUgrep, RE2, Ragel and regular-expression libraries.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "POPL '16 conference proceedings.",
}

@Article{Hu:2016:EWS,
  author =       "Changhui Hu and Lidong Han",
  title =        "Efficient wildcard search over encrypted data",
  journal =      j-INT-J-INFO-SEC,
  volume =       "15",
  number =       "5",
  pages =        "539--547",
  month =        oct,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1007/s10207-015-0302-0",
  ISSN =         "1615-5262 (print), 1615-5270 (electronic)",
  ISSN-L =       "1615-5262",
  bibdate =      "Tue Jan 23 16:01:46 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cryptography2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/intjinfosec.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/s10207-015-0302-0",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Information Security",
  journal-URL =  "https://link.springer.com/journal/10207",
  keywords =     "Cloud computing; Searchable symmetric encryption;
                 Wildcard search",
}

@Article{Karkkainen:2016:LLZ,
  author =       "Juha K{\"a}rkk{\"a}inen and Dominik Kempa and Simon J.
                 Puglisi",
  title =        "Lazy {Lempel--Ziv} Factorization Algorithms",
  journal =      j-ACM-J-EXP-ALGORITHMICS,
  volume =       "21",
  number =       "1",
  pages =        "2.4:1--2.4:??",
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2699876",
  ISSN =         "1084-6654",
  bibdate =      "Sun Aug 20 07:54:41 MDT 2017",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/jea.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "For decades the Lempel--Ziv (LZ77) factorization has
                 been a cornerstone of data compression and string
                 processing algorithms, and uses for it are still being
                 uncovered. For example, LZ77 is central to several
                 recent text indexing data structures designed to search
                 highly repetitive collections. However, in many
                 applications computation of the factorization remains a
                 bottleneck in practice. In this article, we describe a
                 number of simple and fast LZ77 factorization
                 algorithms, which consistently outperform all previous
                 methods in practice, use less memory, and still offer
                 strong worst-case performance guarantees. A common
                 feature of the new algorithms is that they compute
                 longest common prefix information in a lazy fashion,
                 with the degree of laziness in preprocessing
                 characterizing different algorithms.",
  acknowledgement = ack-nhfb,
  articleno =    "2.4",
  fjournal =     "Journal of Experimental Algorithmics (JEA)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J430",
}

@Article{Khan:2016:TOS,
  author =       "Minhaj Ahmad Khan",
  title =        "A Transformation For Optimizing String-Matching
                 Algorithms For Long Patterns",
  journal =      j-COMP-J,
  volume =       "59",
  number =       "12",
  pages =        "1749--1759",
  month =        dec,
  year =         "2016",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/bxw023",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Fri Dec 9 12:12:06 MST 2016",
  bibsource =    "http://comjnl.oxfordjournals.org/content/59/12.toc;
                 https://www.math.utah.edu/pub/tex/bib/compj2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://comjnl.oxfordjournals.org/content/59/12/1749",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  onlinedate =   "June 28, 2016",
}

@Article{Ko:2016:SCR,
  author =       "Sang-Ki Ko and Ha-Rim Lee and Yo-Sub Han",
  title =        "State Complexity of Regular Tree Languages for Tree
                 Matching",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "27",
  number =       "8",
  pages =        "965--980",
  month =        dec,
  year =         "2016",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054116500398",
  ISSN =         "0129-0541",
  ISSN-L =       "0129-0541",
  bibdate =      "Tue Feb 21 06:43:47 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Kucherov:2016:ASM,
  author =       "Gregory Kucherov and Kamil Salikhov and Dekel Tsur",
  title =        "Approximate string matching using a bidirectional
                 index",
  journal =      j-THEOR-COMP-SCI,
  volume =       "638",
  number =       "??",
  pages =        "145--158",
  day =          "25",
  month =        jul,
  year =         "2016",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Wed Jun 8 10:05:42 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2015.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397515009494",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Lai:2016:SDS,
  author =       "Longbin Lai and Lu Qin and Xuemin Lin and Ying Zhang
                 and Lijun Chang and Shiyu Yang",
  title =        "Scalable distributed subgraph enumeration",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "10",
  number =       "3",
  pages =        "217--228",
  month =        nov,
  year =         "2016",
  CODEN =        "????",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Thu Dec 1 09:02:03 MST 2016",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Subgraph enumeration aims to find all the subgraphs of
                 a large data graph that are isomorphic to a given
                 pattern graph. As the subgraph isomorphism operation is
                 computationally intensive, researchers have recently
                 focused on solving this problem in distributed
                 environments, such as MapReduce and Pregel. Among them,
                 the state-of-the-art algorithm, Twin TwigJoin, is
                 proven to be instance optimal based on a left-deep join
                 framework. However, it is still not scalable to large
                 graphs because of the constraints in the left-deep join
                 framework and that each decomposed component (join
                 unit) must be a star. In this paper, we propose SEED
                 --- a scalable sub-graph enumeration approach in the
                 distributed environment. Compared to Twin TwigJoin,
                 SEED returns optimal solution in a generalized join
                 framework without the constraints in Twin TwigJoin. We
                 use both star and clique as the join units, and design
                 an effective distributed graph storage mechanism to
                 support such an extension. We develop a comprehensive
                 cost model, that estimates the number of matches of any
                 given pattern graph by considering power-law degree
                 distribution in the data graph. We then generalize the
                 left-deep join framework and develop a
                 dynamic-programming algorithm to compute an optimal
                 bushy join plan. We also consider overlaps among the
                 join units. Finally, we propose clique compression to
                 further improve the algorithm by reducing the number of
                 the intermediate results. Extensive performance studies
                 are conducted on several real graphs, one containing
                 billions of edges. The results demonstrate that our
                 algorithm outperforms all other state-of-the-art
                 algorithms by more than one order of magnitude.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Lewenstein:2016:DRO,
  author =       "Moshe Lewenstein and J. Ian Munro and Yakov Nekrich
                 and Sharma V. Thankachan",
  title =        "Document retrieval with one wildcard",
  journal =      j-THEOR-COMP-SCI,
  volume =       "635",
  number =       "??",
  pages =        "94--101",
  day =          "4",
  month =        jul,
  year =         "2016",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2016.05.024",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Thu May 26 08:21:34 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2015.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397516301608",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Li:2016:HMF,
  author =       "Zheng Li and Tingjian Ge",
  title =        "History is a mirror to the future: best-effort
                 approximate complex event matching with insufficient
                 resources",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "10",
  number =       "4",
  pages =        "397--408",
  month =        nov,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3025111.3025121",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Sat Feb 25 09:01:51 MST 2017",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Complex event processing (CEP) has proven to be a
                 highly relevant topic in practice. As it is sensitive
                 to both errors in the stream and uncertainty in the
                 pattern, approximate complex event processing (ACEP) is
                 an important direction but has not been adequately
                 studied before. ACEP is costly, and is often performed
                 under insufficient computing resources. We propose an
                 algorithm that learns from the past behavior of ACEP
                 runs, and makes decisions on what to process first in
                 an online manner, so as to maximize the number of full
                 matches found. In addition, we devise effective
                 optimization techniques. Finally, we propose a
                 mechanism that uses reinforcement learning to
                 dynamically update the history structure without
                 incurring much overhead. Put together, these techniques
                 drastically improve the fraction of full matches found
                 in resource constrained environments.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Li:2016:RDT,
  author =       "Zeyu Li and Hongzhi Wang and Wei Shao and Jianzhong Li
                 and Hong Gao",
  title =        "Repairing data through regular expressions",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "9",
  number =       "5",
  pages =        "432--443",
  month =        jan,
  year =         "2016",
  CODEN =        "????",
  ISSN =         "2150-8097",
  bibdate =      "Mon Jan 11 17:54:24 MST 2016",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Since regular expressions are often used to detect
                 errors in sequences such as strings or date, it is
                 natural to use them for data repair. Motivated by this,
                 we propose a data repair method based on regular
                 expression to make the input sequence data obey the
                 given regular expression with minimal revision cost.
                 The proposed method contains two steps, sequence repair
                 and token value repair. For sequence repair, we propose
                 the Regular-expression-based Structural Repair (RSR in
                 short) algorithm. RSR algorithm is a dynamic
                 programming algorithm that utilizes Nondeterministic
                 Finite Automata (NFA) to calculate the edit distance
                 between a prefix of the input string and a partial
                 pattern regular expression with time complexity of $ O
                 (n m^2) $ and space complexity of $ O(m n) $ where $m$
                 is the edge number of NFA and $n$ is the input string
                 length. We also develop an optimization strategy to
                 achieve higher performance for long strings. For token
                 value repair, we combine the edit-distance-based method
                 and associate rules by a unified argument for the
                 selection of the proper method. Experimental results on
                 both real and synthetic data show that the proposed
                 method could repair the data effectively and
                 efficiently.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Libkin:2016:QGD,
  author =       "Leonid Libkin and Wim Martens and Domagoj Vrgoc",
  title =        "Querying Graphs with Data",
  journal =      j-J-ACM,
  volume =       "63",
  number =       "2",
  pages =        "14:1--14:??",
  month =        may,
  year =         "2016",
  CODEN =        "JACOAH",
  DOI =          "https://doi.org/10.1145/2850413",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  bibdate =      "Wed May 4 17:20:32 MDT 2016",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Graph databases have received much attention as of
                 late due to numerous applications in which data is
                 naturally viewed as a graph; these include social
                 networks, RDF and the Semantic Web, biological
                 databases, and many others. There are many proposals
                 for query languages for graph databases that mainly
                 fall into two categories. One views graphs as a
                 particular kind of relational data and uses traditional
                 relational mechanisms for querying. The other
                 concentrates on querying the topology of the graph.
                 These approaches, however, lack the ability to combine
                 data and topology, which would allow queries asking how
                 data changes along paths and patterns enveloping it. In
                 this article, we present a comprehensive study of
                 languages that enable such combination of data and
                 topology querying. These languages come in two flavors.
                 The first follows the standard approach of path
                 queries, which specify how labels of edges change along
                 a path, but now we extend them with ways of specifying
                 how both labels and data change. From the complexity
                 point of view, the right type of formalisms are
                 subclasses of register automata. These, however, are
                 not well suited for querying. To overcome this, we
                 develop several types of extended regular expressions
                 to specify paths with data and study their querying
                 power and complexity. The second approach adopts the
                 popular XML language XPath and extends it from XML
                 documents to graphs. Depending on the exact set of
                 allowed features, we have a family of languages, and
                 our study shows that it includes efficient and highly
                 expressive formalisms for querying both the structure
                 of the data and the data itself.",
  acknowledgement = ack-nhfb,
  articleno =    "14",
  fjournal =     "Journal of the ACM",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
}

@Article{Liu:2016:OAA,
  author =       "Alex X. Liu and Eric Torng",
  title =        "Overlay Automata and Algorithms for Fast and Scalable
                 Regular Expression Matching",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "24",
  number =       "4",
  pages =        "2400--2415",
  month =        aug,
  year =         "2016",
  CODEN =        "IEANEP",
  DOI =          "https://doi.org/10.1109/TNET.2016.2533605",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Fri Oct 28 17:19:55 MDT 2016",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Regular expression RegEx matching, the core operation
                 of intrusion detection and prevention systems, remains
                 a fundamentally challenging problem. A desired RegEx
                 matching scheme should satisfy four requirements:
                 deterministic finite state automata DFA speed,
                 nondeterministic finite state automata NFA size,
                 automated construction, and scalable construction.
                 Despite lots of work on RegEx matching, no prior scheme
                 satisfies all four of these requirements. In this
                 paper, we approach this holy grail by proposing
                 OverlayCAM, a RegEx matching scheme that satisfies all
                 four requirements. The theoretical underpinning of our
                 scheme is overlay delayed input DFA, a new automata
                 model proposed in this paper that captures both state
                 replication and transition replication, which are
                 inherent in DFAs. Our RegEx matching solution processes
                 one input character per lookup like a DFA, requires
                 only the space of an NFA, is grounded in sound automata
                 models, is easy to deploy in existing network devices,
                 and comes with scalable and automated construction
                 algorithms.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J771",
}

@Article{Liu:2016:PCU,
  author =       "Alex X. Liu and Chad R. Meiners and Eric Torng",
  title =        "Packet classification using binary content addressable
                 memory",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "24",
  number =       "3",
  pages =        "1295--1307",
  month =        jun,
  year =         "2016",
  CODEN =        "IEANEP",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Fri Sep 9 11:16:43 MDT 2016",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Packet classification is the core mechanism that
                 enables many networking devices. Although using ternary
                 content addressable memory (TCAM) to perform high-speed
                 packet classification has become the widely adopted
                 solution, TCAM is very expensive, has limited capacity,
                 consumes large amounts of power, and generates
                 tremendous amounts of heat because of their extremely
                 dense and parallel circuitry. In this paper, we propose
                 the first packet classification scheme that uses binary
                 CAM (BCAM). BCAM is similar to TCAM except that in
                 BCAM, every bit has only two possible states: 0 or 1;
                 in contrast, in TCAM, every bit has three possible
                 states: 0, 1, or * (don't care). Because of the high
                 complexity in implementing the extra ``don't care''
                 state, TCAM has much higher circuit density than BCAM.
                 As the power consumption, heat generation, and price
                 grow non-linearly with circuit density, BCAM consumes
                 much less power, generates much less heat, and costs
                 much less money than TCAM. Our BCAM-based packet
                 classification scheme is built on two key ideas. First,
                 we break a multi-dimensional lookup into a series of
                 1-D lookups. Second, for each 1-D lookup, we convert
                 the ternary matching problem into a binary string exact
                 matching problem. To speed up the lookup process, we
                 propose a number of optimization techniques, including
                 skip lists, free expansion, minimizing maximum lookup
                 time, minimizing average lookup time, and lookup short
                 circuiting. We evaluated our BCAM scheme on 17
                 real-life packet classifiers. On these classifiers, our
                 BCAM scheme requires roughly five times fewer CAM bits
                 than the traditional TCAM-based scheme. The penalty is
                 a throughput that is roughly four times less.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J771",
}

@Article{Losemann:2016:CPD,
  author =       "Katja Losemann and Wim Martens and Matthias Niewerth",
  title =        "Closure properties and descriptional complexity of
                 deterministic regular expressions",
  journal =      j-THEOR-COMP-SCI,
  volume =       "627",
  number =       "??",
  pages =        "54--70",
  day =          "9",
  month =        may,
  year =         "2016",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Apr 30 08:01:05 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2015.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397516001584",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Matsuoka:2016:GPM,
  author =       "Yoshiaki Matsuoka and Takahiro Aoki and Shunsuke
                 Inenaga and Hideo Bannai and Masayuki Takeda",
  title =        "Generalized pattern matching and periodicity under
                 substring consistent equivalence relations",
  journal =      j-THEOR-COMP-SCI,
  volume =       "656 (Part B)",
  number =       "??",
  pages =        "225--233",
  day =          "20",
  month =        dec,
  year =         "2016",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Fri Dec 9 12:17:02 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2015.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397516001390",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Or:2016:MBH,
  author =       "N. L. Or and X. Wang and D. Pao",
  title =        "{MEMORY}-Based Hardware Architectures to Detect
                 {ClamAV} Virus Signatures with Restricted Regular
                 Expression Features",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "65",
  number =       "4",
  pages =        "1225--1238",
  month =        apr,
  year =         "2016",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.2015.2439274",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Sat Mar 19 07:47:06 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Ordyniak:2016:PSM,
  author =       "Sebastian Ordyniak and Alexandru Popa",
  title =        "A Parameterized Study of Maximum Generalized Pattern
                 Matching Problems",
  journal =      j-ALGORITHMICA,
  volume =       "75",
  number =       "1",
  pages =        "1--26",
  month =        may,
  year =         "2016",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-015-0008-8",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Mon May 30 08:48:04 MDT 2016",
  bibsource =    "http://link.springer.com/journal/453/75/1;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/s00453-015-0008-8",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Orencik:2016:MKS,
  author =       "Cengiz Orencik and Ayse Selcuk and Erkay Savas and
                 Murat Kantarcio{\u{g}}lu",
  title =        "Multi-keyword search over encrypted data with scoring
                 and search pattern obfuscation",
  journal =      j-INT-J-INFO-SEC,
  volume =       "15",
  number =       "3",
  pages =        "251--269",
  month =        jun,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1007/s10207-015-0294-9",
  ISSN =         "1615-5262 (print), 1615-5270 (electronic)",
  ISSN-L =       "1615-5262",
  bibdate =      "Tue Jan 23 16:01:45 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cryptography2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/intjinfosec.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/s10207-015-0294-9",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Information Security",
  journal-URL =  "https://link.springer.com/journal/10207",
  keywords =     "Efficiency Scoring; Encrypted cloud data; Privacy
                 preservation; Secure search",
}

@Article{Ristov:2016:FSP,
  author =       "Strahil Ristov",
  title =        "A Fast and Simple Pattern Matching with {Hamming}
                 Distance on Large Alphabets",
  journal =      j-J-COMPUT-BIOL,
  volume =       "23",
  number =       "11",
  pages =        "874--876",
  month =        nov,
  year =         "2016",
  CODEN =        "JCOBEM",
  DOI =          "https://doi.org/10.1089/cmb.2016.0020",
  ISSN =         "1066-5277 (print), 1557-8666 (electronic)",
  ISSN-L =       "1066-5277",
  bibdate =      "Sat Jun 1 09:52:40 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcomputbiol.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.liebertpub.com/doi/abs/10.1089/cmb.2016.0020;
                 https://www.liebertpub.com/doi/pdf/10.1089/cmb.2016.0020",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computational Biology",
  journal-URL =  "https://www.liebertpub.com/loi/cmb/",
  onlinedate =   "16 June 2016",
}

@Article{Sapirstein:2016:PMA,
  author =       "Philip Sapirstein and Eric Psota",
  title =        "Pattern Matching and the Analysis of Damaged Ancient
                 Objects: The Case of the Column Drum",
  journal =      j-JOCCH,
  volume =       "9",
  number =       "3",
  pages =        "13:1--13:??",
  month =        nov,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2901297",
  ISSN =         "1556-4673 (print), 1556-4711 (electronic)",
  ISSN-L =       "1556-4673",
  bibdate =      "Mon Dec 19 16:06:59 MST 2016",
  bibsource =    "http://www.acm.org/pubs/contents/journals/jocch/;
                 https://www.math.utah.edu/pub/tex/bib/jocch.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We describe a common problem in the curation and
                 analysis of archaeological materials: restoring the
                 orientation and dimensions of damaged objects. Our
                 focus is a common architectural type in Mediterranean
                 sites, the Doric column drum, which we investigate at
                 one of the earliest Doric temples in the Greek world,
                 the Hera temple at Olympia. The 3D modeling and
                 analysis of this building by the Digital Architecture
                 Project since 2013 has revealed new insights into the
                 construction history of its stone colonnades. This
                 paper concerns the analysis of the 3D models of the in
                 situ material, using the almost 100 fallen drums and
                 capitals to reconstruct the colonnade digitally. In
                 order to accomplish this, we propose two novel methods
                 for training the machine to estimate the dimensions of
                 a fragmentary column drum. One approach is a
                 modification of ICP, where the fragment is compared to
                 an ideal model of an intact drum, which is resized
                 iteratively until concluding with a satisfactory fit.
                 Another approach recasts the scan data into polar
                 coordinates and uses RANSAC to identify the exterior
                 profiles of the piece and remove points likely to
                 belong to damaged areas. The filtered points are then
                 examined by the algorithm to estimate the radii and
                 taper of the drum. Besides saving a great deal of time
                 in the field, these methods are also accurate to within
                 0.2\% of the total radius for well-preserved material,
                 and 1\% for even the most fragmentary drums at Olympia.
                 These data have allowed the digital reconstruction of
                 80\% of the displaced drums and all of the capitals
                 from the temple. Our algorithms can be used to measure
                 any fluted column drums, and we discuss the potential
                 value of our approach for other categories of
                 archaeological artifacts.",
  acknowledgement = ack-nhfb,
  articleno =    "13",
  fjournal =     "Journal on Computing and Cultural Heritage (JOCCH)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1157",
}

@Article{Sevenich:2016:UDS,
  author =       "Martin Sevenich and Sungpack Hong and Oskar van Rest
                 and Zhe Wu and Jayanta Banerjee and Hassan Chafi",
  title =        "Using domain-specific languages for analytic graph
                 databases",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "9",
  number =       "13",
  pages =        "1257--1268",
  month =        sep,
  year =         "2016",
  CODEN =        "????",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Wed Oct 12 10:19:51 MDT 2016",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Recently graph has been drawing lots of attention both
                 as a natural data model that captures fine-grained
                 relationships between data entities and as a tool for
                 powerful data analysis that considers such
                 relationships. In this paper, we present a new graph
                 database system that integrates a robust graph storage
                 with an efficient graph analytics engine. Primarily,
                 our system adopts two domain-specific languages (DSLs),
                 one for describing graph analysis algorithms and the
                 other for graph pattern matching queries. Compared to
                 the API-based approaches in conventional graph
                 processing systems, the DSL-based approach provides
                 users with more flexible and intuitive ways of
                 expressing algorithms and queries. Moreover, the
                 DSL-based approach has significant performance benefits
                 as well, (1) by skipping (remote) API invocation
                 overhead and (2) by applying high-level optimization
                 from the compiler.",
  acknowledgement = ack-nhfb,
  ajournal =     "Proc. VLDB Endowment",
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Singh:2016:TSD,
  author =       "Rishabh Singh and Sumit Gulwani",
  title =        "Transforming spreadsheet data types using examples",
  journal =      j-SIGPLAN,
  volume =       "51",
  number =       "1",
  pages =        "343--356",
  month =        jan,
  year =         "2016",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/2914770.2837668",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Jun 9 17:13:57 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Cleaning spreadsheet data types is a common problem
                 faced by millions of spreadsheet users. Data types such
                 as date, time, name, and units are ubiquitous in
                 spreadsheets, and cleaning transformations on these
                 data types involve parsing and pretty printing their
                 string representations. This presents many challenges
                 to users because cleaning such data requires some
                 background knowledge about the data itself and moreover
                 this data is typically non-uniform, unstructured, and
                 ambiguous. Spreadsheet systems and Programming
                 Languages provide some UI-based and programmatic
                 solutions for this problem but they are either
                 insufficient for the user's needs or are beyond their
                 expertise. In this paper, we present a programming by
                 example methodology of cleaning data types that learns
                 the desired transformation from a few input-output
                 examples. We propose a domain specific language with
                 probabilistic semantics that is parameterized with
                 declarative data type definitions. The probabilistic
                 semantics is based on three key aspects: (i)
                 approximate predicate matching, (ii) joint learning of
                 data type interpretation, and (iii) weighted branches.
                 This probabilistic semantics enables the language to
                 handle non-uniform, unstructured, and ambiguous data.
                 We then present a synthesis algorithm that learns the
                 desired program in this language from a set of
                 input-output examples. We have implemented our
                 algorithm as an Excel add-in and present its successful
                 evaluation on 55 benchmark problems obtained from
                 online help forums and Excel product team.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "POPL '16 conference proceedings.",
}

@Article{Sitaridi:2016:GAS,
  author =       "Evangelia A. Sitaridi and Kenneth A. Ross",
  title =        "{GPU}-accelerated string matching for database
                 applications",
  journal =      j-VLDB-J,
  volume =       "25",
  number =       "5",
  pages =        "719--740",
  month =        oct,
  year =         "2016",
  CODEN =        "VLDBFR",
  DOI =          "https://doi.org/10.1007/s00778-015-0409-y",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Mon Sep 12 18:50:32 MDT 2016",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  abstract =     "Implementations of relational operators on GPU
                 processors have resulted in order of magnitude speedups
                 compared to their multicore CPU counterparts. Here we
                 focus on the efficient implementation of string
                 matching operators common in SQL queries. Due to
                 different architectural features the optimal algorithm
                 for CPUs might be suboptimal for GPUs. GPUs achieve
                 high memory bandwidth by running thousands of threads,
                 so it is not feasible to keep the working set of all
                 threads in the cache in a naive implementation. In GPUs
                 the unit of execution is a group of threads and in the
                 presence of loops and branches, threads in a group have
                 to follow the same execution path; if some threads
                 diverge, then different paths are serialized. We study
                 the cache memory efficiency of single- and
                 multi-pattern string matching algorithms for
                 conventional and pivoted string layouts in the GPU
                 memory. We evaluate the memory efficiency in terms of
                 memory access pattern and achieved memory bandwidth for
                 different parallelization methods. To reduce thread
                 divergence, we split string matching into multiple
                 steps. We evaluate the different matching algorithms in
                 terms of average- and worst-case performance and
                 compare them against state-of-the-art CPU and GPU
                 libraries. Our experimental evaluation shows that
                 thread and memory efficiency affect performance
                 significantly and that our proposed methods outperform
                 previous CPU and GPU algorithms in terms of raw
                 performance and power efficiency. The
                 Knuth---Morris---Pratt algorithm is a good choice for
                 GPUs because its regular memory access pattern makes it
                 amenable to several GPU optimizations.",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Strizhov:2016:SPS,
  author =       "Mikhail Strizhov and Zachary Osman and Indrajit Ray",
  title =        "Substring Position Search over Encrypted Cloud Data
                 Supporting Efficient Multi-User Setup",
  journal =      j-FUTURE-INTERNET,
  volume =       "8",
  number =       "3",
  pages =        "28",
  day =          "04",
  month =        jul,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.3390/fi8030028",
  ISSN =         "1999-5903",
  ISSN-L =       "1999-5903",
  bibdate =      "Thu Nov 21 16:50:55 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cryptography2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/future-internet.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.mdpi.com/1999-5903/8/3/28",
  abstract =     "Existing Searchable Encryption (SE) solutions are able
                 to handle simple Boolean search queries, such as single
                 or multi-keyword queries, but cannot handle substring
                 search queries over encrypted data that also involve
                 identifying the position of the substring within the
                 document. These types of queries are relevant in areas
                 such as searching DNA data. In this paper, we propose a
                 tree-based Substring Position Searchable Symmetric
                 Encryption (SSP-SSE) to overcome the existing gap. Our
                 solution efficiently finds occurrences of a given
                 substring over encrypted cloud data. Specifically, our
                 construction uses the position heap tree data structure
                 and achieves asymptotic efficiency comparable to that
                 of an unencrypted position heap tree. Our encryption
                 takes O (k n) time, and the resulting ciphertext is of
                 size O (k n), where k is a security parameter and n is
                 the size of stored data. The search takes O (m 2 + o c
                 c) time and three rounds of communication, where m is
                 the length of the queried substring and o c c is the
                 number of occurrences of the substring in the document
                 collection. We prove that the proposed scheme is secure
                 against chosen-query attacks that involve an adaptive
                 adversary. Finally, we extend SSP-SSE to the multi-user
                 setting where an arbitrary group of cloud users can
                 submit substring queries to search the encrypted
                 data.",
  acknowledgement = ack-nhfb,
  journal-URL =  "https://www.mdpi.com/journal/futureinternet",
  remark =       "Special Issue Security in Cloud Computing and Big
                 Data.",
}

@Article{Thibodeau:2016:ICT,
  author =       "David Thibodeau and Andrew Cave and Brigitte Pientka",
  title =        "Indexed codata types",
  journal =      j-SIGPLAN,
  volume =       "51",
  number =       "9",
  pages =        "351--363",
  month =        sep,
  year =         "2016",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3022670.2951929",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Sep 16 10:18:13 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Indexed data types allow us to specify and verify many
                 interesting invariants about finite data in a general
                 purpose programming language. In this paper we
                 investigate the dual idea: indexed codata types, which
                 allow us to describe data-dependencies about infinite
                 data structures. Unlike finite data which is defined by
                 constructors, we define infinite data by observations.
                 Dual to pattern matching on indexed data which may
                 refine the type indices, we define copattern matching
                 on indexed codata where type indices guard observations
                 we can make. Our key technical contributions are
                 three-fold: first, we extend Levy's call-by-push value
                 language with support for indexed (co)data and deep
                 (co)pattern matching; second, we provide a clean
                 foundation for dependent (co)pattern matching using
                 equality constraints; third, we describe a small-step
                 semantics using a continuation-based abstract machine,
                 define coverage for indexed (co)patterns, and prove
                 type safety. This is an important step towards building
                 a foundation where (co)data type definitions and
                 dependent types can coexist.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  remark =       "ICFP '16 conference proceedings.",
}

@Article{Tran:2016:BPA,
  author =       "Tuan Tu Tran and Yongchao Liu and Bertil Schmidt",
  title =        "Bit-parallel approximate pattern matching: {Kepler
                 GPU} versus {Xeon Phi}",
  journal =      j-PARALLEL-COMPUTING,
  volume =       "54",
  number =       "??",
  pages =        "128--138",
  month =        may,
  year =         "2016",
  CODEN =        "PACOEJ",
  ISSN =         "0167-8191 (print), 1872-7336 (electronic)",
  ISSN-L =       "0167-8191",
  bibdate =      "Wed May 4 17:36:47 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/parallelcomputing.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0167819115001477",
  acknowledgement = ack-nhfb,
  fjournal =     "Parallel Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01678191/",
}

@Article{Wang:2016:MFP,
  author =       "Z. Wang and H. Seidel and T. Weinkauf",
  title =        "Multi-field Pattern Matching based on Sparse Feature
                 Sampling",
  journal =      j-IEEE-TRANS-VIS-COMPUT-GRAPH,
  volume =       "22",
  number =       "1",
  pages =        "807--816",
  month =        "????",
  year =         "2016",
  CODEN =        "ITVGEA",
  DOI =          "https://doi.org/10.1109/TVCG.2015.2467292",
  ISSN =         "1077-2626 (print), 1941-0506 (electronic), 2160-9306",
  ISSN-L =       "1077-2626",
  bibdate =      "Tue Nov 3 09:35:46 MST 2015",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetransviscomputgraph.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Visualization and Computer
                 Graphics",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2945",
}

@Article{Wang:2016:UHM,
  author =       "Zhongyuan Wang and Fang Wang and Haixun Wang and
                 Zhirui Hu and Jun Yan and Fangtao Li and Ji-Rong Wen
                 and Zhoujun Li",
  title =        "Unsupervised Head-Modifier Detection in Search
                 Queries",
  journal =      j-TKDD,
  volume =       "11",
  number =       "2",
  pages =        "19:1--19:??",
  month =        dec,
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2988235",
  ISSN =         "1556-4681 (print), 1556-472X (electronic)",
  ISSN-L =       "1556-4681",
  bibdate =      "Mon Dec 26 17:17:00 MST 2016",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tkdd/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tkdd.bib",
  abstract =     "Interpreting the user intent in search queries is a
                 key task in query understanding. Query intent
                 classification has been widely studied. In this
                 article, we go one step further to understand the query
                 from the view of head-modifier analysis. For example,
                 given the query ``popular iphone 5 smart cover,''
                 instead of using coarse-grained semantic classes (e.g.,
                 find electronic product), we interpret that ``smart
                 cover'' is the head or the intent of the query and
                 ``iphone 5'' is its modifier. Query head-modifier
                 detection can help search engines to obtain
                 particularly relevant content, which is also important
                 for applications such as ads matching and query
                 recommendation. We introduce an unsupervised semantic
                 approach for query head-modifier detection. First, we
                 mine a large number of instance level head-modifier
                 pairs from search log. Then, we develop a
                 conceptualization mechanism to generalize the instance
                 level pairs to concept level. Finally, we derive
                 weighted concept patterns that are concise, accurate,
                 and have strong generalization power in head-modifier
                 detection. The developed mechanism has been used in
                 production for search relevance and ads matching. We
                 use extensive experiment results to demonstrate the
                 effectiveness of our approach.",
  acknowledgement = ack-nhfb,
  articleno =    "19",
  fjournal =     "ACM Transactions on Knowledge Discovery from Data
                 (TKDD)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1054",
}

@Article{Yang:2016:NFI,
  author =       "Xiaochun Yang and Tao Qiu and Bin Wang and Baihua
                 Zheng and Yaoshu Wang and Chen Li",
  title =        "Negative Factor: Improving Regular-Expression Matching
                 in Strings",
  journal =      j-TODS,
  volume =       "40",
  number =       "4",
  pages =        "25:1--25:46",
  month =        jan,
  year =         "2016",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/2847525",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Thu Jan 21 12:35:53 MST 2016",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tods/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  abstract =     "The problem of finding matches of a regular expression
                 (RE) on a string exists in many applications, such as
                 text editing, biosequence search, and shell commands.
                 Existing techniques first identify candidates using
                 substrings in the RE, then verify each of them using an
                 automaton. These techniques become inefficient when
                 there are many candidate occurrences that need to be
                 verified. In this article, we propose a novel technique
                 that prunes false negatives by utilizing negative
                 factors, which are substrings that cannot appear in an
                 answer. A main advantage of the technique is that it
                 can be integrated with many existing algorithms to
                 improve their efficiency significantly. We present a
                 detailed description of this technique. We develop an
                 efficient algorithm that utilizes negative factors to
                 prune candidates, then improve it by using bit
                 operations to process negative factors in parallel. We
                 show that negative factors, when used with necessary
                 factors (substrings that must appear in each answer),
                 can achieve much better pruning power. We analyze the
                 large number of negative factors, and develop an
                 algorithm for finding a small number of high-quality
                 negative factors. We conducted a thorough experimental
                 study of this technique on real datasets, including DNA
                 sequences, proteins, and text documents, and show
                 significant performance improvement of the
                 state-of-the-art tools by an order of magnitude.",
  acknowledgement = ack-nhfb,
  articleno =    "25",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
}

@Article{Zhang:2016:CRA,
  author =       "Meng Zhang and Yi Zhang and Chen Hou",
  title =        "Compact representations of automata for regular
                 expression matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "116",
  number =       "12",
  pages =        "750--756",
  month =        dec,
  year =         "2016",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Aug 23 11:26:53 MDT 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019016301016",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190/",
}

@Article{Zhu:2016:BAC,
  author =       "Tiantian Zhu and Hongyu Gao and Yi Yang and Kai Bu and
                 Yan Chen and Doug Downey and Kathy Lee and Alok N.
                 Choudhary",
  title =        "Beating the Artificial Chaos: Fighting {OSN} Spam
                 Using Its Own Templates",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "24",
  number =       "6",
  pages =        "3856--3869",
  month =        dec,
  year =         "2016",
  CODEN =        "IEANEP",
  DOI =          "https://doi.org/10.1109/TNET.2016.2557849",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Sat Jan 21 07:15:40 MST 2017",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Online social networks OSNs are extremely popular
                 among Internet users. However, spam originating from
                 friends and acquaintances not only reduces the joy of
                 Internet surfing but also causes damage to less
                 security-savvy users. Prior countermeasures combat OSN
                 spam from different angles. Due to the diversity of
                 spam, there is hardly any existing method that can
                 independently detect the majority or most of OSN spam.
                 In this paper, we empirically analyze the textual
                 pattern of a large collection of OSN spam. An inspiring
                 finding is that the majority e.g., 76.4\% in 2015 of
                 the collected spam is generated with underlying
                 templates. Based on the analysis, we propose tangram,
                 an OSN spam filtering system that performs online
                 inspection on the stream of user-generated messages.
                 Tangram extracts the templates of spam detected by
                 existing methods and then matching messages against the
                 templates toward the accurate and the fast spam
                 detection. It automatically divides the OSN spam into
                 segments and uses the segments to construct templates
                 to filter future spam. Experimental results on Twitter
                 and Facebook data sets show that tangram is highly
                 accurate and can rapidly generate templates to throttle
                 newly emerged campaigns. Furthermore, we analyze the
                 behavior of detected OSN spammers. We find a series of
                 spammer properties --- such as spamming accounts are
                 created in bursts and a single active organization
                 orchestrates more spam than all other spammers combined
                 --- that promise more comprehensive spam
                 countermeasures.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J771",
}

@Article{Al-Ssulami:2017:FSM,
  author =       "Abdulrakeeb M. Al-Ssulami and Hassan Mathkour",
  title =        "Faster string matching based on hashing and
                 bit-parallelism",
  journal =      j-INFO-PROC-LETT,
  volume =       "123",
  number =       "??",
  pages =        "51--55",
  month =        jul,
  year =         "2017",
  CODEN =        "IFPLAT",
  DOI =          "https://doi.org/10.1016/j.ipl.2017.03.005",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Fri Jun 30 15:40:21 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019017300492",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Angles:2017:FMQ,
  author =       "Renzo Angles and Marcelo Arenas and Pablo Barcel{\'o}
                 and Aidan Hogan and Juan Reutter and Domagoj Vrgoc",
  title =        "Foundations of Modern Query Languages for Graph
                 Databases",
  journal =      j-COMP-SURV,
  volume =       "50",
  number =       "5",
  pages =        "68:1--68:??",
  month =        nov,
  year =         "2017",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/3104031",
  ISSN =         "0360-0300 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  bibdate =      "Sat Jan 20 09:25:00 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We survey foundational features underlying modern
                 graph query languages. We first discuss two popular
                 graph data models: edge-labelled graphs, where nodes
                 are connected by directed, labelled edges, and property
                 graphs, where nodes and edges can further have
                 attributes. Next we discuss the two most fundamental
                 graph querying functionalities: graph patterns and
                 navigational expressions. We start with graph patterns,
                 in which a graph-structured query is matched against
                 the data. Thereafter, we discuss navigational
                 expressions, in which patterns can be matched
                 recursively against the graph to navigate paths of
                 arbitrary length; we give an overview of what kinds of
                 expressions have been proposed and how they can be
                 combined with graph patterns. We also discuss several
                 semantics under which queries using the previous
                 features can be evaluated, what effects the selection
                 of features and semantics has on complexity, and offer
                 examples of such features in three modern languages
                 that are used to query graphs: SPARQL, Cypher, and
                 Gremlin. We conclude by discussing the importance of
                 formalisation for graph query languages; a summary of
                 what is known about SPARQL, Cypher, and Gremlin in
                 terms of expressivity and complexity; and an outline of
                 possible future directions for the area.",
  acknowledgement = ack-nhfb,
  articleno =    "68",
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
}

@Article{Anonymous:2017:ENS,
  author =       "Anonymous",
  title =        "{Editor}'s Note: Special Issue on Combinatorial
                 Pattern Matching",
  journal =      j-ALGORITHMICA,
  volume =       "79",
  number =       "3",
  pages =        "797--797",
  month =        nov,
  year =         "2017",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-017-0355-8",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Mon Oct 2 10:42:20 MDT 2017",
  bibsource =    "http://link.springer.com/journal/453/79/3;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/content/pdf/10.1007/s00453-017-0355-8.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Antonopoulos:2017:DIS,
  author =       "Timos Antonopoulos and Paul Gazzillo and Michael Hicks
                 and Eric Koskinen and Tachio Terauchi and Shiyi Wei",
  title =        "Decomposition instead of self-composition for proving
                 the absence of timing channels",
  journal =      j-SIGPLAN,
  volume =       "52",
  number =       "6",
  pages =        "362--375",
  month =        jun,
  year =         "2017",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3140587.3062378",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Sep 16 10:18:17 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cryptography2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/java2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We present a novel approach to proving the absence of
                 timing channels. The idea is to partition the program's
                 execution traces in such a way that each partition
                 component is checked for timing attack resilience by a
                 time complexity analysis and that per-component
                 resilience implies the resilience of the whole program.
                 We construct a partition by splitting the program
                 traces at secret-independent branches. This ensures
                 that any pair of traces with the same public input has
                 a component containing both traces. Crucially, the
                 per-component checks can be normal safety properties
                 expressed in terms of a single execution. Our approach
                 is thus in contrast to prior approaches, such as
                 self-composition, that aim to reason about multiple $
                 (k \geq 2) $ executions at once. We formalize the above
                 as an approach called quotient partitioning,
                 generalized to any k -safety property, and prove it to
                 be sound. A key feature of our approach is a
                 demand-driven partitioning strategy that uses a
                 regex-like notion called trails to identify sets of
                 execution traces, particularly those influenced by
                 tainted (or secret) data. We have applied our technique
                 in a prototype implementation tool called Blazer, based
                 on WALA, PPL, and the brics automaton library. We have
                 proved timing-channel freedom of (or synthesized an
                 attack specification for) 24 programs written in Java
                 bytecode, including 6 classic examples from the
                 literature and 6 examples extracted from the DARPA STAC
                 challenge problems.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  remark =       "PLDI '17 conference proceedings.",
}

@Article{Azaria:2017:DMM,
  author =       "Amos Azaria and David Sarne and Yonatan Aumann",
  title =        "Distributed Matching with Mixed Maximum--Minimum
                 Utilities",
  journal =      j-TEAC,
  volume =       "5",
  number =       "2",
  pages =        "11:1--11:??",
  month =        mar,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3038911",
  ISSN =         "2167-8375 (print), 2167-8383 (electronic)",
  ISSN-L =       "2167-8375",
  bibdate =      "Wed Aug 9 16:06:10 MDT 2017",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/teac.bib",
  abstract =     "In this article, we study distributed agent matching
                 with search friction in environments characterized by
                 costly exploration, where each agent's utility from
                 forming a partnership is influenced by some linear
                 combination of the maximum and the minimum among the
                 two agents' competence. The article provides a cohesive
                 analysis for such case, proving the equilibrium
                 structure for the different min-max linear combinations
                 that may be used. The article presents an extensive
                 equilibrium analysis of such settings, proving three
                 distinct resulting patterns of the acceptance
                 thresholds used by the different agents. The first
                 relates to settings where a greater emphasis is placed
                 on the minimum type, or in the extreme case where the
                 minimum type solely determines the output. In these
                 cases, the assortative matching characteristic holds,
                 where all agents set their threshold below their own
                 type and the greater is the agent type, the greater is
                 its threshold. When the utility from the partnership
                 formation is solely determined by the maximum type, we
                 show that there exists a type $ x^* $ where
                 partnerships form if and only if one of the agents has
                 a type equal to or greater than $ x^* $. When a greater
                 emphasis is placed on the maximum type (but not only),
                 we prove that assortative matching never holds, and the
                 change in the agents' acceptance thresholds can
                 frequently shift from an increase to a decrease.",
  acknowledgement = ack-nhfb,
  articleno =    "11",
  fjournal =     "ACM Transactions on Economics and Computation",
  journal-URL =  "http://dl.acm.org/citation.cfm?id=2542174",
}

@Article{BenNsira:2017:LSM,
  author =       "Nadia {Ben Nsira} and Mourad Elloumi and Thierry
                 Lecroq",
  title =        "On-line String Matching in Highly Similar {DNA}
                 Sequences",
  journal =      j-MATH-COMPUT-SCI,
  volume =       "11",
  number =       "2",
  pages =        "113--126",
  month =        jun,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1007/s11786-016-0280-2",
  ISSN =         "1661-8270 (print), 1661-8289 (electronic)",
  ISSN-L =       "1661-8270",
  bibdate =      "Mon Oct 2 10:24:35 MDT 2017",
  bibsource =    "http://link.springer.com/journal/11786/11/2;
                 https://www.math.utah.edu/pub/tex/bib/math-comput-sci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Mathematics in Computer Science",
  journal-URL =  "http://link.springer.com/journal/11786",
}

@Article{Berglund:2017:SRE,
  author =       "Martin Berglund and Brink van der Merwe",
  title =        "On the semantics of regular expression parsing in the
                 wild",
  journal =      j-THEOR-COMP-SCI,
  volume =       "679",
  number =       "??",
  pages =        "69--82",
  day =          "30",
  month =        may,
  year =         "2017",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Wed Aug 9 15:42:31 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2015.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397516304790",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Calvo-Zaragoza:2017:CEE,
  author =       "Jorge Calvo-Zaragoza and Jose Oncina and Colin de la
                 Higuera",
  title =        "Computing the Expected Edit Distance from a String to
                 a Probabilistic Finite-State Automaton",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "28",
  number =       "5",
  pages =        "603--??",
  month =        aug,
  year =         "2017",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054117400093",
  ISSN =         "0129-0541",
  ISSN-L =       "0129-0541",
  bibdate =      "Sat Dec 16 08:38:08 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Cao:2017:VNM,
  author =       "Yang Cao and Wenfei Fan and Shuai Ma",
  title =        "Virtual Network Mapping in Cloud Computing: a Graph
                 Pattern Matching Approach",
  journal =      j-COMP-J,
  volume =       "60",
  number =       "3",
  pages =        "60--??",
  month =        mar,
  year =         "2017",
  CODEN =        "CMPJA6",
  ISSN =         "????",
  ISSN-L =       "0010-4620",
  bibdate =      "Sat Mar 11 14:16:28 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compj2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
  URL =          "https://academic.oup.com/comjnl/article/60/3/287/2608063/Virtual-Network-Mapping-in-Cloud-Computing-A-Graph",
  acknowledgement = ack-nhfb,
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
}

@Article{Chhabra:2017:EOP,
  author =       "Tamanna Chhabra and Simone Faro and M. O{\u{g}}uzhan
                 K{\"u}lekci and Jorma Tarhio",
  title =        "Engineering order-preserving pattern matching with
                 {SIMD} parallelism",
  journal =      j-SPE,
  volume =       "47",
  number =       "5",
  pages =        "731--739",
  month =        may,
  year =         "2017",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.2433",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Mon Jul 24 08:17:11 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@Article{Chivers:2017:OUR,
  author =       "Howard Chivers",
  title =        "Optimising {Unicode} regular expression evaluation
                 with previews",
  journal =      j-SPE,
  volume =       "47",
  number =       "5",
  pages =        "669--688",
  month =        may,
  year =         "2017",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.2436",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Mon Jul 24 08:17:11 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unicode.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@Article{Colazzo:2017:LTM,
  author =       "Dario Colazzo and Giorgio Ghelli and Carlo Sartiani",
  title =        "Linear Time Membership in a Class of Regular
                 Expressions with Counting, Interleaving, and Unordered
                 Concatenation",
  journal =      j-TODS,
  volume =       "42",
  number =       "4",
  pages =        "24:1--24:??",
  month =        nov,
  year =         "2017",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/3132701",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Sat Nov 18 10:18:22 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  abstract =     "Regular Expressions (REs) are ubiquitous in database
                 and programming languages. While many applications make
                 use of REs extended with interleaving (shuffle) and
                 unordered concatenation operators, this extension badly
                 affects the complexity of basic operations, and,
                 especially, makes membership NP-hard, which is
                 unacceptable in most practical scenarios. In this
                 article, we study the problem of membership checking
                 for a restricted class of these extended REs, called
                 conflict-free REs, which are expressive enough to cover
                 the vast majority of real-world applications. We
                 present several polynomial algorithms for membership
                 checking over conflict-free REs. The algorithms are all
                 polynomial and differ in terms of adopted optimization
                 techniques and in the kind of supported operators. As a
                 particular application, we generalize the approach to
                 check membership of Extensible Markup Language trees
                 into a class of EDTDs (Extended Document Type
                 Definitions) that models the crucial aspects of DTDs
                 (Document Type Definitions) and XSD (XML Schema
                 Definitions) schemas. Results about an extensive
                 experimental analysis validate the efficiency of the
                 presented membership checking techniques.",
  acknowledgement = ack-nhfb,
  articleno =    "24",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
}

@Article{Czerwinski:2017:DDD,
  author =       "Wojciech Czerwi{\'n}ski and Claire David and Katja
                 Losemann and Wim Martens",
  title =        "Deciding definability by deterministic regular
                 expressions",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "88",
  number =       "??",
  pages =        "75--89",
  month =        sep,
  year =         "2017",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1016/j.jcss.2017.03.011",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:27:37 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000017300405",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Czerwinski:2017:OTP,
  author =       "Wojciech Czerwinski and Wim Martens and Matthias
                 Niewerth and Pawel Parys",
  title =        "Optimizing Tree Patterns for Querying Graph- and
                 Tree-Structured Data",
  journal =      j-SIGMOD,
  volume =       "46",
  number =       "1",
  pages =        "15--22",
  month =        mar,
  year =         "2017",
  CODEN =        "SRECD8",
  DOI =          "https://doi.org/10.1145/3093754.3093759",
  ISSN =         "0163-5808 (print), 1943-5835 (electronic)",
  ISSN-L =       "0163-5808",
  bibdate =      "Mon Jul 24 10:03:00 MDT 2017",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/sigmod.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Many of today's graph query languages are based on
                 graph pattern matching. We investigate optimization for
                 treeshaped patterns with transitive closure. Such
                 patterns are quite expressive, yet can be evaluated
                 efficiently. The minimization problem aims at reducing
                 the number of nodes in patterns and goes back to the
                 early 2000's. We provide an example showing that, in
                 contrast to earlier claims, tree patterns cannot be
                 minimized by deleting nodes only. The example resolves
                 the M ?/= NR problem, which asks if a tree pattern is
                 minimal if and only if it is nonredundant. The example
                 can be adapted to also understand the complexity of
                 minimization, which was another question that was open
                 since the early research on the problem. Interestingly,
                 the latter result also shows that, unless standard
                 complexity assumptions are false, more general
                 approaches for minimizing tree patterns are also bound
                 to fail in some cases.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGMOD Record (ACM Special Interest Group on
                 Management of Data)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J689",
}

@Article{Daykin:2017:ISF,
  author =       "Jacqueline W. Daykin and Bruce Watson",
  title =        "Indeterminate String Factorizations and Degenerate
                 Text Transformations",
  journal =      j-MATH-COMPUT-SCI,
  volume =       "11",
  number =       "2",
  pages =        "209--218",
  month =        jun,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1007/s11786-016-0285-x",
  ISSN =         "1661-8270 (print), 1661-8289 (electronic)",
  ISSN-L =       "1661-8270",
  bibdate =      "Mon Oct 2 10:24:35 MDT 2017",
  bibsource =    "http://link.springer.com/journal/11786/11/2;
                 https://www.math.utah.edu/pub/tex/bib/math-comput-sci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/content/pdf/10.1007/s11786-016-0285-x.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Mathematics in Computer Science",
  journal-URL =  "http://link.springer.com/journal/11786",
}

@Article{Fang:2017:SPM,
  author =       "Yan Fang and Victor V. Yashin and Brandon B. Jennings
                 and Donald M. Chiarulli and Steven P. Levitan",
  title =        "A Simplified Phase Model for Simulation of
                 Oscillator-Based Computing Systems",
  journal =      j-JETC,
  volume =       "13",
  number =       "2",
  pages =        "14:1--14:??",
  month =        mar,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2976743",
  ISSN =         "1550-4832",
  bibdate =      "Sat Apr 8 10:16:07 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jetc.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Building oscillator-based computing systems with
                 emerging nano-device technologies has become a
                 promising solution for unconventional computing tasks
                 like computer vision and pattern recognition. However,
                 simulation and analysis of these computing systems is
                 both time and compute intensive due to the nonlinearity
                 of new devices and the complex behavior of coupled
                 oscillators. In order to speed up the simulation of
                 coupled oscillator systems, we propose a simplified
                 phase model to perform phase and frequency
                 synchronization prediction based on a synthesis of
                 earlier models. Our model can predict the
                 frequency-locking behavior with several orders of
                 magnitude speedup compared to direct evaluation,
                 enabling the effective and efficient simulation of the
                 large numbers of oscillators required for practical
                 computing systems. We demonstrate the oscillator-based
                 computing paradigm with three applications, pattern
                 matching, convolution, and image segmentation. The
                 simulation with these models are respectively sped up
                 by factors of 780, 300, and 1120 in our tests.",
  acknowledgement = ack-nhfb,
  articleno =    "14",
  fjournal =     "ACM Journal on Emerging Technologies in Computing
                 Systems (JETC)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J967",
}

@Article{Ferdous:2017:SMC,
  author =       "S. M. Ferdous and M. Sohel Rahman",
  title =        "Solving the Minimum Common String Partition Problem
                 with the Help of Ants",
  journal =      j-MATH-COMPUT-SCI,
  volume =       "11",
  number =       "2",
  pages =        "233--249",
  month =        jun,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1007/s11786-017-0293-5",
  ISSN =         "1661-8270 (print), 1661-8289 (electronic)",
  ISSN-L =       "1661-8270",
  bibdate =      "Mon Oct 2 10:24:35 MDT 2017",
  bibsource =    "http://link.springer.com/journal/11786/11/2;
                 https://www.math.utah.edu/pub/tex/bib/math-comput-sci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Mathematics in Computer Science",
  journal-URL =  "http://link.springer.com/journal/11786",
}

@Article{Ganguly:2017:STT,
  author =       "Arnab Ganguly and Wing-Kai Hon and Rahul Shah and
                 Sharma V. Thankachan",
  title =        "Space-time trade-offs for finding shortest unique
                 substrings and maximal unique matches",
  journal =      j-THEOR-COMP-SCI,
  volume =       "700",
  number =       "??",
  pages =        "75--88",
  day =          "14",
  month =        nov,
  year =         "2017",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Fri Nov 3 16:52:27 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2015.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397517305832",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Gope:2017:ASS,
  author =       "Dibakar Gope and David J. Schlais and Mikko H.
                 Lipasti",
  title =        "Architectural Support for Server-Side {PHP}
                 Processing",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "45",
  number =       "2",
  pages =        "507--520",
  month =        may,
  year =         "2017",
  CODEN =        "CANED2",
  DOI =          "https://doi.org/10.1145/3140659.3080234",
  ISSN =         "0163-5964 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri Sep 15 11:09:14 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigarch.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "PHP is the dominant server-side scripting language
                 used to implement dynamic web content. Just-in-time
                 compilation, as implemented in Facebook's
                 state-of-the-art HipHopVM, helps mitigate the poor
                 performance of PHP, but substantial overheads remain,
                 especially for realistic, large-scale PHP applications.
                 This paper analyzes such applications and shows that
                 there is little opportunity for conventional
                 microarchitectural enhancements. Furthermore, prior
                 approaches for function-level hardware acceleration
                 present many challenges due to the extremely flat
                 distribution of execution time across a large number of
                 functions in these complex applications. In-depth
                 analysis reveals a more promising alternative: targeted
                 acceleration of four fine-grained PHP activities: hash
                 table accesses, heap management, string manipulation,
                 and regular expression handling. We highlight a set of
                 guiding principles and then propose and evaluate
                 inexpensive hardware accelerators for these activities
                 that accrue substantial performance and energy gains
                 across dozens of functions. Our results reflect an
                 average 17.93\% improvement in performance and 21.01\%
                 reduction in energy while executing these complex PHP
                 workloads on a state-of-the-art software and hardware
                 platform.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@Article{Groz:2017:ETM,
  author =       "B. Groz and S. Maneth",
  title =        "Efficient testing and matching of deterministic
                 regular expressions",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "89",
  number =       "??",
  pages =        "372--399",
  month =        nov,
  year =         "2017",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1016/j.jcss.2017.05.013",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Tue Jan 29 15:27:37 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000017300843",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Hasan:2017:PSA,
  author =       "Md. Mahbubul Hasan and A. S. M. Sohidull Islam and M.
                 Sohel Rahman and Ayon Sen",
  title =        "Palindromic Subsequence Automata and Longest Common
                 Palindromic Subsequence",
  journal =      j-MATH-COMPUT-SCI,
  volume =       "11",
  number =       "2",
  pages =        "219--232",
  month =        jun,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1007/s11786-016-0288-7",
  ISSN =         "1661-8270 (print), 1661-8289 (electronic)",
  ISSN-L =       "1661-8270",
  bibdate =      "Mon Oct 2 10:24:35 MDT 2017",
  bibsource =    "http://link.springer.com/journal/11786/11/2;
                 https://www.math.utah.edu/pub/tex/bib/math-comput-sci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Mathematics in Computer Science",
  journal-URL =  "http://link.springer.com/journal/11786",
}

@Article{Hirvola:2017:BPA,
  author =       "Tommi Hirvola and Jorma Tarhio",
  title =        "Bit-Parallel Approximate Matching of Circular Strings
                 with $k$ Mismatches",
  journal =      j-ACM-J-EXP-ALGORITHMICS,
  volume =       "22",
  number =       "??",
  pages =        "1.5:1--1.5:??",
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3129536",
  ISSN =         "1084-6654",
  bibdate =      "Mon Jan 22 09:52:54 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jea.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We consider approximate string matching of a circular
                 pattern consisting of the rotations of a pattern of
                 length $m$. From SBNDM and Tuned Shift-Add, we derive a
                 sublinear-time algorithm for searching a noncircular
                 pattern with $k$ allowed mismatches, which is extended
                 to the problem of approximate circular pattern matching
                 with $k$ mismatches. We prove that the presented
                 algorithms are average-optimal for $ m \cdot \lceil
                 \log_2 (k + 1) + 1 \rceil = O(w)$, where $w$ is the
                 size of the computer word in bits. Experiments
                 conducted under the aforementioned condition show that
                 the new $k$-mismatches algorithm for circular strings
                 outperforms previous solutions in practice. In
                 particular, our algorithm is the first nonfiltering
                 method for approximate circular string matching in
                 sublinear average time, which makes it more suitable
                 than earlier filtering methods for high error levels $
                 k / m$ and small alphabets.",
  acknowledgement = ack-nhfb,
  articleno =    "1.5",
  fjournal =     "Journal of Experimental Algorithmics (JEA)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J430",
}

@Article{Hon:2017:PAE,
  author =       "Wing-Kai Hon and Sharma V. Thankachan and Bojian Xu",
  title =        "In-place algorithms for exact and approximate shortest
                 unique substring problems",
  journal =      j-THEOR-COMP-SCI,
  volume =       "690",
  number =       "??",
  pages =        "12--25",
  day =          "22",
  month =        aug,
  year =         "2017",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Wed Aug 9 15:42:35 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2015.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397517304760",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Jiang:2017:CSM,
  author =       "Peng Jiang and Gagan Agrawal",
  title =        "Combining {SIMD} and Many\slash Multi-core Parallelism
                 for Finite State Machines with Enumerative
                 Speculation",
  journal =      j-SIGPLAN,
  volume =       "52",
  number =       "8",
  pages =        "179--191",
  month =        aug,
  year =         "2017",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3155284.3018760",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Dec 1 18:56:12 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Finite State Machine (FSM) is the key kernel behind
                 many popular applications, including regular expression
                 matching, text tokenization, and Huffman decoding.
                 Parallelizing FSMs is extremely difficult because of
                 the strong dependencies and unpredictable memory
                 accesses. Previous efforts have largely focused on
                 multi-core parallelization, and used different
                 approaches, including {\em speculative\/} and {\em
                 enumerative\/} execution, both of which have been
                 effective but also have limitations. With increasing
                 width and improving flexibility in SIMD instruction
                 sets, this paper focuses on combining SIMD and
                 multi/many-core parallelism for FSMs. We have developed
                 a novel strategy, called {\em enumerative speculation}.
                 Instead of speculating on a single state as in
                 speculative execution or enumerating all possible
                 states as in enumerative execution, our strategy
                 speculates transitions from several possible states,
                 reducing the prediction overheads of speculation
                 approach and the large amount of redundant work in the
                 enumerative approach. A simple lookback approach
                 produces a set of guessed states to achieve high
                 speculation success rates in our enumerative
                 speculation. We evaluate our method with four popular
                 FSM applications: Huffman decoding, regular expression
                 matching, HTML tokenization, and Div7. We obtain up to
                 2.5x speedup using SIMD on one core and up to 95x
                 combining SIMD with 60 cores of an Intel Xeon Phi. On a
                 single core, we outperform the best single-state
                 speculative execution version by an average of 1.6x,
                 and in combining SIMD and many-core parallelism,
                 outperform enumerative execution by an average of 2x.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "PPoPP '17 conference proceedings.",
}

@Article{Karkkainen:2017:LLZ,
  author =       "Juha K{\"a}rkk{\"a}inen and Dominik Kempa and Simon J.
                 Puglisi",
  title =        "Lazy {Lempel--Ziv} Factorization Algorithms",
  journal =      j-ACM-J-EXP-ALGORITHMICS,
  volume =       "21",
  number =       "1",
  pages =        "2.4:1--2.4:??",
  year =         "2016",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2699876",
  ISSN =         "1084-6654",
  bibdate =      "Sun Aug 20 07:54:41 MDT 2017",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/jea.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "For decades the Lempel--Ziv (LZ77) factorization has
                 been a cornerstone of data compression and string
                 processing algorithms, and uses for it are still being
                 uncovered. For example, LZ77 is central to several
                 recent text indexing data structures designed to search
                 highly repetitive collections. However, in many
                 applications computation of the factorization remains a
                 bottleneck in practice. In this article, we describe a
                 number of simple and fast LZ77 factorization
                 algorithms, which consistently outperform all previous
                 methods in practice, use less memory, and still offer
                 strong worst-case performance guarantees. A common
                 feature of the new algorithms is that they compute
                 longest common prefix information in a lazy fashion,
                 with the degree of laziness in preprocessing
                 characterizing different algorithms.",
  acknowledgement = ack-nhfb,
  articleno =    "2.4",
  fjournal =     "Journal of Experimental Algorithmics (JEA)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J430",
}

@Article{Kim:2017:MES,
  author =       "Minchul Kim and Younghoon Jung and Junghwan Song",
  title =        "A modified exhaustive search on a password system
                 using {SHA-1}",
  journal =      j-INT-J-INFO-SEC,
  volume =       "16",
  number =       "3",
  pages =        "263--269",
  month =        jun,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1007/s10207-016-0332-2",
  ISSN =         "1615-5262 (print), 1615-5270 (electronic)",
  ISSN-L =       "1615-5262",
  bibdate =      "Tue Jan 23 16:01:47 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/intjinfosec.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/s10207-016-0332-2",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Information Security",
  journal-URL =  "https://link.springer.com/journal/10207",
  keywords =     "Exhaustive search; Microsoft Office; Password
                 cracking; Security evaluation; SHA-1",
}

@Article{Kim:2017:RTO,
  author =       "Jinil Kim and Amihood Amir and Joong Chae Na and
                 Kunsoo Park and Jeong Seop Sim",
  title =        "On Representations of Ternary Order Relations in
                 Numeric Strings",
  journal =      j-MATH-COMPUT-SCI,
  volume =       "11",
  number =       "2",
  pages =        "127--136",
  month =        jun,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1007/s11786-016-0282-0",
  ISSN =         "1661-8270 (print), 1661-8289 (electronic)",
  ISSN-L =       "1661-8270",
  bibdate =      "Mon Oct 2 10:24:35 MDT 2017",
  bibsource =    "http://link.springer.com/journal/11786/11/2;
                 https://www.math.utah.edu/pub/tex/bib/math-comput-sci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Mathematics in Computer Science",
  journal-URL =  "http://link.springer.com/journal/11786",
}

@Book{Klabnik:2017:RPL,
  author =       "Steve Klabnik and Carol Nichols",
  title =        "The {Rust} Programming Language",
  publisher =    pub-NO-STARCH,
  address =      pub-NO-STARCH:adr,
  pages =        "xxvii + 519",
  year =         "2017",
  ISBN =         "1-59327-828-4 (paperback), 1-59327-851-9 (e-pub)",
  ISBN-13 =      "978-1-59327-828-1 (paperback), 978-1-59327-851-9
                 (e-pub)",
  LCCN =         "QA76.73.R87 K53 2018",
  bibdate =      "Thu Oct 31 18:42:15 MDT 2019",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "\booktitle{The Rust Programming Language} is the
                 official book on Rust; a community-developed, systems
                 programming language that runs blazingly fast, prevents
                 segfaults, and guarantees thread safety. Rust's memory
                 safety guarantees, enforced at compile time, safeguard
                 your programs against the many problems that pervade
                 other systems languages. Rust offers the control and
                 performance of a low-level language with the helpful
                 abstractions of a high level one, and does this all
                 without having a garbage collector. These
                 characteristics make Rust useful for embedding in other
                 languages, programs with specific space and time
                 requirements, and writing low-level code, like device
                 drivers and operating systems. \booktitle{The Rust
                 Programming Language} begins with a quick hands-on
                 project to introduce the basics, then explores key
                 concepts in depth, such as ownership, the type system,
                 error handling, and fearless concurrency. Detailed
                 explanations of Rust-oriented takes on topics like
                 pattern matching, iterators, and smart pointers combine
                 with examples and exercises to take you from theory to
                 practice. In addition to its thorough coverage of more
                 granular topics, \booktitle{The Rust Programming
                 Language} will show you how to: * Grasp important
                 concepts unique to Rust like ownership, borrowing, and
                 lifetimes; * Use Cargo, Rust's built-in package
                 manager, to build your code, including downloading and
                 building dependencies; * Effectively use Rust's
                 zero-cost abstractions and learn to build your own.
                 Developed with help from the community, \booktitle{The
                 Rust Programming Language} is your official guide to
                 becoming a productive Rust programmer. The official
                 guide to Rust, a community-developed, systems
                 programming language. Begins with a hands-on project to
                 introduce the basics, then explores key concepts in
                 depth''",
  acknowledgement = ack-nhfb,
  libnote =      "Not in my library.",
  subject =      "Computer programming; Programming languages
                 (Electronic computers); Computer programming.;
                 Programming languages (Electronic computers)",
  tableofcontents = "Foreword / by Nicholas Matsakis and Aaron Turon \\
                 Introduction \\
                 1: Getting Started \\
                 2: A Quick Tutorial \\
                 Guessing Game \\
                 3: Common Programming Concepts \\
                 4: Understanding Ownership \\
                 5: Structs \\
                 6: Enums and Pattern Matching \\
                 7: Modules \\
                 8: Common Collections \\
                 9: Error Handling \\
                 10: Generic Types, Traits, and Lifetimes \\
                 11: Testing \\
                 12: An Input\slash Output Project \\
                 13: Functional Language Features in Rust \\
                 Iterators and Closures \\
                 14: More about Cargo and Crates io \\
                 15: Smart Pointers \\
                 16: Concurrency \\
                 17: Is Rust Object Oriented? \\
                 18: Patterns \\
                 19: More About Lifetimes \\
                 20: Advanced Type System Features \\
                 Appendix A: Keywords \\
                 Appendix B: Operators \\
                 Appendix C: Derivable Traits \\
                 Appendix D: Nightly Rust\ \\
                 Nightly Rust \\
                 Glossary",
}

@Article{Kociumaka:2017:EIJ,
  author =       "Tomasz Kociumaka and Jakub Radoszewski and Wojciech
                 Rytter",
  title =        "Efficient Indexes for Jumbled Pattern Matching with
                 Constant-Sized Alphabet",
  journal =      j-ALGORITHMICA,
  volume =       "77",
  number =       "4",
  pages =        "1194--1215",
  month =        apr,
  year =         "2017",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-016-0140-0",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Sat Mar 11 18:43:05 MST 2017",
  bibsource =    "http://link.springer.com/journal/453/77/4;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/content/pdf/10.1007/s00453-016-0140-0.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Misc{Kuklewicz:2017:RP,
  author =       "Chris Kuklewicz",
  title =        "Regex {Posix}",
  howpublished = "Web site",
  day =          "10",
  month =        mar,
  year =         "2017",
  bibdate =      "Fri Sep 22 14:16:37 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "The site compares several implementations of regular
                 expression matching against the POSIX specification,
                 and documents errors in all of the implementations.",
  URL =          "https://wiki.haskell.org/Regex_Posix",
  acknowledgement = ack-nhfb,
  remark =       "Original version dated 2 February 2009",
}

@Article{Lancia:2017:SSS,
  author =       "Giuseppe Lancia and Luke Mathieson and Pablo Moscato",
  title =        "Separating sets of strings by finding matching
                 patterns is almost always hard",
  journal =      j-THEOR-COMP-SCI,
  volume =       "665",
  number =       "??",
  pages =        "73--86",
  month =        "????",
  year =         "2017",
  CODEN =        "TCSCDI",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Fri Feb 3 18:54:19 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2015.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397516307460",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975/",
}

@Article{Lee:2017:DPD,
  author =       "En-Shiun Annie Lee and Ho-Yin Antonio Sze-To and
                 Man-Hon Wong and Kwong-Sak Leung and Terrence Chi-Kong
                 Lau and Andrew K. C. Wong",
  title =        "Discovering Protein-{DNA} Binding Cores by Aligned
                 Pattern Clustering",
  journal =      j-TCBB,
  volume =       "14",
  number =       "2",
  pages =        "254--263",
  month =        mar,
  year =         "2017",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2015.2474376",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Mon Jun 5 18:41:07 MDT 2017",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "Understanding binding cores is of fundamental
                 importance in deciphering Protein-DNA TF-TFBS binding
                 and gene regulation. Limited by expensive experiments,
                 it is promising to discover them with variations
                 directly from sequence data. Although existing
                 computational methods have produced satisfactory
                 results, they are one-to-one mappings with no
                 site-specific information on residue/nucleotide
                 variations, where these variations in binding cores may
                 impact binding specificity. This study presents a new
                 representation for modeling binding cores by
                 incorporating variations and an algorithm to discover
                 them from only sequence data. Our algorithm takes
                 protein and DNA sequences from TRANSFAC a Protein-DNA
                 Binding Database as input; discovers from both sets of
                 sequences conserved regions in Aligned Pattern Clusters
                 APCs; associates them as Protein-DNA Co-Occurring APCs;
                 ranks the Protein-DNA Co-Occurring APCs according to
                 their co-occurrence, and among the top ones, finds
                 three-dimensional structures to support each binding
                 core candidate. If successful, candidates are verified
                 as binding cores. Otherwise, homology modeling is
                 applied to their close matches in PDB to attain new
                 chemically feasible binding cores. Our algorithm
                 obtains binding cores with higher precision and much
                 faster runtime $ \geq $ 1,600x than that of its
                 contemporaries, discovering candidates that do not
                 co-occur as one-to-one associated patterns in the raw
                 data. Availability:
                 http://www.pami.uwaterloo.ca/~ealee/files/tcbbPnDna2015/Release.zip.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Lee:2017:FPM,
  author =       "Chun-Liang Lee and Tzu-Hao Yang",
  title =        "A Flexible Pattern-Matching Algorithm for Network
                 Intrusion Detection Systems Using Multi-Core
                 Processors",
  journal =      j-ALGORITHMS-BASEL,
  volume =       "10",
  number =       "2",
  month =        jun,
  year =         "2017",
  CODEN =        "ALGOCH",
  DOI =          "https://doi.org/10.3390/a10020058",
  ISSN =         "1999-4893 (electronic)",
  ISSN-L =       "1999-4893",
  bibdate =      "Fri May 3 13:50:13 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/algorithms.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.mdpi.com/1999-4893/10/2/58",
  acknowledgement = ack-nhfb,
  articleno =    "58",
  fjournal =     "Algorithms (Basel)",
  journal-URL =  "https://www.mdpi.com/journal/algorithms",
  ORCID-numbers = "Chun-Liang Lee/0000-0002-8454-5029",
  pagecount =    "??",
  pubdates =     "Received: 15 March 2017 / Revised: 17 May 2017 /
                 Accepted: 20 May 2017 / Published: 24 May 2017",
}

@Article{Lee:2017:SRE,
  author =       "Mina Lee and Sunbeom So and Hakjoo Oh",
  title =        "Synthesizing regular expressions from examples for
                 introductory automata assignments",
  journal =      j-SIGPLAN,
  volume =       "52",
  number =       "3",
  pages =        "70--80",
  month =        mar,
  year =         "2017",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3093335.2993244",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Sep 16 10:18:15 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We present a method for synthesizing regular
                 expressions for introductory automata assignments.
                 Given a set of positive and negative examples, the
                 method automatically synthesizes the simplest possible
                 regular expression that accepts all the positive
                 examples while rejecting all the negative examples. The
                 key novelty is the search-based synthesis algorithm
                 that leverages ideas from over- and
                 under-approximations to effectively prune out a large
                 search space. We have implemented our technique in a
                 tool and evaluated it with non-trivial benchmark
                 problems that students often struggle with. The results
                 show that our system can synthesize desired regular
                 expressions in 6.7 seconds on the average, so that it
                 can be interactively used by students to enhance their
                 understanding of regular expressions.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "GPCE '16 conference proceedings.",
}

@Article{Lin:2017:IID,
  author =       "Jie Lin and Yue Jiang and E. James Harner and Bing-Hua
                 Jiang and Don Adjeroh",
  title =        "{IDPM}: An Improved Degenerate Pattern Matching
                 Algorithm for Biological Sequences",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "28",
  number =       "7",
  pages =        "889--??",
  month =        nov,
  year =         "2017",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054117500307",
  ISSN =         "0129-0541",
  ISSN-L =       "0129-0541",
  bibdate =      "Sat Feb 24 10:21:24 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Lin:2017:LBH,
  author =       "Yi-Shan Lin and Chun-Liang Lee and Yaw-Chung Chen",
  title =        "Length-Bounded Hybrid {CPU\slash GPU} Pattern Matching
                 Algorithm for Deep Packet Inspection",
  journal =      j-ALGORITHMS-BASEL,
  volume =       "10",
  number =       "1",
  month =        mar,
  year =         "2017",
  CODEN =        "ALGOCH",
  DOI =          "https://doi.org/10.3390/a10010016",
  ISSN =         "1999-4893 (electronic)",
  ISSN-L =       "1999-4893",
  bibdate =      "Fri May 3 13:50:13 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/algorithms.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.mdpi.com/1999-4893/10/1/16",
  acknowledgement = ack-nhfb,
  articleno =    "16",
  fjournal =     "Algorithms (Basel)",
  journal-URL =  "https://www.mdpi.com/journal/algorithms",
  ORCID-numbers = "Yi-Shan Lin/0000-0002-6736-949X; Chun-Liang
                 Lee/0000-0002-8454-5029",
  pagecount =    "??",
  pubdates =     "Received: 29 November 2016 / Revised: 5 January 2017 /
                 Accepted: 11 January 2017 / Published: 18 January
                 2017",
}

@Article{Lin:2017:PHB,
  author =       "Cheng-Hung Lin and Jin-Cheng Li and Chen-Hsiung Liu
                 and Shih-Chieh Chang",
  title =        "Perfect Hashing Based Parallel Algorithms for Multiple
                 String Matching on Graphic Processing Units",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "28",
  number =       "9",
  pages =        "2639--2650",
  month =        sep,
  year =         "2017",
  CODEN =        "ITDSEO",
  DOI =          "https://doi.org/10.1109/TPDS.2017.2674664",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Thu Aug 17 10:20:52 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/ieeetranspardistsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.computer.org/csdl/trans/td/2017/09/07864442-abs.html",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://www.computer.org/tpds/archives.htm",
}

@Article{Mamouras:2017:SMS,
  author =       "Konstantinos Mamouras and Mukund Raghothaman and
                 Rajeev Alur and Zachary G. Ives and Sanjeev Khanna",
  title =        "{StreamQRE}: modular specification and efficient
                 evaluation of quantitative queries over streaming
                 data",
  journal =      j-SIGPLAN,
  volume =       "52",
  number =       "6",
  pages =        "693--708",
  month =        jun,
  year =         "2017",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3140587.3062369",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Sep 16 10:18:17 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Real-time decision making in emerging IoT applications
                 typically relies on computing quantitative summaries of
                 large data streams in an efficient and incremental
                 manner. To simplify the task of programming the desired
                 logic, we propose StreamQRE, which provides natural and
                 high-level constructs for processing streaming data.
                 Our language has a novel integration of linguistic
                 constructs from two distinct programming paradigms:
                 streaming extensions of relational query languages and
                 quantitative extensions of regular expressions. The
                 former allows the programmer to employ relational
                 constructs to partition the input data by keys and to
                 integrate data streams from different sources, while
                 the latter can be used to exploit the logical hierarchy
                 in the input stream for modular specifications. We
                 first present the core language with a small set of
                 combinators, formal semantics, and a decidable type
                 system. We then show how to express a number of common
                 patterns with illustrative examples. Our compilation
                 algorithm translates the high-level query into a
                 streaming algorithm with precise complexity bounds on
                 per-item processing time and total memory footprint. We
                 also show how to integrate approximation algorithms
                 into our framework. We report on an implementation in
                 Java, and evaluate it with respect to existing
                 high-performance engines for processing streaming data.
                 Our experimental evaluation shows that (1) StreamQRE
                 allows more natural and succinct specification of
                 queries compared to existing frameworks, (2) the
                 throughput of our implementation is higher than
                 comparable systems (for example, two-to-four times
                 greater than RxJava), and (3) the approximation
                 algorithms supported by our implementation can lead to
                 substantial memory savings.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "PLDI '17 conference proceedings.",
}

@Article{Manilov:2017:FRS,
  author =       "Stanislav Manilov and Bj{\"o}rn Franke and Anthony
                 Magrath and Cedric Andrieu",
  title =        "{Free Rider}: a Source-Level Transformation Tool for
                 Retargeting Platform-Specific Intrinsic Functions",
  journal =      j-TECS,
  volume =       "16",
  number =       "2",
  pages =        "38:1--38:??",
  month =        apr,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/2990194",
  ISSN =         "1539-9087 (print), 1558-3465 (electronic)",
  ISSN-L =       "1539-9087",
  bibdate =      "Mon Jul 24 09:51:12 MDT 2017",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tecs.bib",
  abstract =     "Short-vector S imd and Dsp instructions are popular
                 extensions to common Isas. These extensions deliver
                 excellent performance and compact code for some
                 compute-intensive applications, but they require
                 specialized compiler support. To enable the programmer
                 to explicitly request the use of such an instruction,
                 many C compilers provide platform-specific intrinsic
                 functions, whose implementation is handled specially by
                 the compiler. The use of such intrinsics, however,
                 inevitably results in nonportable code. In this
                 article, we develop a novel methodology for retargeting
                 such nonportable code, which maps intrinsics from one
                 platform to another, taking advantage of similar
                 intrinsics on the target platform. We employ a
                 description language to specify the signature and
                 semantics of intrinsics and perform graph-based pattern
                 matching and high-level code transformations to derive
                 optimized implementations exploiting the target's
                 intrinsics, wherever possible. We demonstrate the
                 effectiveness of our new methodology, implemented in
                 the Free Rider tool, by automatically retargeting
                 benchmarks derived from OpenCV samples and a complex
                 embedded application optimized to run on an Arm
                 Cortex-M4 to an Intel Edison module with Sse4.2
                 instructions (and vice versa). We achieve a speedup of
                 up to 3.73 over a plain C baseline, and on average
                 96.0\% of the speedup of manually ported and optimized
                 versions of the benchmarks.",
  acknowledgement = ack-nhfb,
  ajournal =     "ACM Trans. Embed. Comput. Syst.",
  articleno =    "38",
  fjournal =     "ACM Transactions on Embedded Computing Systems",
  journal-URL =  "https://dl.acm.org/loi/tecs",
}

@Article{Matsubara:2017:NDI,
  author =       "Yasuko Matsubara and Yasushi Sakurai and B. Aditya
                 Prakash and Lei Li and Christos Faloutsos",
  title =        "Nonlinear Dynamics of Information Diffusion in Social
                 Networks",
  journal =      j-TWEB,
  volume =       "11",
  number =       "2",
  pages =        "11:1--11:??",
  month =        may,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3057741",
  ISSN =         "1559-1131 (print), 1559-114X (electronic)",
  ISSN-L =       "1559-1131",
  bibdate =      "Thu Jul 13 14:33:38 MDT 2017",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tweb.bib",
  abstract =     "The recent explosion in the adoption of search engines
                 and new media such as blogs and Twitter have
                 facilitated the faster propagation of news and rumors.
                 How quickly does a piece of news spread over these
                 media? How does its popularity diminish over time? Does
                 the rising and falling pattern follow a simple
                 universal law? In this article, we propose SpikeM, a
                 concise yet flexible analytical model of the rise and
                 fall patterns of information diffusion. Our model has
                 the following advantages. First, unification power: it
                 explains earlier empirical observations and generalizes
                 theoretical models including the SI and SIR models. We
                 provide the threshold of the take-off versus die-out
                 conditions for SpikeM and discuss the generality of our
                 model by applying it to an arbitrary graph topology.
                 Second, practicality: it matches the observed behavior
                 of diverse sets of real data. Third, parsimony: it
                 requires only a handful of parameters. Fourth,
                 usefulness: it makes it possible to perform analytic
                 tasks such as forecasting, spotting anomalies, and
                 interpretation by reverse engineering the system
                 parameters of interest (quality of news, number of
                 interested bloggers, etc.). We also introduce an
                 efficient and effective algorithm for the real-time
                 monitoring of information diffusion, namely
                 SpikeStream, which identifies multiple diffusion
                 patterns in a large collection of online event streams.
                 Extensive experiments on real datasets demonstrate that
                 SpikeM accurately and succinctly describes all patterns
                 of the rise and fall spikes in social networks.",
  acknowledgement = ack-nhfb,
  articleno =    "11",
  fjournal =     "ACM Transactions on the Web (TWEB)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1062",
}

@Article{Mignot:2017:TAC,
  author =       "Ludovic Mignot and Nadia Ouali Sebti and Djelloul
                 Ziadi",
  title =        "Tree Automata Constructions from Regular Expressions:
                 a Comparative Study",
  journal =      j-FUND-INFO,
  volume =       "156",
  number =       "1",
  pages =        "69--94",
  month =        "????",
  year =         "2017",
  CODEN =        "FUMAAJ",
  DOI =          "https://doi.org/10.3233/FI-2017-1598",
  ISSN =         "0169-2968 (print), 1875-8681 (electronic)",
  ISSN-L =       "0169-2968",
  bibdate =      "Fri Sep 21 07:16:21 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fundinfo2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Fundamenta Informaticae",
  journal-URL =  "http://content.iospress.com/journals/fundamenta-informaticae",
}

@Article{Mitani:2017:PEA,
  author =       "Yasuaki Mitani and Fumihiko Ino and Kenichi Hagihara",
  title =        "Parallelizing Exact and Approximate String Matching
                 via Inclusive Scan on a {GPU}",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "28",
  number =       "7",
  pages =        "1989--2002",
  month =        jul,
  year =         "2017",
  CODEN =        "ITDSEO",
  DOI =          "https://doi.org/10.1109/TPDS.2016.2645222",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Thu Jun 15 05:46:52 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranspardistsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.computer.org/csdl/trans/td/2017/07/07797444-abs.html",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://www.computer.org/tpds/archives.htm",
}

@Article{Montanaro:2017:QPM,
  author =       "Ashley Montanaro",
  title =        "Quantum Pattern Matching Fast on Average",
  journal =      j-ALGORITHMICA,
  volume =       "77",
  number =       "1",
  pages =        "16--39",
  month =        jan,
  year =         "2017",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-015-0060-4",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Sat Mar 11 18:43:04 MST 2017",
  bibsource =    "http://link.springer.com/journal/453/77/1;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/s00453-015-0060-4",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Moreira:2017:FCR,
  author =       "Rubens E. A. Moreira and Sylvain Collange and Fernando
                 Magno Quint{\~a}o Pereira",
  title =        "Function Call Re-Vectorization",
  journal =      j-SIGPLAN,
  volume =       "52",
  number =       "8",
  pages =        "313--326",
  month =        aug,
  year =         "2017",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3155284.3018751",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Dec 1 18:56:12 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Programming languages such as C for CUDA, OpenCL or
                 ISPC have contributed to increase the programmability
                 of SIMD accelerators and graphics processing units.
                 However, these languages still lack the flexibility
                 offered by low-level SIMD programming on explicit
                 vectors. To close this expressiveness gap while
                 preserving performance, this paper introduces the
                 notion of \ourinvention{} (CREV). CREV allows changing
                 the dimension of vectorization during the execution of
                 a kernel, exposing it as a nested parallel kernel call.
                 CREV affords programmability close to dynamic
                 parallelism, a feature that allows the invocation of
                 kernels from inside kernels, but at much lower cost. In
                 this paper, we present a formal semantics of CREV, and
                 an implementation of it on the ISPC compiler. We have
                 used CREV to implement some classic algorithms,
                 including string matching, depth first search and
                 Bellman-Ford, with minimum effort. These algorithms,
                 once compiled by ISPC to Intel-based vector
                 instructions, are as fast as state-of-the-art
                 implementations, yet much simpler. Thus, CREV gives
                 developers the elegance of dynamic programming, and the
                 performance of explicit SIMD programming.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "PPoPP '17 conference proceedings.",
}

@Article{Nicolae:2017:PMM,
  author =       "Marius Nicolae and Sanguthevar Rajasekaran",
  title =        "On pattern matching with $k$ mismatches and few don't
                 cares",
  journal =      j-INFO-PROC-LETT,
  volume =       "118",
  number =       "??",
  pages =        "78--82",
  month =        feb,
  year =         "2017",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Nov 22 15:19:12 MST 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019016301442",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190/",
}

@Article{Nsira:2017:LSM,
  author =       "Nadia Ben Nsira and Mourad Elloumi and Thierry
                 Lecroq",
  title =        "On-line String Matching in Highly Similar {DNA}
                 Sequences",
  journal =      j-MATH-COMPUT-SCI,
  volume =       "11",
  number =       "2",
  pages =        "113--126",
  month =        jun,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1007/s11786-016-0280-2",
  ISSN =         "1661-8270 (print), 1661-8289 (electronic)",
  ISSN-L =       "1661-8270",
  bibdate =      "Mon Oct 2 10:24:35 MDT 2017",
  bibsource =    "http://link.springer.com/journal/11786/11/2;
                 https://www.math.utah.edu/pub/tex/bib/math-comput-sci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Mathematics in Computer Science",
  journal-URL =  "http://link.springer.com/journal/11786",
}

@Article{Omar:2017:PSF,
  author =       "Cyrus Omar and Jonathan Aldrich",
  title =        "Programmable semantic fragments: the design and
                 implementation of {\tt typy}",
  journal =      j-SIGPLAN,
  volume =       "52",
  number =       "3",
  pages =        "81--92",
  month =        mar,
  year =         "2017",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3093335.2993245",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Sep 16 10:18:15 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This paper introduces typy, a statically typed
                 programming language embedded by reflection into
                 Python. typy features a fragmentary semantics, i.e. it
                 delegates semantic control over each term, drawn from
                 Python's fixed concrete and abstract syntax, to some
                 contextually relevant user-defined semantic fragment.
                 The delegated fragment programmatically (1) typechecks
                 the term (following a bidirectional protocol); and (2)
                 assigns dynamic meaning to the term by computing a
                 translation to Python. We argue that this design is
                 expressive with examples of fragments that express the
                 static and dynamic semantics of (1) functional records;
                 (2) labeled sums (with nested pattern matching a la
                 ML); (3) a variation on JavaScript's prototypal object
                 system; and (4) typed foreign interfaces to Python and
                 OpenCL. These semantic structures are, or would need to
                 be, defined primitively in conventionally structured
                 languages. We further argue that this design is
                 compositionally well-behaved. It avoids the expression
                 problem and the problems of grammar composition because
                 the syntax is fixed. Moreover, programs are
                 semantically stable under fragment composition (i.e.
                 defining a new fragment will not change the meaning of
                 existing program components.)",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
  remark =       "GPCE '16 conference proceedings.",
}

@Article{Park:2017:PSS,
  author =       "Changhee Park and Hyeonseung Im and Sukyoung Ryu",
  title =        "Precise and scalable static analysis of {jQuery} using
                 a regular expression domain",
  journal =      j-SIGPLAN,
  volume =       "52",
  number =       "2",
  pages =        "25--36",
  month =        feb,
  year =         "2017",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3093334.2989228",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Sep 16 10:18:15 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "jQuery is the most popular JavaScript library but the
                 state-of-the-art static analyzers for JavaScript
                 applications fail to analyze simple programs that use
                 jQuery. In this paper, we present a novel abstract
                 string domain whose elements are simple regular
                 expressions that can represent prefix, infix, and
                 postfix substrings of a string and even their sets. We
                 formalize the new domain in the abstract interpretation
                 framework with abstract models of strings and objects
                 commonly used in the existing JavaScript analyzers. For
                 practical use of the domain, we present polynomial-time
                 inclusion decision rules between the regular
                 expressions and prove that the rules exactly capture
                 the actual inclusion relation. We have implemented the
                 domain as an extension of the open-source JavaScript
                 analyzer, SAFE, and we show that the extension
                 significantly improves the scalability and precision of
                 the baseline analyzer in analyzing programs that use
                 jQuery.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "DLS '16 conference proceedings.",
}

@Article{Parreaux:2017:QSR,
  author =       "Lionel Parreaux and Amir Shaikhha and Christoph E.
                 Koch",
  title =        "Quoted staged rewriting: a practical approach to
                 library-defined optimizations",
  journal =      j-SIGPLAN,
  volume =       "52",
  number =       "12",
  pages =        "131--145",
  month =        dec,
  year =         "2017",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3170492.3136043",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Dec 1 18:56:14 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Staging has proved a successful technique for
                 programmatically removing code abstractions, thereby
                 allowing for faster program execution while retaining a
                 high-level interface for the programmer. Unfortunately,
                 techniques based on staging suffer from a number of
                 problems --- ranging from practicalities to fundamental
                 limitations --- which have prevented their widespread
                 adoption. We introduce Quoted Staged Rewriting (QSR),
                 an approach that uses type-safe, pattern
                 matching-enabled quasiquotes to define optimizations.
                 The approach is ``staged'' in two ways: first, rewrite
                 rules can execute arbitrary code during pattern
                 matching and code reconstruction, leveraging the power
                 and flexibility of staging; second, library designers
                 can orchestrate the application of successive rewriting
                 phases (stages). The advantages of using
                 quasiquote-based rewriting are that library designers
                 never have to deal directly with the intermediate
                 representation (IR), and that it allows for
                 non-intrusive optimizations --- in contrast with
                 staging, it is not necessary to adapt the entire
                 library and user programs to accommodate optimizations.
                 We show how Squid, a Scala macro-based framework,
                 enables QSR and renders library-defined optimizations
                 more practical than ever before: library designers
                 write domain-specific optimizers that users invoke
                 transparently on delimited portions of their code base.
                 As a motivating example we describe an implementation
                 of stream fusion (a well-known deforestation technique)
                 that is both simpler and more powerful than the state
                 of the art, and can readily be used by Scala
                 programmers with no knowledge of metaprogramming.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "GPCE '17 conference proceedings.",
}

@Article{Prusa:2017:CMS,
  author =       "Daniel Pr{\r{u}}{\v{s}}a",
  title =        "Complexity of Matching Sets of Two-Dimensional
                 Patterns by Two-Dimensional On-Line Tessellation
                 Automaton",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "28",
  number =       "5",
  pages =        "623--??",
  month =        aug,
  year =         "2017",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S012905411740010X",
  ISSN =         "0129-0541",
  ISSN-L =       "0129-0541",
  bibdate =      "Sat Dec 16 08:38:08 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Qiao:2017:SMC,
  author =       "Miao Qiao and Hao Zhang and Hong Cheng",
  title =        "Subgraph matching: on compression and computation",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "11",
  number =       "2",
  pages =        "176--188",
  month =        oct,
  year =         "2017",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3149193.3149198",
  ISSN =         "2150-8097",
  bibdate =      "Thu Nov 30 06:16:03 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "Subgraph matching finds a set I of all occurrences of
                 a pattern graph in a target graph. It has a wide range
                 of applications while suffers an expensive computation.
                 This efficiency issue has been studied extensively. All
                 existing approaches, however, turn a blind eye to the
                 output crisis, that is, when the system has to
                 materialize I as a preprocessing/intermediate/final
                 result or an index, the cost of the export of I
                 dominates the overall cost, which could be prohibitive
                 even for a small pattern graph. This paper studies
                 subgraph matching via two problems. (1) Is there an
                 ideal compression of I? (2) Will the compression of I
                 reversely boost the computation of I? For the problem
                 (1), we propose a technique called VCBC to compress I
                 to code(I) which serves effectively the same as I. For
                 problem (2), we propose a subgraph matching computation
                 framework CBF which computes code(I) instead of I to
                 bring down the output cost. CBF further reduces the
                 overall cost by reducing the intermediate results.
                 Extensive experiments show that the compression ratio
                 of VCBC can be up to $ 10^5 $ which also significantly
                 lowers the output cost of CBF. Extensive experiments
                 show the superior performance of CBF over existing
                 approaches.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Remy:2017:OEP,
  author =       "Didier R{\'e}my",
  title =        "{Ornaments}: exploiting parametricity for safer, more
                 automated code refactorization and code reuse (invited
                 talk)",
  journal =      j-SIGPLAN,
  volume =       "52",
  number =       "10",
  pages =        "1--1",
  month =        oct,
  year =         "2017",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3156695.3127333",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Dec 1 18:56:13 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Inductive datatypes and parametric polymorphism are
                 two key features introduced in the ML family of
                 languages, which have already been widely exploited for
                 structuring programs: Haskell and ML programs are often
                 more elegant and more correct by construction. Still,
                 we sometimes need code to be refactored or adapted to
                 be reused in a slightly different context. While the
                 type system is considerably helpful in these
                 situations, by automatically locating type-inconsistent
                 program points or incomplete pattern matchings, this
                 process could be made safer and more automated by
                 further exploiting parametricity. We propose a
                 posteriori program abstraction as a principle for such
                 code transformations. We apply this principle to
                 ornamentation which is a way to describe changes in
                 datatype definitions reorganizing, adding, or dropping
                 some pieces of data so that functions operating on the
                 bare definition can be partially and sometimes totally
                 lifted into functions operating on the ornamented
                 structure. We view ornamentation as an a posteriori
                 abstraction of the bare code, called a generic lifting,
                 which can then be instantiated into a concrete lifting,
                 meta-reduced, and simplified. Both the source and
                 target code live in core ML while the lifted code lives
                 in a meta-language above ML equipped with a limited
                 form of dependent types needed to capture some
                 invariants of the generic lifting so that the concrete
                 lifting can be simplified back into an ML program.
                 Importantly, the lifted code can be closely related to
                 the bare code, using logical relations thanks to the
                 generic lifting detour. Different, typical use cases of
                 ornaments will be shown and the approach will be mainly
                 illustrated on examples.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "Haskell '17 conference proceedings.",
}

@InProceedings{Ribeiro:2017:CBC,
  author =       "Rodrigo Ribeiro and Andr{\'e} {Du Bois}",
  editor =       "Fabio Mascarenhas",
  booktitle =    "Proceedings of the {21st Brazilian Symposium on
                 Programming Languages: Fortaleza CE, Brazil, September
                 21--22, 2017}",
  title =        "Certified Bit-Coded Regular Expression Parsing",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  bookpages =    "87",
  pages =        "1--8",
  month =        sep,
  year =         "2017",
  DOI =          "https://doi.org/10.1145/3125374.3125381",
  ISBN =         "1-4503-5389-4",
  ISBN-13 =      "978-1-4503-5389-2",
  bibdate =      "Fri Sep 22 15:17:26 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We describe the formalization of a regular expression
                 (RE) parsing algorithm that produces a bit
                 representation of its parse tree in the dependently
                 typed language Agda. The algorithm computes bit-codes
                 using Brzozowski derivatives and we prove that produced
                 codes are equivalent to parse trees ensuring soundness
                 and completeness w.r.t an inductive RE semantics. We
                 include the certified algorithm in a tool developed by
                 us, named verigrep, for regular expression based search
                 in the style of the well known GNU grep. Practical
                 experiments conducted with this tool are reported.",
  acknowledgement = ack-nhfb,
}

@Article{Rottenstreich:2017:ORC,
  author =       "Ori Rottenstreich and Janos Tapolcai",
  title =        "Optimal Rule Caching and Lossy Compression for Longest
                 Prefix Matching",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "25",
  number =       "2",
  pages =        "864--878",
  month =        apr,
  year =         "2017",
  CODEN =        "IEANEP",
  DOI =          "https://doi.org/10.1109/TNET.2016.2611482",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Mon Jun 5 18:46:21 MDT 2017",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Packet classification is a building block in many
                 network services, such as routing, monitoring, and
                 policy enforcement. In commodity switches,
                 classification is often performed by memory components
                 of various rule matching patterns longest prefix match,
                 ternary matches, exact match, and so on. The memory
                 components are fast but expensive and power-hungry with
                 power consumption proportional to their size. In this
                 paper, we study the applicability of rule caching and
                 lossy compression to create packet classifiers
                 requiring much less memory than the theoretical size
                 limits of the semantically-equivalent representations,
                 enabling significant reduction in their cost and power
                 consumption. This paper focuses on the longest prefix
                 matching. Our objective is to find a limited-size
                 longest prefix match classifier that can correctly
                 classify a high portion of the traffic, so that it can
                 be implemented in commodity switches with
                 classification modules of restricted size. While for
                 the lossy compression scheme a small amount of traffic
                 might observe classification errors, a special
                 indication is returned for traffic that cannot be
                 classified in the rule caching scheme. We develop
                 optimal dynamic-programming algorithms for both
                 problems and describe how to treat the small amount of
                 traffic that cannot be classified. We generalize our
                 solutions for a wide range of classifiers with
                 different similarity metrics. We evaluate their
                 performance on real classifiers and traffic traces and
                 show that in some cases we can reduce a classifier size
                 by orders of magnitude while still classifying almost
                 all traffic correctly.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J771",
}

@Article{Saarikivi:2017:FEC,
  author =       "Olli Saarikivi and Margus Veanes and Todd Mytkowicz
                 and Madan Musuvathi",
  title =        "Fusing effectful comprehensions",
  journal =      j-SIGPLAN,
  volume =       "52",
  number =       "6",
  pages =        "17--32",
  month =        jun,
  year =         "2017",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3140587.3062362",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Sep 16 10:18:17 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "List comprehensions provide a powerful abstraction
                 mechanism for expressing computations over ordered
                 collections of data declaratively without having to use
                 explicit iteration constructs. This paper puts forth
                 effectful comprehensions as an elegant way to describe
                 list comprehensions that incorporate loop-carried
                 state. This is motivated by operations such as
                 compression/decompression and
                 serialization/deserialization that are common in
                 log/data processing pipelines and require loop-carried
                 state when processing an input stream of data. We build
                 on the underlying theory of symbolic transducers to
                 fuse pipelines of effectful comprehensions into a
                 single representation, from which efficient code can be
                 generated. Using background theory reasoning with an
                 SMT solver, our fusion and subsequent reachability
                 based branch elimination algorithms can significantly
                 reduce the complexity of the fused pipelines. Our
                 implementation shows significant speedups over
                 reasonable hand-written code (3.4 $ \times $, on
                 average) and traditionally fused version of the
                 pipeline (2.6 $ \times $, on average) for a variety of
                 examples, including scenarios for extracting fields
                 with regular expressions, processing XML with XPath,
                 and running queries over encoded data.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "PLDI '17 conference proceedings.",
}

@Article{Salehi:2017:RSR,
  author =       "Mohsen Amini Salehi and Thomas Caldwell and Alejandro
                 Fernandez and Emmanuel Mickiewicz and Eric W. D. Rozier
                 and Saman Zonouz and David Redberg",
  title =        "{RESeED}: a secure regular-expression search tool for
                 storage clouds",
  journal =      j-SPE,
  volume =       "47",
  number =       "9",
  pages =        "1221--1241",
  month =        sep,
  year =         "2017",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.2473",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Mon Sep 4 17:17:42 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@Article{Spyropoulos:2017:DBD,
  author =       "Vasilis Spyropoulos and Yannis Kotidis Kotidis",
  title =        "{Digree}: Building A Distributed Graph Processing
                 Engine out of Single-node Graph Database
                 Installations",
  journal =      j-SIGMOD,
  volume =       "46",
  number =       "4",
  pages =        "22--27",
  month =        dec,
  year =         "2017",
  CODEN =        "SRECD8",
  DOI =          "https://doi.org/10.1145/3186549.3186555",
  ISSN =         "0163-5808 (print), 1943-5835 (electronic)",
  ISSN-L =       "0163-5808",
  bibdate =      "Sun Jul 29 14:44:40 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigmod.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "In this work we present Digree, a system prototype
                 that enables distributed execution of graph pattern
                 matching queries in a cloud of interconnected graph
                 databases. We explain how a graph query can be
                 decomposed into independent sub-patterns that are
                 processed in parallel by the distributed independent
                 graph database systems and how the results are finally
                 synthesized at a master node. We experimentally compare
                 a prototype of our system against a popular big data
                 engine and show that Digree provides significantly
                 faster query execution.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGMOD Record (ACM Special Interest Group on
                 Management of Data)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J689",
}

@Article{Subramanian:2017:GSF,
  author =       "Kausik Subramanian and Loris D'Antoni and Aditya
                 Akella",
  title =        "{Genesis}: synthesizing forwarding tables in
                 multi-tenant networks",
  journal =      j-SIGPLAN,
  volume =       "52",
  number =       "1",
  pages =        "572--585",
  month =        jan,
  year =         "2017",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3093333.3009845",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Sep 16 10:18:14 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Operators in multi-tenant cloud datacenters require
                 support for diverse and complex end-to-end policies,
                 such as, reachability, middlebox traversals, isolation,
                 traffic engineering, and network resource management.
                 We present Genesis, a datacenter network management
                 system which allows policies to be specified in a
                 declarative manner without explicitly programming the
                 network data plane. Genesis tackles the problem of
                 enforcing policies by synthesizing switch forwarding
                 tables. It uses the formal foundations of constraint
                 solving in combination with fast off-the-shelf SMT
                 solvers. To improve synthesis performance, Genesis
                 incorporates a novel search strategy that uses regular
                 expressions to specify properties that leverage the
                 structure of datacenter networks, and a
                 divide-and-conquer synthesis procedure which exploits
                 the structure of policy relationships. We have
                 prototyped Genesis, and conducted experiments with a
                 variety of workloads on real-world topologies to
                 demonstrate its performance.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "POPL '17 conference proceedings.",
}

@Article{Sulzmann:2017:DBD,
  author =       "Martin Sulzmann and Kenny Zhuo Ming Lu",
  title =        "Derivative-Based Diagnosis of Regular Expression
                 Ambiguity",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "28",
  number =       "5",
  pages =        "543--??",
  month =        aug,
  year =         "2017",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054117400068",
  ISSN =         "0129-0541",
  ISSN-L =       "0129-0541",
  bibdate =      "Sat Dec 16 08:38:08 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Tang:2017:RDS,
  author =       "Qiu Tang and Lei Jiang and Qiong Dai and Majing Su and
                 Hongtao Xie and Binxing Fang",
  title =        "{RICS-DFA}: a space and time-efficient signature
                 matching algorithm with {Reduced Input Character Set}",
  journal =      j-CCPE,
  volume =       "29",
  number =       "20",
  pages =        "??--??",
  day =          "25",
  month =        oct,
  year =         "2017",
  CODEN =        "CCPEBO",
  DOI =          "https://doi.org/10.1002/cpe.3940",
  ISSN =         "1532-0626 (print), 1532-0634 (electronic)",
  ISSN-L =       "1532-0626",
  bibdate =      "Mon Oct 2 11:26:28 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ccpe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Concurrency and Computation: Practice and Experience",
  journal-URL =  "http://www.interscience.wiley.com/jpages/1532-0626",
}

@Article{Tarhio:2017:TBA,
  author =       "Jorma Tarhio and Jan Holub and Emanuele Giaquinta",
  title =        "Technology beats algorithms (in exact string
                 matching)",
  journal =      j-SPE,
  volume =       "47",
  number =       "12",
  pages =        "1877--1885",
  month =        dec,
  year =         "2017",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.2511",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat Dec 23 09:28:59 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@Article{Vasiliadis:2017:DIS,
  author =       "Giorgos Vasiliadis and Lazaros Koromilas and Michalis
                 Polychronakis and Sotiris Ioannidis",
  title =        "Design and Implementation of a Stateful Network Packet
                 Processing Framework for {GPUs}",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "25",
  number =       "1",
  pages =        "610--623",
  month =        feb,
  year =         "2017",
  CODEN =        "IEANEP",
  DOI =          "https://doi.org/10.1109/TNET.2016.2597163",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Sat Mar 25 08:05:37 MDT 2017",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/tex/bib/cryptography2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Graphics processing units GPUs are a powerful platform
                 for building the high-speed network traffic processing
                 applications using low-cost hardware. The existing
                 systems tap the massively parallel architecture of GPUs
                 to speed up certain computationally intensive tasks,
                 such as cryptographic operations and pattern matching.
                 However, they still suffer from significant overheads
                 due to critical-path operations that are still being
                 carried out on the CPU, and redundant inter-device data
                 transfers. In this paper, we present GASPP, a
                 programmable network traffic processing framework
                 tailored to modern graphics processors. GASPP
                 integrates optimized GPU-based implementations of a
                 broad range of operations commonly used in the network
                 traffic processing applications, including the first
                 purely GPU-based implementation of network flow
                 tracking and TCP stream reassembly. GASPP also employs
                 novel mechanisms for tackling the control flow
                 irregularities across SIMT threads, and for sharing the
                 memory context between the network interfaces and the
                 GPU. Our evaluation shows that GASPP can achieve
                 multigigabit traffic forwarding rates even for complex
                 and computationally intensive network operations, such
                 as stateful traffic classification, intrusion
                 detection, and packet encryption. Especially when
                 consolidating multiple network applications on the same
                 system, GASPP achieves up to $ 16.2 \times $ speedup
                 compared with different monolithic GPU-based
                 implementations of the same applications.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J771",
}

@Article{Vazou:2017:TTP,
  author =       "Niki Vazou and Leonidas Lampropoulos and Jeff
                 Polakow",
  title =        "A tale of two provers: verifying monoidal string
                 matching in liquid {Haskell} and {Coq}",
  journal =      j-SIGPLAN,
  volume =       "52",
  number =       "10",
  pages =        "63--74",
  month =        oct,
  year =         "2017",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3156695.3122963",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Dec 1 18:56:13 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We demonstrate for the first time that Liquid Haskell,
                 a refinement type checker for Haskell programs, can be
                 used for arbitrary theorem proving by verifying a
                 parallel, monoidal string matching algorithm
                 implemented in Haskell. We use refinement types to
                 specify correctness properties, Haskell terms to
                 express proofs of these properties, and Liquid Haskell
                 to check the proofs. We evaluate Liquid Haskell as a
                 theorem prover by replicating our 1428 LoC proof in a
                 dependently-typed language (Coq --- 1136 LoC). Finally,
                 we compare both proofs, uncovering the relative
                 advantages and disadvantages of the two provers.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  remark =       "Haskell '17 conference proceedings.",
}

@InProceedings{Viswam:2017:EBF,
  author =       "A. Viswam and G. Darsan",
  booktitle =    "2017 International Conference on Circuit, Power and
                 Computing Technologies {(ICCPCT)}",
  title =        "An efficient {Bitcoin} fraud detection in social media
                 networks",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "1--4",
  month =        apr,
  year =         "2017",
  DOI =          "https://doi.org/10.1109/ICCPCT.2017.8074262",
  ISSN =         "",
  bibdate =      "Thu Nov 30 15:24:52 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/bitcoin.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  keywords =     "anonymous users; bitcoin concept; classifier; Data
                 mining; Databases; efficient bitcoin fraud detection;
                 extraction; Feature extraction; financial data
                 processing; fraud; fraud identities; Friend
                 Relationship User Identification; FRUI algorithm;
                 identical users; Internet; Na{\"\i}ve-Bayes; pattern
                 matching; preprocessing; Privacy; social media network
                 sites; Social network services; social networking
                 (online); social networking site; Training; transaction
                 processing; {Bitcoin}",
}

@Article{Wang:2017:GSM,
  author =       "Kai Wang and Aftab Hussain and Zhiqiang Zuo and
                 Guoqing Xu and Ardalan Amiri Sani",
  title =        "{Graspan}: a Single-machine Disk-based Graph System
                 for Interprocedural Static Analyses of Large-scale
                 Systems Code",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "45",
  number =       "1",
  pages =        "389--404",
  month =        mar,
  year =         "2017",
  CODEN =        "CANED2",
  DOI =          "https://doi.org/10.1145/3093337.3037744",
  ISSN =         "0163-5964 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Mon Jun 5 18:01:58 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigarch.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "There is more than a decade-long history of using
                 static analysis to find bugs in systems such as Linux.
                 Most of the existing static analyses developed for
                 these systems are simple checkers that find bugs based
                 on pattern matching. Despite the presence of many
                 sophisticated interprocedural analyses, few of them
                 have been employed to improve checkers for systems code
                 due to their complex implementations and poor
                 scalability. In this paper, we revisit the scalability
                 problem of interprocedural static analysis from a ``Big
                 Data'' perspective. That is, we turn sophisticated code
                 analysis into Big Data analytics and leverage novel
                 data processing techniques to solve this traditional
                 programming language problem. We develop Graspan, a
                 disk-based parallel graph system that uses an edge-pair
                 centric computation model to compute dynamic transitive
                 closures on very large program graphs. We implement
                 context-sensitive pointer/alias and dataflow analyses
                 on Graspan. An evaluation of these analyses on large
                 codebases such as Linux shows that their Graspan
                 implementations scale to millions of lines of code and
                 are much simpler than their original implementations.
                 Moreover, we show that these analyses can be used to
                 augment the existing checkers; these augmented checkers
                 uncovered 132 new NULL pointer bugs and 1308
                 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL
                 8.3.9, and Apache httpd 2.2.18.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
  remark =       "ASPLOS'17 conference proceedings",
}

@Article{Zengin:2017:FAH,
  author =       "Salih Zengin and Ece Guran Schmidt",
  title =        "A Fast and Accurate Hardware String Matching Module
                 with {Bloom} Filters",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "28",
  number =       "2",
  pages =        "305--317",
  month =        feb,
  year =         "2017",
  CODEN =        "ITDSEO",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Thu Jan 19 06:46:47 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranspardistsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.computer.org/csdl/trans/td/2017/02/07485864-abs.html",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://www.computer.org/tpds/archives.htm",
}

@Article{Zhang:2017:APM,
  author =       "Peng Zhang and Mikhail J. Atallah",
  title =        "On approximate pattern matching with thresholds",
  journal =      j-INFO-PROC-LETT,
  volume =       "123",
  number =       "??",
  pages =        "21--26",
  month =        jul,
  year =         "2017",
  CODEN =        "IFPLAT",
  DOI =          "https://doi.org/10.1016/j.ipl.2017.03.001",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Fri Jun 30 15:40:21 MDT 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019017300376",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Zhang:2017:FCP,
  author =       "Meng Zhang",
  title =        "Fast Convolutions of Packed Strings and Pattern
                 Matching with Wildcards",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "28",
  number =       "3",
  pages =        "289--??",
  month =        apr,
  year =         "2017",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054117500186",
  ISSN =         "0129-0541",
  ISSN-L =       "0129-0541",
  bibdate =      "Sat Dec 16 08:38:07 MST 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Al-Sibahi:2018:VHL,
  author =       "Ahmad Salim Al-Sibahi and Thomas P. Jensen and
                 Aleksandar S. Dimovski and Andrzej Wasowski",
  title =        "Verification of high-level transformations with
                 inductive refinement types",
  journal =      j-SIGPLAN,
  volume =       "53",
  number =       "9",
  pages =        "147--160",
  month =        nov,
  year =         "2018",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3393934.3278125",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Apr 8 13:49:51 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3393934.3278125",
  abstract =     "High-level transformation languages like Rascal
                 include expressive features for manipulating large
                 abstract syntax trees: first-class traversals,
                 expressive pattern matching, backtracking and
                 generalized iterators. We present the design and
                 \ldots{}",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Angstadt:2018:MOS,
  author =       "Kevin Angstadt and Jack Wadden and Vinh Dang and Ted
                 Xie and Dan Kramp and Westley Weimer and Mircea Stan
                 and Kevin Skadron",
  title =        "{MNCaRT}: An Open-Source, Multi-Architecture
                 Automata-Processing Research and Execution Ecosystem",
  journal =      j-IEEE-COMPUT-ARCHIT-LETT,
  volume =       "17",
  number =       "1",
  pages =        "84--87",
  month =        jan # "\slash " # jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1109/LCA.2017.2780105",
  ISSN =         "1556-6056 (print), 1556-6064 (electronic)",
  ISSN-L =       "1556-6056",
  bibdate =      "Tue Jun 25 07:41:05 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/ieeecomputarchitlett.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "We present MNCaRT, a comprehensive software ecosystem
                 for the study and use of automata processing across
                 hardware platforms. Tool support includes manipulation
                 of automata, execution of complex machines, high-speed
                 processing of NFAs and DFAs, and compilation of regular
                 expressions. We provide engines to execute automata on
                 CPUs (with VASim and Intel Hyperscan), GPUs (with
                 custom DFA and NFA engines), and FPGAs (with an HDL
                 translator). We also introduce MNRL, an open-source,
                 general-purpose and extensible state machine
                 representation language developed to support MNCaRT.
                 The representation is flexible enough to support
                 traditional finite automata (NFAs, DFAs) while also
                 supporting more complex machines, such as those which
                 propagate multi-bit signals between processing
                 elements. We hope that our ecosystem and representation
                 language stimulates new efforts to develop efficient
                 and specialized automata processing applications.",
  acknowledgement = ack-nhfb,
  affiliation =  "Angstadt, K (Reprint Author), Univ Michigan, Comp Sci
                 \& Engn Div, Dept Elect Engn \& Comp Sci, Ann Arbor, MI
                 48109 USA. Angstadt, Kevin; Weimer, Westley, Univ
                 Michigan, Comp Sci \& Engn Div, Dept Elect Engn \& Comp
                 Sci, Ann Arbor, MI 48109 USA. Wadden, Jack; Dang, Vinh;
                 Xie, Ted; Kramp, Dan; Stan, Mircea; Skadron, Kevin,
                 Univ Virginia, Dept Comp Sci, Charlottesville, VA 22904
                 USA.",
  author-email = "angstadt@umich.edu wadden@virginia.edu
                 vqd8a@virginia.edu ted.xie@virginia.edu
                 dankramp@virginia.edu weimerw@umich.edu
                 mircea@virginia.edu skadron@virginia.edu",
  da =           "2019-06-20",
  doc-delivery-number = "FZ6EO",
  eissn =        "1556-6064",
  fjournal =     "IEEE Computer Architecture Letters",
  funding-acknowledgement = "US National Science Foundation
                 [CCF-1116673, CCF-1629450, CCF-1619123, CNS-1619098];
                 AFRL [FA8750-15-2-0075]; Jefferson Scholars Foundation;
                 Achievement Rewards for College Scientists (ARCS)
                 Foundation; Xilinx; C-FAR, one of six centers of
                 STARnet; Semiconductor Research Corporation program -
                 MARCO; DARPA",
  funding-text = "This work was supported in part by grants from the US
                 National Science Foundation (CCF-1116673, CCF-1629450,
                 CCF-1619123, CNS-1619098), AFRL (FA8750-15-2-0075),
                 Jefferson Scholars Foundation, Achievement Rewards for
                 College Scientists (ARCS) Foundation, a grant from
                 Xilinx, and support from C-FAR, one of six centers of
                 STARnet, a Semiconductor Research Corporation program
                 sponsored by MARCO and DARPA. Any opinions, findings
                 and conclusions or recommendations expressed in this
                 material are those of the authors and do not
                 necessarily reflect the views of AFRL.",
  journal-iso =  "IEEE Comput. Archit. Lett.",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=10208",
  keywords =     "accelerator architectures; Automata; Benchmark
                 testing; complex machines; comprehensive software
                 ecosystem; DFA; Ecosystems; efficient automata
                 processing applications; Engines; extensible state
                 machine representation language; Field programmable
                 gate arrays; field programmable gate arrays; finite
                 automata; finite state machines; formal languages;
                 hardware platforms; high-speed processing; Intel
                 Hyperscan; MNCaRT; NFA engines; open source software;
                 Open source software; open source software;
                 open-source-multiarchitecture automata-processing
                 research; software tools; specialized automata
                 processing applications; Tools; traditional finite
                 automata",
  number-of-cited-references = "21",
  ORCID-numbers = "Angstadt, Kevin/0000-0002-0104-5257",
  research-areas = "Computer Science",
  researcherid-numbers = "Stan, Mircea/L-6219-2019",
  times-cited =  "2",
  unique-id =    "Angstadt:2018:MOS",
  web-of-science-categories = "Computer Science, Hardware \&
                 Architecture",
}

@Article{Arenas:2018:ELQ,
  author =       "Marcelo Arenas and Georg Gottlob and Andreas Pieris",
  title =        "Expressive Languages for Querying the {Semantic Web}",
  journal =      j-TODS,
  volume =       "43",
  number =       "3",
  pages =        "13:1--13:??",
  month =        nov,
  year =         "2018",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/3238304",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Tue Jan 29 17:36:13 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  abstract =     "The problem of querying RDF data is a central issue
                 for the development of the Semantic Web. The query
                 language SPARQL has become the standard language for
                 querying RDF since its W3C standardization in 2008.
                 However, the 2008 version of this language missed some
                 important functionalities: reasoning capabilities to
                 deal with RDFS and OWL vocabularies, navigational
                 capabilities to exploit the graph structure of RDF
                 data, and a general form of recursion much needed to
                 express some natural queries. To overcome these
                 limitations, a new version of SPARQL, called SPARQL
                 1.1, was released in 2013, which includes entailment
                 regimes for RDFS and OWL vocabularies, and a mechanism
                 to express navigation patterns through regular
                 expressions. Unfortunately, there are a number of
                 useful navigation patterns that cannot be expressed in
                 SPARQL 1.1, and the language lacks a general mechanism
                 to express recursive queries. To the best of our
                 knowledge, no efficient RDF query language that
                 combines the above functionalities is known. It is the
                 aim of this work to fill this gap. To this end, we
                 focus on a core fragment of the OWL 2 QL profile of OWL
                 2 and show that every SPARQL query enriched with the
                 above features can be naturally translated into a query
                 expressed in a language that is based on an extension
                 of Datalog, which allows for value invention and
                 stratified negation. However, the query evaluation
                 problem for this language is highly intractable, which
                 is not surprising since it is expressive enough to
                 encode some inherently hard queries. We identify a
                 natural fragment of it, and we show it to be tractable
                 and powerful enough to define SPARQL queries enhanced
                 with the desired functionalities.",
  acknowledgement = ack-nhfb,
  ajournal =     "ACM Trans. Database Syst.",
  articleno =    "13",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
}

@Article{Baek:2018:EGP,
  author =       "Sun Geol Baek and Dong Hyun Kang and Sungkil Lee and
                 Young Ik Eom",
  title =        "Efficient graph pattern matching framework for
                 network-based in-vehicle fault detection",
  journal =      j-J-SYST-SOFTW,
  volume =       "140",
  number =       "??",
  pages =        "17--31",
  month =        jun,
  year =         "2018",
  CODEN =        "JSSODM",
  DOI =          "https://doi.org/10.1016/j.jss.2018.02.050",
  ISSN =         "0164-1212 (print), 1873-1228 (electronic)",
  ISSN-L =       "0164-1212",
  bibdate =      "Fri Mar 30 15:06:39 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsystsoftw.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0164121218300347",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Systems and Software",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01641212",
}

@Article{Barton:2018:FAC,
  author =       "Carl Barton and Chang Liu and Solon P. Pissis",
  title =        "Fast Average-Case Pattern Matching on Weighted
                 Sequences",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "29",
  number =       "8",
  pages =        "1331--1343",
  month =        dec,
  year =         "2018",
  DOI =          "https://doi.org/10.1142/S0129054118430062",
  ISSN =         "0129-0541",
  ISSN-L =       "0129-0541",
  bibdate =      "Thu Dec 27 05:21:34 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "A weighted string is a string in which a set of
                 letters may occur at each position with respective
                 occurrence probabilities. Weighted strings, also known
                 as position weight matrices, weighted sequences or
                 uncertain sequences, naturally arise in many contexts.
                 In this paper, we study the problem of weighted string
                 matching with a special focus on average-case analysis.
                 Given a weighted pattern string $x$ of length $m$, a
                 text string $y$ of length $ n > m$, both on a
                 constant-sized alphabet of size $ \sigma $, and a
                 cumulative weight threshold $ 1 / z$, defined as the
                 minimal probability of occurrence of factors in a
                 weighted string, we present an on-line algorithm
                 requiring average-case search time $ o(n)$ for pattern
                 matching for weight ratio $ z / m < \min \{ 1 / (2 \log
                 z + 1 / z), \log \sigma / (\log z (\log m + \log \log
                 \sigma)) \} $. For a pattern string $x$ of length $m$,
                 a weighted text string $y$ of length $ n > m$, both on
                 a constant-sized alphabet, and a cumulative weight
                 threshold $ 1 / z$, we present an on-line algorithm
                 requiring average-case search time $ o(n)$ for the same
                 weight ratio. The importance of these algorithms lies
                 on the fact that, for these ratios, they can work in
                 sublinear search time in the size of the input text,
                 and in linear preprocessing costs in the size of the
                 pattern.",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Bontupalli:2018:EMB,
  author =       "Venkataramesh Bontupalli and Chris Yakopcic and
                 Raqibul Hasan and Tarek M. Taha",
  title =        "Efficient Memristor-Based Architecture for Intrusion
                 Detection and High-Speed Packet Classification",
  journal =      j-JETC,
  volume =       "14",
  number =       "4",
  pages =        "41:1--41:??",
  month =        dec,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3264819",
  ISSN =         "1550-4832",
  bibdate =      "Sat Feb 23 06:37:01 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jetc.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/ft_gateway.cfm?id=3264819",
  abstract =     "Deep packet inspection (DPI) is a critical component
                 to prevent intrusion detection. This requires a
                 detailed analysis of each network packet header and
                 body. Although this is often done on dedicated
                 high-power servers in most networked systems, mobile
                 systems could potentially be vulnerable to attack if
                 utilized on an unprotected network. In this case,
                 having DPI hardware on the mobile system would be
                 highly beneficial. Unfortunately, DPI hardware is
                 generally area and power consuming, making its
                 implementation difficult in mobile systems. We
                 developed a memristor crossbar-based approach, inspired
                 by memristor crossbar neuromorphic circuits, for a
                 low-power, low-area, and high-throughput DPI system
                 that examines both the header and body of a packet. Two
                 key types of circuits are presented: static pattern
                 matching and regular expression circuits. This system
                 is able to reduce execution time and power consumption
                 due to its high-density grid and massive parallelism.
                 Independent searches are performed using low-power
                 memristor crossbar arrays giving rise to a throughput
                 of 160Gbps with no loss in the classification
                 accuracy.",
  acknowledgement = ack-nhfb,
  articleno =    "41",
  fjournal =     "ACM Journal on Emerging Technologies in Computing
                 Systems (JETC)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J967",
}

@Article{C:2018:SSS,
  author =       "Paul Suganthan G. C. and Adel Ardalan and AnHai Doan
                 and Aditya Akella",
  title =        "{Smurf}: self-service string matching using random
                 forests",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "12",
  number =       "3",
  pages =        "278--291",
  month =        nov,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3291264.3291272",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Fri Jan 18 05:54:04 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "We argue that more attention should be devoted to
                 developing self-service string matching (SM) solutions,
                 which lay users can easily use. We show that Falcon, a
                 self-service entity matching (EM) solution, can be
                 applied to SM and is more accurate than current
                 self-service SM solutions. However, Falcon often asks
                 lay users to label many string pairs (e.g., 770-1050 in
                 our experiments). This is expensive, can significantly
                 compound labeling mistakes, and takes a long time. We
                 developed Smurf, a self-service SM solution that
                 reduces the labeling effort by 43-76\%, yet achieves
                 comparable F$_1$ accuracy. The key to make Smurf
                 possible is a novel solution to efficiently execute a
                 random forest (that Smurf learns via active learning
                 with the lay user) over two sets of strings. This
                 solution uses RDBMS-style plan optimization to reuse
                 computations across the trees in the forest. As such,
                 Smurf significantly advances self-service SM and raises
                 interesting future directions for self-service EM and
                 scalable random forest execution over structured
                 data.",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Cappers:2018:EME,
  author =       "B. C. M. Cappers and J. J. van Wijk",
  title =        "Exploring Multivariate Event Sequences Using Rules,
                 Aggregations, and Selections",
  journal =      j-IEEE-TRANS-VIS-COMPUT-GRAPH,
  volume =       "24",
  number =       "1",
  pages =        "532--541",
  month =        jan,
  year =         "2018",
  CODEN =        "ITVGEA",
  DOI =          "https://doi.org/10.1109/TVCG.2017.2745278",
  ISSN =         "1077-2626 (print), 1941-0506 (electronic), 2160-9306",
  ISSN-L =       "1077-2626",
  bibdate =      "Thu Dec 7 06:22:32 2017",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetransviscomputgraph.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Visualization and Computer
                 Graphics",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2945",
  keywords =     "Communications technology; Data mining; Data
                 visualization; Encoding; Event Visualization;
                 Hospitals; Interaction; Multivariate Events; Regular
                 Expressions; Sequence Alignment; Sequences;
                 Visualization",
}

@Article{Carver:2018:SME,
  author =       "J. C. Carver and A. Serebrenik",
  title =        "Software Maintenance and Evolution and Automated
                 Software Engineering",
  journal =      j-IEEE-SOFTWARE,
  volume =       "35",
  number =       "2",
  pages =        "102--104",
  month =        mar # "\slash " # apr,
  year =         "2018",
  CODEN =        "IESOEG",
  DOI =          "https://doi.org/10.1109/MS.2018.1661318",
  ISSN =         "0740-7459 (print), 1937-4194 (electronic)",
  ISSN-L =       "0740-7459",
  bibdate =      "Fri Aug 2 09:25:48 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeesoft.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Software",
  journal-URL =  "http://www.computer.org/portal/web/csdl/magazines/software",
  keywords =     "32nd International Conference on Automated Software
                 Engineering; 33rd International Conference on Software
                 Maintenance and Evolution; ASE 17; automated software
                 engineering; flaky tests; ICSME 17; Practitioners
                 Digest; QA bots; regexes; regular expressions; SATD;
                 self-admitted technical debt; software development;
                 software engineering; software evolution; software
                 maintenance; technical debt",
}

@Article{Chan:2018:SSR,
  author =       "Timothy M. Chan and J. Ian Munro and Venkatesh Raman",
  title =        "Selection and Sorting in the {``Restore''} Model",
  journal =      j-TALG,
  volume =       "14",
  number =       "2",
  pages =        "11:1--11:??",
  month =        jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3168005",
  ISSN =         "1549-6325 (print), 1549-6333 (electronic)",
  ISSN-L =       "1549-6325",
  bibdate =      "Tue Jun 5 06:47:03 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talg.bib",
  abstract =     "We consider the classical selection and sorting
                 problems in a model where the initial permutation of
                 the input has to be restored after completing the
                 computation. Such algorithms are useful for designing
                 space-efficient algorithms, when one encounters
                 subproblems that have to be solved by subroutines. It
                 is important that these subroutines leave the array in
                 its original state after they finish so that the
                 computation can be properly resumed. Algorithms in this
                 model can also be relevant for saving communication
                 time, in case the data is distributed among several
                 machines and would need to be copied to further
                 machines for execution of the subroutine. Although the
                 requirement of the restoration is stringent compared to
                 the classical versions of the problems, this model is
                 more relaxed than a read-only memory where the input
                 elements are not allowed to be moved within the input
                 array. We first show that for a sequence of n integers,
                 selection (finding the median or more generally the k
                 -th smallest element for a given k ) can be done in O (
                 n ) time using O (lg n ) words$^1$ of extra space in
                 this model. In contrast, no linear-time selection
                 algorithm is known that uses polylogarithmic space in
                 the read-only memory model. For sorting n integers in
                 this model, we first present an O ( n lg n )-time
                 algorithm using O (lg n ) words of extra space that
                 outputs (in a write only tape) the given sequence in
                 sorted order while restoring the order of the original
                 input in the input tape. When the universe size U is
                 polynomial in n, we give a faster O ( n )-time
                 algorithm (analogous to radix sort) that uses O ( n$^{
                 \epsilon }$ ) words of extra space for an arbitrarily
                 small constant \epsilon {$>$} 0. More generally, we
                 show how to match the time bound of any word-RAM
                 integer sorting algorithms using O ( n$^{ \epsilon }$ )
                 words of extra space. In sharp contrast, there is an
                 \Omega ( n$^2$ / S )-time lower bound for integer
                 sorting using O ( S ) bits of space in the read-only
                 memory model. Extension of our results to arbitrary
                 input types beyond integers is not possible: for
                 ``indivisible'' input elements, we can prove the same
                 \Omega ( n$^2$ / S ) lower bound for sorting in our
                 model. We also describe space-efficient algorithms to
                 count the number of inversions in a given sequence in
                 this model. En route, we develop linear-time in-place
                 algorithms to extract leading bits of the input array
                 and to compress and decompress strings with low
                 entropy; these techniques may be of independent
                 interest.",
  acknowledgement = ack-nhfb,
  articleno =    "11",
  fjournal =     "ACM Transactions on Algorithms (TALG)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J982",
}

@Article{Chen:2018:SMMa,
  author =       "Yangjun Chen and Yujia Wu",
  title =        "On the string matching with $k$ mismatches",
  journal =      j-THEOR-COMP-SCI,
  volume =       "726",
  number =       "??",
  pages =        "5--29",
  day =          "23",
  month =        may,
  year =         "2018",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2018.02.001",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Fri Apr 13 14:01:38 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2015.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397518300781",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Chen:2018:SMMb,
  author =       "Yangjun Chen and Yujia Wu",
  title =        "On the string matching with $k$ mismatches",
  journal =      j-THEOR-COMP-SCI,
  volume =       "726",
  number =       "??",
  pages =        "5--29",
  day =          "23",
  month =        may,
  year =         "2018",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2018.02.001",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Fri Apr 13 14:01:38 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2015.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397518300781",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Cho:2018:TAB,
  author =       "Sukhyeun Cho and Joong Chae Na and Jeong Seop Sim",
  title =        "An {$ O(n^2 \log m) $}-time algorithm for the
                 boxed-mesh permutation pattern matching problem",
  journal =      j-THEOR-COMP-SCI,
  volume =       "710",
  number =       "??",
  pages =        "35--43",
  day =          "1",
  month =        feb,
  year =         "2018",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2017.02.022",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Wed Feb 7 06:04:15 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2015.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S030439751730155X",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Cockx:2018:EDC,
  author =       "Jesper Cockx and Andreas Abel",
  title =        "Elaborating dependent (co)pattern matching",
  journal =      j-PACMPL,
  volume =       "2",
  number =       "ICFP",
  pages =        "75:1--75:30",
  month =        jul,
  year =         "2018",
  DOI =          "https://doi.org/10.1145/3236770",
  bibdate =      "Fri Aug 7 17:44:42 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3236770",
  abstract =     "In a dependently typed language, we can guarantee
                 correctness of our programs by providing formal proofs.
                 To check them, the typechecker elaborates these
                 programs and proofs into a low level core language.
                 However, this core language is by nature hard
                 \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "75",
  fjournal =     "Proceedings of the ACM on Programming Languages",
  journal-URL =  "https://pacmpl.acm.org/",
}

@Article{Cockx:2018:PRU,
  author =       "Jesper Cockx and Dominique Devriese",
  title =        "Proof-relevant unification: Dependent pattern matching
                 with only the axioms of your type theory",
  journal =      j-J-FUNCT-PROGRAM,
  volume =       "28",
  number =       "",
  pages =        "e12",
  month =        "????",
  year =         "2018",
  CODEN =        "JFPRES",
  DOI =          "https://doi.org/10.1017/S095679681800014X",
  ISSN =         "0956-7968 (print), 1469-7653 (electronic)",
  ISSN-L =       "0956-7968",
  bibdate =      "Mon Jul 22 09:36:10 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jfunctprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.cambridge.org/core/journals/journal-of-functional-programming/article/proofrelevant-unification-dependent-pattern-matching-with-only-the-axioms-of-your-type-theory/E54D56DC3F5D5361CCDECA824030C38E",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Funct. Program.",
  fjournal =     "Journal of Functional Programming",
  journal-URL =  "https://www.cambridge.org/core/journals/journal-of-functional-programming",
  onlinedate =   "10 May 2018",
}

@Article{Czerwinski:2018:MTP,
  author =       "Wojciech Czerwi{\'n}ski and Wim Martens and Matthias
                 Niewerth and Pawel Parys",
  title =        "Minimization of Tree Patterns",
  journal =      j-J-ACM,
  volume =       "65",
  number =       "4",
  pages =        "26:1--26:??",
  month =        aug,
  year =         "2018",
  CODEN =        "JACOAH",
  DOI =          "https://doi.org/10.1145/3180281",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Thu Nov 29 14:39:20 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Many of today's graph query languages are based on
                 graph pattern matching. We investigate optimization of
                 tree-shaped patterns that have transitive closure
                 operators. Such patterns not only appear in the context
                 of graph databases but also were originally studied for
                 querying tree-structured data, where they can perform
                 child, descendant, node label, and wildcard tests. The
                 minimization problem aims at reducing the number of
                 nodes in patterns and goes back to the early 2000s. We
                 provide an example showing that, in contrast to earlier
                 claims, tree patterns cannot be minimized by deleting
                 nodes only. The example resolves the M $ =^? $ NR
                 problem, which asks if a tree pattern is minimal if and
                 only if it is nonredundant. The example can be adapted
                 to prove that minimization is $ \Sigma^P_2$-complete,
                 which resolves another question that was open since the
                 early research on the problem. The latter result shows
                 that, unless NP = $ \Pi^P_2$, more general approaches
                 for minimizing tree patterns are also bound to fail in
                 general.",
  acknowledgement = ack-nhfb,
  articleno =    "26",
  fjournal =     "Journal of the ACM",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  remark =       "Distributed Computing, Cryptography, Distributed
                 Computing, Cryptography, Coding Theory, Automata
                 Theory, Complexity Theory, Programming Languages,
                 Algorithms, Invited Paper Foreword and Databases.",
}

@Article{Darivandpour:2018:ESP,
  author =       "Javad Darivandpour and Mikhail J. Atallah",
  title =        "Efficient and secure pattern matching with wildcards
                 using lightweight cryptography",
  journal =      j-COMPUT-SECUR,
  volume =       "77",
  number =       "??",
  pages =        "666--674",
  month =        aug,
  year =         "2018",
  CODEN =        "CPSEDU",
  ISSN =         "0167-4048 (print), 1872-6208 (electronic)",
  ISSN-L =       "0167-4048",
  bibdate =      "Mon Sep 23 09:46:55 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computsecur2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/cryptography2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.sciencedirect.com/science/article/pii/S016740481830021X",
  acknowledgement = ack-nhfb,
  fjournal =     "Computers \& Security",
  journal-URL =  "https://www.sciencedirect.com/science/journal/01674048",
}

@Article{Faust:2018:OPM,
  author =       "Sebastian Faust and Carmit Hazay and Daniele Venturi",
  title =        "Outsourced pattern matching",
  journal =      j-INT-J-INFO-SEC,
  volume =       "17",
  number =       "3",
  pages =        "327--346",
  month =        jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1007/s10207-017-0374-0",
  ISSN =         "1615-5262 (print), 1615-5270 (electronic)",
  ISSN-L =       "1615-5262",
  bibdate =      "Mon Apr 16 12:27:34 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/intjinfosec.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/s10207-017-0374-0",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Information Security",
  journal-URL =  "https://link.springer.com/journal/10207",
}

@Article{Ganardi:2018:CEF,
  author =       "Moses Ganardi and Danny Hucke and Daniel K{\"o}nig and
                 Markus Lohrey",
  title =        "Circuits and Expressions over Finite Semirings",
  journal =      j-TOCT,
  volume =       "10",
  number =       "4",
  pages =        "15:1--15:??",
  month =        oct,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3241375",
  ISSN =         "1942-3454 (print), 1942-3462 (electronic)",
  ISSN-L =       "1942-3454",
  bibdate =      "Wed Oct 17 17:24:50 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toct.bib",
  abstract =     "The computational complexity of the circuit and
                 expression evaluation problem for finite semirings is
                 considered, where semirings are not assumed to have an
                 additive or a multiplicative identity. The following
                 dichotomy is shown: If a finite semiring is such that
                 (i) the multiplicative semigroup is solvable and (ii)
                 it does not contain a subsemiring with an additive
                 identity 0 and a multiplicative identity 1 /= 0, then
                 the circuit evaluation problem is in DET \subseteq
                 NC$^2$, and the expression evaluation problem for the
                 semiring is in TC$^0$. For all other finite semirings,
                 the circuit evaluation problem is P-complete and the
                 expression evaluation problem is NC$^1$ -complete. As
                 an application, we determine the complexity of
                 intersection non-emptiness problems for given
                 context-free grammars (regular expressions) with a
                 fixed regular language.",
  acknowledgement = ack-nhfb,
  ajournal =     "ACM Trans. Comput. Theory",
  articleno =    "15",
  fjournal =     "ACM Transactions on Computation Theory",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1190",
}

@Article{Gronlund:2018:TDL,
  author =       "Allan Gr{\o}nlund and Seth Pettie",
  title =        "Threesomes, Degenerates, and Love Triangles",
  journal =      j-J-ACM,
  volume =       "65",
  number =       "4",
  pages =        "22:1--22:??",
  month =        aug,
  year =         "2018",
  CODEN =        "JACOAH",
  DOI =          "https://doi.org/10.1145/3185378",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Thu Nov 29 14:39:20 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The 3SUM problem is to decide, given a set of n real
                 numbers, whether any three sum to zero. It is widely
                 conjectured that a trivial $ O(n^2)$-time algorithm is
                 optimal on the Real RAM, and optimal even in the
                 nonuniform linear decision tree model. Over the years
                 the consequences of this conjecture have been revealed.
                 This 3SUM conjecture implies $ \Omega (n^2)$ lower
                 bounds on numerous problems in computational geometry,
                 and a variant of the conjecture for integer inputs
                 implies strong lower bounds on triangle enumeration,
                 dynamic graph algorithms, and string matching data
                 structures. In this article, we refute the conjecture
                 that 3SUM requires $ \Omega (n^2)$ in the Real RAM and
                 refute more forcefully the conjecture that its
                 complexity is $ \Omega (n^2)$ in the linear decision
                 tree model. In particular, we prove that the decision
                 tree complexity of 3SUM is $ O(n^{3 / 2} \sqrt \log n)$
                 and give two subquadratic 3SUM algorithms, a
                 deterministic one running in $ O(n^2 / (\log n / \log
                 \log n)^{2 / 3})$ time and a randomized one running in
                 $ O(n^2 (\log \log n)^2 / \log n)$ time with high
                 probability. Our results lead directly to improved
                 bounds on the decision tree complexity of $k$ -variate
                 linear degeneracy testing for all odd $ k \geq 3$.
                 Finally, we give a subcubic algorithm for a
                 generalization of the (min, +)-product over real-valued
                 matrices and apply it to the problem of finding
                 zero-weight triangles in edge-weighted graphs. We give
                 a depth-$ O(n^{5 / 2} \sqrt \log n)$ decision tree for
                 this problem, as well as a deterministic algorithm
                 running in time $ O(n^3 (\log \log n)^2 / \log n)$.",
  acknowledgement = ack-nhfb,
  articleno =    "22",
  fjournal =     "Journal of the ACM",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
  remark =       "Distributed Computing, Cryptography, Distributed
                 Computing, Cryptography, Coding Theory, Automata
                 Theory, Complexity Theory, Programming Languages,
                 Algorithms, Invited Paper Foreword and Databases.",
}

@Article{Ho:2018:CNA,
  author =       "ThienLuan Ho and Seung-Rohk Oh and HyunJin Kim",
  title =        "Correction to: {New algorithms for fixed-length
                 approximate string matching and approximate circular
                 string matching under the Hamming distance}",
  journal =      j-J-SUPERCOMPUTING,
  volume =       "74",
  number =       "5",
  pages =        "1835--1835",
  month =        may,
  year =         "2018",
  CODEN =        "JOSUED",
  DOI =          "https://doi.org/10.1007/s11227-018-2324-7",
  ISSN =         "0920-8542 (print), 1573-0484 (electronic)",
  ISSN-L =       "0920-8542",
  bibdate =      "Thu Oct 10 15:31:12 MDT 2019",
  bibsource =    "http://link.springer.com/journal/11227/74/5;
                 https://www.math.utah.edu/pub/tex/bib/jsuper.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See \cite{Ho:2018:NAF}.",
  URL =          "http://link.springer.com/content/pdf/10.1007/s11227-018-2324-7.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "The Journal of Supercomputing",
  journal-URL =  "http://link.springer.com/journal/11227",
}

@Article{Ho:2018:NAF,
  author =       "ThienLuan Ho and Seung-Rohk Oh and HyunJin Kim",
  title =        "New algorithms for fixed-length approximate string
                 matching and approximate circular string matching under
                 the {Hamming} distance",
  journal =      j-J-SUPERCOMPUTING,
  volume =       "74",
  number =       "5",
  pages =        "1815--1834",
  month =        may,
  year =         "2018",
  CODEN =        "JOSUED",
  DOI =          "https://doi.org/10.1007/s11227-017-2192-6",
  ISSN =         "0920-8542 (print), 1573-0484 (electronic)",
  ISSN-L =       "0920-8542",
  bibdate =      "Thu Oct 10 15:31:12 MDT 2019",
  bibsource =    "http://link.springer.com/journal/11227/74/5;
                 https://www.math.utah.edu/pub/tex/bib/jsuper.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See correction \cite{Ho:2018:CNA}.",
  acknowledgement = ack-nhfb,
  fjournal =     "The Journal of Supercomputing",
  journal-URL =  "http://link.springer.com/journal/11227",
}

@Article{Jung:2018:EEK,
  author =       "Sangkeun Jung and Changki Lee and Hyunsun Hwang",
  title =        "End-to-End {Korean} Part-of-Speech Tagging Using
                 Copying Mechanism",
  journal =      j-TALLIP,
  volume =       "17",
  number =       "3",
  pages =        "19:1--19:??",
  month =        may,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3178458",
  ISSN =         "2375-4699 (print), 2375-4702 (electronic)",
  ISSN-L =       "2375-4699",
  bibdate =      "Wed Oct 2 10:34:31 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tallip.bib",
  abstract =     "In this article, we introduce a novel neural
                 architecture for the end-to-end Korean Part-of-Speech
                 (POS) tagging problem. To address the problem, we
                 extend the present recurrent neural network-based
                 sequence-to-sequence models to deal with the key
                 challenges in this task: rare word generation and POS
                 tagging. To overcome these issues, Input-Feeding and
                 Copying mechanism are adopted. Although our approach
                 does not require any manual features or preprocessed
                 pattern matching dictionaries, our best single model
                 achieves an F-score of 97.08. This is competitive with
                 the current state-of-the-art model (F-score 98.03),
                 which requires extensive manual feature processing.",
  acknowledgement = ack-nhfb,
  ajournal =     "ACM Trans. Asian Low-Resour. Lang. Inf. Process.",
  articleno =    "19",
  fjournal =     "ACM Transactions on Asian and Low-Resource Language
                 Information Processing (TALLIP)",
  journal-URL =  "https://dl.acm.org/loi/tallip",
}

@Article{Koide:2018:EIQ,
  author =       "Satoshi Koide and Yukihiro Tadokoro and Takayoshi
                 Yoshimura and Chuan Xiao and Yoshiharu Ishikawa",
  title =        "Enhanced Indexing and Querying of Trajectories in Road
                 Networks via String Algorithms",
  journal =      j-TSAS,
  volume =       "4",
  number =       "1",
  pages =        "3:1--3:??",
  month =        jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3200200",
  ISSN =         "2374-0353",
  bibdate =      "Fri Dec 6 16:16:49 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tsas.bib",
  URL =          "https://dl.acm.org/citation.cfm?id=3200200",
  abstract =     "In this article, we propose a novel indexing and
                 querying method for trajectories constrained in a road
                 network. We aim to provide efficient algorithms for
                 various types of spatiotemporal queries that involve
                 routing in road networks, such as (1) finding moving
                 objects that have traveled along a given path during a
                 given time interval, (2) extracting all paths traveled
                 after a given spatiotemporal context, and (3)
                 enumerating all paths between two locations traveled
                 during a certain time interval. Unlike the existing
                 methods in spatial database research, we employ
                 indexing techniques and algorithms from string
                 processing. This idea is based on the fact that we can
                 represent spatial paths as strings, because
                 trajectories in a network are represented as sequences
                 of road segment IDs. The proposed SNT-index
                 (suffix-array-based network-constrained trajectory
                 index) introduces two novel concepts to trajectory
                 indexing. The first is FM-index, which is a compact
                 in-memory data structure for pattern matching. The
                 second is an inverse suffix array, which allows the
                 FM-index to be integrated with the temporal information
                 stored in a forest of B + -trees. Thanks to these
                 concepts, we can reduce the number of B + -tree
                 accesses required by the query processing algorithms to
                 a constant number, something that cannot be achieved
                 with existing methods. Although an FM-index is
                 essentially a static index, we also propose a practical
                 method of appending new data to the index. Finally,
                 experiments show that our method can process the target
                 queries for more than 1 million trajectories in a few
                 tens of milliseconds, which is significantly faster
                 than what the baseline algorithms can achieve without
                 string algorithms.",
  acknowledgement = ack-nhfb,
  articleno =    "3",
  fjournal =     "ACM Transactions on Spatial Algorithms and Systems
                 (TSAS)",
  journal-URL =  "http://dl.acm.org/pub.cfm?id=J1514",
}

@Article{Krebber:2018:PMP,
  author =       "Manuel Krebber and Henrik Barthels",
  title =        "\pkg{MatchPy}: Pattern Matching in {Python}",
  journal =      j-J-OPEN-SOURCE-SOFT,
  volume =       "3",
  number =       "26",
  pages =        "670:1--670:2",
  month =        jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.21105/joss.00670",
  ISSN =         "2475-9066",
  ISSN-L =       "2475-9066",
  bibdate =      "Thu Sep 13 08:09:35 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/joss.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://joss.theoj.org/papers/10.21105/joss.00670",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Open Source Software",
  journal-URL =  "http://joss.theoj.org/;
                 https://github.com/openjournals/joss-papers/",
  onlinedate =   "21 June 2018",
  ORCID-numbers = "Manuel Krebber / 0000-0001-5038-1102; Henrik Barthels
                 / 0000-0001-6744-3605",
}

@Article{Li:2018:FWI,
  author =       "Youyuan Li and Yingping Zhuang",
  title =        "{fmpRPMF}: a {Web} Implementation for Protein
                 Identification by Robust Peptide Mass Fingerprinting",
  journal =      j-TCBB,
  volume =       "15",
  number =       "5",
  pages =        "1728--1731",
  month =        sep,
  year =         "2018",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2017.2762682",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Thu Nov 8 06:18:46 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "Peptide mass fingerprinting continues to play an
                 important role in current proteomics studies based on
                 its good performance in sample throughput, specificity
                 for single peptides, and insensitivity to unexpected
                 post-translational modifications as compared with MSn.
                 We previously proposed and evaluated the use of
                 feature-matching pattern-based support vector machines
                 SVMs for robust protein identification. This approach
                 is now facilitated with an updated web server fmpRPMF
                 incorporated with several newly developed or improved
                 modules and workflows allowing identification of
                 proteins from MS1 data. Development of the latest
                 fmpRPMF web tool successfully provides a rapid and
                 effective strategy for narrowing the range of candidate
                 proteins. First, a mass-scanning procedure screens all
                 candidate proteins matching the theoretical peptide
                 mass at least three times, thereby reducing the number
                 of candidate proteins from tens of thousands to
                 thousands. Second, a crude ranking procedure screens
                 true-positive proteins among the top six ranked times
                 of candidates based on 17 selected features to reduce
                 the number used for SVM prediction from thousands to
                 tens. The improvement of forecasting efficiency met the
                 requirements of multi-user and multi-task
                 identification for web services. The updated fmpRPMF
                 server is freely available at
                 http://bioinformatics.datawisdom.net/fmp.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Libkin:2018:TNA,
  author =       "Leonid Libkin and Juan L. Reutter and Adri{\'a}n Soto
                 and Domagoj Vrgoc",
  title =        "{TriAL}: a Navigational Algebra for {RDF}
                 Triplestores",
  journal =      j-TODS,
  volume =       "43",
  number =       "1",
  pages =        "5:1--5:??",
  month =        apr,
  year =         "2018",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/3154385",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Wed Apr 11 18:02:25 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  abstract =     "Navigational queries over RDF data are viewed as one
                 of the main applications of graph query languages, and
                 yet the standard model of graph databases ---
                 essentially labeled graphs --- is different from the
                 triples-based model of RDF. While encodings of RDF
                 databases into graph data exist, we show that even the
                 most natural ones are bound to lose some functionality
                 when used in conjunction with graph query languages.
                 The solution is to work directly with triples, but then
                 many properties taken for granted in the graph database
                 context (e.g., reachability) lose their natural
                 meaning. Our goal is to introduce languages that work
                 directly over triples and are closed, i.e., they
                 produce sets of triples, rather than graphs. Our basic
                 language is called TriAL, or Triple Algebra: it
                 guarantees closure properties by replacing the product
                 with a family of join operations. We extend TriAL with
                 recursion and explain why such an extension is more
                 intricate for triples than for graphs. We present a
                 declarative language, namely a fragment of datalog,
                 capturing the recursive algebra. For both languages,
                 the combined complexity of query evaluation is given by
                 low-degree polynomials. We compare our language with
                 previously studied graph query languages such as
                 adaptations of XPath, regular path queries, and nested
                 regular expressions; many of these languages are
                 subsumed by the recursive triple algebra. We also
                 provide an implementation of recursive TriAL on top of
                 a relational query engine, and we show its usefulness
                 by running a wide array of navigational queries over
                 real-world RDF data, while at the same time testing how
                 our implementation compares to existing RDF systems.",
  acknowledgement = ack-nhfb,
  articleno =    "5",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
}

@Article{Mignot:2018:EAC,
  author =       "Ludovic Mignot and Nadia Ouali-Sebti and Djelloul
                 Ziadi",
  title =        "An Efficient Algorithm for the Construction of the
                 Equation Tree Automaton",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "29",
  number =       "6",
  pages =        "951--978",
  month =        sep,
  year =         "2018",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054118500156",
  ISSN =         "0129-0541",
  ISSN-L =       "0129-0541",
  bibdate =      "Mon Nov 12 14:26:47 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.worldscientific.com/doi/10.1142/S0129054118500156",
  abstract =     "Champarnaud et al., and Khorsi et al. show how to
                 compute the equation automaton of a word regular
                 expression $E$ via the C-continuations. Kuske and
                 Meinecke extend the computation of the equation
                 automaton to a regular tree expression $E$ over a
                 ranked alphabet $ \Sigma $ and produce a $ O(R \cdot
                 |E|^2)$ time and space complexity algorithm, where R is
                 the maximal rank of a symbol occurring in $ \Sigma $
                 and $ |E|$ is the size of the syntax tree of $E$. In
                 this paper, we give a full description of an algorithm
                 based on the acyclic minimization of Revuz in order to
                 compute the pseudo-continuations from the
                 C-continuations. Our algorithm, which is performed in $
                 O(|Q| \cdot |E|)$ time and space complexity, where $
                 |Q|$ is the number of states of the produced automaton,
                 is more efficient than the one obtained by Kuske and
                 Meinecke since $ |Q| \lessequal |E|$. Moreover, our
                 algorithm is an output-sensitive algorithm, i.e. the
                 complexity of which is based on the size of the
                 produced automaton.",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Moataz:2018:SSE,
  author =       "Tarik Moataz and Indrajit Ray and Indrakshi Ray and
                 Abdullatif Shikfa and Fr{\'e}d{\'e}ric Cuppens and Nora
                 Cuppens",
  title =        "Substring search over encrypted data",
  journal =      j-J-COMP-SECUR,
  volume =       "26",
  number =       "1",
  pages =        "1--30",
  month =        "????",
  year =         "2018",
  CODEN =        "JCSIET",
  DOI =          "https://doi.org/10.3233/JCS-14652",
  ISSN =         "0926-227X (print), 1875-8924 (electronic)",
  ISSN-L =       "0926-227X",
  bibdate =      "Mon Sep 23 05:47:14 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cryptography2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/jcompsecur.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://content.iospress.com/journals/journal-of-computer-security",
}

@Article{Narayan:2018:MTR,
  author =       "Apurva Narayan and Greta Cutulenco and Yogi Joshi and
                 Sebastian Fischmeister",
  title =        "Mining Timed Regular Specifications from System
                 Traces",
  journal =      j-TECS,
  volume =       "17",
  number =       "2",
  pages =        "46:1--46:??",
  month =        apr,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3147660",
  ISSN =         "1539-9087 (print), 1558-3465 (electronic)",
  ISSN-L =       "1539-9087",
  bibdate =      "Thu Oct 17 18:16:34 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tecs.bib",
  abstract =     "Temporal properties define the order of occurrence and
                 timing constraints on event occurrence. Such
                 specifications are important for safety-critical
                 real-time systems. We propose a framework for
                 automatically mining temporal properties that are in
                 the form of timed regular expressions (TREs) from
                 system traces. Using an abstract structure of the
                 property, the framework constructs a finite state
                 machine to serve as an acceptor. We analytically derive
                 speedup for the fragment and confirm the speedup using
                 empirical validation with synthetic traces. The
                 framework is evaluated on industrial-strength
                 safety-critical real-time applications using traces
                 with more than 1 million entries.",
  acknowledgement = ack-nhfb,
  ajournal =     "ACM Trans. Embed. Comput. Syst.",
  articleno =    "46",
  fjournal =     "ACM Transactions on Embedded Computing Systems",
  journal-URL =  "https://dl.acm.org/loi/tecs",
}

@Article{Ng:2018:SCN,
  author =       "Timothy Ng and David Rappaport and Kai Salomaa",
  title =        "State Complexity of Neighbourhoods and Approximate
                 Pattern Matching",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "29",
  number =       "2",
  pages =        "315--??",
  month =        feb,
  year =         "2018",
  CODEN =        "IFCSEN",
  DOI =          "https://doi.org/10.1142/S0129054118400099",
  ISSN =         "0129-0541",
  ISSN-L =       "0129-0541",
  bibdate =      "Thu Apr 12 06:33:34 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
}

@Article{Padhi:2018:FFS,
  author =       "Saswat Padhi and Prateek Jain and Daniel Perelman and
                 Oleksandr Polozov and Sumit Gulwani and Todd
                 Millstein",
  title =        "{FlashProfile}: a framework for synthesizing data
                 profiles",
  journal =      j-PACMPL,
  volume =       "2",
  number =       "OOPSLA",
  pages =        "150:1--150:28",
  month =        oct,
  year =         "2018",
  DOI =          "https://doi.org/10.1145/3276520",
  bibdate =      "Sat Aug 8 07:56:30 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3276520",
  abstract =     "We address the problem of learning a syntactic profile
                 for a collection of strings, i.e. a set of regex-like
                 patterns that succinctly describe the syntactic
                 variations in the strings. Real-world datasets,
                 typically curated from multiple sources, often
                 \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "150",
  fjournal =     "Proceedings of the ACM on Programming Languages",
  journal-URL =  "https://pacmpl.acm.org/",
}

@Article{Park:2018:ETS,
  author =       "Ha-Myung Park and Francesco Silvestri and Rasmus Pagh
                 and Chin-Wan Chung and Sung-Hyon Myaeng and U. Kang",
  title =        "Enumerating Trillion Subgraphs On Distributed
                 Systems",
  journal =      j-TKDD,
  volume =       "12",
  number =       "6",
  pages =        "71:1--71:??",
  month =        oct,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3237191",
  ISSN =         "1556-4681 (print), 1556-472X (electronic)",
  ISSN-L =       "1556-4681",
  bibdate =      "Tue Jan 29 17:18:49 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tkdd.bib",
  abstract =     "How can we find patterns from an enormous graph with
                 billions of vertices and edges? The subgraph
                 enumeration, which is to find patterns from a graph, is
                 an important task for graph data analysis with many
                 applications, including analyzing the social network
                 evolution, measuring the significance of motifs in
                 biological networks, observing the dynamics of
                 Internet, and so on. Especially, the triangle
                 enumeration, a special case of the subgraph
                 enumeration, where the pattern is a triangle, has many
                 applications such as identifying suspicious users in
                 social networks, detecting web spams, and finding
                 communities. However, recent networks are so large that
                 most of the previous algorithms fail to process them.
                 Recently, several MapReduce algorithms have been
                 proposed to address such large networks; however, they
                 suffer from the massive shuffled data resulting in a
                 very long processing time. In this article, we propose
                 scalable methods for enumerating trillion subgraphs on
                 distributed systems. We first propose PTE (
                 Pre-partitioned Triangle Enumeration ), a new
                 distributed algorithm for enumerating triangles in
                 enormous graphs by resolving the structural
                 inefficiency of the previous MapReduce algorithms. PTE
                 enumerates trillions of triangles in a billion scale
                 graph by decreasing three factors: the amount of
                 shuffled data, total work, and network read. We also
                 propose PSE ( Pre-partitioned Subgraph Enumeration ), a
                 generalized version of PTE for enumerating subgraphs
                 that match an arbitrary query graph. Experimental
                 results show that PTE provides 79 times faster
                 performance than recent distributed algorithms on
                 real-world graphs, and succeeds in enumerating more
                 than 3 trillion triangles on the ClueWeb12 graph with
                 6.3 billion vertices and 72 billion edges. Furthermore,
                 PSE successfully enumerates 265 trillion clique
                 subgraphs with 4 vertices from a subdomain hyperlink
                 network, showing 47 times faster performance than the
                 state of the art distributed subgraph enumeration
                 algorithm.",
  acknowledgement = ack-nhfb,
  articleno =    "71",
  fjournal =     "ACM Transactions on Knowledge Discovery from Data
                 (TKDD)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1054",
}

@Article{Radanne:2018:RLG,
  author =       "Gabriel Radanne and Peter Thiemann",
  title =        "{Regenerate}: a language generator for extended
                 regular expressions",
  journal =      j-SIGPLAN,
  volume =       "53",
  number =       "9",
  pages =        "202--214",
  month =        nov,
  year =         "2018",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3393934.3278133",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Apr 8 13:49:51 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3393934.3278133",
  abstract =     "Regular expressions are part of every programmer's
                 toolbox. They are used for a wide variety of
                 language-related tasks and there are many algorithms
                 for manipulating them. In particular, matching
                 algorithms that detect whether a word belongs to the
                 language described by a regular expression are well
                 explored, yet new algorithms appear frequently.
                 However, there is no satisfactory methodology for
                 testing such matchers. We propose a testing methodology
                 which is based on generating positive as well as
                 negative examples of words in the language. To this
                 end, we present a new algorithm to generate the
                 language described by a generalized regular expression
                 with intersection and complement operators. The
                 complement operator allows us to generate both positive
                 and negative example words from a given regular
                 expression. We implement our generator in Haskell and
                 OCaml and show that its performance is more than
                 adequate for testing.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Soule:2018:MLM,
  author =       "Robert Soule and Shrutarshi Basu and Parisa Jalili
                 Marandi and Fernando Pedone and Robert Kleinberg and
                 Emin Gun Sirer and Nate Foster",
  title =        "{Merlin}: a Language for Managing Network Resources",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "26",
  number =       "5",
  pages =        "2188--2201",
  month =        oct,
  year =         "2018",
  CODEN =        "IEANEP",
  DOI =          "https://doi.org/10.1109/TNET.2018.2867239",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Thu Nov 8 06:12:22 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "This paper presents Merlin, a framework for managing
                 resources in software-defined networks. With Merlin,
                 administrators express high-level policies using
                 programs in a declarative language. The language
                 includes logical predicates to identify sets of
                 packets, regular expressions to encode forwarding
                 paths, and arithmetic formulas to specify bandwidth
                 constraints. The compiler maps these policies into a
                 constraint problem that determines bandwidth
                 allocations using parametrizable heuristics. It then
                 generates a code that can be executed on the network
                 elements to enforce the policies. To allow network
                 tenants to dynamically adapt policies to their needs,
                 Merlin provides mechanisms for delegating control of
                 sub-policies and for verifying that modifications made
                 to sub-policies do not violate global constraints.
                 Experiments demonstrate the expressiveness and
                 effectiveness of Merlin on realistic scenarios.
                 Overall, Merlin simplifies network administration by
                 providing high-level abstractions for specifying and
                 enforcing network policies.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J771",
}

@Article{Trevisan:2018:RUC,
  author =       "Martino Trevisan and Idilio Drago",
  title =        "Robust {URL} Classification With Generative
                 Adversarial Networks",
  journal =      j-SIGMETRICS,
  volume =       "46",
  number =       "3",
  pages =        "143--146",
  month =        dec,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3308897.3308959",
  ISSN =         "0163-5999 (print), 1557-9484 (electronic)",
  ISSN-L =       "0163-5999",
  bibdate =      "Sat Feb 2 07:14:43 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigmetrics.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Classifying URLs is essential for different
                 applications, such as parental control, URL filtering
                 and Ads/tracking protection. Such systems historically
                 identify URLs by means of regular expressions, even if
                 machine learning alternatives have been proposed to
                 overcome the time-consuming maintenance of
                 classification rules. Classical machine learning
                 algorithms, however, require large samples of URLs to
                 train the models, covering the diverse classes of URLs
                 (i.e., a ground truth), which somehow limits the
                 applicability of the approach. We here give a first
                 step towards the use of Generative Adversarial Neural
                 Networks (GANs) to classify URLs. GANs are attractive
                 for this problem for two reasons. First, GANs can
                 produce samples of URLs belonging to specific classes
                 even if exposed to a limited training set, outputting
                 both synthetic traces and a robust discriminator.
                 Second, a GAN can be trained to discriminate a class of
                 URLs without being exposed to all other URLs classes
                 --- i.e., GANs are robust even if not exposed to
                 uninteresting URL classes during training. Experiments
                 on real data show that not only the generated synthetic
                 traces are somehow realistic, but also the URL
                 classification is accurate with GANs.",
  acknowledgement = ack-nhfb,
  ajournal =     "Perform. Eval. Rev.",
  fjournal =     "ACM SIGMETRICS Performance Evaluation Review",
  journal-URL =  "https://dl.acm.org/loi/sigmetrics",
}

@Article{Varma:2018:SAW,
  author =       "Paroma Varma and Christopher R{\'e}",
  title =        "{Snuba}: automating weak supervision to label training
                 data",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "12",
  number =       "3",
  pages =        "223--236",
  month =        nov,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3291264.3291268",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Fri Jan 18 05:54:04 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  abstract =     "As deep learning models are applied to increasingly
                 diverse problems, a key bottleneck is gathering enough
                 high-quality training labels tailored to each task.
                 Users therefore turn to weak supervision, relying on
                 imperfect sources of labels like pattern matching and
                 user-defined heuristics. Unfortunately, users have to
                 design these sources for each task. This process can be
                 time consuming and expensive: domain experts often
                 perform repetitive steps like guessing optimal
                 numerical thresholds and developing informative text
                 patterns. To address these challenges, we present
                 Snuba, a system to automatically generate heuristics
                 using a small labeled dataset to assign training labels
                 to a large, unlabeled dataset in the weak supervision
                 setting. Snuba generates heuristics that each labels
                 the subset of the data it is accurate for, and
                 iteratively repeats this process until the heuristics
                 together label a large portion of the unlabeled data.
                 We develop a statistical measure that guarantees the
                 iterative process will automatically terminate before
                 it degrades training label quality. Snuba automatically
                 generates heuristics in under five minutes and performs
                 up to 9.74 F1 points better than the best known
                 user-defined heuristics developed over many days. In
                 collaborations with users at research labs, Stanford
                 Hospital, and on open source datasets, Snuba
                 outperforms other automated approaches like
                 semi-supervised learning by up to 14.35 F1 points.",
  acknowledgement = ack-nhfb,
  ajournal =     "Proc. VLDB Endowment",
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J1174",
}

@Article{Yuan:2018:ASP,
  author =       "Xingliang Yuan and Huayi Duan and Cong Wang",
  title =        "Assuring String Pattern Matching in Outsourced
                 Middleboxes",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "26",
  number =       "3",
  pages =        "1362--1375",
  month =        jun,
  year =         "2018",
  CODEN =        "IEANEP",
  DOI =          "https://doi.org/10.1109/TNET.2018.2822837",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Thu Oct 18 05:31:01 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
  abstract =     "Modern enterprise networks heavily rely on the
                 ubiquitous network middleboxes for advanced traffic
                 processing functions. Recent advances in software
                 packet processing and virtualization technologies are
                 further pushing forward the paradigm of migrating
                 middleboxes to third-party providers, e.g., clouds and
                 ISPs, as virtualized services, with well-understood
                 benefits on reduced maintenance cost and increased
                 service scalability. Despite promising, outsourcing
                 middleboxes raises new security challenges. Among
                 others, this new service eliminates the enterprise's
                 direct control on outsourced network functions.
                 Mechanisms assuring that those middleboxes consistently
                 perform network functions as intended currently do not
                 exist. In this paper, we propose the first practical
                 system that enables runtime execution assurances of
                 outsourced middleboxes with high confidence, helping
                 enterprises to extend their visibility into untrusted
                 service providers. As an initial effort, we target on
                 pattern matching-based network functions, which cover a
                 broad class of middlebox applications, such as
                 instruction detection, Web firewall, and traffic
                 classification. Our design follows the roadmap of
                 probabilistic checking mechanisms that provide a
                 tunable level of assurance, as in cloud and distributed
                 computing literature. We show how to synthesize this
                 design intuition in the context of outsourced
                 middleboxes and the dynamic network effect.
                 Specifically, we present diligent technical
                 instantiations in the cases of the single middlebox and
                 the composition i.e., service chaining. We deploy our
                 designs into off-the-shelf middlebox outsourcing
                 architectures with full-fledged implementation on the
                 click modular router. Evaluations demonstrate that high
                 assurance levels are achieved by pre-processing only a
                 few packets with marginal overhead.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J771",
}

@Article{Zha:2018:CRC,
  author =       "Yue Zha and Jing Li",
  title =        "{CMA}: A Reconfigurable Complex Matching Accelerator
                 for Wire-Speed Network Intrusion Detection",
  journal =      j-IEEE-COMPUT-ARCHIT-LETT,
  volume =       "17",
  number =       "1",
  pages =        "33--36",
  month =        jan # "\slash " # jun,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1109/LCA.2017.2719023",
  ISSN =         "1556-6056 (print), 1556-6064 (electronic)",
  ISSN-L =       "1556-6056",
  bibdate =      "Tue Jun 25 07:41:05 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeecomputarchitlett.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The rapid growth in network bandwidth and the ever
                 more sophisticated network attack techniques pose
                 challenges to current network intrusion detection
                 systems (NIDS). While software-based solutions are
                 incapable of performing wire-speed network traffic
                 monitoring, many hardware-based pattern matching
                 solutions also suffer from capacity limitation and high
                 power consumption. To effectively address these
                 challenges, we propose a reconfigurable complex
                 matching accelerator (CMA) enabled by the emerging
                 nonvolatile memory technology (resistive random access
                 memory) to speed up intrusion detection systems with
                 better energy efficiency. Beyond common equality
                 matching in current NIDS, CMA can be configured to
                 provide a comprehensive set of arithmetic matching
                 functions (e.g., less than), resulting in improved
                 utilization and higher energy efficiency. We evaluate
                 CMA using real-world network security benchmarks. On
                 average, it achieves 84.9 percent area reduction, 97.3
                 percent energy consumption reduction, and 20 percent
                 improvement in searching speed compared to the
                 SRAM-based Ternary Content Addressable Memory (TCAM)
                 design in state-of-the-art NIDS. It also outperforms
                 emerging RRAM-based TCAM (2.5T1R) design in area,
                 energy and search delay, on the set of evaluated
                 workloads.",
  acknowledgement = ack-nhfb,
  affiliation =  "Zha, Y (Reprint Author), Univ Wisconsin, Elect \& Comp
                 Engn, Madison, WI 53706 USA. Zha, Yue; Li, Jing, Univ
                 Wisconsin, Elect \& Comp Engn, Madison, WI 53706 USA.",
  author-email = "yzha3@wisc.edu jli587@wisc.edu",
  da =           "2019-06-20",
  doc-delivery-number = "FZ6EO",
  eissn =        "1556-6064",
  fjournal =     "IEEE Computer Architecture Letters",
  journal-iso =  "IEEE Comput. Archit. Lett.",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=10208",
  keywords =     "accelerator; arithmetic matching functions; CMA;
                 Computer architecture; computer network security;
                 computer networks; content-addressable storage;
                 Coprocessors; emerging nonvolatile memory technology;
                 Encoding; energy consumption reduction; higher energy
                 efficiency; intrusion detection; Intrusion detection;
                 IP networks; network bandwidth; network intrusion
                 detection systems; Network security; NIDS; pattern
                 matching; pattern matching solutions; Ports
                 (Computers); random-access storage; real-world network
                 security benchmarks; reconfigurable complex matching
                 accelerator; ReRAM; resistive random access memory;
                 security of data; sophisticated network attack
                 techniques; SRAM chips; TCAM; telecommunication
                 traffic; ternary content addressable memory design;
                 wire-speed network intrusion detection; wire-speed
                 network traffic monitoring",
  keywords-plus = "PACKET CLASSIFICATION; MODEL",
  number-of-cited-references = "15",
  research-areas = "Computer Science",
  times-cited =  "0",
  unique-id =    "Zha:2018:CRC",
  web-of-science-categories = "Computer Science, Hardware \&
                 Architecture",
}

@Article{Zhan:2018:EDM,
  author =       "Yang Zhan and Yizheng Jiao and Donald E. Porter and
                 Alex Conway and Eric Knorr and Martin Farach-Colton and
                 Michael A. Bender and Jun Yuan and William Jannen and
                 Rob Johnson",
  title =        "Efficient Directory Mutations in a Full-Path-Indexed
                 File System",
  journal =      j-TOS,
  volume =       "14",
  number =       "3",
  pages =        "22:1--22:??",
  month =        nov,
  year =         "2018",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3241061",
  ISSN =         "1553-3077 (print), 1553-3093 (electronic)",
  ISSN-L =       "1553-3077",
  bibdate =      "Sat Sep 21 07:58:49 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tos.bib",
  abstract =     "Full-path indexing can improve I/O efficiency for
                 workloads that operate on data organized using
                 traditional, hierarchical directories, because data is
                 placed on persistent storage in scan order. Prior
                 results indicate, however, that renames in a local file
                 system with full-path indexing are prohibitively
                 expensive. This article shows how to use full-path
                 indexing in a file system to realize fast directory
                 scans, writes, and renames. The article introduces a
                 range-rename mechanism for efficient key-space changes
                 in a write-optimized dictionary. This mechanism is
                 encapsulated in the key-value Application Programming
                 Interface (API) and simplifies the overall file system
                 design. We implemented this mechanism in B$^{\& amp;
                 egr; }$ -trees File System (BetrFS), an in-kernel,
                 local file system for Linux. This new version, BetrFS
                 0.4, performs recursive greps 1.5x faster and random
                 writes 1.2x faster than BetrFS 0.3, but renames are
                 competitive with indirection-based file systems for a
                 range of sizes. BetrFS 0.4 outperforms BetrFS 0.3, as
                 well as traditional file systems, such as ext4, Extents
                 File System (XFS), and Z File System (ZFS), across a
                 variety of workloads.",
  acknowledgement = ack-nhfb,
  articleno =    "22",
  fjournal =     "ACM Transactions on Storage",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J960",
}

@Article{Zhang:2018:PMO,
  author =       "Weixin Zhang and Bruno C. d. S. Oliveira",
  title =        "Pattern matching in an open world",
  journal =      j-SIGPLAN,
  volume =       "53",
  number =       "9",
  pages =        "134--146",
  month =        nov,
  year =         "2018",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/3393934.3278124",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Wed Apr 8 13:49:51 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3393934.3278124",
  abstract =     "Pattern matching is a pervasive and useful feature in
                 functional programming. There have been many attempts
                 to bring similar notions to Object-Oriented Programming
                 (OOP) in the past. However, a key challenge in OOP is
                 how pattern matching can coexist \ldots{}",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "https://dl.acm.org/loi/sigplan",
}

@Article{Abbas:2019:QRE,
  author =       "Houssam Abbas and Alena Rodionova and Konstantinos
                 Mamouras and Ezio Bartocci and Scott A. Smolka and Radu
                 Grosu",
  title =        "Quantitative Regular Expressions for Arrhythmia
                 Detection",
  journal =      j-TCBB,
  volume =       "16",
  number =       "5",
  pages =        "1586--1597",
  month =        sep,
  year =         "2019",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2018.2885274",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Fri Nov 29 16:39:03 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "Implantable medical devices are safety-critical
                 systems whose incorrect operation can jeopardize a
                 patient's health, and whose algorithms must meet tight
                 platform constraints like memory consumption and
                 runtime. In particular, we consider here the case of
                 implantable cardioverter defibrillators, where peak
                 detection algorithms and various others discrimination
                 algorithms serve to distinguish fatal from non-fatal
                 arrhythmias in a cardiac signal. Motivated by the need
                 for powerful formal methods to reason about the
                 performance of arrhythmia detection algorithms, we show
                 how to specify all these algorithms using Quantitative
                 Regular Expressions QREs. QRE is a formal language to
                 express complex numerical queries over data streams,
                 with provable runtime and memory consumption
                 guarantees. We show that QREs are more suitable than
                 classical temporal logics to express in a concise and
                 easy way a range of peak detectors in both the time and
                 wavelet domains and various discriminators at the heart
                 of today's arrhythmia detection devices. The proposed
                 formalization also opens the way to formal analysis and
                 rigorous testing of these detectors' correctness and
                 performance, alleviating the regulatory burden on
                 device developers when modifying their algorithms. We
                 demonstrate the effectiveness of our approach by
                 executing QRE-based monitors on real patient data on
                 which they yield results on par with the results
                 reported in the medical literature.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Anselmo:2019:SPA,
  author =       "Marcella Anselmo and Dora Giammarresi and Maria
                 Madonia",
  title =        "Sets of Pictures Avoiding Overlaps",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "30",
  number =       "6--7",
  pages =        "875--898",
  month =        sep # "--" # nov,
  year =         "2019",
  DOI =          "https://doi.org/10.1142/S0129054119400215",
  ISSN =         "0129-0541",
  ISSN-L =       "0129-0541",
  bibdate =      "Fri Sep 20 10:48:00 MDT 2019",
  bibsource =    "http://www.worldscientific.com/loi/ijfcs;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.worldscientific.com/doi/10.1142/S0129054119400215",
  abstract =     "A string set avoids overlaps if it has the property
                 that the prefix of each string in the set does not
                 coincide with the suffix of any string in the set. The
                 problem of avoiding overlaps in strings is extensively
                 investigated since it plays an important role in the
                 context of string matching and coding. The notion of
                 overlap can be extended naturally to two dimensions;
                 two pictures p p p and q q q have an overlap if one can
                 put one corner of p p p on some position in q q q in
                 such a way that all symbols in the common positions
                 coincide. A picture with no self-overlaps is called
                 unbordered and it is a generalization in two dimensions
                 of an unbordered $ (o r b i f i x - f r e e) $ string.
                 We first investigate the problem of generating all
                 unbordered pictures of fixed size. Then, we study
                 particular sets of unbordered pictures that are
                 non-overlapping each others. We show that the frame of
                 the pictures has a special role in defining these sets.
                 In particular, we prove that there exist kinds of
                 synchronization frames that can be put around the
                 pictures of any set to make it non-overlapping.
                 Finally, we present a construction of non-expandable
                 non-overlapping sets of pictures which starts from some
                 property of frame-completeness.",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science $(IJFCS)$",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
  remark =       "Special Issue: Descriptional Complexity of Formal
                 Systems 2017",
}

@Article{Beedkar:2019:UFF,
  author =       "Kaustubh Beedkar and Rainer Gemulla and Wim Martens",
  title =        "A Unified Framework for Frequent Sequence Mining with
                 Subsequence Constraints",
  journal =      j-TODS,
  volume =       "44",
  number =       "3",
  pages =        "11:1--11:??",
  month =        jun,
  year =         "2019",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/3321486",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Tue Oct 29 10:55:21 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  URL =          "https://dl.acm.org/ft_gateway.cfm?id=3321486",
  abstract =     "Frequent sequence mining methods often make use of
                 constraints to control which subsequences should be
                 mined. A variety of such subsequence constraints has
                 been studied in the literature, including length, gap,
                 span, regular-expression, and hierarchy constraints. In
                 this article, we show that many subsequence
                 constraints-including and beyond those considered in
                 the literature-can be unified in a single framework. A
                 unified treatment allows researchers to study jointly
                 many types of subsequence constraints (instead of each
                 one individually) and helps to improve usability of
                 pattern mining systems for practitioners. In more
                 detail, we propose a set of simple and intuitive
                 ``pattern expressions'' to describe subsequence
                 constraints and explore algorithms for efficiently
                 mining frequent subsequences under such general
                 constraints. Our algorithms translate pattern
                 expressions to succinct finite-state transducers, which
                 we use as computational model, and simulate these
                 transducers in a way suitable for frequent sequence
                 mining. Our experimental study on real-world datasets
                 indicates that our algorithms-although more general-are
                 efficient and, when used for sequence mining with prior
                 constraints studied in literature, competitive to (and
                 in some cases superior to) state-of-the-art specialized
                 methods.",
  acknowledgement = ack-nhfb,
  articleno =    "11",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J777",
}

@Article{Broda:2019:ABR,
  author =       "Sabine Broda and Ant{\'o}nio Machiavelo and Nelma
                 Moreira and Rog{\'e}rio Reis",
  title =        "On Average Behaviour of Regular Expressions in Strong
                 Star Normal Form",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "30",
  number =       "6--7",
  pages =        "899--920",
  month =        sep # "--" # nov,
  year =         "2019",
  DOI =          "https://doi.org/10.1142/S0129054119400227",
  ISSN =         "0129-0541",
  ISSN-L =       "0129-0541",
  bibdate =      "Fri Sep 20 10:48:00 MDT 2019",
  bibsource =    "http://www.worldscientific.com/loi/ijfcs;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.worldscientific.com/doi/10.1142/S0129054119400227",
  abstract =     "For regular expressions in $ (s t r o n g) $ star
                 normal form a large set of efficient algorithms is
                 known, from conversions into finite automata to
                 characterisations of unambiguity. In this paper we
                 study the average complexity of this class of
                 expressions using analytic combinatorics. As it is not
                 always feasible to obtain explicit expressions for the
                 generating functions involved, here we show how to get
                 the required information for the asymptotic estimates
                 with an indirect use of the existence of Puiseux
                 expansions at singularities. We study, asymptotically
                 and on average, the alphabetic size, the size of the
                 -follow automaton and of the position automaton, as
                 well as the ratio and the size of these expressions to
                 standard regular expressions.",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science $(IJFCS)$",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
  remark =       "Special Issue: Descriptional Complexity of Formal
                 Systems 2017",
}

@Article{Brzozowski:2019:SCP,
  author =       "Janusz A. Brzozowski and Sylvie Davies and Abhishek
                 Madan",
  title =        "State complexity of pattern matching in regular
                 languages",
  journal =      j-THEOR-COMP-SCI,
  volume =       "777",
  number =       "??",
  pages =        "121--131",
  day =          "19",
  month =        jul,
  year =         "2019",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2018.12.014",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Jun 15 10:14:22 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2015.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397518307357",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Cantone:2019:LES,
  author =       "Domenico Cantone and Simone Faro and Arianna Pavone",
  title =        "Linear and Efficient String Matching Algorithms Based
                 on Weak Factor Recognition",
  journal =      j-ACM-J-EXP-ALGORITHMICS,
  volume =       "24",
  number =       "1",
  pages =        "1.8:1--1.8:??",
  month =        oct,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3301295",
  ISSN =         "1084-6654",
  bibdate =      "Tue Oct 22 07:25:57 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/jea.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/ft_gateway.cfm?id=3301295",
  abstract =     "We present a simple and very efficient algorithm for
                 string matching based on the combination of weak factor
                 recognition and hashing. Despite its quadratic
                 worst-case running time, our algorithm exhibits a
                 sublinear behaviour. We also propose some practical
                 improvements of our algorithm and a variant with a
                 linear worst-case time complexity. Experimental results
                 show that, in most cases, some of the variants of our
                 algorithm obtain the best running times when compared,
                 under various conditions, against the most effective
                 algorithms present in the literature. For instance, in
                 the case of small alphabets and long patterns, the gain
                 in running time is up to 18\%. This makes our proposed
                 algorithm one of the most flexible solutions in
                 practical cases.",
  acknowledgement = ack-nhfb,
  articleno =    "1.8",
  fjournal =     "Journal of Experimental Algorithmics (JEA)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J430",
}

@Article{Cox:2019:SSD,
  author =       "Russ Cox",
  title =        "Surviving software dependencies",
  journal =      j-CACM,
  volume =       "62",
  number =       "9",
  pages =        "36--43",
  month =        sep,
  year =         "2019",
  CODEN =        "CACMA2",
  DOI =          "https://doi.org/10.1145/3347446",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Thu Aug 22 08:20:23 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cacm2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://cacm.acm.org/magazines/2019/9/238968/fulltext",
  abstract =     "Software reuse is finally here but comes with risks.",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
  keywords =     "PCRE package; RE2 package",
}

@Article{Daykin:2019:EPM,
  author =       "J. W. Daykin and R. Groult and Y. Guesnet and T.
                 Lecroq and A. Lefebvre and M. L{\'e}onard and L.
                 Mouchard and {\'E}. Prieur-Gaston and B. Watson",
  title =        "Efficient pattern matching in degenerate strings with
                 the {Burrows--Wheeler} transform",
  journal =      j-INFO-PROC-LETT,
  volume =       "147",
  number =       "??",
  pages =        "82--87",
  month =        jul,
  year =         "2019",
  CODEN =        "IFPLAT",
  DOI =          "https://doi.org/10.1016/j.ipl.2019.03.003",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon Jun 10 07:43:01 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019019300535",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Decaroli:2019:CIO,
  author =       "Gianni Decaroli and Travis Gagie and Giovanni
                 Manzini",
  title =        "A compact index for order-preserving pattern
                 matching",
  journal =      j-SPE,
  volume =       "49",
  number =       "6",
  pages =        "1041--1051",
  month =        jun,
  year =         "2019",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.2694",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat Oct 12 09:43:47 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "28 March 2019",
}

@Article{Dixit:2019:FBD,
  author =       "Umesh D. Dixit and M. S. Shirdhonkar",
  title =        "Fingerprint-Based Document Image Retrieval",
  journal =      j-INT-J-IMAGE-GRAPHICS,
  volume =       "19",
  number =       "2",
  pages =        "??--??",
  year =         "2019",
  DOI =          "https://doi.org/10.1142/S0219467819500086",
  ISSN =         "0219-4678",
  ISSN-L =       "0219-4678",
  bibdate =      "Fri May 10 09:47:18 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cryptography2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/ijig.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.worldscientific.com/doi/10.1142/S0219467819500086",
  abstract =     "Most of the documents use fingerprint impression for
                 authentication. Property related documents, bank
                 checks, application forms, etc., are the examples of
                 such documents. Fingerprint-based document image
                 retrieval system aims to provide a solution for
                 searching and browsing of such digitized documents. The
                 major challenges in implementing fingerprint-based
                 document image retrieval are an efficient method for
                 fingerprint detection and an effective feature
                 extraction method. In this work, we propose a method
                 for automatic detection of a fingerprint from given
                 query document image employing Discrete Wavelet
                 Transform (DWT)-based features and SVM classifier. In
                 this paper, we also propose and investigate two feature
                 extraction schemes, DWT and Stationary Wavelet
                 Transform (SWT)-based Local Binary Pattern (LBP)
                 features for fingerprint-based document image
                 retrieval. The standardized Euclidean distance is
                 employed for matching and ranking of the documents.
                 Proposed method is tested on a database of 1200
                 document images and is also compared with current
                 state-of-art. The proposed scheme provided 98.87\% of
                 detection accuracy and 73.08\% of Mean Average
                 Precision (MAP) for document image retrieval.",
  acknowledgement = ack-nhfb,
  articleno =    "1950008",
  fjournal =     "International Journal of Image and Graphics (IJIG)",
  journal-URL =  "http://www.worldscientific.com/worldscinet/ijig",
}

@Article{Fang:2019:EPM,
  author =       "Yixiang Fang and Yun Li and Reynold Cheng and Nikos
                 Mamoulis and Gao Cong",
  title =        "Evaluating pattern matching queries for spatial
                 databases",
  journal =      j-VLDB-J,
  volume =       "28",
  number =       "5",
  pages =        "649--673",
  month =        oct,
  year =         "2019",
  CODEN =        "VLDBFR",
  DOI =          "https://doi.org/10.1007/s00778-019-00550-3",
  ISSN =         "1066-8888 (print), 0949-877X (electronic)",
  ISSN-L =       "1066-8888",
  bibdate =      "Thu Mar 19 17:10:21 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbj.bib",
  URL =          "http://link.springer.com/article/10.1007/s00778-019-00550-3",
  acknowledgement = ack-nhfb,
  fjournal =     "VLDB Journal: Very Large Data Bases",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J869",
}

@Article{Farr:2019:UGT,
  author =       "Graham Farr",
  title =        "Using {Go} in teaching the theory of computation",
  journal =      j-SIGACT,
  volume =       "50",
  number =       "1",
  pages =        "65--78",
  month =        mar,
  year =         "2019",
  CODEN =        "SIGNDM",
  DOI =          "https://doi.org/10.1145/3319627.3319639",
  ISSN =         "0163-5700 (print), 1943-5827 (electronic)",
  ISSN-L =       "0163-5700",
  bibdate =      "Tue Oct 22 09:39:55 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigact.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "With increased public interest in the ancient game of
                 Go since 2016, it is an especially good time to use it
                 in teaching. The game is an excellent source of
                 exercises in the theory of computation. We give some
                 exercises developed during our research on Go which
                 were then used when teaching this subject at Monash
                 University. These are based on One-Dimensional Go
                 (1D-Go) which uses a path graph as its board. They are
                 about determining whether or not a position is legal
                 and counting the number of legal positions. Curriculum
                 elements that may be illustrated and practised using
                 1D-Go include: regular expressions, linear recurrences,
                 proof by induction, finite automata, regular grammars,
                 context-free grammars and languages, pushdown automata,
                 and Turing machines.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGACT News",
  journal-URL =  "http://dl.acm.org/citation.cfm?id=J697",
}

@Article{Freydenberger:2019:DRE,
  author =       "Dominik D. Freydenberger and Markus L. Schmid",
  title =        "Deterministic regular expressions with
                 back-references",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "105",
  number =       "??",
  pages =        "1--39",
  month =        nov,
  year =         "2019",
  CODEN =        "JCSSBM",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Mon Oct 14 10:03:55 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000018301818",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Ganardi:2019:UTB,
  author =       "Moses Ganardi and Markus Lohrey",
  title =        "A Universal Tree Balancing Theorem",
  journal =      j-TOCT,
  volume =       "11",
  number =       "1",
  pages =        "1:1--1:??",
  month =        jan,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3278158",
  ISSN =         "1942-3454 (print), 1942-3462 (electronic)",
  ISSN-L =       "1942-3454",
  bibdate =      "Tue Oct 22 10:25:09 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toct.bib",
  URL =          "https://dl.acm.org/ft_gateway.cfm?id=3278158",
  abstract =     "We present a general framework for balancing
                 expressions (terms) in the form of so-called tree
                 straight-line programs. The latter can be seen as
                 circuits over the free term algebra extended by
                 contexts (terms with a hole) and the operations, which
                 insert terms/contexts into contexts. In Ref. [16], it
                 was shown that one can compute for a given term of size
                 n in logspace a tree straight-line program of depth O
                 (log n ) and size O ( n / log n ). In the present
                 article, it is shown that the conversion can be done in
                 DLOGTIME-uniform TC$^0$. This allows reducing the term
                 evaluation problem over an arbitrary algebra A to the
                 term evaluation problem over a derived two-sorted
                 algebra F ( A ). Three applications are presented: (i)
                 an alternative proof for a recent result by Krebs et
                 al. [25] on the expression evaluation problem is given;
                 (ii) it is shown that expressions for an arbitrary
                 (possibly non-commutative) semiring can be transformed
                 in DLOGTIME-uniform TC$^0$ into equivalent circuits of
                 logarithmic depth and size O ( n / log n ); and, (iii)
                 a corresponding result for regular expressions is
                 shown.",
  acknowledgement = ack-nhfb,
  articleno =    "1",
  fjournal =     "ACM Transactions on Computation Theory",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1190",
}

@Article{Ghanbarpour:2019:MBK,
  author =       "Asieh Ghanbarpour and Hassan Naderi",
  title =        "A Model-based Keyword Search Approach for Detecting
                 Top-$k$ Effective Answers",
  journal =      j-COMP-J,
  volume =       "62",
  number =       "3",
  pages =        "377--393",
  day =          "1",
  month =        mar,
  year =         "2019",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/bxy056",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Mon Mar 11 17:55:31 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compj2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://academic.oup.com/comjnl/article/62/3/377/5033366",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
}

@Article{Golan:2019:SPM,
  author =       "Shay Golan and Tsvi Kopelowitz and Ely Porat",
  title =        "Streaming Pattern Matching with $d$ Wildcards",
  journal =      j-ALGORITHMICA,
  volume =       "81",
  number =       "5",
  pages =        "1988--2015",
  month =        may,
  year =         "2019",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-018-0521-7",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Wed Apr 29 10:30:54 MDT 2020",
  bibsource =    "http://link.springer.com/journal/453/81/5;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Hendrian:2019:PPM,
  author =       "Diptarama Hendrian and Yohei Ueki and Kazuyuki
                 Narisawa and Ryo Yoshinaka and Ayumi Shinohara",
  title =        "Permuted Pattern Matching Algorithms on Multi-Track
                 Strings",
  journal =      j-ALGORITHMS-BASEL,
  volume =       "12",
  number =       "4",
  month =        apr,
  year =         "2019",
  CODEN =        "ALGOCH",
  DOI =          "https://doi.org/10.3390/a12040073",
  ISSN =         "1999-4893 (electronic)",
  ISSN-L =       "1999-4893",
  bibdate =      "Fri May 3 13:50:14 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/algorithms.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.mdpi.com/1999-4893/12/4/73",
  acknowledgement = ack-nhfb,
  articleno =    "73",
  fjournal =     "Algorithms (Basel)",
  journal-URL =  "https://www.mdpi.com/journal/algorithms",
  ORCID-numbers = "Diptarama Hendrian/0000-0002-8168-7312; Ryo
                 Yoshinaka/0000-0002-5175-465X",
  pagecount =    "??",
  pubdates =     "Received: 28 February 2019 / Revised: 2 April 2019 /
                 Accepted: 3 April 2019 / Published: 8 April 2019",
}

@Article{Hocking:2019:CNO,
  author =       "Toby Dylan Hocking",
  title =        "Comparing \pkg{namedCapture} with other {R} packages
                 for regular expressions",
  journal =      j-R-JOURNAL,
  volume =       "11",
  number =       "2",
  pages =        "328--346",
  month =        dec,
  year =         "2019",
  DOI =          "https://doi.org/10.32614/rj-2019-050",
  ISSN =         "2073-4859",
  ISSN-L =       "2073-4859",
  bibdate =      "Fri May 21 06:58:43 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/rjournal.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://journal.r-project.org/archive/2019/RJ-2019-050",
  acknowledgement = ack-nhfb,
  fjournal =     "The R Journal",
  journal-URL =  "http://journal.r-project.org/",
}

@Article{Jarrar:2019:DBM,
  author =       "Mustafa Jarrar and Fadi Zaraket and Rami Asia and
                 Hamzeh Amayreh",
  title =        "Diacritic-Based Matching of {Arabic} Words",
  journal =      j-TALLIP,
  volume =       "18",
  number =       "2",
  pages =        "10:1--10:??",
  month =        feb,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3242177",
  ISSN =         "2375-4699 (print), 2375-4702 (electronic)",
  ISSN-L =       "2375-4699",
  bibdate =      "Wed Oct 2 10:34:32 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tallip.bib",
  URL =          "https://dl.acm.org/ft_gateway.cfm?id=3242177",
  abstract =     "Words in Arabic consist of letters and short vowel
                 symbols called diacritics inscribed atop regular
                 letters. Changing diacritics may change the syntax and
                 semantics of a word; turning it into another. This
                 results in difficulties when comparing words based
                 solely on string matching. Typically, Arabic NLP
                 applications resort to morphological analysis to battle
                 ambiguity originating from this and other challenges.
                 In this article, we introduce three alternative
                 algorithms to compare two words with possibly different
                 diacritics. We propose the Subsume knowledge-based
                 algorithm, the Imply rule-based algorithm, and the
                 Alike machine-learning-based algorithm. We evaluated
                 the soundness, completeness, and accuracy of the
                 algorithms against a large dataset of 86,886 word
                 pairs. Our evaluation shows that the accuracy of
                 Subsume (100\%), Imply (99.32\%), and Alike (99.53\%).
                 Although accurate, Subsume was able to judge only 75\%
                 of the data. Both Subsume and Imply are sound, while
                 Alike is not. We demonstrate the utility of the
                 algorithms using a real-life use case --- in lemma
                 disambiguation and in linking hundreds of Arabic
                 dictionaries.",
  acknowledgement = ack-nhfb,
  articleno =    "10",
  fjournal =     "ACM Transactions on Asian and Low-Resource Language
                 Information Processing (TALLIP)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1521",
}

@Article{Kaczmarski:2019:GRT,
  author =       "Krzysztof Kaczmarski and Albert Wolant",
  title =        "{GPU R-Trie}: Dictionary with ultra fast lookup",
  journal =      j-CCPE,
  volume =       "31",
  number =       "19",
  pages =        "e5027:1--e5027:??",
  day =          "10",
  month =        oct,
  year =         "2019",
  CODEN =        "CCPEBO",
  DOI =          "https://doi.org/10.1002/cpe.5027",
  ISSN =         "1532-0626 (print), 1532-0634 (electronic)",
  ISSN-L =       "1532-0626",
  bibdate =      "Sat Oct 12 11:00:06 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ccpe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Concurrency and Computation: Practice and Experience",
  journal-URL =  "http://www.interscience.wiley.com/jpages/1532-0626",
  onlinedate =   "16 December 2018",
}

@Article{Kaloudas:2019:EEB,
  author =       "Dimitrios Kaloudas and Nikolet Pavlova and Robert
                 Penchovsky",
  title =        "{EBWS}: Essential Bioinformatics {Web} Services for
                 Sequence Analyses",
  journal =      j-TCBB,
  volume =       "16",
  number =       "3",
  pages =        "942--953",
  month =        may,
  year =         "2019",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2018.2816645",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Fri Aug 23 11:22:19 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "The Essential Bioinformatics Web Services EBWS are
                 implemented on a new PHP-based server that provides
                 useful tools for analyses of DNA, RNA, and protein
                 sequences applying a user-friendly interface. Nine
                 Web-based applets are currently available on the Web
                 server. They include reverse complementary DNA and
                 random DNA/RNA/peptide oligomer generators, a pattern
                 sequence searcher, a DNA restriction cutter, a
                 prokaryotic ORF finder, and a random DNA/RNA mutation
                 generator. It also includes calculators of melting
                 temperature TM of DNA/DNA, RNA/RNA, and DNA/RNA
                 hybrids, a guide RNA gRNA generator for the CRISPR/Cas9
                 system and an annealing temperature calculator for
                 multiplex PCR. The pattern-searching applet has no
                 limitations in the number of motif inputs and applies a
                 toolbox of Regex quantifiers that can be used for
                 defining complex sequence queries of RNA, DNA, and
                 protein sequences. The DNA enzyme digestion program
                 utilizes a large database of 1,502 restriction enzymes.
                 The gRNA generator has a database of 25 bacterial
                 genomes searchable for gRNA target sequences and has an
                 option for searching in any genome sequence given by
                 the user. All programs are permanently available online
                 at http://penchovsky.atwebpages.com/applications.php
                 without any restrictions.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Kaplan:2019:RRP,
  author =       "R. Kaplan and L. Yavits and R. Ginosar",
  title =        "{RASSA}: Resistive Prealignment Accelerator for
                 Approximate {DNA} Long Read Mapping",
  journal =      j-IEEE-MICRO,
  volume =       "39",
  number =       "4",
  pages =        "44--54",
  month =        jul # "\slash " # aug,
  year =         "2019",
  CODEN =        "IEMIDZ",
  DOI =          "https://doi.org/10.1109/MM.2018.2890253",
  ISSN =         "0272-1732 (print), 1937-4143 (electronic)",
  ISSN-L =       "0272-1732",
  bibdate =      "Thu Jul 25 15:29:43 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeemicro.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Micro",
  journal-URL =  "http://www.computer.org/csdl/mags/mi/index.html",
  keywords =     "DNA; Encoding; Filtering; Memristors; Pattern
                 matching; Resistance; Transistors",
}

@Book{Klabnik:2019:RPL,
  author =       "Steve Klabnik and Carol Nichols",
  title =        "The {Rust} programming language",
  publisher =    pub-NO-STARCH,
  address =      pub-NO-STARCH:adr,
  edition =      "Second",
  pages =        "xxix + 526",
  year =         "2019",
  ISBN =         "1-0981-2253-4, 1-71850-044-0 (paperback)",
  ISBN-13 =      "978-1-0981-2253-9, 978-1-71850-044-0 (paperback)",
  LCCN =         "QA76.73.R87",
  bibdate =      "Fri Nov 8 05:59:02 MST 2019",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://proquest.safaribooksonline.com/?fpi=9781098122539;
                 https://nostarch.com/download/samples/RustProgrammingLanguage2018_Sample_ToC.pdf;
                 https://nostarch.com/Rust2018",
  abstract =     "\booktitle{The Rust Programming Language} is the
                 official book on Rust: an open source systems
                 programming language that helps you write faster, more
                 reliable software. Rust offers control over low-level
                 details (such as memory usage) in combination with
                 high-level ergonomics, eliminating the hassle
                 traditionally associated with low-level languages. The
                 authors of \booktitle{The Rust Programming Language},
                 members of the Rust Core Team, share their knowledge
                 and experience to show you how to take full advantage
                 of Rust's features-from installation to creating robust
                 and scalable programs. You'll begin with basics like
                 creating functions, choosing data types, and binding
                 variables and then move on to more advanced concepts,
                 such as: * Ownership and borrowing, lifetimes, and
                 traits * Using Rust's memory safety guarantees to build
                 fast, safe programs; * Testing, error handling, and
                 effective refactoring; * Generics, smart pointers,
                 multithreading, trait objects, and advanced pattern
                 matching; * Using Cargo, Rust's built-in package
                 manager, to build, test, and document your code and
                 manage dependencies; * How best to use Rust's advanced
                 compiler with compiler-led programming techniques
                 You'll find plenty of code examples throughout the
                 book, as well as three chapters dedicated to building
                 complete projects to test your learning: a number
                 guessing game, a Rust implementation of a command line
                 tool, and a multithreaded server. New to this edition:
                 An extended section on Rust macros, an expanded chapter
                 on modules, and appendixes on Rust development tools
                 and editions.",
  acknowledgement = ack-nhfb,
  libnote =      "Not in my library.",
  subject =      "Rust (Computer program language); Computer
                 programming; Computer programming.; Rust (Computer
                 program language)",
  tableofcontents = "1: Getting started \\
                 2: Programming a guessing game \\
                 3: Common programming concepts \\
                 4: Understanding ownership \\
                 5: Using structs to structure related data \\
                 6: Enums and pattern matching \\
                 7: Managing growing projects with packages, crates, and
                 modules \\
                 8: Common collections \\
                 9: Error handling \\
                 10: Generic types, traits, and lifetimes \\
                 11: Writing automated tests \\
                 12: An I/O project: building a command line program \\
                 13: Functional language features: iterators and
                 closures \\
                 14: More about Cargo and Crates.io \\
                 15: Smart pointers \\
                 16: Fearless concurrency \\
                 17: Object-oriented programming features of Rust \\
                 18: Patterns and matching \\
                 19: Advanced features \\
                 20: Final project: building a multithreaded web server
                 \\
                 Appendix A: Keywords \\
                 Appendix B: Operators and Symbols \\
                 Appendix C: Derivable Traits \\
                 Appendix D: Useful Development Tools \\
                 Appendix E: Editions \\
                 Index",
}

@Article{Kociumaka:2019:CLC,
  author =       "Tomasz Kociumaka and Jakub Radoszewski and Tatiana
                 Starikovskaya",
  title =        "Correction to: {Longest Common Substring with
                 Approximately $k$ Mismatches}",
  journal =      j-ALGORITHMICA,
  volume =       "81",
  number =       "7",
  pages =        "3074--3074",
  month =        jul,
  year =         "2019",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-019-00560-1",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Wed Apr 29 10:30:55 MDT 2020",
  bibsource =    "http://link.springer.com/journal/453/81/7;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "See \cite{Kociumaka:2019:LCS}.",
  URL =          "http://link.springer.com/content/pdf/10.1007/s00453-019-00560-1.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Kociumaka:2019:LCS,
  author =       "Tomasz Kociumaka and Jakub Radoszewski and Tatiana
                 Starikovskaya",
  title =        "Longest Common Substring with Approximately $k$
                 Mismatches",
  journal =      j-ALGORITHMICA,
  volume =       "81",
  number =       "6",
  pages =        "2633--2652",
  month =        jun,
  year =         "2019",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-019-00548-x",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Wed Apr 29 13:41:04 MDT 2020",
  bibsource =    "http://link.springer.com/journal/607/81/6;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Lin:2019:DPF,
  author =       "Peng Lin and Qi Song and Yinghui Wu and Jiaxing Pi",
  title =        "Discovering Patterns for Fact Checking in Knowledge
                 Graphs",
  journal =      j-JDIQ,
  volume =       "11",
  number =       "3",
  pages =        "13:1--13:??",
  month =        jul,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3286488",
  ISSN =         "1936-1955",
  bibdate =      "Tue Oct 22 07:17:01 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jdiq.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/ft_gateway.cfm?id=3286488",
  abstract =     "This article presents a new framework that
                 incorporates graph patterns to support fact checking in
                 knowledge graphs. Our method discovers discriminant
                 graph patterns to construct classifiers for fact
                 prediction. First, we propose a class of graph fact
                 checking rules (GFCs). A GFC incorporates graph
                 patterns that best distinguish true and false facts of
                 generalized fact statements. We provide statistical
                 measures to characterize useful patterns that are both
                 discriminant and diversified. Second, we show that it
                 is feasible to discover GFCs in large graphs with
                 optimality guarantees. We develop an algorithm that
                 performs localized search to generate a stream of graph
                 patterns, and dynamically assemble the best GFCs from
                 multiple GFC sets, where each set ensures quality
                 scores within certain ranges. The algorithm guarantees
                 a $ (1 / 2 - \epsilon) $ approximation when it (early)
                 terminates. We also develop a space-efficient
                 alternative that dynamically spawns prioritized
                 patterns with best marginal gains to the verified GFCs.
                 It guarantees a $ (1 - 1 / e) $ approximation. Both
                 strategies guarantee a bounded time cost independent of
                 the size of the underlying graph. Third, to support
                 fact checking, we develop two classifiers, which make
                 use of top-ranked GFCs as predictive rules or
                 instance-level features of the pattern matches induced
                 by GFCs, respectively. Using real-world data, we
                 experimentally verify the efficiency and the
                 effectiveness of GFC-based techniques for fact checking
                 in knowledge graphs and verify its application in
                 knowledge exploration and news prediction.",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Data Inf. Qual.",
  articleno =    "13",
  fjournal =     "Journal of Data and Information Quality (JDIQ)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J1191",
}

@Article{Liu:2019:CAR,
  author =       "Alex X. Liu and Eric Norige",
  title =        "A De-Compositional Approach to Regular Expression
                 Matching for Network Security",
  journal =      j-IEEE-TRANS-NETWORKING,
  volume =       "27",
  number =       "6",
  pages =        "2179--2191",
  month =        dec,
  year =         "2019",
  CODEN =        "IEANEP",
  DOI =          "https://doi.org/10.1109/TNET.2019.2941920",
  ISSN =         "1063-6692 (print), 1558-2566 (electronic)",
  ISSN-L =       "1063-6692",
  bibdate =      "Sat Aug 15 14:18:10 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetransnetworking.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1109/TNET.2019.2941920",
  abstract =     "Regular Expression (RegEx) matching is the industry
                 standard for Deep Packet Inspection (DPI) because
                 RegExes are significantly more expressive than strings.
                 To achieve high matching speed, we need to convert the
                 RegExes to Deterministic Finite State Automata (DFA).
                 However, DFA has the state explosion problem, that is,
                 the number of DFA states and transitions can be
                 exponential with the number of RegExes. Much work has
                 addressed the DFA state explosion problem; however,
                 none has met all the requirements of fast and automated
                 construction, small memory image, and high matching
                 speed. In this paper, we propose a decompositional
                 approach, with fast and automated construction, small
                 memory image, and high matching speed, to DFA state
                 explosion. The first key idea is to decompose a complex
                 RegEx that cause exponential state increases into a set
                 of simpler RegExes that do not cause exponential state
                 increases, where any character string that matches the
                 complex RegEx also matches all the RegExes in the set
                 of simpler RegExes; that is, the set of strings that
                 match the complex RegEx is a subset of strings that
                 match the set of simpler RegExes. The second key idea
                 is to use a stateful post-processing engine to filter
                 the matches that are actually the matches of the
                 complex RegEx. Given an input string for matching,
                 instead of using the large DFA constructed from the
                 original complex RegEx to perform the matching, we
                 first use the small DFA constructed from the set of
                 simpler RegExes to perform the matching, and then, if
                 the small DFA reports a match, we use the
                 post-processing engine to determine whether it is a
                 true match to the original complex RegEx. Because the
                 pre-processing is simple, automaton construction can be
                 automated and fast, and because most on-line processing
                 is done by a DFA, its matching speed is close to that
                 of a DFA alone. Our experimental results show that our
                 decompositional approach achieves orders of magnitude
                 faster DFA construction (in terms of seconds instead of
                 minutes), 30 times smaller memory image, and 43\%
                 faster matching speeds, than state-of-the-art software
                 based RegEx matching algorithms.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE\slash ACM Transactions on Networking",
  journal-URL =  "https://dl.acm.org/loi/ton",
}

@Article{Meysman:2019:MES,
  author =       "Pieter Meysman and Yvan Saeys and Ehsan Sabaghian and
                 Wout Bittremieux and Yves {Van de Peer} and Bart
                 Goethals and Kris Laukens",
  title =        "Mining the Enriched Subgraphs for Specific Vertices in
                 a Biological Graph",
  journal =      j-TCBB,
  volume =       "16",
  number =       "5",
  pages =        "1496--1507",
  month =        sep,
  year =         "2019",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2016.2576440",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Fri Nov 29 16:39:03 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "In this paper, we present a subgroup discovery method
                 to find subgraphs in a graph that are associated with a
                 given set of vertices. The association between a
                 subgraph pattern and a set of vertices is defined by
                 its significant enrichment based on a
                 Bonferroni-corrected hypergeometric probability value.
                 This interestingness measure requires a dedicated
                 pruning procedure to limit the number of subgraph
                 matches that must be calculated. The presented mining
                 algorithm to find associated subgraph patterns in large
                 graphs is therefore designed to efficiently traverse
                 the search space. We demonstrate the operation of this
                 method by applying it on three biological graph data
                 sets and show that we can find associated subgraphs for
                 a biologically relevant set of vertices and that the
                 found subgraphs themselves are biologically
                 interesting.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Pan:2019:ARR,
  author =       "Rong Pan and Qinheping Hu and Gaowei Xu and Loris
                 D'Antoni",
  title =        "Automatic repair of regular expressions",
  journal =      j-PACMPL,
  volume =       "3",
  number =       "OOPSLA",
  pages =        "139:1--139:29",
  month =        oct,
  year =         "2019",
  DOI =          "https://doi.org/10.1145/3360565",
  bibdate =      "Fri Aug 7 19:22:30 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3360565",
  abstract =     "We introduce RFixer, a tool for repairing complex
                 regular expressions using examples and only consider
                 regular expressions without non-regular operators
                 (e.g., negative lookahead). Given an incorrect regular
                 expression and sets of positive and negative \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "139",
  fjournal =     "Proceedings of the ACM on Programming Languages",
  journal-URL =  "https://pacmpl.acm.org/",
}

@Article{Pei:2019:RPU,
  author =       "Shuyi Pei and Jing Yang and Qing Yang",
  title =        "{REGISTOR}: a Platform for Unstructured Data
                 Processing Inside {SSD} Storage",
  journal =      j-TOS,
  volume =       "15",
  number =       "1",
  pages =        "7:1--7:??",
  month =        apr,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3310149",
  ISSN =         "1553-3077 (print), 1553-3093 (electronic)",
  ISSN-L =       "1553-3077",
  bibdate =      "Sat Sep 21 07:58:50 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tos.bib",
  URL =          "https://dl.acm.org/ft_gateway.cfm?id=3310149",
  abstract =     "This article presents REGISTOR, a platform for regular
                 expression grabbing inside storage. The main idea of
                 Registor is accelerating regular expression (regex)
                 search inside storage where large data set is stored,
                 eliminating the I/O bottleneck problem. A special
                 hardware engine for regex search is designed and
                 augmented inside a flash SSD that processes data
                 on-the-fly during data transmission from NAND flash to
                 host. To make the speed of regex search match the
                 internal bus speed of a modern SSD, a deep pipeline
                 structure is designed in Registor hardware consisting
                 of a file semantics extractor, matching candidates
                 finder, regex matching units (REMUs), and results
                 organizer. Furthermore, each stage of the pipeline
                 makes the use of maximal parallelism possible. To make
                 Registor readily usable by high-level applications, we
                 have developed a set of APIs and libraries in Linux
                 allowing Registor to process files in the SSD by
                 recombining separate data blocks into files
                 efficiently. A working prototype of Registor has been
                 built in our newly designed NVMe-SSD. Extensive
                 experiments and analyses have been carried out to show
                 that Registor achieves high throughput, reduces the I/O
                 bandwidth requirement by up to 97\%, and reduces CPU
                 utilization by as much as 82\% for regex search in
                 large datasets.",
  acknowledgement = ack-nhfb,
  articleno =    "7",
  fjournal =     "ACM Transactions on Storage",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J960",
}

@Article{Roy:2019:EHP,
  author =       "I. Roy and A. Srivastava and M. Grimm and M. Nourian
                 and M. Becchi and S. Aluru",
  title =        "Evaluating High Performance Pattern Matching on the
                 Automata Processor",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "68",
  number =       "8",
  pages =        "1201--1212",
  month =        aug,
  year =         "2019",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.2019.2901466",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Thu Jul 11 09:46:20 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
  keywords =     "Automata; automata processor; Central Processing Unit;
                 Databases; Field programmable gate arrays; Finite
                 automata; FPGAs; Instruction sets; intrusion detection;
                 Programming; protein motifs; Proteins; regular
                 expressions",
}

@Article{Sadredini:2019:SEM,
  author =       "E. Sadredini and R. Rahimi and V. Verma and M. Stan
                 and K. Skadron",
  title =        "A Scalable and Efficient In-Memory Interconnect
                 Architecture for Automata Processing",
  journal =      j-IEEE-COMPUT-ARCHIT-LETT,
  volume =       "18",
  number =       "2",
  pages =        "87--90",
  month =        jul,
  year =         "2019",
  DOI =          "https://doi.org/10.1109/LCA.2019.2909870",
  ISSN =         "1556-6056 (print), 1556-6064 (electronic)",
  ISSN-L =       "1556-6056",
  bibdate =      "Tue Oct 1 10:18:16 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeecomputarchitlett.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "Accelerating finite automata processing benefits
                 regular-expression workloads and a wide range of other
                 applications that do not map obviously to regular
                 expressions, including pattern mining, bioinfomatics,
                 and machine learning. Existing in-memory automata
                 processing accelerators suffer from inefficient routing
                 architectures. They are either incapable of efficiently
                 place-and-route a highly connected automaton or require
                 an excessive amount of hardware resources. In this
                 paper, we propose a compact, low-overhead, and yet
                 flexible in-memory interconnect architecture that
                 efficiently implements routing for next-state
                 activation, and can be applied to the existing
                 in-memory automata processing architectures. We use
                 SRAM 8T subarrays to evaluate our interconnect.
                 Compared to the Cache Automaton routing design, our
                 interconnect reduces the number of switches $ 7 \times
                 $, therefore, reduces area overhead for the
                 interconnect. It also has faster row cycle time because
                 of shorter wires and consumes less power.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Computer Architecture Letters",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=10208",
  keywords =     "Automata; automata processing; bioinfomatics; cache
                 automaton routing design; connected automaton; finite
                 automata; finite automata processing; Hardware;
                 hardware resources; in-memory automata; in-memory
                 automata processing accelerators; in-memory
                 interconnect architecture; Indexes; inefficient routing
                 architectures; integrated circuit interconnections;
                 Interconnect; machine learning; memory architecture;
                 Memory management; next-state activation; pattern
                 mining; processing in memory; Random access memory;
                 regular expression workloads; Routing; SRAM 8T
                 subarrays; SRAM chips",
}

@Article{Samadani:2019:SPM,
  author =       "Mohammad Hasan Samadani and Mehdi Berenjkoob and
                 Marina Blanton",
  title =        "Secure pattern matching based on bit parallelism",
  journal =      j-INT-J-INFO-SEC,
  volume =       "18",
  number =       "3",
  pages =        "371--391",
  month =        jun,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1007/s10207-018-0410-8",
  ISSN =         "1615-5262 (print), 1615-5270 (electronic)",
  ISSN-L =       "1615-5262",
  bibdate =      "Thu May 23 17:57:24 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/intjinfosec.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer.com/article/10.1007/s10207-018-0410-8",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Information Security",
  journal-URL =  "https://link.springer.com/journal/10207",
}

@Article{Shajii:2019:SHP,
  author =       "Ariya Shajii and Ibrahim Numanagi{\'c} and Riyadh
                 Baghdadi and Bonnie Berger and Saman Amarasinghe",
  title =        "{Seq}: a high-performance language for
                 bioinformatics",
  journal =      j-PACMPL,
  volume =       "3",
  number =       "OOPSLA",
  pages =        "125:1--125:29",
  month =        oct,
  year =         "2019",
  DOI =          "https://doi.org/10.1145/3360551",
  bibdate =      "Fri Aug 7 19:22:30 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3360551",
  abstract =     "The scope and scale of biological data are increasing
                 at an exponential rate, as technologies like
                 next-generation sequencing are becoming radically
                 cheaper and more prevalent. Over the last two decades,
                 the cost of sequencing a genome has dropped from \$100
                 million to nearly \$100 --- a factor of over $ 10^6 $
                 --- and the amount of data to be analyzed has increased
                 proportionally. Yet, as Moore's Law continues to slow,
                 computational biologists can no longer rely on
                 computing hardware to compensate for the
                 ever-increasing size of biological datasets. In a field
                 where many researchers are primarily focused on
                 biological analysis over computational optimization,
                 the unfortunate solution to this problem is often to
                 simply buy larger and faster machines.\par

                 Here, we introduce Seq, the first language tailored
                 specifically to bioinformatics, which marries the ease
                 and productivity of Python with C-like performance. Seq
                 starts with a subset of Python --- and is in many cases
                 a drop-in replacement --- yet also incorporates novel
                 bioinformatics- and computational genomics-oriented
                 data types, language constructs and optimizations. Seq
                 enables users to write high-level, Pythonic code
                 without having to worry about low-level or
                 domain-specific optimizations, and allows for the
                 seamless expression of the algorithms, idioms and
                 patterns found in many genomics or bioinformatics
                 applications. We evaluated Seq on several standard
                 computational genomics tasks like reverse
                 complementation, k-mer manipulation, sequence pattern
                 matching and large genomic index queries. On equivalent
                 CPython code, Seq attains a performance improvement of
                 up to two orders of magnitude, and a $ 160 \times $
                 improvement once domain-specific language features and
                 optimizations are used. With parallelism, we
                 demonstrate up to a $ 650 \times $ improvement.
                 Compared to optimized C++ code, which is already
                 difficult for most biologists to produce, Seq
                 frequently attains up to a $ 2 \times $ improvement,
                 and with shorter, cleaner code. Thus, Seq opens the
                 door to an age of democratization of highly-optimized
                 bioinformatics software.",
  acknowledgement = ack-nhfb,
  articleno =    "125",
  fjournal =     "Proceedings of the ACM on Programming Languages",
  journal-URL =  "https://pacmpl.acm.org/",
}

@Article{Sudo:2019:SWM,
  author =       "Hiroki Sudo and Masanobu Jimbo and Koji Nuida and Kana
                 Shimizu",
  title =        "Secure Wavelet Matrix: Alphabet-Friendly
                 Privacy-Preserving String Search for Bioinformatics",
  journal =      j-TCBB,
  volume =       "16",
  number =       "5",
  pages =        "1675--1684",
  month =        sep,
  year =         "2019",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2018.2814039",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Fri Nov 29 16:39:03 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  abstract =     "Biomedical data often includes personal information,
                 and the technology is demanded that enables the
                 searching of such sensitive data while protecting
                 privacy. We consider a case in which a server has a
                 text database and a user searches the database to find
                 substring matches. The user wants to conceal his/her
                 query and the server wants to conceal the database
                 except for the search results. The previous approach
                 for this problem is based on a linear-time algorithm in
                 terms of alphabet size $ \mathbf {| \Sigma |} $, and it
                 cannot search on the database of large alphabet such as
                 biomedical documents. We present a novel algorithm that
                 can search a string in logarithmic time of $ \mathbf {|
                 \Sigma |} $. In our algorithm, named secure wavelet
                 matrix sWM, we use an additively homomorphic encryption
                 to build an efficient data structure called a wavelet
                 matrix. In an experiment using a simulated string of
                 length 10,000 whose alphabet size ranges from 4 to
                 1024, the run time of the sWM was up to around two
                 orders of magnitude faster than that of the previous
                 method. sWM enables the searching of a private database
                 efficiently and thus it will facilitate utilizing
                 sensitive biomedical information.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J954",
}

@Article{Sulzmann:2019:DPD,
  author =       "Martin Sulzmann and Peter Thiemann",
  title =        "Derivatives and partial derivatives for regular
                 shuffle expressions",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "104",
  number =       "??",
  pages =        "323--341",
  month =        sep,
  year =         "2019",
  CODEN =        "JCSSBM",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Mon Oct 14 10:03:54 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000016301325",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Sun:2019:IMD,
  author =       "Ruxia Sun and Lingfeng Shi and Chunyong Yin and Jin
                 Wang",
  title =        "An improved method in deep packet inspection based on
                 regular expression",
  journal =      j-J-SUPERCOMPUTING,
  volume =       "75",
  number =       "6",
  pages =        "3317--3333",
  month =        jun,
  year =         "2019",
  CODEN =        "JOSUED",
  DOI =          "https://doi.org/10.1007/s11227-018-2517-0",
  ISSN =         "0920-8542 (print), 1573-0484 (electronic)",
  ISSN-L =       "0920-8542",
  bibdate =      "Thu Oct 10 15:31:19 MDT 2019",
  bibsource =    "http://link.springer.com/journal/11227/75/6;
                 https://www.math.utah.edu/pub/tex/bib/jsuper.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "The Journal of Supercomputing",
  journal-URL =  "http://link.springer.com/journal/11227",
}

@Article{Tang:2019:SAO,
  author =       "Junjian Tang and Shunli Hao and Wenqi Qu",
  title =        "Sentiment analysis of online {Chinese} comments based
                 on statistical learning combining with pattern
                 matching",
  journal =      j-CCPE,
  volume =       "31",
  number =       "10",
  pages =        "e4765:1--e4765:??",
  day =          "25",
  month =        may,
  year =         "2019",
  CODEN =        "CCPEBO",
  DOI =          "https://doi.org/10.1002/cpe.4765",
  ISSN =         "1532-0626 (print), 1532-0634 (electronic)",
  ISSN-L =       "1532-0626",
  bibdate =      "Sat Oct 12 11:00:01 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ccpe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Concurrency Computat., Pract. Exper.",
  fjournal =     "Concurrency and Computation: Practice and Experience",
  journal-URL =  "http://www.interscience.wiley.com/jpages/1532-0626",
  onlinedate =   "11 November 2018",
}

@Article{Wang:2019:GGC,
  author =       "Ping Wang and Luke Mchale and Paul V. Gratz and Alex
                 Sprintson",
  title =        "{GenMatcher}: a Generic Clustering-Based Arbitrary
                 Matching Framework",
  journal =      j-TACO,
  volume =       "15",
  number =       "4",
  pages =        "51:1--51:??",
  month =        jan,
  year =         "2019",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3281663",
  ISSN =         "1544-3566 (print), 1544-3973 (electronic)",
  ISSN-L =       "1544-3566",
  bibdate =      "Tue Jan 8 17:20:00 MST 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/taco.bib",
  abstract =     "Packet classification methods rely upon packet
                 content/header matching against rules. Thus, throughput
                 of matching operations is critical in many networking
                 applications. Further, with the advent of Software
                 Defined Networking (SDN), efficient implementation of
                 software approaches to matching are critical for the
                 overall system performance. This article presents$^1$
                 GenMatcher, a generic, software-only, arbitrary
                 matching framework for fast, efficient searches. The
                 key idea of our approach is to represent arbitrary
                 rules with efficient prefix-based tries. To support
                 arbitrary wildcards, we rearrange bits within the rules
                 such that wildcards accumulate to one side of the
                 bitstring. Since many non-contiguous wildcards often
                 remain, we use multiple prefix-based tries. The main
                 challenge in this context is to generate efficient trie
                 groupings and expansions to support all arbitrary
                 rules. Finding an optimal mix of grouping and expansion
                 is an NP-complete problem. Our contribution includes a
                 novel, clustering-based grouping algorithm to group
                 rules based upon their bit-level similarities. Our
                 algorithm generates near-optimal trie groupings with
                 low configuration times and provides significantly
                 higher match throughput compared to prior techniques.
                 Experiments with synthetic traffic show that our method
                 can achieve a 58.9X speedup compared to the baseline on
                 a single core processor under a given memory
                 constraint.",
  acknowledgement = ack-nhfb,
  articleno =    "51",
  fjournal =     "ACM Transactions on Architecture and Code Optimization
                 (TACO)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J924",
}

@Article{Xu:2019:PPS,
  author =       "Zifeng Xu and Fucai Zhou and Yuxi Li and Jian Xu and
                 Qiang Wang",
  title =        "Privacy-Preserving Subgraph Matching Protocol for Two
                 Parties",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "30",
  number =       "4",
  pages =        "571--588",
  month =        jun,
  year =         "2019",
  DOI =          "https://doi.org/10.1142/S0129054119400136",
  ISSN =         "0129-0541",
  ISSN-L =       "0129-0541",
  bibdate =      "Fri Sep 20 10:48:00 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cryptography2010;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.worldscientific.com/doi/10.1142/S0129054119400136",
  abstract =     "Graph data structure has been widely used across many
                 application areas, such as web data, social network,
                 and cheminformatics. The main benefit of storing data
                 as graphs is there exists a rich set of graph
                 algorithms and operations that can be used to solve
                 various computing problems, including pattern matching,
                 data mining, and image processing. Among these graph
                 algorithms, the subgraph isomorphism problem is one of
                 the most fundamental algorithms that can be utilized by
                 many higher level applications. The subgraph
                 isomorphism problem is defined as, given two graphs G
                 and H , whether G contains a subgraph that is
                 isomorphic to H . In this paper, we consider a special
                 case of the subgraph isomorphism problem called the
                 subgraph matching problem, which tests whether G is a
                 subgraph of H . We propose a protocol that solve the
                 subgraph matching problem in a privacy-preserving
                 manner. The protocol allows two parties to jointly
                 compute whether one graph is a subgraph of the other,
                 while protecting the private information about the
                 input graphs. The protocol is secure under the
                 semi-honest setting, where each party performs the
                 protocol faithfully.",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
  remark =       "Special Issue Cryptography and Provable Security",
}

@Article{Xu:2019:TES,
  author =       "Zhiwu Xu and Ping Lu and Haiming Chen",
  title =        "Towards an Effective Syntax and a Generator for
                 Deterministic Standard Regular Expressions",
  journal =      j-COMP-J,
  volume =       "62",
  number =       "9",
  pages =        "1322--1341",
  month =        sep,
  year =         "2019",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/bxy110",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Thu Oct 17 18:02:16 MDT 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compj2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://academic.oup.com/comjnl/article/62/9/1322/5165111",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
}

@Article{Yamamoto:2019:FAF,
  author =       "Hiroaki Yamamoto",
  title =        "A faster algorithm for finding shortest substring
                 matches of a regular expression",
  journal =      j-INFO-PROC-LETT,
  volume =       "143",
  number =       "??",
  pages =        "56--60",
  month =        mar,
  year =         "2019",
  CODEN =        "IFPLAT",
  DOI =          "https://doi.org/10.1016/j.ipl.2018.12.001",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Thu Dec 27 15:17:34 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019018302333",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
  keywords =     "Design of algorithms; Finite automaton; Matching
                 algorithm; Regular expression; Shortest substring",
}

@Article{Abedin:2020:SSU,
  author =       "Paniz Abedin and M. Oguzhan K{\"u}lekci and Shama V.
                 Thankachan",
  title =        "A Survey on Shortest Unique Substring Queries",
  journal =      j-ALGORITHMS-BASEL,
  volume =       "13",
  number =       "9",
  month =        sep,
  year =         "2020",
  CODEN =        "ALGOCH",
  DOI =          "https://doi.org/10.3390/a13090224",
  ISSN =         "1999-4893 (electronic)",
  ISSN-L =       "1999-4893",
  bibdate =      "Mon Sep 28 10:51:23 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/algorithms.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.mdpi.com/1999-4893/13/9/224",
  acknowledgement = ack-nhfb,
  articleno =    "224",
  fjournal =     "Algorithms (Basel)",
  journal-URL =  "https://www.mdpi.com/",
  pagecount =    "??",
}

@Article{Amarilli:2020:CDE,
  author =       "Antoine Amarilli and Pierre Bourhis and Stefan Mengel
                 and Matthias Niewerth",
  title =        "Constant-Delay Enumeration for Nondeterministic
                 Document Spanners",
  journal =      j-SIGMOD,
  volume =       "49",
  number =       "1",
  pages =        "25--32",
  month =        sep,
  year =         "2020",
  CODEN =        "SRECD8",
  DOI =          "https://doi.org/10.1145/3422648.3422655",
  ISSN =         "0163-5808 (print), 1943-5835 (electronic)",
  ISSN-L =       "0163-5808",
  bibdate =      "Sun Sep 6 17:50:43 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigmod.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3422648.3422655",
  abstract =     "One of the classical tasks in information extraction
                 is to extract subparts of texts through regular
                 expressions. In the database theory literature, this
                 approach has been generalized and formalized as
                 document spanners. In this model, extraction is
                 performed by evaluating a particular kind of automata,
                 called a sequential variable-set automaton (VA). The
                 efficiency of this task is then measured in the context
                 of enumeration algorithms: we first run a preprocessing
                 phase computing a compact representation of the
                 answers, and second we produce the results one after
                 the other with a short time between consecutive
                 answers, called the delay of the enumeration. Our goal
                 is to have an algorithm that is tractable in combined
                 complexity, i.e., in the sizes of the input document
                 and the VA, while ensuring the best possible data
                 complexity bounds in the input document size, i.e., a
                 constant delay that does not depend on the document. We
                 present such an algorithm for a variant of VAs called
                 extended sequential VAs and give an experimental
                 evaluation of this algorithm.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGMOD Record (ACM Special Interest Group on
                 Management of Data)",
  journal-URL =  "https://dl.acm.org/loi/sigmod",
}

@Article{Amir:2020:DIL,
  author =       "Amihood Amir and Panagiotis Charalampopoulos and Jakub
                 Radoszewski",
  title =        "Dynamic and Internal Longest Common Substring",
  journal =      j-ALGORITHMICA,
  volume =       "82",
  number =       "12",
  pages =        "3707--3743",
  month =        dec,
  year =         "2020",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-020-00744-0",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Thu May 13 21:01:41 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://link.springer.com/article/10.1007/s00453-020-00744-0",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
  online-date =  "Published: 15 July 2020 Pages: 3707 - 3743",
}

@Article{Barozzini:2020:BRL,
  author =       "David Barozzini and David de Frutos-Escrig and Dario
                 {Della Monica} and Angelo Montanari and Pietro Sala",
  title =        "Beyond $ \omega $-regular languages: {$ \omega
                 T$}-regular expressions and their automata and logic
                 counterparts",
  journal =      j-THEOR-COMP-SCI,
  volume =       "813",
  number =       "??",
  pages =        "270--304",
  day =          "12",
  month =        apr,
  year =         "2020",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2019.12.029",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Thu Apr 23 07:41:40 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2020.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397519308114",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Baudru:2020:TWT,
  author =       "Nicolas Baudru and Pierre-Alain Reynier",
  title =        "From Two-Way Transducers to Regular Function
                 Expressions",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "31",
  number =       "06",
  pages =        "843--873",
  month =        sep,
  year =         "2020",
  DOI =          "https://doi.org/10.1142/S0129054120410087",
  ISSN =         "0129-0541",
  ISSN-L =       "0129-0541",
  bibdate =      "Thu Dec 17 19:26:33 MST 2020",
  bibsource =    "http://www.worldscientific.com/loi/ijfcs;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.worldscientific.com/doi/10.1142/S0129054120410087",
  abstract =     "Transducers constitute a fundamental extension of
                 automata. The class of regular word functions has
                 recently emerged as an important class of word-to-word
                 functions, characterized by means of (functional, or
                 unambiguous, or deterministic) two-way transducers,
                 copyless streaming string transducers, and
                 MSO-definable graph transformations. A fundamental
                 result in language theory is Kleene's Theorem, relating
                 finite state automata and regular expressions.
                 Recently, a set of regular function expressions has
                 been introduced and used to prove a similar result for
                 regular word functions, by showing its equivalence with
                 copyless streaming string transducers. In this paper,
                 we propose a direct, simplified and effective
                 translation from unambiguous two-way transducers to
                 regular function expressions extending the Brzozowski
                 and McCluskey algorithm. In addition, our approach
                 allows us to derive a subset of regular function
                 expressions characterizing the (strict) subclass of
                 functional sweeping transducers.",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
  remark =       "Special Issue: Developments in Language Theory 2018",
}

@Article{Bernardini:2020:APM,
  author =       "Giulia Bernardini and Nadia Pisanti and Solon P.
                 Pissis and Giovanna Rosone",
  title =        "Approximate pattern matching on elastic-degenerate
                 text",
  journal =      j-THEOR-COMP-SCI,
  volume =       "812",
  number =       "??",
  pages =        "109--122",
  month =        apr,
  year =         "2020",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2019.08.012",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Thu Apr 23 07:41:39 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2020.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397519305018",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Chen:2020:IAO,
  author =       "Haiming Chen and Zhiwu Xu",
  title =        "Inclusion algorithms for one-unambiguous regular
                 expressions and their applications",
  journal =      j-SCI-COMPUT-PROGRAM,
  volume =       "193",
  number =       "??",
  pages =        "??--??",
  day =          "1",
  month =        jul,
  year =         "2020",
  CODEN =        "SCPGD4",
  DOI =          "https://doi.org/10.1016/j.scico.2020.102436",
  ISSN =         "0167-6423 (print), 1872-7964 (electronic)",
  ISSN-L =       "0167-6423",
  bibdate =      "Wed May 26 13:33:21 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S016764231830296X",
  acknowledgement = ack-nhfb,
  articleno =    "102436",
  fjournal =     "Science of Computer Programming",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01676423",
}

@Article{Cockx:2020:EDC,
  author =       "Jesper Cockx and Andreas Abel",
  title =        "Elaborating dependent (co)pattern matching: No pattern
                 left behind",
  journal =      j-J-FUNCT-PROGRAM,
  volume =       "30",
  number =       "??",
  pages =        "e2",
  month =        "????",
  year =         "2020",
  CODEN =        "JFPRES",
  DOI =          "https://doi.org/10.1017/S0956796819000182",
  ISSN =         "0956-7968 (print), 1469-7653 (electronic)",
  ISSN-L =       "0956-7968",
  bibdate =      "Mon Aug 10 07:38:39 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.cambridge.org/core/journals/journal-of-functional-programming/article/elaborating-dependent-copattern-matching-no-pattern-left-behind/F13CECDAB2B6200135D45452CA44A8B3",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Funct. Program.",
  fjournal =     "Journal of Functional Programming",
  journal-URL =  "https://www.cambridge.org/core/journals/journal-of-functional-programming",
  onlinedate =   "21 January 2020",
}

@Article{Darragh:2020:PZF,
  author =       "Pierce Darragh and Michael D. Adams",
  title =        "Parsing with zippers (functional pearl)",
  journal =      j-PACMPL,
  volume =       "4",
  number =       "ICFP",
  pages =        "108:1--108:28",
  month =        aug,
  year =         "2020",
  DOI =          "https://doi.org/10.1145/3408990",
  bibdate =      "Tue Mar 30 08:10:48 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3408990",
  abstract =     "Parsing with Derivatives (PwD) is an elegant approach
                 to parsing context-free grammars (CFGs). It takes the
                 equational theory behind Brzozowski's derivative for
                 regular expressions and augments that theory with
                 laziness, memoization, and fixed points. \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "108",
  fjournal =     "Proceedings of the ACM on Programming Languages",
  journal-URL =  "https://pacmpl.acm.org/",
}

@Article{Faro:2020:EOS,
  author =       "Simone Faro and Francesco Pio Marino and Arianna
                 Pavone",
  title =        "Efficient Online String Matching Based on Characters
                 Distance Text Sampling",
  journal =      j-ALGORITHMICA,
  volume =       "82",
  number =       "11",
  pages =        "3390--3412",
  month =        nov,
  year =         "2020",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-020-00732-4",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Thu May 13 21:01:41 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://link.springer.com/article/10.1007/s00453-020-00732-4",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
  online-date =  "Published: 20 June 2020 Pages: 3390 - 3412",
}

@Article{Fernau:2020:PMV,
  author =       "Henning Fernau and Florin Manea and Robert Mercas and
                 Markus L. Schmid",
  title =        "Pattern Matching with Variables: Efficient Algorithms
                 and Complexity Results",
  journal =      j-TOCT,
  volume =       "12",
  number =       "1",
  pages =        "6:1--6:37",
  month =        feb,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3369935",
  ISSN =         "1942-3454 (print), 1942-3462 (electronic)",
  ISSN-L =       "1942-3454",
  bibdate =      "Wed Feb 26 07:25:37 MST 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toct.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3369935",
  abstract =     "A pattern $ \alpha $ (i.e., a string of variables and
                 terminals) matches a word $w$, if $w$ can be obtained
                 by uniformly replacing the variables of $ \alpha $ by
                 terminal words. The respective matching problem, i.e.,
                 deciding whether or not a given pattern matches a given
                 \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "6",
  fjournal =     "ACM Transactions on Computation Theory",
  journal-URL =  "https://dl.acm.org/loi/toct",
}

@Article{Florenzano:2020:EEA,
  author =       "Fernando Florenzano and Cristian Riveros and
                 Mart{\'\i}n Ugarte and Stijn Vansummeren and Domagoj
                 Vrgoc",
  title =        "Efficient Enumeration Algorithms for Regular Document
                 Spanners",
  journal =      j-TODS,
  volume =       "45",
  number =       "1",
  pages =        "3:1--3:42",
  month =        mar,
  year =         "2020",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/3351451",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Wed Mar 4 07:13:27 MST 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3351451",
  abstract =     "Regular expressions and automata models with capture
                 variables are core tools in rule-based information
                 extraction. These formalisms, also called regular
                 document spanners, use regular languages to locate the
                 data that a user wants to extract from a \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "3",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "https://dl.acm.org/loi/tods",
}

@Article{Franek:2020:CML,
  author =       "Frantisek Franek",
  title =        "Computing Maximal {Lyndon} Substrings of a String",
  journal =      j-ALGORITHMS-BASEL,
  volume =       "13",
  number =       "11",
  pages =        "??--??",
  month =        nov,
  year =         "2020",
  CODEN =        "ALGOCH",
  DOI =          "https://doi.org/10.3390/a13110294",
  ISSN =         "1999-4893 (electronic)",
  ISSN-L =       "1999-4893",
  bibdate =      "Sat Dec 26 06:54:33 MST 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/algorithms.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.mdpi.com/1999-4893/13/11/294",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithms (Basel)",
  journal-URL =  "https://www.mdpi.com/",
}

@Article{Graf:2020:LYG,
  author =       "Sebastian Graf and Simon Peyton Jones and Ryan G.
                 Scott",
  title =        "Lower your guards: a compositional pattern-match
                 coverage checker",
  journal =      j-PACMPL,
  volume =       "4",
  number =       "ICFP",
  pages =        "107:1--107:30",
  month =        aug,
  year =         "2020",
  DOI =          "https://doi.org/10.1145/3408989",
  bibdate =      "Tue Mar 30 08:10:48 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3408989",
  abstract =     "A compiler should warn if a function defined by
                 pattern matching does not cover its inputs-that is, if
                 there are missing or redundant patterns. Generating
                 such warnings accurately is difficult for modern
                 languages due to the myriad of language features
                 \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "107",
  fjournal =     "Proceedings of the ACM on Programming Languages",
  journal-URL =  "https://pacmpl.acm.org/",
}

@Article{Jeong:2020:RSH,
  author =       "W. S. Jeong and C. Lee and K. Kim and M. K. Yoon and
                 W. Jeon and M. Jung and W. W. Ro",
  title =        "{REACT}: Scalable and High-Performance Regular
                 Expression Pattern Matching Accelerator for In-Storage
                 Processing",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "31",
  number =       "5",
  pages =        "1137--1151",
  month =        may,
  year =         "2020",
  CODEN =        "ITDSEO",
  DOI =          "https://doi.org/10.1109/TPDS.2019.2953646",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Thu Feb 20 10:08:58 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranspardistsys.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Parallel and Distributed
                 Systems",
  journal-URL =  "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=71",
  keywords =     "accelerator; In-storage processing (ISP); regular
                 expression matching; solid-state drive",
}

@Article{Jiang:2020:CSM,
  author =       "Peng Jiang and Yang Xia and Gagan Agrawal",
  title =        "Combining {SIMD} and Many\slash Multi-core Parallelism
                 for Finite-state Machines with Enumerative
                 Speculation",
  journal =      j-TOPC,
  volume =       "7",
  number =       "3",
  pages =        "15:1--15:26",
  month =        aug,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3399714",
  ISSN =         "2329-4949 (print), 2329-4957 (electronic)",
  ISSN-L =       "2329-4949",
  bibdate =      "Thu Aug 6 08:56:07 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/topc.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3399714",
  abstract =     "Finite-state Machine (FSM) is the key kernel behind
                 many popular applications, including regular expression
                 matching, text tokenization, and Huffman decoding.
                 Parallelizing FSMs is extremely difficult because of
                 the strong dependencies and unpredictable \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "15",
  fjournal =     "ACM Transactions on Parallel Computing",
  journal-URL =  "https://dl.acm.org/loi/topc",
}

@Article{Konstantinidis:2020:RET,
  author =       "Stavros Konstantinidis and Nelma Moreira and
                 Rog{\'e}rio Reis and Joshua Young",
  title =        "Regular Expressions and Transducers Over
                 Alphabet-Invariant and User-Defined Labels",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "31",
  number =       "08",
  pages =        "983--1019",
  month =        dec,
  year =         "2020",
  DOI =          "https://doi.org/10.1142/S0129054120420010",
  ISSN =         "0129-0541",
  ISSN-L =       "0129-0541",
  bibdate =      "Thu Jan 21 07:02:13 MST 2021",
  bibsource =    "http://www.worldscientific.com/loi/ijfcs;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.worldscientific.com/doi/10.1142/S0129054120420010",
  abstract =     "We are interested in regular expressions and
                 transducers that represent word relations in an
                 alphabet-invariant way --- for example, the set of all
                 word pairs u,v where v is a prefix of u independently
                 of what the alphabet is. Current software systems of
                 formal language objects do not have a mechanism to
                 define such objects. We define transducers in which
                 transition labels involve what we call set
                 specifications, some of which are alphabet invariant.
                 In fact, we give a more broad definition of
                 automata-type objects, called labelled graphs, where
                 each transition label can be any string, as long as
                 that string represents a subset of a certain monoid.
                 Then, the behavior of the labelled graph is a subset of
                 that monoid. We do the same for regular expressions. We
                 obtain extensions of a few classic algorithmic
                 constructions on ordinary regular expressions and
                 transducers at the broad level of labelled graphs and
                 in such a way that the computational efficiency of the
                 extended constructions is not sacrificed. For
                 transducers with set specs we obtain further algorithms
                 that can be applied to questions about independent
                 regular languages as well as a decision question about
                 synchronous transducers.",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
  remark =       "Special Issue: Implementations and Applications of
                 Automata (CIAA 2018)",
}

@Article{Lee:2020:YCA,
  author =       "D. J. Lee and J. Lee and T. Siddiqui and J. Kim and K.
                 Karahalios and A. Parameswaran",
  title =        "You can't always sketch what you want: Understanding
                 Sensemaking in Visual Query Systems",
  journal =      j-IEEE-TRANS-VIS-COMPUT-GRAPH,
  volume =       "26",
  number =       "1",
  pages =        "1267--1277",
  month =        jan,
  year =         "2020",
  CODEN =        "ITVGEA",
  DOI =          "https://doi.org/10.1109/TVCG.2019.2934666",
  ISSN =         "1077-2626 (print), 1941-0506 (electronic), 2160-9306",
  ISSN-L =       "1077-2626",
  bibdate =      "Fri Nov 29 06:43:36 2019",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetransviscomputgraph.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Visualization and Computer
                 Graphics",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2945",
  keywords =     "Buildings; Data visualization; exploratory analysis;
                 Interviews; Pattern matching; Taxonomy; User centered
                 design; Visual analytics; visual queries;
                 Visualization",
}

@Article{Moia:2020:IEC,
  author =       "Vitor Hugo Galhardo Moia and Frank Breitinger and
                 Marco Aur{\'e}lio Amaral Henriques",
  title =        "The impact of excluding common blocks for approximate
                 matching",
  journal =      j-COMPUT-SECUR,
  volume =       "89",
  number =       "??",
  pages =        "Article 101676",
  month =        feb,
  year =         "2020",
  CODEN =        "CPSEDU",
  ISSN =         "0167-4048 (print), 1872-6208 (electronic)",
  ISSN-L =       "0167-4048",
  bibdate =      "Sat Mar 14 18:49:57 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computsecur2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0167404819302159",
  acknowledgement = ack-nhfb,
  fjournal =     "Computers \& Security",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01674048",
}

@Article{Monnier:2020:EEL,
  author =       "Stefan Monnier and Michael Sperber",
  title =        "Evolution of {Emacs Lisp}",
  journal =      j-PACMPL,
  volume =       "4",
  number =       "HOPL",
  pages =        "74:1--74:55",
  month =        jun,
  year =         "2020",
  DOI =          "https://doi.org/10.1145/3386324",
  bibdate =      "Fri Aug 7 17:39:13 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/common-lisp.bib;
                 https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3386324",
  abstract =     "While Emacs proponents largely agree that it is the
                 world's greatest text editor, it is almost as much a
                 Lisp machine disguised as an editor. Indeed, one of its
                 chief appeals is that it is programmable via its own
                 programming language. Emacs Lisp is a Lisp in the
                 classic tradition. In this article, we present the
                 history of this language over its more than 30 years of
                 evolution. Its core has remained remarkably stable
                 since its inception in 1985, in large part to preserve
                 compatibility with the many third-party packages
                 providing a multitude of extensions. Still, Emacs Lisp
                 has evolved and continues to do so.\par

                 Important aspects of Emacs Lisp have been shaped by
                 concrete requirements of the editor it supports as well
                 as implementation constraints. These requirements led
                 to the choice of a Lisp dialect as Emacs's language in
                 the first place, specifically its simplicity and
                 dynamic nature: Loading additional Emacs packages or
                 changing the ones in place occurs frequently, and
                 having to restart the editor in order to re-compile or
                 re-link the code would be unacceptable. Fulfilling this
                 requirement in a more static language would have been
                 difficult at best.\par

                 One of Lisp's chief characteristics is its malleability
                 through its uniform syntax and the use of macros. This
                 has allowed the language to evolve much more rapidly
                 and substantively than the evolution of its core would
                 suggest, by letting Emacs packages provide new surface
                 syntax alongside new functions. In particular, Emacs
                 Lisp can be customized to look much like Common Lisp,
                 and additional packages provide multiple-dispatch
                 object systems, legible regular expressions,
                 programmable pattern-matching constructs, generalized
                 variables, and more. Still, the core has also evolved,
                 albeit slowly. Most notably, it acquired support for
                 lexical scoping.\par

                 The timeline of Emacs Lisp development is closely tied
                 to the projects and people who have shaped it over the
                 years: We document Emacs Lisp history through its
                 predecessors, Mocklisp and MacLisp, its early
                 development up to the ``Emacs schism'' and the fork of
                 Lucid Emacs, the development of XEmacs, and the
                 subsequent renaissance of Emacs development.",
  acknowledgement = ack-nhfb,
  articleno =    "74",
  fjournal =     "Proceedings of the ACM on Programming Languages",
  journal-URL =  "https://pacmpl.acm.org/",
}

@Article{Narisada:2020:ECL,
  author =       "Shintaro Narisada and Diptarama Hendrian and Kazuyuki
                 Narisawa and Shunsuke Inenaga and Ayumi Shinohara",
  title =        "Efficient computation of longest single-arm-gapped
                 palindromes in a string",
  journal =      j-THEOR-COMP-SCI,
  volume =       "812",
  number =       "??",
  pages =        "160--173",
  month =        apr,
  year =         "2020",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2019.10.025",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Thu Apr 23 07:41:39 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2020.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397519306541",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Navarrete:2020:PRE,
  author =       "Lise Rommel Romero Navarrete and Guilherme P. Telles",
  title =        "Practical regular expression constrained sequence
                 alignment",
  journal =      j-THEOR-COMP-SCI,
  volume =       "815",
  number =       "??",
  pages =        "95--108",
  day =          "2",
  month =        may,
  year =         "2020",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2020.02.017",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Thu Apr 23 07:41:41 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2020.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397520301018",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Polo:2020:AGO,
  author =       "Macario Polo and Oscar Pedreira and {\'A}ngeles S.
                 Places and Ignacio Garc{\'\i}a Rodr{\'\i}guez de
                 Guzm{\'a}n",
  title =        "Automated generation of oracled test cases with
                 regular expressions and combinatorial techniques",
  journal =      j-J-SOFTW-EVOL-PROC,
  volume =       "32",
  number =       "12",
  pages =        "e2273:1--e2273:??",
  month =        dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1002/smr.2273",
  ISSN =         "2047-7473 (print), 2047-7481 (electronic)",
  ISSN-L =       "2047-7473",
  bibdate =      "Mon May 17 08:20:31 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsoftwevolproc.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "",
  fjournal =     "Journal of Software: Evolution and Process",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)2047-7481",
  onlinedate =   "04 June 2020",
}

@Article{Qahtan:2020:PFD,
  author =       "Abdulhakim Qahtan and Nan Tang and Mourad Ouzzani and
                 Yang Cao and Michael Stonebraker",
  title =        "Pattern functional dependencies for data cleaning",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "13",
  number =       "5",
  pages =        "684--697",
  month =        jan,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3377369.3377377",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Thu Apr 2 10:51:27 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  URL =          "https://dl.acm.org/doi/abs/10.14778/3377369.3377377",
  abstract =     "Patterns (or regex-based expressions) are widely used
                 to constrain the format of a domain (or a column),
                 e.g., a Year column should contain only four digits,
                 and thus a value like ``1980-'' might be a typo.
                 Moreover, integrity constraints (ICs) defined
                 \ldots{}",
  acknowledgement = ack-nhfb,
  ajournal =     "Proc. VLDB Endowment",
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "https://dl.acm.org/loi/pvldb",
}

@Article{Ryu:2020:FSM,
  author =       "Cheol Ryu and Thierry Lecroq and Kunsoo Park",
  title =        "Fast string matching for {DNA} sequences",
  journal =      j-THEOR-COMP-SCI,
  volume =       "812",
  number =       "??",
  pages =        "137--148",
  month =        apr,
  year =         "2020",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2019.09.031",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Thu Apr 23 07:41:39 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2020.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397519305821",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Saha:2020:EPP,
  author =       "Tushar Kanti Saha and Deevashwer Rathee and Takeshi
                 Koshiba",
  title =        "Efficient protocols for private wildcards pattern
                 matching",
  journal =      j-J-INFO-SEC-APPL,
  volume =       "55",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.jisa.2020.102609",
  ISSN =         "2214-2126",
  ISSN-L =       "2214-2126",
  bibdate =      "Sun May 8 11:59:32 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jinfosecappl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2214212620307742",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Info. Sec. Appl.",
  articleno =    "102609",
  fjournal =     "Journal of Information Security and Applications
                 (JISA)",
  journal-URL =  "http://www.sciencedirect.com/science/journal/22142126",
}

@Article{Shetiya:2020:AAS,
  author =       "Suraj Shetiya and Saravanan Thirumuruganathan and Nick
                 Koudas and Gautam Das",
  title =        "{Astrid}: accurate selectivity estimation for string
                 predicates using deep learning",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "14",
  number =       "4",
  pages =        "471--484",
  month =        dec,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3436905.3436907",
  ISSN =         "2150-8097",
  bibdate =      "Tue Feb 23 08:32:42 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  URL =          "https://dl.acm.org/doi/10.14778/3436905.3436907",
  abstract =     "Accurate selectivity estimation for string predicates
                 is a long-standing research challenge in databases.
                 Supporting pattern matching on strings (such as prefix,
                 substring, and suffix) makes this problem much more
                 challenging, thereby necessitating a \ldots{}",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "https://dl.acm.org/loi/pvldb",
}

@Article{Stylianopoulos:2020:MPM,
  author =       "Charalampos Stylianopoulos and Magnus Almgren and Olaf
                 Landsiedel and Marina Papatriantafilou",
  title =        "Multiple pattern matching for network security
                 applications: Acceleration through vectorization",
  journal =      j-J-PAR-DIST-COMP,
  volume =       "137",
  number =       "??",
  pages =        "34--52",
  month =        mar,
  year =         "2020",
  CODEN =        "JPDCER",
  ISSN =         "0743-7315 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Wed Mar 18 09:26:11 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jpardistcomp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0743731519301984",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
}

@Article{Sun:2020:ERE,
  author =       "Xiuwen Sun and Hao Li and Dan Zhao and Xingxing Lu and
                 Zheng Peng and Chengchen Hu",
  title =        "Efficient regular expression matching over compressed
                 traffic",
  journal =      j-COMP-NET-AMSTERDAM,
  volume =       "168",
  number =       "??",
  pages =        "Article 106996",
  day =          "26",
  month =        feb,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.comnet.2019.106996",
  ISSN =         "1389-1286 (print), 1872-7069 (electronic)",
  ISSN-L =       "1389-1286",
  bibdate =      "Fri Aug 14 10:03:45 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compnetamsterdam2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S1389128618311939",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Networks (Amsterdam, Netherlands: 1999)",
  journal-URL =  "http://www.sciencedirect.com/science/journal/13891286/",
}

@Article{Taha:2020:AMM,
  author =       "Mohammad M. A. Taha and Christof Teuscher",
  title =        "Approximate Memristive In-Memory {Hamming} Distance
                 Circuit",
  journal =      j-JETC,
  volume =       "16",
  number =       "2",
  pages =        "18:1--18:14",
  month =        apr,
  year =         "2020",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3371391",
  ISSN =         "1550-4832",
  ISSN-L =       "1550-4832",
  bibdate =      "Tue May 5 13:48:07 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jetc.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/abs/10.1145/3371391",
  abstract =     "Hamming Distance (HD) is a popular similarity measure
                 that is used widely in pattern matching applications,
                 DNA sequencing, and binary error-correcting codes. In
                 this article, we extend our previous work to prove that
                 our HD circuit is scalable, \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "18",
  fjournal =     "ACM Journal on Emerging Technologies in Computing
                 Systems (JETC)",
  journal-URL =  "https://dl.acm.org/loi/jetc",
}

@Article{Tejiscak:2020:DTC,
  author =       "Mat{\'u}s Tejisc{\'a}k",
  title =        "A dependently typed calculus with pattern matching and
                 erasure inference",
  journal =      j-PACMPL,
  volume =       "4",
  number =       "ICFP",
  pages =        "91:1--91:29",
  month =        aug,
  year =         "2020",
  DOI =          "https://doi.org/10.1145/3408973",
  bibdate =      "Tue Mar 30 08:10:48 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3408973",
  abstract =     "Some parts of dependently typed programs constitute
                 evidence of their type-correctness and, once checked,
                 are unnecessary for execution. These parts can easily
                 become asymptotically larger than the remaining
                 runtime-useful computation, which can cause \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "91",
  fjournal =     "Proceedings of the ACM on Programming Languages",
  journal-URL =  "https://pacmpl.acm.org/",
}

@Article{Travnicek:2020:MBM,
  author =       "Jan Tr{\'a}vn{\'\i}{\v{c}}ek and Jan Janou{\v{s}}ek
                 and Bo{\v{r}}ivoj Melichar and Loek Cleophas",
  title =        "On modification of {Boyer--Moore--Horspool}'s
                 algorithm for tree pattern matching in linearised
                 trees",
  journal =      j-THEOR-COMP-SCI,
  volume =       "830--831",
  number =       "??",
  pages =        "60--90",
  day =          "24",
  month =        aug,
  year =         "2020",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2020.04.027",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Fri Mar 12 06:53:40 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2020.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397520302425",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Turonova:2020:RMC,
  author =       "Lenka Turo{\v{n}}ov{\'a} and Luk{\'a}{\v{s}}
                 Hol{\'{\i}}k and Ond{\v{r}}ej Leng{\'a}l and Olli
                 Saarikivi and Margus Veanes and Tom{\'a}{\v{s}}
                 Vojnar",
  title =        "Regex matching with counting-set automata",
  journal =      j-PACMPL,
  volume =       "4",
  number =       "OOPSLA",
  pages =        "218:1--218:30",
  month =        nov,
  year =         "2020",
  DOI =          "https://doi.org/10.1145/3428286",
  bibdate =      "Tue Mar 30 08:10:50 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3428286",
  abstract =     "We propose a solution to the problem of efficient
                 matching regular expressions (regexes) with bounded
                 repetition, such as (ab){1,100}, using deterministic
                 automata. For this, we introduce novel counting-set
                 automata (CsAs), automata with registers that
                 \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "218",
  fjournal =     "Proceedings of the ACM on Programming Languages",
  journal-URL =  "https://pacmpl.acm.org/",
}

@Article{Zheng:2020:SGT,
  author =       "Lixiao Zheng and Shuai Ma and Yuanyang Wang and Gang
                 Lin",
  title =        "String Generation for Testing Regular Expressions",
  journal =      j-COMP-J,
  volume =       "63",
  number =       "1",
  pages =        "41--65",
  month =        jan,
  year =         "2020",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/bxy137",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Mon Jan 27 16:04:32 MST 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compj2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://academic.oup.com/comjnl/article/63/1/41/5288328",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
}

@Article{Zhu:2020:DBA,
  author =       "Xiaodong Zhu and Yi Zhang and Liehui Jiang and Rui
                 Chang",
  title =        "Determining the base address of {MIPS} firmware based
                 on absolute address statistics and string reference
                 matching",
  journal =      j-COMPUT-SECUR,
  volume =       "88",
  number =       "??",
  pages =        "Article 101504",
  month =        jan,
  year =         "2020",
  CODEN =        "CPSEDU",
  ISSN =         "0167-4048 (print), 1872-6208 (electronic)",
  ISSN-L =       "0167-4048",
  bibdate =      "Sat Mar 14 18:49:56 MDT 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/computsecur2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0167404819300860",
  acknowledgement = ack-nhfb,
  fjournal =     "Computers \& Security",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01674048",
  keywords =     "Absolute address statistics; Base address
                 determination; Embedded system; MIPS architecture;
                 Reverse engineering; String reference matching",
}

@Article{Al-Sibahi:2021:VPT,
  author =       "Ahmad Salim Al-Sibahi and Thomas P. Jensen and
                 Aleksandar S. Dimovski and Andrzej Wasowski",
  title =        "Verification of Program Transformations with Inductive
                 Refinement Types",
  journal =      j-TOSEM,
  volume =       "30",
  number =       "1",
  pages =        "5:1--5:33",
  month =        jan,
  year =         "2021",
  CODEN =        "ATSMER",
  DOI =          "https://doi.org/10.1145/3409805",
  ISSN =         "1049-331X (print), 1557-7392 (electronic)",
  ISSN-L =       "1049-331X",
  bibdate =      "Fri Jan 22 07:02:14 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tosem.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3409805",
  abstract =     "High-level transformation languages like Rascal
                 include expressive features for manipulating large
                 abstract syntax trees: first-class traversals,
                 expressive pattern matching, backtracking, and
                 generalized iterators. We present the design and
                 \ldots{}",
  acknowledgement = ack-nhfb,
  ajournal =     "ACM Trans. Softw. Eng. Methodol.",
  articleno =    "5",
  fjournal =     "ACM Transactions on Software Engineering and
                 Methodology",
  journal-URL =  "https://dl.acm.org/loi/tosem",
}

@Article{Allen:2021:UFP,
  author =       "Daniel R. Allen and Sharma V. Thankachan and Bojian
                 Xu",
  title =        "An Ultra-Fast and Parallelizable Algorithm for Finding
                 $k$-Mismatch Shortest Unique Substrings",
  journal =      j-TCBB,
  volume =       "18",
  number =       "1",
  pages =        "138--148",
  month =        jan,
  year =         "2021",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2020.2968531",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Tue Jun 15 14:32:53 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  URL =          "https://dl.acm.org/doi/10.1109/TCBB.2020.2968531",
  abstract =     "This paper revisits the k-mismatch shortest unique
                 substring finding problem and demonstrates that a
                 technique recently presented in the context of solving
                 the k-mismatch average common substring problem can be
                 adapted and combined with parts of the existing
                 solution, resulting in a new algorithm which has
                 expected time complexity of $ O(n \log^k n) $, while
                 maintaining a practical space complexity at $ O(k n) $,
                 where $n$ is the string length. When $ k > 0$, which is
                 the hard case, our new proposal significantly improves
                 the anycase $ O(n^2)$ time complexity of the prior best
                 method for $k$-mismatch shortest unique substring
                 finding. Experimental study shows that our new
                 algorithm is practical to implement and demonstrates
                 significant improvements in processing time compared to
                 the prior best solution's implementation when $k$ is
                 small relative ton. For example, our method processes a
                 200 KB sample DNA sequence with $ k = 1$ in just 0.18
                 seconds compared to 174.37 seconds with the prior best
                 solution. Further, it is observed that significant
                 portions of the adapted technique can be executed in
                 parallel, using two different simple concurrency
                 models, resulting in further significant practical
                 performance improvement. As an example, when using 8
                 cores, the parallel implementations both achieved
                 processing times that are less than 1/4 of the serial
                 implementation's time cost, when processing a 10 MB
                 sample DNA sequence with $ k = 2$. In an age where
                 instances with thousands of gigabytes of RAM are
                 readily available for use through Cloud infrastructure
                 providers, it is likely that the trade-off of
                 additional memory usage for significantly improved
                 processing times will be desirable and needed by many
                 users. For example, the best prior solution may spend
                 years to finish a DNA sample of 200MB for any $ k > 0$,
                 while this new proposal, using 24 cores, can finish
                 processing a sample of this size with $ k = 1$ in
                 206.376 seconds with a peak memory usage of 46 GB,
                 which is both easily available and affordable on Cloud.
                 It is expected that this new efficient and practical
                 algorithm for $k$-mismatch shortest unique substring
                 finding will prove useful to those using the measure on
                 long sequences in fields such as computational biology.
                 We also give a theoretical bound that the $k$-mismatch
                 shortest unique substring finding problem can be solved
                 using $ O(n \log^k n)$ time and $ O(n)$ space,
                 asymptotically much better than the one we implemented,
                 serving as a new discovery of interest.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "https://dl.acm.org/loi/tcbb",
}

@Article{Berglund:2021:FIB,
  author =       "Martin Berglund and Willem Bester and Brink van der
                 Merwe",
  title =        "Formalising and implementing {Boost POSIX} regular
                 expression matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "857",
  number =       "??",
  pages =        "147--165",
  day =          "12",
  month =        feb,
  year =         "2021",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2021.01.010",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Fri Mar 12 06:53:53 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2020.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397521000232",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Borsotti:2021:DPA,
  author =       "Angelo Borsotti and Luca Breveglieri and Angelo
                 Morzenti",
  title =        "A deterministic parsing algorithm for ambiguous
                 regular expressions",
  journal =      j-ACTA-INFO,
  volume =       "58",
  number =       "3",
  pages =        "195--229",
  month =        jun,
  year =         "2021",
  CODEN =        "AINFA2",
  DOI =          "https://doi.org/10.1007/s00236-020-00366-7",
  ISSN =         "0001-5903 (print), 1432-0525 (electronic)",
  ISSN-L =       "0001-5903",
  bibdate =      "Sat Feb 26 17:35:38 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/actainfo.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://link.springer.com/article/10.1007/s00236-020-00366-7",
  acknowledgement = ack-nhfb,
  fjournal =     "Acta Informatica",
  journal-URL =  "http://link.springer.com/journal/236",
}

@Article{Borsotti:2021:EPS,
  author =       "Angelo Borsotti and Ulya Trofimovich",
  title =        "Efficient {POSIX} submatch extraction on
                 nondeterministic finite automata",
  journal =      j-SPE,
  volume =       "51",
  number =       "2",
  pages =        "159--192",
  month =        feb,
  year =         "2021",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.2881",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Fri Feb 26 08:59:24 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "18 October 2020",
}

@Article{Bouhenni:2021:SDG,
  author =       "Sarra Bouhenni and Sa{\"\i}d Yahiaoui and Nadia
                 Nouali-Taboudjemat and Hamamache Kheddouci",
  title =        "A Survey on Distributed Graph Pattern Matching in
                 Massive Graphs",
  journal =      j-COMP-SURV,
  volume =       "54",
  number =       "2",
  pages =        "36:1--36:35",
  month =        apr,
  year =         "2021",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/3439724",
  ISSN =         "0360-0300 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  bibdate =      "Fri Apr 23 10:35:01 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3439724",
  abstract =     "Besides its NP-completeness, the strict constraints of
                 subgraph isomorphism are making it impractical for
                 graph pattern matching (GPM) in the context of big
                 data. As a result, relaxed GPM models have emerged as
                 they yield interesting results in a \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "36",
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "https://dl.acm.org/loi/csur",
}

@Article{Charalampopoulos:2021:CPM,
  author =       "Panagiotis Charalampopoulos and Tomasz Kociumaka and
                 Solon P. Pissis and Jakub Radoszewski and Wojciech
                 Rytter and Juliusz Straszy{\'n}ski and Tomasz Wale{\'n}
                 and Wiktor Zuba",
  title =        "Circular pattern matching with $k$ mismatches",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "115",
  number =       "??",
  pages =        "73--85",
  month =        feb,
  year =         "2021",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1016/j.jcss.2020.07.003",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Wed May 26 15:41:28 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0022000020300702",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@Article{Chauhan:2021:ARP,
  author =       "Komal Chauhan and Kartik Jain and Sayan Ranu and
                 Srikanta Bedathur and Amitabha Bagchi",
  title =        "Answering regular path queries through exemplars",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "15",
  number =       "2",
  pages =        "299--311",
  month =        oct,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3489496.3489510",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Sat Feb 5 06:26:54 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  URL =          "https://dl.acm.org/doi/10.14778/3489496.3489510",
  abstract =     "Regular simple path query (RPQ) is one of the
                 fundamental operators in graph analytics. In an RPQ,
                 the input is a graph, a source node and a regular
                 expression. The goal is to identify all nodes that are
                 connected to the source through a simple path
                 \ldots{}",
  acknowledgement = ack-nhfb,
  ajournal =     "Proc. VLDB Endowment",
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "https://dl.acm.org/loi/pvldb",
}

@Article{Chen:2021:SMK,
  author =       "Yangjun Chen and Hoang Hai Nguyen",
  title =        "On the string matching with $k$ differences in {DNA}
                 databases",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "14",
  number =       "6",
  pages =        "903--915",
  month =        feb,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3447689.3447695",
  ISSN =         "2150-8097",
  bibdate =      "Tue Apr 13 13:43:38 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  URL =          "https://dl.acm.org/doi/10.14778/3447689.3447695",
  abstract =     "In this paper, we discuss an efficient and effective
                 index mechanism for the string matching with k
                 differences, by which we will find all the substrings
                 of a target string y of length n that align with a
                 pattern string x of length m with not more than
                 \ldots{}",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "https://dl.acm.org/loi/pvldb",
}

@Article{Chen:2021:TDV,
  author =       "Fei Chen and Donghong Wang and Qiuzhen Lin and
                 Jianyong Chen and Zhong Ming and Wei Yu and Jing Qin",
  title =        "Towards Dynamic Verifiable Pattern Matching",
  journal =      j-IEEE-TRANS-BIG-DATA,
  volume =       "7",
  number =       "2",
  pages =        "421--435",
  month =        jun,
  year =         "2021",
  DOI =          "https://doi.org/10.1109/TBDATA.2018.2868657",
  ISSN =         "2332-7790",
  bibdate =      "Sat Jul 10 08:31:17 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetransbigdata.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Big Data",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=6687317",
}

@TechReport{Davis:2021:URE,
  author =       "Mark Davis",
  title =        "{Unicode} Regular Expressions",
  type =         "{Unicode} Technical Report",
  number =       "18",
  institution =  pub-UNICODE,
  address =      pub-UNICODE-SAN-JOSE:adr,
  edition =      "22",
  day =          "16",
  month =        feb,
  year =         "2021",
  bibdate =      "Wed Feb 24 12:49:50 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unicode.bib",
  URL =          "http://www.unicode.org/unicode/reports/tr18/tr18-22.html",
  acknowledgement = ack-nhfb,
}

@Book{Durr:2021:CPP,
  author =       "Christoph D{\"u}rr and Jill-J{\^e}nn Vie",
  title =        "Competitive programming in {Python}: 128 algorithms to
                 develop your coding skills",
  publisher =    pub-CAMBRIDGE,
  address =      pub-CAMBRIDGE:adr,
  year =         "2021",
  DOI =          "https://doi.org/10.1017/9781108591928",
  ISBN =         "1-108-71682-2 (paperback), 1-108-59192-2 (e-pub)",
  ISBN-13 =      "978-1-108-71682-6 (paperback), 978-1-108-59192-8
                 (e-pub)",
  LCCN =         "QA76.73.P98",
  bibdate =      "Wed Jan 6 12:05:07 MST 2021",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Translation to English from the French original by
                 Greg Gibbons and Dani{\`e}le Gibbons.",
  URL =          "https://assets.cambridge.org/97811087/16826/toc/9781108716826_toc.pdf",
  abstract =     "Want to kill it at your job interview in the tech
                 industry? Want to win that coding competition? Learn
                 all the algorithmic techniques and programming skills
                 you need from two experienced coaches, problem setters,
                 and jurors for coding competitions. The authors
                 highlight the versatility of each algorithm by
                 considering a variety of problems and show how to
                 implement algorithms in simple and efficient code. What
                 to expect: * Master 128 algorithms in Python. *
                 Discover the right way to tackle a problem and quickly
                 implement a solution of low complexity. * Classic
                 problems like Dijkstra's shortest path algorithm and
                 Knuth--Morris--Pratt's string matching algorithm, plus
                 lesser known data structures like Fenwick trees and
                 Knuth's dancing links. * A framework to tackle
                 algorithmic problem solving, including: Definition,
                 Complexity, Applications, Algorithm, Key Information,
                 Implementation, Variants, In Practice, and Problems. *
                 Python code in the book and on the companion website",
  acknowledgement = ack-nhfb,
  author-dates = "1969--",
  subject =      "Python (Computer program language); Algorithms;
                 Algorithms; Python (Computer program language)",
  tableofcontents = "1. Introduction \\
                 2. Character strings \\
                 3. Sequences \\
                 4. Arrays \\
                 5. Intervals \\
                 6. Graphs \\
                 7. Cycles in graphs \\
                 8. Shortest paths \\
                 9. Matching and flows \\
                 10. Trees \\
                 11. Sets \\
                 12. Points and polygons \\
                 13. Rectangles \\
                 14. Numbers and matrices \\
                 15. Exhaustive search \\
                 16. Conclusion",
}

@Article{Engels:2021:SVS,
  author =       "Steven Engels and Tony Tan and Jan {Van den Bussche}",
  title =        "Subsequence versus substring constraints in sequence
                 pattern languages",
  journal =      j-ACTA-INFO,
  volume =       "58",
  number =       "1--2",
  pages =        "35--56",
  month =        apr,
  year =         "2021",
  CODEN =        "AINFA2",
  DOI =          "https://doi.org/10.1007/s00236-019-00347-5",
  ISSN =         "0001-5903 (print), 1432-0525 (electronic)",
  ISSN-L =       "0001-5903",
  bibdate =      "Fri May 14 08:49:31 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/actainfo.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://link.springer.com/article/10.1007/s00236-019-00347-5",
  acknowledgement = ack-nhfb,
  fjournal =     "Acta Informatica",
  journal-URL =  "http://link.springer.com/journal/236",
  online-date =  "Published: 07 November 2019 Pages: 35 - 56",
}

@Article{Filinski:2021:PDP,
  author =       "Andrzej Filinski",
  title =        "Proof-directed program transformation: a functional
                 account of efficient regular expression matching",
  journal =      j-J-FUNCT-PROGRAM,
  volume =       "31",
  number =       "??",
  pages =        "e12",
  month =        "????",
  year =         "2021",
  CODEN =        "JFPRES",
  DOI =          "https://doi.org/10.1017/S0956796820000295",
  ISSN =         "0956-7968 (print), 1469-7653 (electronic)",
  ISSN-L =       "0956-7968",
  bibdate =      "Wed Apr 6 09:15:28 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jfunctprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.cambridge.org/core/journals/journal-of-functional-programming/article/proofdirected-program-transformation-a-functional-account-of-efficient-regular-expression-matching/454BB5CD9B0B056FA91957F2F9CC3EC5",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Funct. Program.",
  fjournal =     "Journal of Functional Programming",
  journal-URL =  "https://www.cambridge.org/core/journals/journal-of-functional-programming",
  onlinedate =   "24 May 2021",
}

@Article{Gibney:2021:TIR,
  author =       "Daniel Gibney",
  title =        "Text Indexing for Regular Expression Matching",
  journal =      j-ALGORITHMS-BASEL,
  volume =       "14",
  number =       "5",
  month =        may,
  year =         "2021",
  CODEN =        "ALGOCH",
  DOI =          "https://doi.org/10.3390/a14050133",
  ISSN =         "1999-4893 (electronic)",
  ISSN-L =       "1999-4893",
  bibdate =      "Fri May 28 20:35:18 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/algorithms.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.mdpi.com/1999-4893/14/5/133",
  acknowledgement = ack-nhfb,
  articleno =    "133",
  fjournal =     "Algorithms (Basel)",
  journal-URL =  "https://www.mdpi.com/",
  keywords =     "pattern matching; regular expressions; text indexing",
  pagecount =    "??",
}

@Article{Higuchi:2021:FLP,
  author =       "Shunsuke Higuchi and Junji Takemasa and Yuki Koizumi
                 and Atsushi Tagami and Toru Hasegawa",
  title =        "Feasibility of {Longest Prefix Matching} using
                 {Learned Index Structures}",
  journal =      j-SIGMETRICS,
  volume =       "48",
  number =       "4",
  pages =        "45--48",
  month =        may,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3466826.3466842",
  ISSN =         "0163-5999 (print), 1557-9484 (electronic)",
  ISSN-L =       "0163-5999",
  bibdate =      "Thu May 20 08:57:00 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigmetrics.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3466826.3466842",
  abstract =     "This paper revisits longest prefix matching in IP
                 packet forwarding because an emerging data structure,
                 learned index, is recently presented. A learned index
                 uses machine learning to associate key-value pairs in a
                 key-value store. The fundamental idea \ldots{}",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGMETRICS Performance Evaluation Review",
  journal-URL =  "https://dl.acm.org/loi/sigmetrics",
}

@Article{Hucke:2021:ARR,
  author =       "Danny Hucke",
  title =        "Approximation Ratios of {RePair}, {LongestMatch} and
                 {Greedy} on Unary Strings",
  journal =      j-ALGORITHMS-BASEL,
  volume =       "14",
  number =       "2",
  month =        feb,
  year =         "2021",
  CODEN =        "ALGOCH",
  DOI =          "",
  ISSN =         "1999-4893 (electronic)",
  ISSN-L =       "1999-4893",
  bibdate =      "Fri Feb 26 08:54:34 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/algorithms.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.mdpi.com/1999-4893/14/2/65",
  acknowledgement = ack-nhfb,
  articleno =    "2021",
  fjournal =     "Algorithms (Basel)",
  journal-URL =  "https://www.mdpi.com/",
  pagecount =    "??",
}

@Article{Kim:2021:SFI,
  author =       "Sung-Hwan Kim and Hwan-Gue Cho",
  title =        "Simpler {FM}-index for parameterized string matching",
  journal =      j-INFO-PROC-LETT,
  volume =       "165",
  number =       "??",
  pages =        "Article 106026",
  month =        jan,
  year =         "2021",
  CODEN =        "IFPLAT",
  DOI =          "https://doi.org/10.1016/j.ipl.2020.106026",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Mar 24 11:59:26 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019020301137",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Konstantinidis:2021:PDR,
  author =       "Stavros Konstantinidis and Nelma Moreira and
                 Rog{\'e}rio Reis",
  title =        "Partial derivatives of regular expressions over
                 alphabet-invariant and user-defined labels",
  journal =      j-THEOR-COMP-SCI,
  volume =       "870",
  number =       "??",
  pages =        "103--120",
  day =          "16",
  month =        may,
  year =         "2021",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2020.12.029",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Sep 4 11:08:15 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2020.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397520307544",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Kuperberg:2021:CPS,
  author =       "Denis Kuperberg and Laureline Pinault and Damien
                 Pous",
  title =        "Cyclic proofs, system t, and the power of
                 contraction",
  journal =      j-PACMPL,
  volume =       "5",
  number =       "POPL",
  pages =        "1:1--1:28",
  month =        jan,
  year =         "2021",
  DOI =          "https://doi.org/10.1145/3434282",
  bibdate =      "Tue Mar 30 08:10:58 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3434282",
  abstract =     "We study a cyclic proof system C over regular
                 expression types, inspired by linear logic and
                 non-wellfounded proof theory. Proofs in C can be seen
                 as strongly typed goto programs. We show that they
                 denote computable total functions and we analyse the
                 \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "1",
  fjournal =     "Proceedings of the ACM on Programming Languages",
  journal-URL =  "https://pacmpl.acm.org/",
}

@Article{Louza:2021:NAR,
  author =       "Felipe A. Louza and Neerja Mhaskar and W. F. Smyth",
  title =        "A new approach to regular \& indeterminate strings",
  journal =      j-THEOR-COMP-SCI,
  volume =       "854",
  number =       "??",
  pages =        "105--115",
  day =          "16",
  month =        jan,
  year =         "2021",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2020.12.007",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Fri Mar 12 06:53:52 MST 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2020.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397520307118",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Mraz:2021:TDP,
  author =       "Franti{\v{s}}ek Mr{\'a}z and Daniel Pr{\r{u}}{\v{s}}a
                 and Michael Wehar",
  title =        "Two-dimensional pattern matching against local and
                 regular-like picture languages",
  journal =      j-THEOR-COMP-SCI,
  volume =       "870",
  number =       "??",
  pages =        "137--152",
  day =          "16",
  month =        may,
  year =         "2021",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2020.12.026",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Sep 4 11:08:15 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2020.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397520307490",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Nagy:2021:UFR,
  author =       "Benedek Nagy",
  title =        "Union-Freeness Revisited --- Between Deterministic and
                 Nondeterministic Union-Free Languages",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "32",
  number =       "05",
  pages =        "551--573",
  month =        aug,
  year =         "2021",
  DOI =          "https://doi.org/10.1142/S0129054121410070",
  ISSN =         "0129-0541",
  ISSN-L =       "0129-0541",
  bibdate =      "Thu Aug 12 06:43:00 MDT 2021",
  bibsource =    "http://www.worldscientific.com/loi/ijfcs;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.worldscientific.com/doi/10.1142/S0129054121410070",
  abstract =     "Union-free expressions are regular expressions without
                 using the union operation. Consequently,
                 (nondeterministic) union-free languages are described
                 by regular expressions using only concatenation and
                 Kleene star. The language class is also characterised
                 by a special class of finite automata: 1CFPAs have
                 exactly one cycle-free accepting path from each of
                 their states. Obviously such an automaton has exactly
                 one accepting state. The deterministic counterpart of
                 such class of automata defines the deterministic
                 union-free (d-union-free, for short) languages. In this
                 paper {\textlambda} -free nondeterministic variants of
                 1CFPAs are used to define n-union-free languages. The
                 defined language class is shown to be properly between
                 the classes of (nondeterministic) union-free and
                 d-union-free languages (in case of at least binary
                 alphabet). In case of unary alphabet the class of
                 n-union-free languages coincides with the class of
                 union-free languages. Some properties of the new
                 subregular class of languages are discussed, e.g.,
                 closure properties. On the other hand, a regular
                 expression is in union normal form if it is a finite
                 union of union-free expressions. It is well known that
                 every regular expression can be written in union normal
                 form, i.e., all regular languages can be described as
                 finite unions of (nondeterministic) union-free
                 languages. It is also known that the same fact does not
                 hold for deterministic union-free languages, that is,
                 there are regular languages that cannot be written as
                 finite unions of d-union-free languages. As an
                 important result here we show that every regular
                 language can be defined by a finite union of
                 n-union-free languages. This fact also allows to define
                 n-union-complexity of regular languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
  remark =       "Special Issue: Dedicated to Nelma Moreira and
                 Rog{\'e}rio Reis on the Occasion of Their 60th
                 Birthdays",
}

@Article{Navarro:2021:IHRa,
  author =       "Gonzalo Navarro",
  title =        "Indexing Highly Repetitive String Collections, {Part
                 II}: Compressed Indexes",
  journal =      j-COMP-SURV,
  volume =       "54",
  number =       "2",
  pages =        "26:1--26:32",
  month =        apr,
  year =         "2021",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/3432999",
  ISSN =         "0360-0300 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  bibdate =      "Fri Apr 23 10:35:01 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3432999",
  abstract =     "Two decades ago, a breakthrough in indexing string
                 collections made it possible to represent them within
                 their compressed space while at the same time offering
                 indexed search functionalities. As this new technology
                 permeated through applications like bioinformatics, the
                 string collections experienced a growth that
                 outperforms Moore's Law and challenges our ability of
                 handling them even in compressed form. It turns out,
                 fortunately, that many of these rapidly growing string
                 collections are highly repetitive, so that their
                 information content is orders of magnitude lower than
                 their plain size. The statistical compression methods
                 used for classical collections, however, are blind to
                 this repetitiveness, and therefore a new set of
                 techniques has been developed to properly exploit it.
                 The resulting indexes form a new generation of data
                 structures able to handle the huge repetitive string
                 collections that we are facing. In this survey, formed
                 by two parts, we cover the algorithmic developments
                 that have led to these data structures.\par

                 In this second part, we describe the fundamental
                 algorithmic ideas and data structures that form the
                 base of all the existing indexes, and the various
                 concrete structures that have been proposed, comparing
                 them both in theoretical and practical aspects, and
                 uncovering some new combinations. We conclude with the
                 current challenges in this fascinating field.",
  acknowledgement = ack-nhfb,
  articleno =    "26",
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "https://dl.acm.org/loi/csur",
}

@Article{Navarro:2021:IHRb,
  author =       "Gonzalo Navarro",
  title =        "Indexing Highly Repetitive String Collections, Part I:
                 Repetitiveness Measures",
  journal =      j-COMP-SURV,
  volume =       "54",
  number =       "2",
  pages =        "29:1--29:31",
  month =        apr,
  year =         "2021",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/3434399",
  ISSN =         "0360-0300 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  bibdate =      "Fri Apr 23 10:35:01 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compsurv.bib;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3434399",
  abstract =     "Two decades ago, a breakthrough in indexing string
                 collections made it possible to represent them within
                 their compressed space while at the same time offering
                 indexed search functionalities. As this new technology
                 permeated through applications like bioinformatics, the
                 string collections experienced a growth that
                 outperforms Moore's Law and challenges our ability to
                 handle them even in compressed form. It turns out,
                 fortunately, that many of these rapidly growing string
                 collections are highly repetitive, so that their
                 information content is orders of magnitude lower than
                 their plain size. The statistical compression methods
                 used for classical collections, however, are blind to
                 this repetitiveness, and therefore a new set of
                 techniques has been developed to properly exploit it.
                 The resulting indexes form a new generation of data
                 structures able to handle the huge repetitive string
                 collections that we are facing. In this survey, formed
                 by two parts, we cover the algorithmic developments
                 that have led to these data structures.

                 In this first part, we describe the distinct
                 compression paradigms that have been used to exploit
                 repetitiveness, and the algorithmic techniques that
                 provide direct access to the compressed strings. In the
                 quest for an ideal measure of repetitiveness, we
                 uncover a fascinating web of relations between those
                 measures, as well as the limits up to which the data
                 can be recovered, and up to which direct access to the
                 compressed data can be provided. This is the basic
                 aspect of indexability, which is covered in the second
                 part of this survey.",
  acknowledgement = ack-nhfb,
  articleno =    "29",
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "https://dl.acm.org/loi/csur",
}

@Article{Nicaud:2021:RRE,
  author =       "Cyril Nicaud and Pablo Rotondo",
  title =        "Random Regular Expression Over Huge Alphabets",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "32",
  number =       "05",
  pages =        "419--438",
  month =        aug,
  year =         "2021",
  DOI =          "https://doi.org/10.1142/S012905412141001X",
  ISSN =         "0129-0541",
  ISSN-L =       "0129-0541",
  bibdate =      "Thu Aug 12 06:43:00 MDT 2021",
  bibsource =    "http://www.worldscientific.com/loi/ijfcs;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.worldscientific.com/doi/10.1142/S012905412141001X",
  abstract =     "In this article, we study some properties of random
                 regular expressions of size n , when the cardinality of
                 the alphabet also depends on n . For this, we revisit
                 and improve the classical Transfer Theorem from the
                 field of analytic combinatorics. This provides precise
                 estimations for the number of regular expressions, the
                 probability of recognizing the empty word and the
                 expected number of Kleene stars in a random expression.
                 For all these statistics, we show that there is a
                 threshold when the size of the alphabet approaches n2 ,
                 at which point the leading term in the asymptotics
                 starts oscillating.",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
  remark =       "Special Issue: Dedicated to Nelma Moreira and
                 Rog{\'e}rio Reis on the Occasion of Their 60th
                 Birthdays",
}

@Article{Regeciova:2021:PMY,
  author =       "Dominika Regeciova and Dusan Kolar and Marek
                 Milkovic",
  title =        "Pattern Matching in {YARA}: Improved {Aho--Corasick}
                 Algorithm",
  journal =      j-IEEE-ACCESS,
  volume =       "9",
  pages =        "62857--62866",
  year =         "2021",
  DOI =          "https://doi.org/10.1109/access.2021.3074801",
  ISSN =         "2169-3536",
  ISSN-L =       "2169-3536",
  bibdate =      "Fri Apr 30 06:55:36 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "YARA is a tool for pattern matching used by malware
                 analysts all over the world. YARA can scan files, as
                 well as process memory. It allows us to define
                 sequences of symbols as text strings, hexadecimal
                 strings and regular expressions. However, the use of
                 regular expressions is limited because of the concern
                 that it can slow down the scanning process. In this
                 paper, we analyze the true nature of regular
                 expressions in YARA and their implementation. We have,
                 in fact, discovered several reasons why regular
                 expressions can slow down scanning based on the nature
                 of the used algorithm, Aho--Corasick. We have proposed
                 a new version of this algorithm and have implemented it
                 in the original version of this tool. The experiments
                 are presented, proving that the speed of pattern
                 matching with regular expressions can indeed be
                 improved. In selected cases, the proposed version was
                 about 27\% faster than the original version. And in
                 instances where strings were optimized for the original
                 version, their speed was found to be comparable.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Access",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=6287639",
}

@Article{Reza:2021:SPM,
  author =       "Tahsin Reza and Hassan Halawa and Matei Ripeanu and
                 Geoffrey Sanders and Roger A. Pearce",
  title =        "Scalable Pattern Matching in Metadata Graphs via
                 Constraint Checking",
  journal =      j-TOPC,
  volume =       "8",
  number =       "1",
  pages =        "2:1--2:45",
  month =        apr,
  year =         "2021",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3434391",
  ISSN =         "2329-4949 (print), 2329-4957 (electronic)",
  ISSN-L =       "2329-4949",
  bibdate =      "Fri Apr 23 17:58:56 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/topc.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3434391",
  abstract =     "Pattern matching is a fundamental tool for answering
                 complex graph queries. Unfortunately, existing
                 solutions have limited capabilities: They do not scale
                 to process large graphs and/or support only a
                 restricted set of search templates or usage \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "2",
  fjournal =     "ACM Transactions on Parallel Computing",
  journal-URL =  "https://dl.acm.org/loi/topc",
}

@Article{Rousseau:2021:LCS,
  author =       "J{\'e}r{\^o}me Rousseau",
  title =        "Longest common substring for random subshifts of
                 finite type",
  journal =      j-ANN-INST-HENRI-POINCARE-PROBAB-STATIST,
  volume =       "57",
  number =       "3",
  pages =        "1768--1785",
  month =        aug,
  year =         "2021",
  CODEN =        "AHPBAR",
  DOI =          "https://doi.org/10.1214/20-AIHP1130",
  ISSN =         "0246-0203 (print), 1778-7017 (electronic)",
  ISSN-L =       "0246-0203",
  MRclass =      "60F15; 60K37; 37A50; 37A25; 94A17; 92D20",
  bibdate =      "Wed Apr 6 06:56:33 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/annihpb.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://projecteuclid.org/journals/annales-de-linstitut-henri-poincare-probabilites-et-statistiques/volume-57/issue-3/Longest-common-substring-for-random-subshifts-of-finite-type/10.1214/20-AIHP1130.full",
  acknowledgement = ack-nhfb,
  fjournal =     "Annales de l'Institut Henri Poincar{\'e}. Section B,
                 Probabilit{\'e}s et statistiques",
  journal-URL =  "http://projecteuclid.org/all/euclid.aihp/",
  keywords =     "37Hxx; Longest common substring; Random dynamical
                 systems; Random sequences in random environments;
                 R{\'e}nyi entropy; string matching",
}

@Article{Sakharov:2021:ARE,
  author =       "Alexander Sakharov",
  title =        "Annotated regular expressions and input-driven
                 languages",
  journal =      j-INFO-PROC-LETT,
  volume =       "??",
  number =       "??",
  pages =        "Article 105958",
  month =        "????",
  year =         "2021",
  CODEN =        "IFPLAT",
  DOI =          "https://doi.org/10.1016/j.ipl.2020.105958",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Wed Mar 24 11:59:24 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019020300454",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Shieh:2021:EMP,
  author =       "Yi-Kung Shieh and Shyong Jian Shyu and Chin Lung Lu
                 and Richard Chia-Tung Lee",
  title =        "The exact multiple pattern matching problem solved by
                 a reference tree approach",
  journal =      j-THEOR-COMP-SCI,
  volume =       "882",
  number =       "??",
  pages =        "29--48",
  day =          "23",
  month =        aug,
  year =         "2021",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2021.06.003",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Sat Sep 4 11:08:22 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2020.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397521003480",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Sutton:2021:FPT,
  author =       "Andrew M. Sutton",
  title =        "Fixed-Parameter Tractability of Crossover:
                 Steady-State {GAs} on the Closest String Problem",
  journal =      j-ALGORITHMICA,
  volume =       "83",
  number =       "4",
  pages =        "1138--1163",
  month =        apr,
  year =         "2021",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-021-00809-8",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Thu May 13 21:01:43 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://link.springer.com/article/10.1007/s00453-021-00809-8",
  acknowledgement = ack-nhfb,
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
  online-date =  "Published: 15 February 2021 Pages: 1138 - 1163 This is
                 part of 1 collection : Special Issue on Genetic and
                 Evolutionary Computation, 2018",
}

@Article{Wang:2021:GSH,
  author =       "Chao Wang and Lei Gong and Shiming Lei and Haijie Fang
                 and Xi Li and Aili Wang and Xuehai Zhou",
  title =        "{GenSeq+}: a Scalable High-Performance Accelerator for
                 Genome Sequencing",
  journal =      j-TCBB,
  volume =       "18",
  number =       "4",
  pages =        "1512--1523",
  month =        jul # "\slash " # aug,
  year =         "2021",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2019.2947059",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Wed Apr 20 07:14:54 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  URL =          "https://dl.acm.org/doi/10.1109/TCBB.2019.2947059",
  abstract =     "Genome sequencing is one of the most challenging
                 problems in computational biology and bioinformatics.
                 As a traditional algorithm, the string match meets a
                 challenge with the development of the massive volume of
                 data because of gene sequencing. Surveys \ldots{}",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "https://dl.acm.org/loi/tcbb",
}

@Article{Yaman:2021:QVS,
  author =       "Sinem Getir Yaman and Esteban Pavese and Lars
                 Grunske",
  title =        "Quantitative Verification of Stochastic Regular
                 Expressions",
  journal =      j-FUND-INFO,
  volume =       "179",
  number =       "2",
  pages =        "135--163",
  month =        "????",
  year =         "2021",
  CODEN =        "FUMAAJ",
  DOI =          "https://doi.org/10.3233/FI-2021-2018",
  ISSN =         "0169-2968 (print), 1875-8681 (electronic)",
  ISSN-L =       "0169-2968",
  bibdate =      "Wed Mar 24 12:52:45 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fundinfo2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Fundamenta Informaticae",
  journal-URL =  "http://content.iospress.com/journals/fundamenta-informaticae",
}

@Article{Zuo:2021:SIS,
  author =       "Zhiqiang Zuo and Kai Wang and Aftab Hussain and
                 Ardalan Amiri Sani and Yiyu Zhang and Shenming Lu and
                 Wensheng Dou and Linzhang Wang and Xuandong Li and
                 Chenxi Wang and Guoqing Harry Xu",
  title =        "Systemizing Interprocedural Static Analysis of
                 Large-scale Systems Code with {Graspan}",
  journal =      j-TOCS,
  volume =       "38",
  number =       "1--2",
  pages =        "4:1--4:39",
  month =        jul,
  year =         "2021",
  CODEN =        "ACSYEC",
  DOI =          "https://doi.org/10.1145/3466820",
  ISSN =         "0734-2071 (print), 1557-7333 (electronic)",
  ISSN-L =       "0734-2071",
  bibdate =      "Tue Aug 10 13:25:43 MDT 2021",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tocs.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3466820",
  abstract =     "There is more than a decade-long history of using
                 static analysis to find bugs in systems such as Linux.
                 Most of the existing static analyses developed for
                 these systems are simple checkers that find bugs based
                 on pattern matching. Despite the presence \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "4",
  fjournal =     "ACM Transactions on Computer Systems",
  journal-URL =  "https://dl.acm.org/loi/tocs",
}

@Article{Alves:2022:SSS,
  author =       "Leonardo Fuchs Alves and Francisco J. S. Vasconcellos
                 and Bruno Magalh{\~a}es Nogueira",
  title =        "{SeSG}: a search string generator for {Secondary
                 Studies} with hybrid search strategies using text
                 mining",
  journal =      j-EMPIR-SOFTWARE-ENG,
  volume =       "27",
  number =       "5",
  pages =        "??--??",
  month =        sep,
  year =         "2022",
  CODEN =        "ESENFW",
  DOI =          "https://doi.org/10.1007/s10664-021-10084-4",
  ISSN =         "1382-3256 (print), 1573-7616 (electronic)",
  ISSN-L =       "1382-3256",
  bibdate =      "Tue Jun 7 16:08:34 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/empir-software-eng.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://link.springer.com/article/10.1007/s10664-021-10084-4",
  acknowledgement = ack-nhfb,
  ajournal =     "Empir. Software. Eng.",
  fjournal =     "Empirical Software Engineering",
  journal-URL =  "http://link.springer.com/journal/10664",
}

@Article{Barton:2022:ACC,
  author =       "Carl Barton",
  title =        "On the average-case complexity of pattern matching
                 with wildcards",
  journal =      j-THEOR-COMP-SCI,
  volume =       "922",
  number =       "??",
  pages =        "37--45",
  day =          "24",
  month =        jun,
  year =         "2022",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2022.04.009",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Wed Jun 8 07:14:52 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2020.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397522002092",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Bernardini:2022:EDS,
  author =       "Giulia Bernardini and Pawe{\l} Gawrychowski and Nadia
                 Pisanti and Solon P. Pissis and Giovanna Rosone",
  title =        "Elastic-Degenerate String Matching via Fast Matrix
                 Multiplication",
  journal =      j-SIAM-J-COMPUT,
  volume =       "51",
  number =       "3",
  pages =        "??--??",
  month =        "????",
  year =         "2022",
  CODEN =        "SMJCAT",
  DOI =          "https://doi.org/10.1137/20M1368033",
  ISSN =         "0097-5397 (print), 1095-7111 (electronic)",
  ISSN-L =       "0097-5397",
  bibdate =      "Wed Mar 22 17:10:45 MDT 2023",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/51/3;
                 https://www.math.utah.edu/pub/tex/bib/siamjcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://epubs.siam.org/doi/10.1137/20M1368033",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@Article{Bille:2022:REM,
  author =       "Philip Bille and Inge Li G{\o}rtz",
  title =        "From regular expression matching to parsing",
  journal =      j-ACTA-INFO,
  volume =       "59",
  number =       "6",
  pages =        "709--724",
  month =        dec,
  year =         "2022",
  CODEN =        "AINFA2",
  DOI =          "https://doi.org/10.1007/s00236-022-00420-6",
  ISSN =         "0001-5903 (print), 1432-0525 (electronic)",
  ISSN-L =       "0001-5903",
  bibdate =      "Sat Oct 22 10:43:23 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/actainfo.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://link.springer.com/article/10.1007/s00236-022-00420-6",
  abstract =     "Given a regular expression R and a string Q, the
                 regular expression parsing problem is to determine if Q
                 matches R and if so, determine how it matches, i.e., by
                 a mapping of the characters of Q to the characters in
                 R. Regular expression parsing makes finding matches of
                 a regular expression even more useful by allowing us to
                 directly extract subpatterns of the match, e.g., for
                 extracting IP-addresses from internet traffic analysis
                 or extracting subparts of genomes from genetic data
                 bases. We present a new general techniques for
                 efficiently converting a large class of algorithms that
                 determine if a string Q matches regular expression R
                 into algorithms that can construct a corresponding
                 mapping. As a consequence, we obtain the first
                 efficient linear space solutions for regular expression
                 parsing.",
  acknowledgement = ack-nhfb,
  ajournal =     "Acta Info",
  fjournal =     "Acta Informatica",
  journal-URL =  "http://link.springer.com/journal/236",
}

@Article{Boruch-Gruszecki:2022:CDT,
  author =       "Aleksander Boruch-Gruszecki and Rados{\l}aw Wa{\'s}ko
                 and Yichen Xu and Lionel Parreaux",
  title =        "A case for {DOT}: theoretical foundations for objects
                 with pattern matching and {GADT}-style reasoning",
  journal =      j-PACMPL,
  volume =       "6",
  number =       "OOPSLA2",
  pages =        "179:1--179:??",
  month =        oct,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3563342",
  ISSN =         "2475-1421 (electronic)",
  ISSN-L =       "2475-1421",
  bibdate =      "Sat Mar 11 09:08:36 MST 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3563342",
  abstract =     "Many programming languages in the OO tradition now
                 support pattern matching in some form. Historical
                 examples include Scala and Ceylon, with the more recent
                 \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "179",
  fjournal =     "Proceedings of the ACM on Programming Languages
                 (PACMPL)",
  journal-URL =  "https://dl.acm.org/loi/pacmpl",
}

@Article{Bouhenni:2022:EPE,
  author =       "Sarra Bouhenni and Sa{\"\i}d Yahiaoui and Hamamache
                 Kheddouci",
  title =        "Efficient parallel edge-centric approach for relaxed
                 graph pattern matching",
  journal =      j-J-SUPERCOMPUTING,
  volume =       "78",
  number =       "2",
  pages =        "1642--1671",
  month =        feb,
  year =         "2022",
  CODEN =        "JOSUED",
  DOI =          "https://doi.org/10.1007/s11227-021-03938-7",
  ISSN =         "0920-8542 (print), 1573-0484 (electronic)",
  ISSN-L =       "0920-8542",
  bibdate =      "Mon Feb 28 16:44:34 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsuper.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://link.springer.com/article/10.1007/s11227-021-03938-7",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Supercomputing",
  fjournal =     "The Journal of Supercomputing",
  journal-URL =  "http://link.springer.com/journal/11227",
}

@Article{Chen:2022:EBS,
  author =       "Yue Chen and Kaiyu Feng and Gao Cong and Han Mao
                 Kiah",
  title =        "Example-based spatial pattern matching",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "15",
  number =       "11",
  pages =        "2572--2584",
  month =        jul,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3551793.3551815",
  ISSN =         "2150-8097",
  bibdate =      "Sat Oct 29 08:52:37 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  URL =          "https://dl.acm.org/doi/10.14778/3551793.3551815",
  abstract =     "The prevalence of GPS-enabled mobile devices and
                 location-based services yield massive volume of spatial
                 objects where each object contains information
                 including geographical location, name, address,
                 category and other attributes. This paper introduces
                 \ldots{}",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "https://dl.acm.org/loi/pvldb",
}

@Article{Chen:2022:SSC,
  author =       "Taolue Chen and Alejandro Flores-Lamas and Matthew
                 Hague and Zhilei Han and Denghang Hu and Shuanglong Kan
                 and Anthony W. Lin and Philipp R{\"u}mmer and Zhilin
                 Wu",
  title =        "Solving string constraints with Regex-dependent
                 functions through transducers with priorities and
                 variables",
  journal =      j-PACMPL,
  volume =       "6",
  number =       "POPL",
  pages =        "45:1--45:31",
  month =        jan,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3498707",
  ISSN =         "2475-1421 (electronic)",
  ISSN-L =       "2475-1421",
  bibdate =      "Thu May 26 06:32:48 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3498707",
  abstract =     "Regular expressions are a classical concept in formal
                 language theory. Regular expressions in programming
                 languages (RegEx) such as JavaScript, feature
                 non-standard semantics of operators (e.g. greedy/lazy
                 Kleene star), as well as additional features \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "45",
  fjournal =     "Proceedings of the ACM on Programming Languages
                 (PACMPL)",
  journal-URL =  "https://dl.acm.org/loi/pacmpl",
}

@Article{Cseresnyes:2022:REL,
  author =       "Ehud Cseresnyes and Hannes Seiwert",
  title =        "Regular expression length via arithmetic formula
                 complexity",
  journal =      j-J-COMP-SYS-SCI,
  volume =       "125",
  number =       "??",
  pages =        "1--24",
  month =        may,
  year =         "2022",
  CODEN =        "JCSSBM",
  DOI =          "https://doi.org/10.1016/j.jcss.2021.10.004",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  ISSN-L =       "0022-0000",
  bibdate =      "Mon Feb 21 07:10:53 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jcompsyssci.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S002200002100101X",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Computer and System Sciences",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00220000",
}

@TechReport{Davis:2022:URE,
  author =       "Mark Davis",
  title =        "{Unicode} Regular Expressions",
  type =         "{Unicode} Technical Report",
  number =       "18",
  institution =  pub-UNICODE,
  address =      pub-UNICODE-SAN-JOSE:adr,
  edition =      "23",
  day =          "8",
  month =        feb,
  year =         "2022",
  bibdate =      "Wed Feb 09 12:31:21 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unicode.bib",
  URL =          "https://www.unicode.org/reports/tr18/tr18-23.html",
  acknowledgement = ack-nhfb,
}

@Article{deLima:2022:SAD,
  author =       "Jo{\~a}o Paulo Cardoso de Lima and Marcelo Brandalero
                 and Michael H{\"u}bner and Luigi Carro",
  title =        "{STAP}: an Architecture and Design Tool for Automata
                 Processing on Memristor {TCAMs}",
  journal =      j-JETC,
  volume =       "18",
  number =       "2",
  pages =        "39:1--39:22",
  month =        apr,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3450769",
  ISSN =         "1550-4832",
  ISSN-L =       "1550-4832",
  bibdate =      "Mon May 2 14:16:07 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jetc.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3450769",
  abstract =     "Accelerating finite-state automata benefits several
                 emerging application domains that are built on pattern
                 matching. In-memory architectures, such as the Automata
                 Processor (AP), are efficient to speed them up, at
                 least for outperforming traditional von-...$^$",
  acknowledgement = ack-nhfb,
  articleno =    "39",
  fjournal =     "ACM Journal on Emerging Technologies in Computing
                 Systems (JETC)",
  journal-URL =  "https://dl.acm.org/loi/jetc",
}

@InProceedings{Egolf:2022:VVO,
  author =       "Derek Egolf and Sam Lasser and Kathleen Fisher",
  editor =       "Andrei Popescu and Steve Zdancewic",
  booktitle =    "Proceedings of the {11th ACM SIGPLAN International
                 Conference on Certified Programs and Proofs}",
  title =        "{Verbatim++}: verified, optimized, and semantically
                 rich lexing with derivatives",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  bookpages =    "351",
  pages =        "27--39",
  month =        jan,
  year =         "2022",
  DOI =          "https://doi.org/10.1145/3497775.3503694",
  ISBN =         "1-4503-9182-6",
  ISBN-13 =      "978-1-4503-9182-5",
  LCCN =         "????",
  bibdate =      "Fri Sep 22 12:45:44 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://doi.org/10.1145/3497775.3503694",
  abstract =     "Lexers and parsers are attractive targets for
                 attackers because they often sit at the boundary
                 between a software system's internals and the outside
                 world. Formally verified lexers can reduce the attack
                 surface of these systems, thus making them more
                 secure.\par

                 One recent step in this direction is the development of
                 Verbatim, a verified lexer based on the concept of
                 Brzozowski derivatives. Two limitations restrict the
                 tool's usefulness. First, its running time is quadratic
                 in the length of its input string. Second, the lexer
                 produces tokens with a simple `tag and string'
                 representation, which limits the tool's ability to
                 integrate with parsers that operate on more expressive
                 token representations.\par

                 In this work, we present a suite of extensions to
                 Verbatim that overcomes these limitations while
                 preserving the tool's original correctness guarantees.
                 The lexer achieves effectively linear performance on a
                 JSON benchmark through a combination of optimizations
                 that, to our knowledge, has not been previously
                 verified. The enhanced version of Verbatim also enables
                 users to augment their lexical specifications with
                 custom semantic actions, and it uses these actions to
                 produce semantically rich tokens---i.e., tokens that
                 carry values with arbitrary, user-defined types. All
                 extensions were implemented and verified with the Coq
                 Proof Assistant.",
  acknowledgement = ack-nhfb,
}

@Article{Faro:2022:WAS,
  author =       "Simone Faro and Stefano Scafiti",
  title =        "A weak approach to suffix automata simulation for
                 exact and approximate string matching",
  journal =      j-THEOR-COMP-SCI,
  volume =       "933",
  number =       "??",
  pages =        "88--103",
  day =          "14",
  month =        oct,
  year =         "2022",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2022.08.028",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Wed Oct 19 06:33:58 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2020.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397522005138",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Fiori:2022:ASM,
  author =       "Fernando J. Fiori and Waltteri Pakal{\'e}n and Jorma
                 Tarhio",
  title =        "Approximate String Matching with {SIMD}",
  journal =      j-COMP-J,
  volume =       "65",
  number =       "6",
  pages =        "1472--1488",
  month =        jun,
  year =         "2022",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/bxaa193",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Fri Jun 24 10:59:06 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compj2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://academic.oup.com/comjnl/article/65/6/1472/6134013",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
}

@Article{Fuchs:2022:SUT,
  author =       "Per Fuchs and Domagoj Margan and Jana Giceva",
  title =        "{Sortledton}: a universal, transactional graph data
                 structure",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "15",
  number =       "6",
  pages =        "1173--1186",
  month =        feb,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3514061.3514065",
  ISSN =         "2150-8097",
  bibdate =      "Fri Jun 24 09:22:17 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  URL =          "https://dl.acm.org/doi/10.14778/3514061.3514065",
  abstract =     "Despite the wide adoption of graph processing across
                 many different application domains, there is no
                 underlying data structure that can serve a variety of
                 graph workloads (analytics, traversals, and pattern
                 matching) on dynamic graphs with transactional
                 \ldots{}",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "https://dl.acm.org/loi/pvldb",
}

@Article{Gil:2022:MRE,
  author =       "Jos{\'e} Arturo Gil and Simone Santini",
  title =        "Matching Regular Expressions on uncertain data",
  journal =      j-ALGORITHMICA,
  volume =       "84",
  number =       "2",
  pages =        "532--564",
  month =        feb,
  year =         "2022",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-021-00906-8",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Sat Apr 9 10:41:56 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/algorithmica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://link.springer.com/article/10.1007/s00453-021-00906-8",
  acknowledgement = ack-nhfb,
  ajournal =     "Algorithmica",
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{Gudur:2022:FBE,
  author =       "Venkateshwarlu Yellaswamy Gudur and Sidharth
                 Maheshwari and Amit Acharyya and Rishad Shafik",
  title =        "An {FPGA} Based Energy-Efficient Read Mapper With
                 Parallel Filtering and In-Situ Verification",
  journal =      j-TCBB,
  volume =       "19",
  number =       "5",
  pages =        "2697--2711",
  year =         "2022",
  CODEN =        "ITCBCY",
  DOI =          "https://doi.org/10.1109/TCBB.2021.3106311",
  ISSN =         "1545-5963 (print), 1557-9964 (electronic)",
  ISSN-L =       "1545-5963",
  bibdate =      "Wed Oct 18 13:01:01 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcbb.bib",
  URL =          "https://dl.acm.org/doi/10.1109/TCBB.2021.3106311",
  abstract =     "In the assembly pipeline of Whole Genome Sequencing
                 (WGS), read mapping is a widely used method to
                 re-assemble the genome. It employs approximate string
                 matching and dynamic programming-based algorithms on a
                 large volume of data and associated structures,
                 \ldots{}",
  acknowledgement = ack-nhfb,
  ajournal =     "IEEE/ACM Trans. Comput. Biol. Bioinform.",
  fjournal =     "IEEE/ACM Transactions on Computational Biology and
                 Bioinformatics",
  journal-URL =  "https://dl.acm.org/loi/tcbb",
}

@Article{Hamed:2022:SIP,
  author =       "Belal A. Hamed and Osman Ali Sadek Ibrahim and Tarek
                 Abd El-Hafeez",
  title =        "A survey on improving pattern matching algorithms for
                 biological sequences",
  journal =      j-CCPE,
  volume =       "34",
  number =       "26",
  pages =        "e7292:1--e7292:??",
  day =          "30",
  month =        nov,
  year =         "2022",
  CODEN =        "CCPEBO",
  DOI =          "https://doi.org/10.1002/cpe.7292",
  ISSN =         "1532-0626 (print), 1532-0634 (electronic)",
  ISSN-L =       "1532-0626",
  bibdate =      "Wed Mar 15 08:11:27 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ccpe.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Concurr. Comput.",
  fjournal =     "Concurrency and Computation: Practice and Experience",
  journal-URL =  "http://www.interscience.wiley.com/jpages/1532-0626",
  onlinedate =   "02 September 2022",
}

@Article{Iten:2022:EPP,
  author =       "Raban Iten and Romain Moyard and Tony Metger and David
                 Sutter and Stefan Woerner",
  title =        "Exact and Practical Pattern Matching for Quantum
                 Circuit Optimization",
  journal =      j-TQC,
  volume =       "3",
  number =       "1",
  pages =        "4:1--4:41",
  month =        mar,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3498325",
  ISSN =         "2643-6809 (print), 2643-6817 (electronic)",
  ISSN-L =       "2643-6809",
  bibdate =      "Fri Jan 28 07:10:45 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tqc.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3498325",
  abstract =     "Quantum computations are typically performed as a
                 sequence of basic operations, called quantum gates.
                 Different gate sequences, called quantum circuits, can
                 implement the same overall quantum computation. Since
                 every additional quantum gate takes time and introduces
                 noise into the system, it is important to find the
                 smallest possible quantum circuit that implements a
                 given computation, especially for near-term quantum
                 devices that can execute only a limited number of
                 quantum gates before noise renders the computation
                 useless. An important building block for many quantum
                 circuit optimization techniques is pattern matching:
                 given a large and small quantum circuit, we would like
                 to find all maximal matches of the small circuit,
                 called a pattern, in the large circuit, considering
                 pairwise commutation of quantum gates. In this work, we
                 present the first classical algorithm for pattern
                 matching that provably finds all maximal matches and is
                 efficient enough to be practical for circuit sizes
                 typical for near-term devices. We demonstrate
                 numerically1 that combining our algorithm with known
                 pattern-matching-based circuit optimization techniques
                 reduces the gate count of a random quantum circuit by $
                 \approx $ 30\% and can further improve practically
                 relevant quantum circuits that were already optimized
                 with state-of-the-art techniques.",
  acknowledgement = ack-nhfb,
  articleno =    "4",
  fjournal =     "ACM Transactions on Quantum Computing (TQC)",
  journal-URL =  "https://dl.acm.org/loi/tqc",
}

@Article{Jang:2022:MMU,
  author =       "Junyoung Jang and Samuel G{\'e}lineau and Stefan
                 Monnier and Brigitte Pientka",
  title =        "{Moebius}: metaprogramming using contextual types: the
                 stage where system f can pattern match on itself",
  journal =      j-PACMPL,
  volume =       "6",
  number =       "POPL",
  pages =        "39:1--39:27",
  month =        jan,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3498700",
  ISSN =         "2475-1421 (electronic)",
  ISSN-L =       "2475-1421",
  bibdate =      "Thu May 26 06:32:48 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3498700",
  abstract =     "We describe the foundation of the metaprogramming
                 language, Moebius, which supports the generation of
                 polymorphic code and, more importantly, the analysis of
                 polymorphic code via pattern matching. Moebius has two
                 main ingredients: (1) we exploit \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "39",
  fjournal =     "Proceedings of the ACM on Programming Languages
                 (PACMPL)",
  journal-URL =  "https://dl.acm.org/loi/pacmpl",
}

@Article{Kahrs:2022:SRE,
  author =       "Stefan Kahrs and Colin Runciman",
  title =        "Simplifying regular expressions further",
  journal =      j-J-SYMBOLIC-COMP,
  volume =       "109",
  number =       "??",
  pages =        "124--143",
  month =        mar # "\slash " # apr,
  year =         "2022",
  CODEN =        "JSYCEH",
  ISSN =         "0747-7171 (print), 1095-855X (electronic)",
  ISSN-L =       "0747-7171",
  bibdate =      "Thu Feb 17 08:45:06 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsymcomp.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0747717121000572",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Symbolic Computation",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07477171",
}

@Article{Karcioglu:2022:QFH,
  author =       "Abdullah Ammar Karcioglu and Hasan Bulut",
  title =        "$q$-frame hash comparison based exact string matching
                 algorithms for {DNA} sequences",
  journal =      j-CCPE,
  volume =       "34",
  number =       "9",
  pages =        "e6505:1--e6505:??",
  day =          "25",
  month =        apr,
  year =         "2022",
  CODEN =        "CCPEBO",
  DOI =          "https://doi.org/10.1002/cpe.6505",
  ISSN =         "1532-0626 (print), 1532-0634 (electronic)",
  ISSN-L =       "1532-0626",
  bibdate =      "Wed Apr 13 09:55:02 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ccpe.bib;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Concurr. Comput.",
  fjournal =     "Concurrency and Computation: Practice and Experience",
  journal-URL =  "http://www.interscience.wiley.com/jpages/1532-0626",
  onlinedate =   "26 July 2021",
}

@Article{Mainardi:2022:PAC,
  author =       "Nicholas Mainardi and Alessandro Barenghi and Gerardo
                 Pelosi",
  title =        "Privacy-aware Character Pattern Matching over
                 Outsourced Encrypted Data",
  journal =      j-DTRAP,
  volume =       "3",
  number =       "1",
  pages =        "7:1--7:38",
  month =        mar,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3462333",
  ISSN =         "2692-1626 (print), 2576-5337 (electronic)",
  ISSN-L =       "2576-5337",
  bibdate =      "Wed Mar 2 07:28:58 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/dtrap.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3462333",
  abstract =     "Providing a method to efficiently search into
                 outsourced encrypted data, without forsaking strong
                 privacy guarantees, is a pressing concern rising from
                 the separation of data ownership and data management
                 typical of cloud-based applications. While several
                 \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "7",
  fjournal =     "Digital Threats: Research and Practice (DTRAP)",
  journal-URL =  "https://dl.acm.org/loi/dtrap",
}

@Article{Nam:2022:RRE,
  author =       "Jaehyun Nam and Seung Ho Na and Seungwon Shin and
                 Taejune Park",
  title =        "Reconfigurable regular expression matching
                 architecture for real-time pattern update and payload
                 inspection",
  journal =      j-J-NETW-COMPUT-APPL,
  volume =       "208",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2022",
  CODEN =        "JNCAF3",
  DOI =          "https://doi.org/10.1016/j.jnca.2022.103507",
  ISSN =         "1084-8045 (print), 1095-8592 (electronic)",
  ISSN-L =       "1084-8045",
  bibdate =      "Sat Oct 22 13:30:38 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jnetwcomputappl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S1084804522001497",
  acknowledgement = ack-nhfb,
  articleno =    "103507",
  fjournal =     "Journal of Network and Computer Applications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/10848045",
}

@Article{Schmid:2022:CRP,
  author =       "Markus L. Schmid",
  title =        "Conjunctive Regular Path Queries with Capture Groups",
  journal =      j-TODS,
  volume =       "47",
  number =       "2",
  pages =        "5:1--5:52",
  month =        jun,
  year =         "2022",
  CODEN =        "ATDSD3",
  DOI =          "https://doi.org/10.1145/3514230",
  ISSN =         "0362-5915 (print), 1557-4644 (electronic)",
  ISSN-L =       "0362-5915",
  bibdate =      "Mon Jun 6 06:55:46 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tods.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3514230",
  abstract =     "In practice, regular expressions are usually extended
                 by so-called capture groups or capture variables, which
                 allow to capture a subexpression by a variable that can
                 be referenced in the regular expression in order to
                 describe repetitions of subwords. We \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "5",
  fjournal =     "ACM Transactions on Database Systems",
  journal-URL =  "https://dl.acm.org/loi/tods",
}

@Article{Taft:2022:DPM,
  author =       "S. Tucker Taft and Stephen Baird and Claire Dross",
  title =        "Defining a Pattern Matching Language Feature for
                 {Ada}",
  journal =      j-SIGADA-LETTERS,
  volume =       "42",
  number =       "1",
  pages =        "79",
  month =        jun,
  year =         "2022",
  CODEN =        "AALEE5",
  DOI =          "https://doi.org/10.1145/3577949.3577963",
  ISSN =         "1094-3641 (print), 1557-9476 (electronic)",
  ISSN-L =       "0736-721X",
  bibdate =      "Tue Apr 11 11:59:12 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigada.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3577949.3577963",
  abstract =     "Structural pattern-matching as a language feature has
                 become more common in programming languages over the
                 past decade. This talk will report on the \ldots{}",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGADA Ada Letters",
  journal-URL =  "https://dl.acm.org/loi/sigada",
}

@Article{Taft:2022:RPM,
  author =       "S. Tucker Taft",
  title =        "Rigorous Pattern Matching as a Language Feature",
  journal =      j-SIGADA-LETTERS,
  volume =       "42",
  number =       "2",
  pages =        "69--74",
  month =        dec,
  year =         "2022",
  CODEN =        "AALEE5",
  DOI =          "https://doi.org/10.1145/3591335.3591342",
  ISSN =         "1094-3641 (print), 1557-9476 (electronic)",
  ISSN-L =       "0736-721X",
  bibdate =      "Tue Apr 11 11:46:30 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigada.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3591335.3591342",
  abstract =     "Structural pattern-matching as a language feature has
                 become more common in programming languages over the
                 past decade. This paper will consider more generally
                 the challenge of adding pattern matching as a
                 programming language feature, from the points
                 \ldots{}",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGADA Ada Letters",
  journal-URL =  "https://dl.acm.org/loi/sigada",
}

@InProceedings{Takayama:2022:IPM,
  author =       "Riku Takayama and Jubee Tada",
  editor =       "{IEEE}",
  booktitle =    "{2022 Tenth International Symposium on Computing and
                 Networking Workshops (CANDARW)}",
  title =        "An Implementation of a Pattern Matching Accelerator on
                 a {RISC-V} Processor",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "273--275",
  year =         "2022",
  DOI =          "https://doi.org/10.1109/CANDARW57323.2022.00059",
  bibdate =      "Sat Dec 16 15:51:40 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/risc-v.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Tchendji:2022:CGM,
  author =       "Vianney Kengne Tchendji and Hermann Bogning Tepiele
                 and Mathias Akong Onabid and Jean Fr{\'e}d{\'e}ric
                 Myoupo and Jerry Lacmou Zeutouo",
  title =        "A coarse-grained multicomputer parallel algorithm for
                 the sequential substring constrained longest common
                 subsequence problem",
  journal =      j-PARALLEL-COMPUTING,
  volume =       "111",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2022",
  CODEN =        "PACOEJ",
  DOI =          "https://doi.org/10.1016/j.parco.2022.102927",
  ISSN =         "0167-8191 (print), 1872-7336 (electronic)",
  ISSN-L =       "0167-8191",
  bibdate =      "Mon May 9 07:06:37 MDT 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/parallelcomputing.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S016781912200028X",
  acknowledgement = ack-nhfb,
  articleno =    "102927",
  fjournal =     "Parallel Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01678191",
}

@Article{Tiwari:2022:SES,
  author =       "Prayag Tiwari and Amit Kumar Jaiswal and Sahil Garg
                 and Ilsun You",
  title =        "{SANTM}: Efficient Self-attention-driven Network for
                 Text Matching",
  journal =      j-TOIT,
  volume =       "22",
  number =       "3",
  pages =        "55:1--55:??",
  month =        aug,
  year =         "2022",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3426971",
  ISSN =         "1533-5399 (print), 1557-6051 (electronic)",
  ISSN-L =       "1533-5399",
  bibdate =      "Wed Nov 16 08:12:04 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/toit.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3426971",
  abstract =     "Self-attention mechanisms have recently been embraced
                 for a broad range of text-matching applications.
                 Self-attention model takes only one sentence as an
                 input with no extra information, i.e., one can utilize
                 the final hidden state or pooling. However, \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "55",
  fjournal =     "ACM Transactions on Internet Technology (TOIT)",
  journal-URL =  "https://dl.acm.org/loi/toit",
}

@Article{Ueda:2022:DLG,
  author =       "Yuki Ueda and Takashi Ishio and Kenichi Matsumoto",
  title =        "\pkg{DevReplay}: {Linter} that generates regular
                 expressions for repeating code changes",
  journal =      j-SCI-COMPUT-PROGRAM,
  volume =       "223",
  number =       "??",
  pages =        "??--??",
  day =          "1",
  month =        nov,
  year =         "2022",
  CODEN =        "SCPGD4",
  DOI =          "https://doi.org/10.1016/j.scico.2022.102857",
  ISSN =         "0167-6423 (print), 1872-7964 (electronic)",
  ISSN-L =       "0167-6423",
  bibdate =      "Wed Apr 5 08:58:25 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0167642322000909",
  acknowledgement = ack-nhfb,
  articleno =    "102857",
  fjournal =     "Science of Computer Programming",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01676423",
}

@Article{Wang:2022:DRE,
  author =       "Peipei Wang and Chris Brown and Kathryn T. Stolee",
  title =        "Demystifying regular expression bugs",
  journal =      j-EMPIR-SOFTWARE-ENG,
  volume =       "27",
  number =       "1",
  pages =        "??--??",
  month =        jan,
  year =         "2022",
  CODEN =        "ESENFW",
  DOI =          "https://doi.org/10.1007/s10664-021-10033-1",
  ISSN =         "1382-3256 (print), 1573-7616 (electronic)",
  ISSN-L =       "1382-3256",
  bibdate =      "Fri Feb 25 18:03:07 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/empir-software-eng.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://link.springer.com/article/10.1007/s10664-021-10033-1",
  acknowledgement = ack-nhfb,
  fjournal =     "Empirical Software Engineering",
  journal-URL =  "http://link.springer.com/journal/10664",
}

@Article{Wu:2022:DCG,
  author =       "Lingxi Wu and Rasool Sharifi and Ashish Venkat and
                 Kevin Skadron",
  title =        "{DRAM-CAM}: General-Purpose Bit-Serial Exact Pattern
                 Matching",
  journal =      j-IEEE-COMPUT-ARCHIT-LETT,
  volume =       "21",
  number =       "2",
  pages =        "89--92",
  month =        jul # "\slash " # dec,
  year =         "2022",
  DOI =          "https://doi.org/10.1109/LCA.2022.3201168",
  ISSN =         "1556-6056 (print), 1556-6064 (electronic)",
  ISSN-L =       "1556-6056",
  bibdate =      "Fri Sep 22 14:23:22 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Computer Architecture Letters",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=10208",
}

@Book{Youens-Clark:2022:CLR,
  author =       "Ken Youens-Clark",
  title =        "Command-line {Rust}: a Project-Based Primer for
                 Writing {Rust CLIs}",
  publisher =    pub-ORA-MEDIA,
  address =      pub-ORA-MEDIA:adr,
  pages =        "xviii + 377",
  year =         "2022",
  ISBN =         "1-0981-0943-0 (paperback)",
  ISBN-13 =      "978-1-0981-0943-1 (paperback)",
  LCCN =         "QA76.73.R87 Y68 2022",
  bibdate =      "Mon Jun 5 12:22:38 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/rust.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.loc.gov:7090/Voyager",
  abstract =     "For several consecutive years, Rust has been voted
                 ``most loved programming language'' in Stack Overflow's
                 annual developer survey. This open source systems
                 programming language is now used for everything from
                 game engines and operating systems to browser
                 components and virtual reality simulation engines. But
                 Rust is also an incredibly complex language with a
                 notoriously difficult learning curve. Rather than
                 focusing on the language as a whole, this guide teaches
                 Rust using a single small, complete, focused program in
                 each chapter. Author Ken Youens-Clark shows you how to
                 start, write, and test each of these programs to create
                 a finished product. You'll learn how to handle errors
                 in Rust, read and write files, and use regular
                 expressions, Rust types, structs, and more. Discover
                 how to: Use Rust's standard libraries and data types
                 such as numbers, strings, vectors, structs, Options,
                 and Results to create command-line programs; Write and
                 test Rust programs and functions; Read and write files,
                 including stdin, stdout, and stderr; Document and
                 validate command-line arguments; Write programs that
                 fail gracefully; Parse raw and delimited text manually,
                 using regular expressions and Rust crates; Use and
                 control randomness.",
  acknowledgement = ack-nhfb,
  subject =      "Rust (Computer program language); User interfaces
                 (Computer systems); User-Computer Interface; Rust
                 (Langage de programmation); Interfaces utilisateurs
                 (Informatique); Rust (Computer program language); User
                 interfaces (Computer systems)",
}

@Article{Agun:2023:WLR,
  author =       "Hayri Volkan Agun",
  title =        "\pkg{WebCollectives}: a light regular expression based
                 web content extractor in {Java}",
  journal =      j-SOFTWAREX,
  volume =       "24",
  number =       "??",
  pages =        "??--??",
  month =        dec,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1016/j.softx.2023.101569",
  ISSN =         "2352-7110",
  ISSN-L =       "2352-7110",
  bibdate =      "Sat Dec 16 07:45:56 MST 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/softwarex.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S2352711023002650",
  acknowledgement = ack-nhfb,
  articleno =    "101569",
  fjournal =     "SoftwareX",
  journal-URL =  "https://www.sciencedirect.com/journal/softwarex/issues",
}

@Article{Alotaibi:2023:TSB,
  author =       "Fahad M. Alotaibi and Vassilios G. Vassilakis",
  title =        "Toward an {SDN}-Based {Web} Application Firewall:
                 Defending against {SQL} Injection Attacks",
  journal =      j-FUTURE-INTERNET,
  volume =       "15",
  number =       "5",
  pages =        "170",
  day =          "29",
  month =        apr,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.3390/fi15050170",
  ISSN =         "1999-5903",
  bibdate =      "Thu Jun 1 07:41:25 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/future-internet.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.mdpi.com/1999-5903/15/5/170",
  abstract =     "Web attacks pose a significant threat to enterprises,
                 as attackers often target web applications first.
                 Various solutions have been proposed to mitigate and
                 reduce the severity of these threats, such as web
                 application firewalls (WAFs). On the other hand,
                 software-defined networking (SDN) technology has
                 significantly improved network management and operation
                 by providing centralized control for network
                 administrators. In this work, we investigated the
                 possibility of using SDN to implement a firewall
                 capable of detecting and blocking web attacks. As a
                 proof of concept, we designed and implemented a WAF to
                 detect a known web attack, specifically SQL injection.
                 Our design utilized two detection methods: signatures
                 and regular expressions. The experimental results
                 demonstrate that the SDN controller can successfully
                 function as a WAF and detect SQL injection attacks.
                 Furthermore, we implemented and compared ModSecurity, a
                 traditional WAF, with our proposed SDN-based WAF. The
                 results reveal that our system is more efficient in
                 terms of TCP ACK latency, while ModSecurity exhibits a
                 slightly lower overhead on the controller.",
  acknowledgement = ack-nhfb,
  journal-URL =  "https://www.mdpi.com/journal/futureinternet",
}

@Article{Berglund:2023:RER,
  author =       "Martin Berglund and Brink van der Merwe",
  title =        "Re-examining regular expressions with backreferences",
  journal =      j-THEOR-COMP-SCI,
  volume =       "940 (part A)",
  number =       "??",
  pages =        "66--80",
  day =          "9",
  month =        jan,
  year =         "2023",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2022.10.041",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Fri Nov 25 06:44:55 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2020.bib",
  URL =          "https://www.sciencedirect.com/science/article/pii/S0304397522006570",
  acknowledgement = ack-nhfb,
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Bille:2023:SIC,
  author =       "Philip Bille and Inge Li G{\o}rtz and Teresa Anna
                 Steiner",
  title =        "String Indexing with Compressed Patterns",
  journal =      j-TALG,
  volume =       "19",
  number =       "4",
  pages =        "32:1--32:??",
  month =        oct,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3607141",
  ISSN =         "1549-6325 (print), 1549-6333 (electronic)",
  ISSN-L =       "1549-6325",
  bibdate =      "Fri Nov 3 14:37:55 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talg.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3607141",
  abstract =     "Given a string S of length n, the classic string
                 indexing problem is to preprocess S into a compact data
                 structure that supports efficient subsequent pattern
                 queries. In this article, we consider the basic variant
                 where the pattern is given in compressed \ldots{}",
  acknowledgement = ack-nhfb,
  ajournal =     "ACM Trans. Algorithms",
  articleno =    "32",
  fjournal =     "ACM Transactions on Algorithms (TALG)",
  journal-URL =  "https://dl.acm.org/loi/talg",
}

@Article{Conficconi:2023:EED,
  author =       "Davide Conficconi and Emanuele {Del Sozzo} and Filippo
                 Carloni and Alessandro Comodi and Alberto Scolari and
                 Marco Domenico Santambrogio",
  title =        "An Energy-Efficient Domain-Specific Architecture for
                 Regular Expressions",
  journal =      j-IEEE-TRANS-EMERG-TOP-COMPUT,
  volume =       "11",
  number =       "1",
  pages =        "3--17",
  month =        jan # "\slash " # mar,
  year =         "2023",
  DOI =          "https://doi.org/10.1109/TETC.2022.3157948",
  ISSN =         "2168-6750 (print), 2376-4562 (electronic)",
  bibdate =      "Thu Sep 21 14:02:06 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetransemergtopcomput.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Emerging Topics in Computing",
  journal-URL =  "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=6245516",
}

@Article{Cotumaccio:2023:CLO,
  author =       "Nicola Cotumaccio and Giovanna D'Agostino and Alberto
                 Policriti and Nicola Prezza",
  title =        "Co-lexicographically Ordering Automata and Regular
                 Languages --- Part {I}",
  journal =      j-J-ACM,
  volume =       "70",
  number =       "4",
  pages =        "27:1--27:??",
  month =        aug,
  year =         "2023",
  CODEN =        "JACOAH",
  DOI =          "https://doi.org/10.1145/3607471",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Tue Aug 22 06:51:50 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3607471",
  abstract =     "The states of a finite-state automaton N can be
                 identified with collections of words in the prefix
                 closure of the regular language accepted by N. But
                 words can be ordered, and among the many possible
                 orders a very natural one is the co-lexicographic
                 order. Such naturalness stems from the fact that it
                 suggests a transfer of the order from words to the
                 automaton's states. This suggestion is, in fact,
                 concrete and in a number of articles automata admitting
                 a total co-lexicographic (co-lex for brevity) ordering
                 of states have been proposed and studied. Such class of
                 ordered automata --- Wheeler automata --- turned out to
                 require just a constant number of bits per transition
                 to be represented and enable regular expression
                 matching queries in constant time per matched
                 character.\par

                 Unfortunately, not all automata can be totally ordered
                 as previously outlined. In the present work, we lay out
                 a new theory showing that all automata can always be
                 partially ordered, and an intrinsic measure of their
                 complexity can be defined and effectively determined,
                 namely, the minimum width p of one of their admissible
                 co-lex partial orders --- dubbed here the automaton's
                 co-lex width. We first show that this new measure
                 captures at once the complexity of several
                 seemingly-unrelated hard problems on automata. Any NFA
                 of co-lex width p: (i) has an equivalent powerset DFA
                 whose size is exponential in p rather than (as a
                 classic analysis shows) in the NFA's size; (ii) can be
                 encoded using just $ \Theta (\log p) $ bits per
                 transition; (iii) admits a linear-space data structure
                 solving regular expression matching queries in time
                 proportional to p2 per matched character. Some
                 consequences of this new parameterization of automata
                 are that PSPACE-hard problems such as NFA equivalence
                 are FPT in p, and quadratic lower bounds for the
                 regular expression matching problem do not hold for
                 sufficiently small p.\par

                 Having established that the co-lex width of an
                 automaton is a fundamental complexity measure, we
                 proceed by (i) determining its computational complexity
                 and (ii) extending this notion from automata to regular
                 languages by studying their smallest-width accepting
                 NFAs and DFAs. In this work we focus on the
                 deterministic case and prove that a canonical
                 minimum-width DFA accepting a language $ {\cal L} $ ---
                 dubbed the Hasse automaton {$ \cal H $} of $ {\cal L} $
                 --- can be exhibited. {$ \cal H $} provides, in a
                 precise sense, the best possible way to (partially)
                 order the states of any DFA accepting $ {\cal L} $, as
                 long as we want to maintain an operational link with
                 the (co-lexicographic) order of $ {\cal L} $'s
                 prefixes. Finally, we explore the relationship between
                 two conflicting objectives: minimizing the width and
                 minimizing the number of states of a DFA. In this
                 context, we provide an analogue of the Myhill-Nerode
                 Theorem for co-lexicographically ordered regular
                 languages.",
  acknowledgement = ack-nhfb,
  ajournal =     "",
  articleno =    "27",
  fjournal =     "Journal of the ACM",
  journal-URL =  "https://dl.acm.org/loi/jacm",
}

@Article{Devi:2023:PMM,
  author =       "K. Durga Devi and others",
  title =        "Pattern Matching Model for Recognition of Stone
                 Inscription Characters",
  journal =      j-COMP-J,
  volume =       "66",
  number =       "3",
  pages =        "554--564",
  month =        mar,
  year =         "2023",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/bxab177",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Mon Apr 24 08:51:35 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compj2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://academic.oup.com/comjnl/article/66/3/554/6424463",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
}

@Article{Edixhoven:2023:BCR,
  author =       "Luc Edixhoven and Sung-Shik Jongmans",
  title =        "Balanced-by-Construction Regular and $ \omega
                 $-Regular Languages",
  journal =      j-INT-J-FOUND-COMP-SCI,
  volume =       "34",
  number =       "2--3",
  pages =        "117--144",
  month =        feb # "--" # apr,
  year =         "2023",
  DOI =          "https://doi.org/10.1142/S0129054122440026",
  ISSN =         "0129-0541",
  ISSN-L =       "0129-0541",
  bibdate =      "Tue Mar 21 06:31:42 MDT 2023",
  bibsource =    "http://www.worldscientific.com/loi/ijfcs;
                 https://www.math.utah.edu/pub/tex/bib/ijfcs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.worldscientific.com/doi/10.1142/S0129054122440026",
  abstract =     "Paren n is the typical generalization of the Dyck
                 language to multiple types of parentheses. We
                 generalize its notion of balancedness to allow
                 parentheses of different types to freely commute. We
                 show that balanced regular and {\textomega}
                 {\textomega} {\textomega} -regular languages can be
                 characterized by syntactic constraints on regular and
                 {\textomega} {\textomega} {\textomega} -regular
                 expressions and, using the shuffle on trajectories
                 operator, we define grammars for
                 balanced-by-construction expressions with which one can
                 express every balanced regular and {\textomega}
                 {\textomega} {\textomega} -regular language.",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Foundations of Computer
                 Science (IJFCS)",
  journal-URL =  "http://www.worldscientific.com/loi/ijfcs",
  remark =       "Special Issue: International Conference on
                 Developments in Language Theory (DLT) 2021 Guest
                 Editors: Nelma Moreira (University of Porto, Portugal)
                 and Rog{\'e}xrio Reis (University of Porto, Portugal)",
}

@Article{Equi:2023:CSM,
  author =       "Massimo Equi and Veli M{\"a}kinen and Alexandru I.
                 Tomescu and Roberto Grossi",
  title =        "On the Complexity of String Matching for Graphs",
  journal =      j-TALG,
  volume =       "19",
  number =       "3",
  pages =        "21:1--21:??",
  month =        jul,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3588334",
  ISSN =         "1549-6325 (print), 1549-6333 (electronic)",
  ISSN-L =       "1549-6325",
  bibdate =      "Fri Nov 3 14:37:54 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/talg.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3588334",
  abstract =     "Exact string matching in labeled graphs is the problem
                 of searching paths of a graph G=(V, E) such that the
                 concatenation of their node labels is equal to a given
                 pattern string P [1. m ]. This basic problem can be
                 found at the heart of more complex \ldots{}",
  acknowledgement = ack-nhfb,
  ajournal =     "ACM Trans. Algorithms",
  articleno =    "21",
  fjournal =     "ACM Transactions on Algorithms (TALG)",
  journal-URL =  "https://dl.acm.org/loi/talg",
}

@Article{Equi:2023:GCI,
  author =       "Massimo Equi and Veli M{\"a}kinen and Alexandru I.
                 Tomescu",
  title =        "Graphs cannot be indexed in polynomial time for
                 sub-quadratic time string matching, unless {SETH}
                 fails",
  journal =      j-THEOR-COMP-SCI,
  volume =       "975",
  number =       "??",
  pages =        "??--??",
  day =          "9",
  month =        oct,
  year =         "2023",
  CODEN =        "TCSCDI",
  DOI =          "https://doi.org/10.1016/j.tcs.2023.114128",
  ISSN =         "0304-3975 (print), 1879-2294 (electronic)",
  ISSN-L =       "0304-3975",
  bibdate =      "Tue Sep 19 11:57:39 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tcs2020.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0304397523004413",
  acknowledgement = ack-nhfb,
  articleno =    "114128",
  fjournal =     "Theoretical Computer Science",
  journal-URL =  "http://www.sciencedirect.com/science/journal/03043975",
}

@Article{Espindola:2023:SMR,
  author =       "Vinicius Espindola and Luciano Zago and Herv{\'e}
                 Yviquel and Guido Araujo",
  title =        "Source Matching and Rewriting for {MLIR} Using
                 String-Based Automata",
  journal =      j-TACO,
  volume =       "20",
  number =       "2",
  pages =        "22:1--22:??",
  month =        jun,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3571283",
  ISSN =         "1544-3566 (print), 1544-3973 (electronic)",
  ISSN-L =       "1544-3566",
  bibdate =      "Sat Jun 10 08:08:06 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/taco.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3571283",
  abstract =     "A typical compiler flow relies on a uni-directional
                 sequence of translation/optimization steps that lower
                 the program abstract representation, making it hard to
                 preserve higher-level program information across each
                 transformation step. On the other hand, \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "22",
  fjournal =     "ACM Transactions on Architecture and Code Optimization
                 (TACO)",
  journal-URL =  "https://dl.acm.org/loi/taco",
}

@Article{Faro:2023:LCC,
  author =       "Simone Faro and others",
  title =        "On the Longest Common {Cartesian} Substring Problem",
  journal =      j-COMP-J,
  volume =       "66",
  number =       "4",
  pages =        "907--923",
  month =        apr,
  year =         "2023",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/bxab204",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Mon Apr 24 08:51:36 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compj2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://academic.oup.com/comjnl/article/66/4/907/6500728",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
}

@Article{Fuchs:2023:SUG,
  author =       "Per Fuchs and Domagoj Margan and Jana Giceva",
  title =        "{Sortledton}: a Universal Graph Data Structure",
  journal =      j-SIGMOD,
  volume =       "52",
  number =       "1",
  pages =        "17--25",
  month =        mar,
  year =         "2023",
  CODEN =        "SRECD8",
  DOI =          "https://doi.org/10.1145/3604437.3604442",
  ISSN =         "0163-5808 (print), 1943-5835 (electronic)",
  ISSN-L =       "0163-5808",
  bibdate =      "Fri Jun 9 07:02:15 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigmod.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3604437.3604442",
  abstract =     "Despite the wide adoption of graph processing across
                 many different application domains, there is no
                 underlying data structure that can serve a variety of
                 graph workloads (analytics, traversals, and pattern
                 matching) on dynamic graphs with single edge \ldots{}",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGMOD Record (ACM Special Interest Group on
                 Management of Data)",
  journal-URL =  "https://dl.acm.org/loi/sigmod",
}

@Article{Gong:2023:EFM,
  author =       "Lei Gong and Chao Wang and Haojun Xia and Xianglan
                 Chen and Xi Li and Xuehai Zhou",
  title =        "Enabling Fast and Memory-Efficient Acceleration for
                 Pattern Matching Workloads: The {Lightweight Automata
                 Processing Engine}",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "72",
  number =       "4",
  pages =        "1011--1025",
  month =        apr,
  year =         "2023",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/TC.2022.3187338",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Thu Mar 16 07:16:40 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Ibrahim:2023:NFT,
  author =       "Osman Ali Sadek Ibrahim and Belal A. Hamed and Tarek
                 Abd El-Hafeez",
  title =        "A new fast technique for pattern matching in
                 biological sequences",
  journal =      j-J-SUPERCOMPUTING,
  volume =       "79",
  number =       "1",
  pages =        "367--388",
  month =        jan,
  year =         "2023",
  CODEN =        "JOSUED",
  DOI =          "https://doi.org/10.1007/s11227-022-04673-3",
  ISSN =         "0920-8542 (print), 1573-0484 (electronic)",
  ISSN-L =       "0920-8542",
  bibdate =      "Sat Feb 18 09:20:27 MST 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsuper2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://link.springer.com/article/10.1007/s11227-022-04673-3",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Supercomputing",
  fjournal =     "The Journal of Supercomputing",
  journal-URL =  "http://link.springer.com/journal/11227",
}

@Article{Janson:2023:AND,
  author =       "Svante Janson",
  title =        "Asymptotic normality for $ \boldsymbol {m} $
                 -dependent and constrained $ \boldsymbol {U} $
                 -statistics, with applications to pattern matching in
                 random strings and permutations",
  journal =      j-ADV-APPL-PROB,
  volume =       "55",
  number =       "3",
  pages =        "841--894",
  month =        sep,
  year =         "2023",
  CODEN =        "AAPBBD",
  DOI =          "https://doi.org/10.1017/apr.2022.51",
  ISSN =         "0001-8678 (print), 1475-6064 (electronic)",
  ISSN-L =       "0001-8678",
  bibdate =      "Fri Oct 13 10:48:23 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/advapplprob.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.cambridge.org/core/journals/advances-in-applied-probability/article/asymptotic-normality-for-boldsymbolmdependent-and-constrained-boldsymbolustatistics-with-applications-to-pattern-matching-in-random-strings-and-permutations/1CF7F29EE91684C5AD9391696C90B973",
  acknowledgement = ack-nhfb,
  fjournal =     "Advances in Applied Probability",
  journal-URL =  "http://www.jstor.org/journals/00018678.html;
                 https://www.cambridge.org/core/journals/advances-in-applied-probability;
                 http://projecteuclid.org/euclid.aap/",
  onlinedate =   "28 March 2023",
}

@Article{Kar:2023:COO,
  author =       "Binayak Kar and Ying-Dar Lin and Yuan-Cheng Lai",
  title =        "Cost optimization of omnidirectional offloading in
                 two-tier cloud-edge federated systems",
  journal =      j-J-NETW-COMPUT-APPL,
  volume =       "215",
  number =       "??",
  pages =        "??--??",
  month =        jun,
  year =         "2023",
  CODEN =        "JNCAF3",
  DOI =          "https://doi.org/10.1016/j.jnca.2023.103630",
  ISSN =         "1084-8045 (print), 1095-8592 (electronic)",
  ISSN-L =       "1084-8045",
  bibdate =      "Mon May 8 14:28:50 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jnetwcomputappl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S1084804523000498",
  acknowledgement = ack-nhfb,
  articleno =    "103630",
  fjournal =     "Journal of Network and Computer Applications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/10848045",
}

@Article{Kassaie:2023:ACI,
  author =       "Besat Kassaie and Frank Wm. Tompa",
  title =        "Autonomously Computable Information Extraction",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "16",
  number =       "10",
  pages =        "2431--2443",
  month =        jun,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3603581.3603585",
  ISSN =         "2150-8097",
  ISSN-L =       "2150-8097",
  bibdate =      "Wed Aug 9 10:33:02 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  URL =          "https://dl.acm.org/doi/10.14778/3603581.3603585",
  abstract =     "Most optimization techniques deployed in information
                 extraction systems assume that source documents are
                 static. Instead, extracted relations can be considered
                 to be materialized views defined by a language built on
                 regular expressions. Using this \ldots{}",
  acknowledgement = ack-nhfb,
  ajournal =     "Proc. VLDB Endowment",
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "https://dl.acm.org/loi/pvldb",
}

@Article{Kim:2023:OPP,
  author =       "Youngho Kim and Munseong Kang and Joong Chae Na and
                 Jeong Seop Sim",
  title =        "Order-preserving pattern matching with scaling",
  journal =      j-INFO-PROC-LETT,
  volume =       "180",
  number =       "??",
  pages =        "Article 106333",
  month =        feb,
  year =         "2023",
  CODEN =        "IFPLAT",
  DOI =          "https://doi.org/10.1016/j.ipl.2022.106333",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Mon Dec 5 06:49:46 MST 2022",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/infoproc2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0020019022000904",
  acknowledgement = ack-nhfb,
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190",
}

@Article{Kociumaka:2023:PCL,
  author =       "Tomasz Kociumaka and Jakub Radoszewski and Tatiana
                 Starikovskaya",
  title =        "Publisher Correction: Longest Common Substring with
                 Approximately $k$ Mismatches",
  journal =      j-ALGORITHMICA,
  volume =       "85",
  number =       "10",
  pages =        "3323--3323",
  month =        oct,
  year =         "2023",
  CODEN =        "ALGOEJ",
  DOI =          "https://doi.org/10.1007/s00453-023-01119-x",
  ISSN =         "0178-4617 (print), 1432-0541 (electronic)",
  ISSN-L =       "0178-4617",
  bibdate =      "Wed Sep 27 05:51:25 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/algorithmica.bib",
  note =         "See \cite{Kociumaka:2019:LCS}.",
  URL =          "https://link.springer.com/article/10.1007/s00453-023-01119-x",
  acknowledgement = ack-nhfb,
  ajournal =     "Algorithmica",
  fjournal =     "Algorithmica",
  journal-URL =  "http://link.springer.com/journal/453",
}

@Article{LeGlaunec:2023:REM,
  author =       "Alexis {Le Glaunec} and Lingkun Kong and Konstantinos
                 Mamouras",
  title =        "Regular Expression Matching using Bit Vector
                 Automata",
  journal =      j-PACMPL,
  volume =       "7",
  number =       "OOPSLA1",
  pages =        "92:1--92:??",
  month =        apr,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3586044",
  ISSN =         "2475-1421 (electronic)",
  ISSN-L =       "2475-1421",
  bibdate =      "Wed May 17 09:16:15 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3586044",
  abstract =     "Regular expressions (regexes) are ubiquitous in modern
                 software. There is a variety of implementation
                 techniques for regex matching, which can be roughly
                 \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "92",
  fjournal =     "Proceedings of the ACM on Programming Languages
                 (PACMPL)",
  journal-URL =  "https://dl.acm.org/loi/pacmpl",
}

@Article{Li:2023:SSG,
  author =       "Lei Li and Mengjiao Yan and Zhenchao Tao and Huanhuan
                 Chen and Xindong Wu",
  title =        "Semi-Supervised Graph Pattern Matching and Rematching
                 for Expert Community Location",
  journal =      j-TKDD,
  volume =       "17",
  number =       "1",
  pages =        "6:1--6:??",
  month =        jan,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3532623",
  ISSN =         "1556-4681 (print), 1556-472X (electronic)",
  ISSN-L =       "1556-4681",
  bibdate =      "Thu Mar 16 07:36:49 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tkdd.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3532623",
  abstract =     "Graph pattern matching (GPM) is widely used in social
                 network analysis, such as expert finding, social group
                 query, and social position detection. Technically, GPM
                 is to find matched subgraphs that meet the requirements
                 of pattern graphs in big social \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "6",
  fjournal =     "ACM Transactions on Knowledge Discovery from Data
                 (TKDD)",
  journal-URL =  "https://dl.acm.org/loi/tkdd",
}

@Article{Liu:2023:AAP,
  author =       "Hongyuan Liu and Sreepathi Pai and Adwait Jog",
  title =        "Asynchronous Automata Processing on {GPUs}",
  journal =      j-SIGMETRICS,
  volume =       "51",
  number =       "1",
  pages =        "23--24",
  month =        jun,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3606376.3593524",
  ISSN =         "0163-5999 (print), 1557-9484 (electronic)",
  ISSN-L =       "0163-5999",
  bibdate =      "Mon Jul 3 08:05:17 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigmetrics.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3606376.3593524",
  abstract =     "Finite-state automata serve as compute kernels for
                 application domains such as pattern matching and data
                 analytics. Existing approaches on GPUs \ldots{}",
  acknowledgement = ack-nhfb,
  ajournal =     "Perform. Eval. Rev.",
  fjournal =     "ACM SIGMETRICS Performance Evaluation Review",
  journal-URL =  "https://dl.acm.org/loi/sigmetrics",
}

@Article{Martens:2023:RPG,
  author =       "Wim Martens and Matthias Niewerth and Tina Popp and
                 Carlos Rojas and Stijn Vansummeren and Domagoj Vrgoc",
  title =        "Representing Paths in Graph Database Pattern
                 Matching",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "16",
  number =       "7",
  pages =        "1790--1803",
  month =        mar,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3587136.3587151",
  ISSN =         "2150-8097",
  bibdate =      "Tue May 9 09:08:30 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  URL =          "https://dl.acm.org/doi/10.14778/3587136.3587151",
  abstract =     "Modern graph database query languages such as GQL,
                 SQL/PGQ, and their academic predecessor G-Core promote
                 paths to first-class citizens in the sense that their
                 pattern matching facility can return paths, as opposed
                 to only nodes and edges. This is \ldots{}",
  acknowledgement = ack-nhfb,
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "https://dl.acm.org/loi/pvldb",
}

@Article{Medvedev:2023:RTA,
  author =       "Paul Medvedev",
  title =        "Research: Theoretical Analysis of Edit Distance
                 Algorithms",
  journal =      j-CACM,
  volume =       "66",
  number =       "12",
  pages =        "64--71",
  month =        dec,
  year =         "2023",
  CODEN =        "CACMA2",
  DOI =          "https://doi.org/10.1145/3582490",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Tue Nov 21 15:04:34 MST 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cacm2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3582490",
  abstract =     "To what extent have the techniques for theoretical
                 analysis of edit distance algorithms achieved their
                 goals?",
  acknowledgement = ack-nhfb,
  ajournal =     "Commun. ACM",
  fjournal =     "Communications of the ACM",
  journal-URL =  "https://dl.acm.org/loi/cacm",
}

@Article{Moseley:2023:DBN,
  author =       "Dan Moseley and Mario Nishio and Jose Perez Rodriguez
                 and Olli Saarikivi and Stephen Toub and Margus Veanes
                 and Tiki Wan and Eric Xu",
  title =        "Derivative Based Nonbacktracking Real-World Regex
                 Matching with Backtracking Semantics",
  journal =      "Proceedings of the {ACM} on Programming Languages",
  volume =       "7-PLDI",
  pages =        "1026--1049",
  month =        jun,
  year =         "2023",
  DOI =          "https://doi.org/10.1145/3591262",
  bibdate =      "Fri Sep 22 14:27:55 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Article{Parolini:2023:SSA,
  author =       "Francesco Parolini and Antoine Min{\'e}",
  title =        "Sound static analysis of regular expressions for
                 vulnerabilities to denial of service attacks",
  journal =      j-SCI-COMPUT-PROGRAM,
  volume =       "229",
  number =       "??",
  pages =        "??--??",
  month =        jul,
  year =         "2023",
  CODEN =        "SCPGD4",
  DOI =          "https://doi.org/10.1016/j.scico.2023.102960",
  ISSN =         "0167-6423 (print), 1872-7964 (electronic)",
  ISSN-L =       "0167-6423",
  bibdate =      "Fri Jun 9 07:16:16 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/scicomputprogram.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0167642323000424",
  acknowledgement = ack-nhfb,
  articleno =    "102960",
  fjournal =     "Science of Computer Programming",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01676423",
}

@Article{Riveros:2023:RNR,
  author =       "Cristian Riveros and Nicol{\'a}s {Van Sint Jan} and
                 Domagoj Vrgoc",
  title =        "{REmatch}: a Novel Regex Engine for Finding All
                 Matches",
  journal =      j-PROC-VLDB-ENDOWMENT,
  volume =       "16",
  number =       "11",
  pages =        "2792--2804",
  month =        jul,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.14778/3611479.3611488",
  ISSN =         "2150-8097",
  bibdate =      "Fri Aug 25 07:25:43 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldbe.bib",
  URL =          "https://dl.acm.org/doi/10.14778/3611479.3611488",
  abstract =     "In this paper, we present the REmatch system for
                 information extraction. REmatch is based on a recently
                 proposed enumeration algorithm for evaluating regular
                 expressions with capture variables supporting the
                 all-match semantics. It tells a story of what it takes
                 to make a theoretically optimal algorithm work in
                 practice. As we show here, a naive implementation of
                 the original algorithm would have a hard time dealing
                 with realistic workloads. We thus develop a new
                 algorithm and a series of optimizations that make
                 REmatch as fast or faster than many popular RegEx
                 engines while at the same time being able to return all
                 the outputs: a task that most other engines tend to
                 struggle with.",
  acknowledgement = ack-nhfb,
  ajournal =     "",
  fjournal =     "Proceedings of the VLDB Endowment",
  journal-URL =  "https://dl.acm.org/loi/pvldb",
}

@Article{Rudwan:2023:HFS,
  author =       "Mohammed Suleiman Mohammed Rudwan and and Jean Vincent
                 Fonou-Dombeu",
  title =        "Hybridizing Fuzzy String Matching and Machine Learning
                 for Improved Ontology Alignment",
  journal =      j-FUTURE-INTERNET,
  volume =       "15",
  number =       "7",
  pages =        "229--??",
  month =        jul,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.3390/fi15070229",
  ISSN =         "1999-5903",
  bibdate =      "Wed Aug 2 06:19:58 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/future-internet.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://www.mdpi.com/1999-5903/15/7/229",
  acknowledgement = ack-nhfb,
  fjournal =     "Future Internet",
  journal-URL =  "https://www.mdpi.com/journal/futureinternet",
}

@Article{Sadiq:2023:SEC,
  author =       "Muhammad Umair Sadiq and Muhammad Murtaza Yousaf",
  title =        "Space-efficient computation of parallel approximate
                 string matching",
  journal =      j-J-SUPERCOMPUTING,
  volume =       "79",
  number =       "8",
  pages =        "9093--9126",
  month =        may,
  year =         "2023",
  CODEN =        "JOSUED",
  DOI =          "https://doi.org/10.1007/s11227-022-05038-6",
  ISSN =         "0920-8542 (print), 1573-0484 (electronic)",
  ISSN-L =       "0920-8542",
  bibdate =      "Thu Apr 6 06:16:05 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jsuper2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://link.springer.com/article/10.1007/s11227-022-05038-6",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Supercomputing",
  fjournal =     "The Journal of Supercomputing",
  journal-URL =  "http://link.springer.com/journal/11227",
}

@Article{Sun:2023:ERE,
  author =       "Xiuwen Sun and Da Mo and Di Wu and Chunhui Ye and
                 Qingying Yu and Jie Cui and Hong Zhong",
  title =        "Efficient regular expression matching over hybrid
                 dictionary-based compressed data",
  journal =      j-J-NETW-COMPUT-APPL,
  volume =       "215",
  number =       "??",
  pages =        "??--??",
  month =        jun,
  year =         "2023",
  CODEN =        "JNCAF3",
  DOI =          "https://doi.org/10.1016/j.jnca.2023.103635",
  ISSN =         "1084-8045 (print), 1095-8592 (electronic)",
  ISSN-L =       "1084-8045",
  bibdate =      "Mon May 8 14:28:50 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/bitcoin.bib;
                 https://www.math.utah.edu/pub/tex/bib/jnetwcomputappl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S1084804523000541",
  acknowledgement = ack-nhfb,
  articleno =    "103635",
  fjournal =     "Journal of Network and Computer Applications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/10848045",
}

@Article{Tang:2023:TBU,
  author =       "Zhihao Gavin Tang and Xiaowei Wu and Yuhao Zhang",
  title =        "Toward a Better Understanding of Randomized Greedy
                 Matching",
  journal =      j-J-ACM,
  volume =       "70",
  number =       "6",
  pages =        "39:1--39:??",
  month =        dec,
  year =         "2023",
  CODEN =        "JACOAH",
  DOI =          "https://doi.org/10.1145/3614318",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Tue Dec 12 09:32:00 MST 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/jacm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3614318",
  abstract =     "There has been a long history of studying randomized
                 greedy matching algorithms since the work by Dyer and
                 Frieze [ 9 ]. We follow this trend and consider the
                 problem formulated in the oblivious setting, in which
                 the vertex set of a graph is known to the \ldots{}",
  abstract =     "There has been a long history of studying randomized
                 greedy matching algorithms since the work by Dyer and
                 Frieze [9]. We follow this trend and consider the
                 problem formulated in the oblivious setting, in which
                 the vertex set of a graph is known to the algorithm but
                 not the edge set. The algorithm can make queries for
                 the existence of the edge between any pair of vertices
                 but must include the edge into the matching if it
                 exists, i.e., as in the query-commit model by Gamlath
                 et al. [12]. We revisit the Modified Randomized Greedy
                 (MRG) algorithm by Aronson et al. [1] that is proved to
                 achieve a $ (0.5 + \epsilon)$-approximation. In each
                 step of the algorithm, an unmatched vertex is chosen
                 uniformly at random and matched to a randomly chosen
                 neighbor (if exists). We study a weaker version of the
                 algorithm named Random Decision Order (RDO) that, in
                 each step, randomly picks an unmatched vertex and
                 matches it to an arbitrary neighbor (if exists). We
                 prove that the RDO algorithm provides a
                 0.639-approximation for bipartite graphs and
                 0.531-approximation for general graphs. As a corollary,
                 we substantially improve the approximation ratio of
                 MRG.\par

                 Furthermore, we generalize the RDO algorithm to the
                 edge-weighted case and prove that it achieves a
                 0.501-approximation ratio. This result solves the open
                 question by Chan et al. [4] and Gamlath et al. [12]
                 about the existence of an algorithm that beats greedy
                 in edge-weighted general graphs, where the greedy
                 algorithm probes the edges in descending order of
                 edge-weights. We also present a variant of the
                 algorithm that achieves a (1-1/e)-approximation for
                 edge-weighted bipartite graphs, which generalizes the
                 (1-1/e)-approximation ratio of Gamlath et al. [12] for
                 the stochastic setting to the case when the
                 realizations of edges are arbitrarily correlated, where
                 in the stochastic setting, there is a known probability
                 associated with each pair of vertices that indicates
                 the probability that an edge exists between the two
                 vertices, when the pair is probed.",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Assoc. Comput. Mach.",
  articleno =    "39",
  fjournal =     "Journal of the ACM",
  journal-URL =  "https://dl.acm.org/loi/jacm",
}

@Article{Urban:2023:PLD,
  author =       "Christian Urban",
  title =        "{POSIX} Lexing with Derivatives of Regular
                 Expressions",
  journal =      j-J-AUTOM-REASON,
  volume =       "67",
  number =       "3",
  pages =        "??--??",
  month =        sep,
  year =         "2023",
  CODEN =        "JAREEW",
  DOI =          "https://doi.org/10.1007/s10817-023-09667-1",
  ISSN =         "0168-7433 (print), 1573-0670 (electronic)",
  ISSN-L =       "0168-7433",
  bibdate =      "Fri Sep 22 09:22:26 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/jautomreason.bib",
  URL =          "https://link.springer.com/article/10.1007/s10817-023-09667-1",
  acknowledgement = ack-nhfb,
  ajournal =     "J. Autom. Reason.",
  articleno =    "24",
  fjournal =     "Journal of Automated Reasoning",
  journal-URL =  "http://link.springer.com/journal/10817",
}

@Article{Waga:2023:PTP,
  author =       "Masaki Waga and {\'E}tienne Andr{\'e} and Ichiro
                 Hasuo",
  title =        "Parametric Timed Pattern Matching",
  journal =      j-TOSEM,
  volume =       "32",
  number =       "1",
  pages =        "10:1--10:??",
  month =        jan,
  year =         "2023",
  CODEN =        "ATSMER",
  DOI =          "https://doi.org/10.1145/3517194",
  ISSN =         "1049-331X (print), 1557-7392 (electronic)",
  ISSN-L =       "1049-331X",
  bibdate =      "Wed Apr 5 10:29:39 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tosem.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3517194",
  abstract =     "Given a log and a specification, timed pattern
                 matching aims at exhibiting for which start and end
                 dates a specification holds on that log. For example,
                 ``a given action is always followed by another action
                 before a given deadline''. This problem has strong
                 \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "10",
  fjournal =     "ACM Transactions on Software Engineering and
                 Methodology",
  journal-URL =  "https://dl.acm.org/loi/tosem",
}

@Article{Xie:2023:UDC,
  author =       "Jingnan Xie and Harry B. {Hunt III}",
  title =        "On the undecidability and descriptional complexity of
                 synchronized regular expressions",
  journal =      j-ACTA-INFO,
  volume =       "60",
  number =       "3",
  pages =        "257--278",
  month =        sep,
  year =         "2023",
  CODEN =        "AINFA2",
  DOI =          "https://doi.org/10.1007/s00236-023-00439-3",
  ISSN =         "0001-5903 (print), 1432-0525 (electronic)",
  ISSN-L =       "0001-5903",
  bibdate =      "Thu Aug 10 15:21:29 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/actainfo.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://link.springer.com/article/10.1007/s00236-023-00439-3",
  acknowledgement = ack-nhfb,
  ajournal =     "Acta Info",
  fjournal =     "Acta Informatica",
  journal-URL =  "http://link.springer.com/journal/236",
}

@Article{Xu:2023:STC,
  author =       "Qianqian Xu and Junjie Peng and Cangzhi Zheng and
                 Shuhua Tan and Fen Yi and Feng Cheng",
  title =        "Short Text Classification of {Chinese} with Label
                 Information Assisting",
  journal =      j-TALLIP,
  volume =       "22",
  number =       "4",
  pages =        "119:1--119:??",
  month =        apr,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3582301",
  ISSN =         "2375-4699 (print), 2375-4702 (electronic)",
  ISSN-L =       "2375-4699",
  bibdate =      "Thu Jun 1 14:20:55 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/tallip.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3582301",
  abstract =     "As a common language form in oral communication, short
                 text is hard to be used in the applications such as
                 intent understanding, text classification and so on due
                 to its limited content and information, as well as
                 irregular expression and missing \ldots{}",
  acknowledgement = ack-nhfb,
  ajournal =     "ACM Trans. Asian Low-Resour. Lang. Inf. Process.",
  articleno =    "119",
  fjournal =     "ACM Transactions on Asian and Low-Resource Language
                 Information Processing (TALLIP)",
  journal-URL =  "https://dl.acm.org/loi/tallip",
}

@Article{Yuan:2023:LPM,
  author =       "Yongwei Yuan and Scott Guest and Eric Griffis and
                 Hannah Potter and David Moon and Cyrus Omar",
  title =        "Live Pattern Matching with Typed Holes",
  journal =      j-PACMPL,
  volume =       "7",
  number =       "OOPSLA1",
  pages =        "96:1--96:??",
  month =        apr,
  year =         "2023",
  CODEN =        "????",
  DOI =          "https://doi.org/10.1145/3586048",
  ISSN =         "2475-1421 (electronic)",
  ISSN-L =       "2475-1421",
  bibdate =      "Wed May 17 09:16:15 MDT 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pacmpl.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "https://dl.acm.org/doi/10.1145/3586048",
  abstract =     "Several modern programming systems, including GHC
                 Haskell, Agda, Idris, and Hazel, support typed holes.
                 Assigning static and, to varying degree, dynamic
                 \ldots{}",
  acknowledgement = ack-nhfb,
  articleno =    "96",
  fjournal =     "Proceedings of the ACM on Programming Languages
                 (PACMPL)",
  journal-URL =  "https://dl.acm.org/loi/pacmpl",
}

@Article{Zhong:2023:FCA,
  author =       "Jincheng Zhong and Shuhui Chen and Biao Han",
  title =        "{FPGA-CPU} Architecture Accelerated Regular Expression
                 Matching With Fast Preprocessing",
  journal =      j-COMP-J,
  volume =       "66",
  number =       "12",
  pages =        "2928--2947",
  month =        dec,
  year =         "2023",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/bxac138",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Mon Dec 18 10:11:24 MST 2023",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compj2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://academic.oup.com/comjnl/article/66/12/2928/6770084",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
}

@Article{Aouar:2024:DPS,
  author =       "Aissam Aouar and Sa{\"\i}d Yahiaoui and Lamia Sadeg
                 and Nadia Nouali-Taboudjemat and Kadda Beghdad Bey",
  title =        "Distributed Partial Simulation for Graph Pattern
                 Matching",
  journal =      j-COMP-J,
  volume =       "67",
  number =       "1",
  pages =        "110--126",
  month =        jan,
  year =         "2024",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/bxac161",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Wed Jan 24 07:30:42 MST 2024",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/compj2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://academic.oup.com/comjnl/article/67/1/110/6832432",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
}

@Article{Bingol:2024:GGF,
  author =       "Z{\"u}lal Bing{\"o}l and Mohammed Alser and Onur Mutlu
                 and Ozcan Ozturk and Can Alkan",
  title =        "{GateKeeper-GPU}: Fast and Accurate Pre-Alignment
                 Filtering in Short Read Mapping",
  journal =      j-IEEE-TRANS-COMPUT,
  pages =        "1--12",
  year =         "2024",
  CODEN =        "ITCOB4",
  DOI =          "https://doi.org/10.1109/tc.2024.3365931",
  ISSN =         "2326-3814",
  ISSN-L =       "0018-9340",
  bibdate =      "Mon Mar 11 12:01:18 2024",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/ieeetranscomput2020.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
  keywords =     "bioinformatics; computers; filtering; filtering
                 algorithms; genome matching; genomics; GPU
                 acceleration; graphics processing units; logic gates;
                 string searching",
  remark =       "Online on 11 March 2024, but not yet assigned to an
                 issue.",
}

@Misc{Anonymous:20xx:PPC,
  author =       "Anonymous",
  title =        "{PCRE} --- {Perl} Compatible Regular Expressions",
  howpublished = "Unmaintained Web site.",
  year =         "20xx",
  bibdate =      "Wed Sep 09 09:27:54 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.pcre.org/",
  abstract =     "The PCRE library is a set of functions that implement
                 regular expression pattern matching using the same
                 syntax and semantics as Perl 5. PCRE has its own native
                 API, as well as a set of wrapper functions that
                 correspond to the POSIX regular expression API. The
                 PCRE library is free, even for building proprietary
                 software.",
  acknowledgement = ack-nhfb,
}

@Unpublished{Dijkstra:20xx:PMP,
  author =       "Edsger W. Dijkstra",
  title =        "The pattern-matching problem",
  year =         "20xx",
  bibdate =      "Mon Mar 16 08:14:00 2015",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/d/dijkstra-edsger-w.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Circulated privately.",
  URL =          "http://www.cs.utexas.edu/users/EWD/ewd04xx/EWD459.PDF",
  acknowledgement = ack-nhfb,
  filesize =     "636 KB",
  oldlabel =     "EWD:EWD459",
}

%%% ====================================================================
%%% Cross-referenced entries must come last.  Entries are sorted by
%%% year, and then by citation label, with `bibsort --byyear':
@Book{Shannon:1956:AS,
  editor =       "C. E. Shannon and J. McCarthy",
  booktitle =    "Automata Studies",
  title =        "Automata Studies",
  volume =       "AM-34",
  publisher =    pub-PRINCETON,
  address =      pub-PRINCETON:adr,
  pages =        "ix + 285",
  year =         "1956",
  CODEN =        "ANMAAH",
  ISBN =         "0-691-07916-1",
  ISBN-13 =      "978-0-691-07916-5",
  ISSN =         "0066-2313",
  bibdate =      "Mon Jun 06 19:17:03 2005",
  bibsource =    "/u/ma/mlewis/references/heap.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/s/shannon-claude-elwood.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/von-neumann-john.bib;
                 ma/mlewis/art_life/Alife.bib",
  note =         "German translation in \cite{Shannon:1974:STA}.",
  series =       j-ANN-MATH-STUDIES,
  acknowledgement = ack-nhfb,
  attnote =      "The Preface, Table of Contents, and the two papers by
                 Shannon are included in Part B.",
  author-dates = "Claude Elwood Shannon (April 30, 1916--February 24,
                 2001)",
  remark =       "An early collection of papers on automata theory
                 including articles by many of the early pioneers in the
                 application of automata theory to the study of natural
                 systems: Shannon, von Neumann, Ashby, Minsky, Moore,
                 McCarthy, Kleene, and others.",
  xxeditor =     "C. E. Shannon and J. McCarthy and W. Ross Ashby",
  xxpages =      "viii + 285",
}

@Proceedings{ACM:1969:CRA,
  editor =       "{ACM}",
  booktitle =    "{Conference record of ACM Symposium on Theory of
                 Computing; papers presented at the symposium, Marina
                 del Rey, California, May 5, 6, 7, 1969}",
  title =        "{Conference record of ACM Symposium on Theory of
                 Computing; papers presented at the symposium, Marina
                 del Rey, California, May 5, 6, 7, 1969}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "v + 272",
  year =         "1969",
  LCCN =         "QA75.5 .A22 1969",
  bibdate =      "Wed Feb 20 17:55:34 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/stoc1960.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  xxISBN =       "none",
}

@Proceedings{Freiman:1972:IPP,
  editor =       "C. V. Freiman and J. E. Griffith and J. L. Rosenfeld",
  booktitle =    "{Information processing 71: proceedings of IFIP
                 Congress 71, Ljubjana, Yugoslavia, August 23--28,
                 1971}",
  title =        "{Information processing 71: proceedings of IFIP
                 Congress 71, Ljubjana, Yugoslavia, August 23--28,
                 1971}",
  volume =       "1",
  publisher =    pub-NORTH-HOLLAND,
  address =      pub-NORTH-HOLLAND:adr,
  pages =        "xviii + 1621 (2 volumes)",
  year =         "1972",
  ISBN =         "0-7204-2063-6",
  ISBN-13 =      "978-0-7204-2063-0",
  LCCN =         "QA75.5 .I532 1971",
  bibdate =      "Sat Mar 23 09:43:51 2002",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/bibnet/authors/b/bauer-friedrich-ludwig.bib;
                 https://www.math.utah.edu/pub/tex/bib/fortran1.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       "IFIP congress series",
  URL =          "https://dblp.org/db/conf/ifip/ifip71-1.html",
  acknowledgement = ack-nhfb,
  remark =       "Volume 1. Foundations and systems. Volume 2.
                 Applications.",
  subject =      "Electronic data processing; Congresses",
  tableofcontents = "Introduction / H. Zemanek / xvii \\
                 Address of welcome / J. B. Tito / 1 \\
                 \\
                 Inaugural addresses: S. Kav{\v{c}}i{\v{c}} / 2 \\
                 K. Crvenkovski \\
                 A. A. Doronicyn \\
                 V. M. Glushkov \\
                 \\
                 Part 1. Mathematical Foundations of Information
                 Processing \\
                 \\
                 Invited Papers \\
                 R. W. Floyd / Toward interactive design of correct
                 programs / 7 \\
                 D. R. Reddy / Speech recognition: prospects for the
                 seventies / 12 \\
                 D. E. Knuth / Mathematical analysis of algorithms / 19
                 \\
                 A. P. Ershov / Theory of program schemata / 28 \\
                 \\
                 Theoretical Foundations for Computer Science \\
                 T. L. Fine / Stochastic independence and computational
                 complexity / 47 \\
                 V. A. Nepomniaschy / Conditions for the algorithmic
                 completeness of systems of operations / 52 \\
                 C.-P. Schnorr / Optimal G{\"o}del numberings / 56 \\
                 A. C. Fleck / On the combinatorial complexity of
                 context-free grammars / 59 \\
                 R. S. Michalski and Z. Kulpa / A system of programs for
                 the synthesis of switching circuits using the method of
                 disjoint stars / 61 \\
                 A. P. J. Van Der Walt / Random context languages / 66
                 \\
                 D. L. Milgram and A. Rosenfeld / Array automata and
                 array grammars / 69 \\
                 S. A. Cook / Linear time simulation of deterministic
                 two-way pushdown automata / 75 \\
                 J. M. Barzdin / Prognostication of automata and
                 functions / 81 \\
                 \\
                 Graphs, Data Structures, and Symbol Manipulation \\
                 J. Hopcroft and R. Tarjan / Planarity testing in V log
                 V steps: extended abstract / 85 \\
                 J. Nievergelt and C. K. Wong / On binary search trees /
                 91 \\
                 J. Bruno and E. G. Coffman, Jr. / Nearly optimal binary
                 search trees / 99 \\
                 S. E. Hutchins / Data compression in context-free
                 languages / 104 \\
                 J. N. Hanson / Equation solutions by functional
                 analysis algorithms and formula manipulation / 110 \\
                 \\
                 Mathematical Models for Information Processing Systems
                 \\
                 G. Salton / Experiments in automatic thesaurus
                 construction for information retrieval. 115 \\
                 L. Kleinrock, R. R. Muntz and J. Hsu / Tight bounds on
                 the average response time-shared computer systems / 124
                 \\
                 M. Aoki / Decentralized control of large dynamic
                 systems and a new class of associated optimization
                 problems / 134 \\
                 G. G. Iazeolla / Walking strategies for a single-server
                 multiqueue service system / 141 \\
                 \\
                 Mathematical Problems in Pattern Recognition \\
                 S. Watanabe / A unified view of clustering algorithms /
                 149 \\
                 H. C. Andrews / Some unitary transformations in pattern
                 recognition and image processing / 155 \\
                 E. S. Deutsch / Towards isotopic image reduction / 161
                 \\
                 A. Martelli and U. Montanari / Optimal smoothing in
                 picture processing: an application to fingerprints /
                 173 \\
                 \\
                 Artificial Intelligence \\
                 B. G. Buchanan and J. Lederberg / The heuristic DENDRAL
                 program for explaining empirical data / 179 \\
                 R. E. Fikes / Monitored execution of robot plans
                 produced by STRIPS / 189 \\
                 R. E. Kling / Reasoning by analogy as an aid to
                 heuristic theorem proving / 195 \\
                 J. F. Rulifson, R. J. Waldinger and J. Derksen / A
                 language for writing problem-solving programs / 201 \\
                 J. M. Tenenbaum, A. C. Kay, T. Binford, G. Falk, J.
                 Feldman, G. Grape, R. Paul, K. Pingle, I. Sobel and R.
                 Sproull / A laboratory for hand--eye research / 206 \\
                 \\
                 Pattern Recognition Techniques \\
                 V. P. Masnikosa / Extraction of essential descriptors
                 for pattern contours / 211 \\
                 G. M. Miller / Real-time classification of handwritten
                 script words / 218 \\
                 J. Sklansky and P. J. Nahin / A parallel mechanism for
                 recognizing silhouettes / 224 \\
                 \\
                 Program Construction and Verification \\
                 R. L. Constable / Constructive mathematics and
                 automatic program writers / 229 \\
                 J. C. King / A program verifier / 234 \\
                 E. Ashcroft and Z. Manna / The translation of `go to'
                 programs to `while' programs / 250 \\
                 J. Szlachta / On the correctness of accepted input /
                 256 \\
                 \\
                 Closing Session \\
                 H. A. Simon / The theory of problem solving / 261 \\
                 \\
                 Part 2. Computer Software \\
                 \\
                 Invited Papers \\
                 B. Randell / Operating systems: the problems of
                 performance and reliability / 281 \\
                 P. Lucas / Formal definition of programming languages
                 and systems / 291 \\
                 T. E. Cheatham, Jr. / The recent evolution of
                 programming languages / 298 \\
                 \\
                 Program Performance \\
                 V. G. Cerf and G. Estrin / Measurement of recursive
                 programs / 314 \\
                 P. Deutsch and C. A. Grant / A flexible measurement
                 tool for software systems / 320 \\
                 B. A. Wichman / The performance of some Algol systems /
                 327 \\
                 \\
                 Program System Design \\
                 Yu. V. Kapitonova and A. A. Letichevskii / Design
                 problems of software special systems / 335 \\
                 D. L. Parnas / Information distribution aspects of
                 design methodology / 339 \\
                 C. B{\'e}tourn{\'e}, J. Ferrie, C. Kaiser, S. Krakowiak
                 and J. Mossiere / System design and implementation
                 using parallel processes / 345 \\
                 F. Akiyama / An example of software system debugging /
                 353 \\
                 \\
                 Programming Languages and Systems \\
                 I. F. Currie, S. G. Bond and J. D. Morison / Algol
                 68-R, its implementation and use / 360 \\
                 F. Mizzi and P. Toussaint / Physictran: A programming
                 language for physicists, economists and engineers
                 extending the possibilities of Fortran V in automatic
                 solving / 364 \\
                 J. Reinfelds / AMTRAN 70 / 370 \\
                 T. C. Spillman / Exposing side-effects in a PL/I
                 optimizing compiler / 376 \\
                 R. D. Jenks / ``META/PLUS'' --- the syntax extension
                 facility for ``SCRATCHPAD'' / 382 \\
                 \\
                 Program Optimization \\
                 F. E. Allen / A basis for program optimization / 385
                 \\
                 M. Hopkins / An optimizing compiler design / 391 \\
                 P. Bachmann / A contribution to the problem of the
                 optimization of programs / 397 \\
                 \\
                 Aspects of Programming \\
                 M. Woodger / On semantic levels in programming / 402
                 \\
                 W. A. Wulf / Programming without the goto / 408 \\
                 A. Ballard and D. Tsichritzis / Transformations of
                 programs / 414 \\
                 W. M. Gentleman / A portable coroutine system / 419 \\
                 \\
                 Interactive Systems \\
                 L. W. Wolf and L. J. Julyk / Generalized interactive
                 symbolic manipulations / 425 \\
                 L. Mezei and A. R. Zivian / ARTA, an interactive
                 animation system / 429 \\
                 R. D. H. Wycherley / An interaction-handling technique
                 for satellite graphics / 435 \\
                 0. Lecarme / A system for interactive graphic
                 programming / 440 \\
                 1. Casazza, G. Dell'Aquila, 0. Murro, G. Prezioso, M.
                 Refice and P. Russo / A new interactive graphic package
                 / 445 \\
                 \\
                 Data Handling \\
                 B. T. Bennett and W. D. Frazer / Approximating optimal
                 direct-access merge performance / 450 \\
                 W. H. Burge / An analysis of the compromise merge
                 sorting techniques / 454 \\
                 A. Reiter, A. Clute and J. M. Tenenbaum /
                 Representation and execution of searches over large
                 tree-structured data bases / 460 \\
                 P. L. Long, K. B. L. Rastogi, J. E. Rush and J. A.
                 Wyckoff / Large on-line files of bibliographic data: An
                 efficient design and a mathematical predictor of
                 retrieval behavior / 473 \\
                 \\
                 Operating Systems \\
                 P. B. Hansen / An analysis of response ratio scheduling
                 / 479 \\
                 W. F. King, III / Analysis of demand paging algorithms
                 / 485 \\
                 J. E. Pomeranz / Paging with fewest expected
                 replacements / 491 \\
                 J. Olszewski / On a structure of operating systems
                 schedulers / 494 \\
                 P. G. Hebalkar / A graph model for analysis of deadlock
                 prevention in systems with parallel computations / 498
                 \\
                 \\
                 Formal Language Manipulation \\
                 S. Backes / Top-down syntax analysis and Floyd--Evans
                 production language / 504 \\
                 G. Chroust / Scope conserving expression evaluation /
                 509 \\
                 W. R. Lalonde, E. S. Lee and J. J. Horning / An LALR(k)
                 parser generator / 513 \\
                 J. J. Horning / A procedure for grammatical inference /
                 519 \\
                 S. Crespi Reghizzi / An effective model for grammar
                 interference / 524 \\
                 \\
                 Closing Session \\
                 F. L. Bauer / Software engineering / 530 \\
                 \\
                 Part 3. Computer Hardware and Systems \\
                 \\
                 Invited Papers \\
                 D. J. Wheeler / The limits of the complexity of
                 computer systems / 541 \\
                 E. E. Newhall and A. N. Venetsanopoulos / Computer
                 communication --- representative systems / 545 \\
                 E. Shapiro / Technologies for storage hierarchies / 553
                 \\
                 \\
                 Multiprocessing \\
                 M. A. Kartev / On the structure of multiprocessor
                 systems / 559 \\
                 M. J. Flynn / Shared internal resources in
                 multiprocessor / 565 \\
                 M. M. Lehman and G. Waldbaum / An analytical model for
                 upper bounds on the performance of event-driven,
                 hierarchical computer systems / 570 \\
                 \\
                 Applications of Microprogramming \\
                 P. S. Roberts and C. S. Wallace / A microprogrammed
                 lexical processor / 577 \\
                 Z. L. Rabinowitch / Development of computer languages
                 and interpretive systems / 582 \\
                 J. Suchard and G. Bossuet / Modular microprogrammed
                 logical units (ULM) / 586 \\
                 F. Mavaddat / Using stacks to detect expression
                 parallelism / 591 \\
                 \\
                 Hardware Systems Design \\
                 R. S. Wilkov / Reliability considerations in computer
                 network design / 597 \\
                 R. Schubert / Structure of highly reliable system / 603
                 \\
                 J. F. Huber / High-performance program request control
                 / 608 \\
                 \\
                 Communications \\
                 W. W. Chu / Optimal fixed message block size for
                 computer communications / 614 \\
                 D. W. Davies / Packet switching in a public data
                 network / 622 \\
                 T. H. Beeforth, R. L. Grimsdale, F. Halsall and D. J.
                 Woollons / Aspects of a proposed data communication
                 system / 628 \\
                 A. L. Dudick, E. Fuchs and P. E. Jackson / Data traffic
                 measurements for inquiry--response computer
                 communication systems / 634 \\
                 C. S. Duke and M. J. Mcintyre / A new approach to data
                 communications in the B6700 / 642 \\
                 \\
                 Hybrid and Analog Computation \\
                 S. P. Bingulac and M. R. Stojic / Iterative
                 calculations via the block-oriented simulation
                 languages / 648 \\
                 K. G. Beauchamp, C. J. Kelley, P. G. Thomasson and M.
                 E. Williamson / Development of a hybrid system for
                 university research / 655 \\
                 A. A. Kamal and A. K. El-Sherif / Analysis and
                 compensation of high-speed electronic analog computer
                 errors / 662 \\
                 R. M. Howe, R. B. Hollstien and R. A. Moran /
                 Hardware/software considerations in the AD/Four
                 electronic patched hybrid computer / 668 \\
                 C. C. Wheeler and R. L. Grimsdale / A
                 program-controlled two-dimensional impedance network /
                 675 \\
                 \\
                 Voice, Filters, and Codes \\
                 J. D. Bagley / A voice input facility for digital
                 computers / 680 \\
                 T. Sakai, K. Ohtani and S. Tomita / On-line, real-time
                 multiple-speech output system / 686 \\
                 H. T. Nagle, Jr. and C. C. Carroll / Memory sizing for
                 digital filters / 691 \\
                 A. A. Davydov and G. M. Tenengol'ts / On a class of
                 codes correcting errors in information exchanged
                 between computers / 697 \\
                 \\
                 Computer Architecture \\
                 R. P. Wishner, H. R. Downs and J. Shechter / Real-time
                 computer techniques for parallel processors / 704 \\
                 J. L. Parker / A logic-per-track retrieval system / 711
                 \\
                 G. L. M. Noguez and D. M. J. Peccoud / An array
                 processor design for APL-like data structure / 717 \\
                 J. N. Potvin, P. Chenevert, K. C. Smith and P. Boulton
                 / Star-Ring: a computer intercommunication and I/O
                 system / 721 \\
                 P. D. Jones, N. R. Lincoln and J. E. Thornton / Whither
                 computer architecture? / 729 \\
                 \\
                 Graphics and Displays \\
                 P. J. Pobgee and J. R. Parks / Applications of a low
                 cost graphical input tablet / 737 \\
                 \\
                 P. Salminger / Experimental display with input by light
                 gate field selection / 742 \\
                 B. Bussell and H. M. Taxin / Visual resolution
                 processing for interactive graphics / 748 \\
                 H. C. A. Hankins and G. Hughes / The impact of dark
                 trace displays on computer graphics / 752 \\
                 J. J. Batter and F. P. Brooks, Jr. / GROPE-1: a
                 computer display to the sense of feel / 759 \\
                 \\
                 Closing Session \\
                 I. L. Auerbach, Technological forecast 1971",
}

@Proceedings{ACM:1974:CRS,
  editor =       "{ACM}",
  booktitle =    "{Conference record of sixth annual ACM Symposium on
                 Theory of Computing: papers presented at the symposium,
                 Seattle, Washington, April 30--May 2, 1974}",
  title =        "{Conference record of sixth annual ACM Symposium on
                 Theory of Computing: papers presented at the symposium,
                 Seattle, Washington, April 30--May 2, 1974}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "iv + 347",
  year =         "1974",
  LCCN =         "QA76.6 .A13 1974",
  bibdate =      "Thu Dec 3 07:11:18 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/stoc1970.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  keywords =     "computational complexity --- congresses; electronic
                 digital computers --- programming --- congresses",
  xxISBN =       "none",
}

@Book{Shannon:1974:STA,
  editor =       "C. E. Shannon and J. McCarthy",
  booktitle =    "{Studien zur Theorie der Automaten}. ({German})
                 Automata Studies",
  title =        "{Studien zur Theorie der Automaten}. ({German})
                 Automata Studies",
  publisher =    "Rogner \& Bernhard",
  address =      "Munich, West Germany",
  pages =        "xxxiii + 452",
  year =         "1974",
  ISBN =         "3-8077-0001-3, 0-398-03003-0",
  ISBN-13 =      "978-3-8077-0001-4, 978-0-398-03003-2",
  LCCN =         "????",
  bibdate =      "Sat Nov 20 13:17:03 2010",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/s/shannon-claude-elwood.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Edited by Franz Kaltenbeck and Peter Weibel with notes
                 by Dieter Roth.",
  acknowledgement = ack-nhfb,
  language =     "German",
}

@Proceedings{ACM:1976:CRE,
  editor =       "ACM",
  booktitle =    "{Conference record of the eighth annual ACM Symposium
                 on Theory of Computing: papers presented at the
                 Symposium, Hershey, Pennsylvania, May 3--5, 1976}",
  title =        "{Conference record of the eighth annual ACM Symposium
                 on Theory of Computing: papers presented at the
                 Symposium, Hershey, Pennsylvania, May 3--5, 1976}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "iv + 246",
  year =         "1976",
  LCCN =         "QA 76.6 A12 1976",
  bibdate =      "Thu Dec 3 07:11:18 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  keywords =     "computational complexity --- congresses; electronic
                 digital computers --- programming --- congresses",
  xxISBN =       "none",
}

@Proceedings{Winkowski:1978:MFC,
  editor =       "Jozef Winkowski",
  booktitle =    "{Mathematical foundations of computer science, 1978:
                 proceedings, 7th Symposium, Zakopane, Poland, September
                 4--8, 1978}",
  title =        "{Mathematical foundations of computer science, 1978:
                 proceedings, 7th Symposium, Zakopane, Poland, September
                 4--8, 1978}",
  volume =       "64",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "ix + 551",
  year =         "1978",
  CODEN =        "LNCSD9",
  ISBN =         "0-387-08917-9",
  ISBN-13 =      "978-0-387-08917-1",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA76.6 .S9194 1978",
  bibdate =      "Fri Apr 12 07:20:51 1996",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/s/slissenko-anatol.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  acknowledgement = ack-nhfb,
  keywords =     "database management --- congresses; electronic digital
                 computers --- programming --- congresses; parallel
                 processing (electronic computers) --- congresses;
                 programming languages (electronic computers) ---
                 congresses",
}

@Proceedings{Ng:1979:SAC,
  editor =       "Edward W. Ng",
  booktitle =    "{Symbolic and Algebraic Computation: EUROSAM '79, an
                 International Symposium on Symbolic and Algebraic
                 Manipulation, Marseille, France, June 1979}",
  title =        "{Symbolic and Algebraic Computation: EUROSAM '79, an
                 International Symposium on Symbolic and Algebraic
                 Manipulation, Marseille, France, June 1979}",
  volume =       "72",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "xiv + 557",
  year =         "1979",
  ISBN =         "0-387-09519-5",
  ISBN-13 =      "978-0-387-09519-6",
  LCCN =         "QA155.7.E4 I57 1979",
  bibdate =      "Sun Jul 17 10:02:58 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  acknowledgement = ack-nhfb,
}

@Proceedings{ACM:1981:CPT,
  editor =       "ACM",
  booktitle =    "{Conference proceedings of the Thirteenth Annual ACM
                 Symposium on Theory of Computing: papers presented at
                 the Symposium, Milwaukee, Wisconsin, May 11--13,
                 1981}",
  title =        "{Conference proceedings of the Thirteenth Annual ACM
                 Symposium on Theory of Computing: papers presented at
                 the Symposium, Milwaukee, Wisconsin, May 11--13,
                 1981}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "v + 391",
  year =         "1981",
  ISBN =         "0-89791-041-9 (paperback)",
  ISBN-13 =      "978-0-89791-041-5 (paperback)",
  LCCN =         "????",
  bibdate =      "Thu Dec 03 08:30:27 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order no. 508810. Also published in {\em Journal
                 of computer and system sciences}, vol. 26, no. 3.",
  acknowledgement = ack-nhfb,
  keywords =     "Computational complexity --- Congresses.; Electronic
                 digital computers --- Programming --- Congresses.;
                 Machine theory --- Congresses.",
}

@Proceedings{ACM:1983:PSA,
  key =          "ACM-PODS'83",
  booktitle =    "{Proceedings of the Second ACM SIGACT-SIGMOD Symposium
                 on Principles of Database Systems: 21--23 March 1983,
                 Colony Square Hotel, Atlanta, Georgia}",
  title =        "{Proceedings of the Second ACM SIGACT-SIGMOD Symposium
                 on Principles of Database Systems: 21--23 March 1983,
                 Colony Square Hotel, Atlanta, Georgia}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "vii + 413",
  year =         "1983",
  ISBN =         "0-89791-097-4",
  ISBN-13 =      "978-0-89791-097-2",
  LCCN =         "QA76.9.D3 A15 1983",
  bibdate =      "Sat Sep 17 10:24:05 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  price =        "US\$25.00",
  acknowledgement = ack-nhfb,
}

@Proceedings{ACM:1984:PSA,
  editor =       "{ACM}",
  booktitle =    "{Proceedings of the sixteenth annual ACM Symposium on
                 Theory of Computing, Washington, DC, April 30--May 2,
                 1984}",
  title =        "{Proceedings of the sixteenth annual ACM Symposium on
                 Theory of Computing, Washington, DC, April 30--May 2,
                 1984}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "vi + 547",
  year =         "1984",
  ISBN =         "0-89791-133-4",
  ISBN-13 =      "978-0-89791-133-7",
  LCCN =         "QA 76.6 A13 1984",
  bibdate =      "Thu Dec 3 07:11:18 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order no. 508840.",
  acknowledgement = ack-nhfb,
  keywords =     "computational complexity --- congresses",
}

@Proceedings{Hwang:1985:PSC,
  editor =       "Kai Hwang",
  booktitle =    "{Proceedings: 7th Symposium on Computer Arithmetic,
                 June 4--6, 1985, University of Illinois, Urbana,
                 Illinois}",
  title =        "{Proceedings: 7th Symposium on Computer Arithmetic,
                 June 4--6, 1985, University of Illinois, Urbana,
                 Illinois}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xi + 343",
  year =         "1985",
  ISBN =         "0-8186-0632-0 (paperback), 0-8186-8632-4 (hard),
                 0-8186-4632-2 (microfiche)",
  ISBN-13 =      "978-0-8186-0632-8 (paperback), 978-0-8186-8632-0
                 (hard), 978-0-8186-4632-4 (microfiche)",
  LCCN =         "QA76.9.C62 S95 1985",
  bibdate =      "Thu Sep 08 00:11:41 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fparith.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE catalog number 85CH2146-9. IEEE Computer Society
                 order number 632.",
  acknowledgement = ack-nj,
  keywords =     "ARITH-7",
}

@Proceedings{ACM:1986:PEA,
  editor =       "{ACM}",
  booktitle =    "{Proceedings of the Eighteenth annual ACM Symposium on
                 Theory of Computing, Berkeley, California, May 28--30,
                 1986}",
  title =        "{Proceedings of the Eighteenth annual ACM Symposium on
                 Theory of Computing, Berkeley, California, May 28--30,
                 1986}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "v + 461",
  year =         "1986",
  ISBN =         "0-89791-193-8",
  ISBN-13 =      "978-0-89791-193-1",
  LCCN =         "QA 76.6 A13 1986",
  bibdate =      "Thu Dec 3 07:11:18 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order no. 508860.",
  acknowledgement = ack-nhfb,
  keywords =     "computational complexity --- congresses; programming
                 (electronic computers) --- congresses",
}

@Proceedings{Char:1986:PSS,
  editor =       "Bruce W. Char",
  booktitle =    "{Proceedings of the 1986 Symposium on Symbolic and
                 Algebraic Computation: Symsac '86, July 21--23, 1986,
                 Waterloo, Ontario}",
  title =        "{Proceedings of the 1986 Symposium on Symbolic and
                 Algebraic Computation: Symsac '86, July 21--23, 1986,
                 Waterloo, Ontario}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "254",
  year =         "1986",
  ISBN =         "0-89791-199-7 (paperback)",
  ISBN-13 =      "978-0-89791-199-3 (paperback)",
  LCCN =         "QA155.7.E4 A281 1986",
  bibdate =      "Thu Mar 12 07:35:00 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/issac.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order no. 505860.",
  acknowledgement = ack-nhfb,
  keywords =     "Algebra --- Data processing --- Congresses;
                 Programming languages (Electronic computers) ---
                 Congresses",
}

@Proceedings{IEEE:1986:PCI,
  key =          "CVPR 1986",
  booktitle =    "{Proceedings, CVPR '86 (IEEE Computer Society
                 Conference on Computer Vision and Pattern Recognition,
                 Miami Beach, FL, June 22--26, 1986)}",
  title =        "{Proceedings, CVPR '86 (IEEE Computer Society
                 Conference on Computer Vision and Pattern Recognition,
                 Miami Beach, FL, June 22--26, 1986)}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  year =         "1986",
  ISBN =         "0-8186-0721-1",
  ISBN-13 =      "978-0-8186-0721-9",
  LCCN =         "TA1632 .I36 1986",
  bibdate =      "Tue May 12 10:19:52 1998",
  bibsource =    "Compendex database;
                 Graphics/rosenfeld/Proceedings.bib;
                 https://www.math.utah.edu/pub/tex/bib/font.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       "IEEE Publ. 86CH2290-5",
}

@Proceedings{ACM:1987:PFA,
  editor =       "{ACM}",
  booktitle =    "{POPL '87. Fourteenth Annual ACM SIGACT-SIGPLAN
                 Symposium on Principles of programming languages,
                 January 21--23, 1987, Munich, W. Germany}",
  title =        "{POPL '87. Fourteenth Annual ACM SIGACT-SIGPLAN
                 Symposium on Principles of programming languages,
                 January 21--23, 1987, Munich, W. Germany}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "????",
  year =         "1987",
  ISBN =         "????",
  ISBN-13 =      "????",
  LCCN =         "????",
  bibdate =      "Mon May 03 18:30:31 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/contents/proceedings/plan/41625/index.html",
  acknowledgement = ack-nhfb,
}

@Proceedings{Anonymous:1987:ESC,
  editor =       "Anonymous",
  booktitle =    "{EUUG Spring '87 Conference Proceedings}",
  title =        "{EUUG Spring '87 Conference Proceedings}",
  publisher =    pub-EUROPEN,
  address =      pub-EUROPEN:adr,
  pages =        "????",
  year =         "1987",
  bibdate =      "Sun Apr 13 12:27:34 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/minix.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The following topics were dealt with: Unix; Vorlich;
                 structural regular expressions; event queue;
                 manufacturing; entertainment; distributed processing;
                 real-time systems; MINIX; telephone switch; banking;
                 selective calling system; marketing; commercial
                 computing; standards for Intel-based microcomputers;
                 C++; MuX; intelligent information server; SVID
                 compatible system; and Apple Macintosh integration",
  acknowledgement = ack-nhfb,
  classcodes =   "C6115 (Programming support); C6150J (Operating
                 systems)",
  conflocation = "M/S Mariella sailing between Helsinki, Finland and
                 Stockholm, Sweden; 12-14 May 1987",
  countrypub =   "UK",
  keywords =     "administrative data processing; Apple; banking; C++;
                 calling system; commercial computing; distributed
                 processing; entertainment; event queue; Intel;
                 intelligent information server; Macintosh;
                 manufacturing; marketing; MINIX; MuX; operating
                 systems; operating systems (computers); programming
                 environments; real-; real-time systems; selective;
                 standards; structural regular expressions; SVID;
                 telephone switch; time systems; Unix; UNIX; Vorlich",
}

@Proceedings{Dayal:1987:PAC,
  editor =       "Umeshwar Dayal and Irv Traiger",
  booktitle =    "{Proceedings of Association for Computing Machinery
                 Special Interest Group on Management of Data 1987
                 annual conference, San Francisco, May 27--29, 1987}",
  title =        "{Proceedings of Association for Computing Machinery
                 Special Interest Group on Management of Data 1987
                 annual conference, San Francisco, May 27--29, 1987}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "xii + 509",
  year =         "1987",
  ISBN =         "0-89791-236-5",
  ISBN-13 =      "978-0-89791-236-5",
  LCCN =         "QA 76.9 D3 P76 1987",
  bibdate =      "Wed Oct 25 08:47:39 MDT 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order number 472870.",
  acknowledgement = ack-nhfb,
  keywords =     "SIGMOD '87",
}

@Proceedings{Hoffman:1987:MC,
  editor =       "Alan J. Hoffman and Willard L. Miranker",
  booktitle =    "Mathematics and Computing",
  title =        "Mathematics and Computing",
  volume =       "31(2)",
  publisher =    pub-IBM,
  address =      pub-IBM:adr,
  pages =        "150--260",
  month =        mar,
  year =         "1987",
  CODEN =        "IBMJAE",
  ISSN =         "0018-8646 (print), 2151-8556 (electronic)",
  ISSN-L =       "0018-8646",
  bibdate =      "Tue Nov 10 07:52:44 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/tex/bib/ibmjrd.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       j-IBM-JRD,
  abstract =     "This issue contains 14 papers presented at the
                 conference. It describes results in differential
                 equations and statistics, in mathematical programming
                 and numerical analysis, in approximation theory and
                 theoretical computer science, in symbolic dynamics and
                 computing the Fourier Transform. It describes results
                 in mathematics and the application of mathematics to
                 other areas. In short, it is a snapshot of the
                 scientific life of the department. All papers are
                 separately indexed and abstracted.",
  acknowledgement = ack-nhfb,
  classification = "721; 723; 912; 921",
  conference =   "Mathematics and Computing. Symposium Celebrating the
                 25th Anniversary of the Formation of the Mathematical
                 Sciences Department of the IBM Thomas J. Watson
                 Research Center.",
  journalabr =   "IBM Journal of Research and Development",
  keywords =     "applied mathematics; computer aided analysis; computer
                 aided engineering; computer metatheory --- Boolean
                 Algebra; crystallography; industrial engineering; logic
                 functions; mathematical techniques --- Applications;
                 pattern-matching; science",
  meetingaddress = "Yorktown Heights, NY, USA",
  sponsor =      "IBM, Thomas J. Watson Research Cent, Yorktown Heights,
                 NY, USA",
}

@Proceedings{IEEE:1988:PSN,
  editor =       "{IEEE}",
  booktitle =    "{Proceedings, Supercomputing '88: November 14--18,
                 1988, Orlando, Florida}",
  title =        "{Proceedings, Supercomputing '88: November 14--18,
                 1988, Orlando, Florida}",
  volume =       "1",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xii + 458",
  year =         "1988",
  ISBN =         "0-8186-0882-X (v. 1; paper), 0-8186-8882-3 (v. 1;
                 case), 0-8186-4882-1 (v. 1: microfiche) 0-8186-8923-4
                 (v. 2), 0-8186-5923-X (v. 2: microfiche), 0-8186-8923-4
                 (v. 2: case)",
  ISBN-13 =      "978-0-8186-0882-7 (v. 1; paper), 978-0-8186-8882-9 (v.
                 1; case), 978-0-8186-4882-3 (v. 1: microfiche)
                 978-0-8186-8923-9 (v. 2), 978-0-8186-5923-2 (v. 2:
                 microfiche), 978-0-8186-8923-9 (v. 2: case)",
  LCCN =         "QA76.5 .S894 1988",
  bibdate =      "Fri Aug 23 13:34:23 1996",
  bibsource =    "ftp://ftp.math.utah.edu/pub/bibnet/authors/d/dongarra-jack-j.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/supercomputing88.bib",
  note =         "Two volumes. Available from IEEE Service Center
                 (Catalog number 88CH2617-9), Piscataway, NJ, USA.",
  acknowledgement = ack-nhfb,
  classification = "C5220 (Computer architecture); C5440 (Multiprocessor
                 systems and techniques); C5470 (Performance evaluation
                 and testing); C5540 (Terminals and graphic displays);
                 C6150C (Compilers, interpreters and other processors);
                 C6150J (Operating systems)",
  keywords =     "algorithms; architecture; benchmarking; compiler
                 evaluation; compiler technology; computer graphic
                 equipment; data-flow systems; Horizon superconducting
                 system; mass storage systems; operating systems;
                 operating systems (computers); parallel algorithms;
                 parallel architectures; parallel machines; performance
                 evaluation; program compilers; program development;
                 supercomputer performance; supercomputing center
                 management; visualization",
}

@Proceedings{ACM:1989:SAA,
  editor =       "{ACM}",
  booktitle =    "{Seventeenth annual ACM Computer Science Conference,
                 February 21--23, 1989, Commonwealth Convention Center,
                 Louisville, Kentucky}",
  title =        "{Seventeenth annual ACM Computer Science Conference,
                 February 21--23, 1989, Commonwealth Convention Center,
                 Louisville, Kentucky}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "xix + 491",
  year =         "1989",
  ISBN =         "0-89791-299-3",
  ISBN-13 =      "978-0-89791-299-0",
  LCCN =         "QA75.5 .A1371 1989",
  bibdate =      "Wed Jan 15 14:26:56 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/spell.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Proceedings{IEEE:1989:ASF,
  editor =       "{IEEE}",
  booktitle =    "{30th annual Symposium on Foundations of Computer
                 Science, October 30--November 1, 1989, Research
                 Triangle Park, North Carolina}",
  title =        "{30th annual Symposium on Foundations of Computer
                 Science, October 30--November 1, 1989, Research
                 Triangle Park, North Carolina}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xvii + 632",
  year =         "1989",
  CODEN =        "ASFPDV",
  ISBN =         "0-8186-1982-1 (casebound), 0-8186-5982-3
                 (microfiche)",
  ISBN-13 =      "978-0-8186-1982-3 (casebound), 978-0-8186-5982-9
                 (microfiche)",
  ISSN =         "0272-5428",
  LCCN =         "QA 76 S979 1989; TK7885.A1 S92 1989",
  bibdate =      "Thu Dec 3 07:11:18 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/focs1980.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Formerly called the Annual Symposium on Switching and
                 Automata Theory. IEEE catalog no. 89CH2808-4. Computer
                 Society order no. 1982.",
  acknowledgement = ack-nhfb,
  keywords =     "computational complexity --- congresses; electronic
                 data processing --- congresses; machine theory ---
                 congresses",
}

@Proceedings{ACM:1990:PPN,
  editor =       "{ACM}",
  booktitle =    "{PODS '90. Proceedings of the Ninth ACM
                 SIGACT-SIGMOD-SIGART Symposium on Principles of
                 Database Systems: April 2--4, 1990, Nashville,
                 Tennessee}",
  title =        "{PODS '90. Proceedings of the Ninth ACM
                 SIGACT-SIGMOD-SIGART Symposium on Principles of
                 Database Systems: April 2--4, 1990, Nashville,
                 Tennessee}",
  volume =       "51(1)",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "vii + 425",
  year =         "1990",
  ISBN =         "0-89791-352-3",
  ISBN-13 =      "978-0-89791-352-2",
  ISSN =         "0022-0000 (print), 1090-2724 (electronic)",
  LCCN =         "QA 76.9 D3 A26 1990",
  bibdate =      "Fri Mar 13 17:19:13 1998",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "A few papers from this conference were republished in
                 1995 in the Journal of Computer and Systems Sciences.",
  series =       "Journal of Computer and Systems Sciences",
  acknowledgement = ack-nhfb,
  annote =       "36 papers; See also 6836.1508 1990 9th for papers",
  keywords =     "PODS '90",
  source =       "Principles of database systems",
  sponsor =      "Association for Computing Machinery. Special Interest
                 Group for Automata and Computability Theory Association
                 for Computing Machinery. Special Interest Group for the
                 Management of Data Association for Computing Machinery.
                 Special Interest Group for Artificial Intelligence.",
}

@Proceedings{ACM:1990:PTS,
  editor =       "{ACM}",
  booktitle =    "{Proceedings of the twenty-second annual ACM Symposium
                 on Theory of Computing, Baltimore, Maryland, May
                 14--16, 1990}",
  title =        "{Proceedings of the twenty-second annual ACM Symposium
                 on Theory of Computing, Baltimore, Maryland, May
                 14--16, 1990}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "viii + 574",
  year =         "1990",
  ISBN =         "0-89791-361-2",
  ISBN-13 =      "978-0-89791-361-4",
  LCCN =         "QA76.A15 1990",
  bibdate =      "Thu Dec 3 07:11:18 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/stoc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order no. 508900.",
  acknowledgement = ack-nhfb,
  keywords =     "computational complexity --- congresses",
}

@Book{Feijen:1990:BOB,
  editor =       "W. H. J. Feijen and A. J. M. van Gasteren and D. Gries
                 and J. Misra",
  booktitle =    "Beauty is our business: a birthday salute to {Edsger
                 W. Dijkstra}",
  title =        "Beauty is our business: a birthday salute to {Edsger
                 W. Dijkstra}",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "xix + 453",
  year =         "1990",
  DOI =          "https://doi.org/10.1007/978-1-4612-4476-9",
  ISBN =         "0-387-97299-4, 1-4612-8792-8 (print), 1-4612-4476-5
                 (online)",
  ISBN-13 =      "978-0-387-97299-2, 978-1-4612-8792-6 (print),
                 978-1-4612-4476-9 (online)",
  ISSN =         "0172-603X",
  ISSN-L =       "0172-603X",
  LCCN =         "QA76 .B326 1990",
  bibdate =      "Thu Mar 24 09:27:40 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fparith.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/texbook3.bib",
  acknowledgement = ack-nhfb,
  tableofcontents = "Anonymous / Front Matter / i--xix \\
                 Krzysztof R. Apt, Frank S. de Boer, Ernst-R{\"u}diger
                 Olderog / Proving Termination of Parallel Programs /
                 1--6 / doi:10.1007/978-1-4612-4476-9_1 \\
                 Roland C. Backhouse / On a Relation on Functions /
                 7--18 / doi:10.1007/978-1-4612-4476-9_2 \\
                 F. L. Bauer / Efficient Solution of a Non--Monotonic
                 Inverse Problem / 19--26 /
                 doi:10.1007/978-1-4612-4476-9_3 \\
                 A. Bijlsma / Semantics of Quasi--Boolean Expressions /
                 27--35 / doi:10.1007/978-1-4612-4476-9_4 \\
                 Richard S. Bird / Small Specification Exercises /
                 36--43 / doi:10.1007/978-1-4612-4476-9_5 \\
                 Maarten Boasson / Architecture of Real--Time Systems /
                 44--53 / doi:10.1007/978-1-4612-4476-9_6 \\
                 Robert S. Boyer, Milton W. Green, J Strother Moore /
                 The Use of a Formal Simulator to Verify a Simple Real
                 Time Control Program / 54--66 /
                 doi:10.1007/978-1-4612-4476-9_7 \\
                 Donald W. Braben / Exploring the Future: Trends and
                 Discontinuities / 67--75 /
                 doi:10.1007/978-1-4612-4476-9_8 \\
                 Coen Bron / On a Renewed Visit to the Banker and a
                 Remarkable Analogy / 76--82 /
                 doi:10.1007/978-1-4612-4476-9_9 \\
                 Manfred Broy / On Bounded Buffers: Modularity,
                 Robustness, and Reliability in Reactive Systems /
                 83--93 / doi:10.1007/978-1-4612-4476-9_10 \\
                 K. Mani Chandy, Stephen Taylor / Examples in Program
                 Composition / 94--101 /
                 doi:10.1007/978-1-4612-4476-9_11 \\
                 Albert J. Dijkstra / On the Mechanism of the
                 Hydrogenation of Edible Oils / 102--111 /
                 doi:10.1007/978-1-4612-4476-9_12 \\
                 W. H. J. Feijen, A. J. M. van Gasteren, D. Gries, J.
                 Misra / The Problem of the Majority Network / 112--118
                 / doi:10.1007/978-1-4612-4476-9_13 \\
                 W. H. J. Feijen / A Little Exercise in Deriving
                 Multiprograms / 119--126 /
                 doi:10.1007/978-1-4612-4476-9_14 \\
                 A. J. M. van Gasteren / Experimenting with a Refinement
                 Calculus / 127--134 / doi:10.1007/978-1-4612-4476-9_15
                 \\
                 Mohamed G. Gouda / Serializable Programs,
                 Parallelizable Assertions: A Basis for Interleaving /
                 135--140 / doi:10.1007/978-1-4612-4476-9_16 \\
                 David Gries / Binary to Decimal, One More Time /
                 141--148 / doi:10.1007/978-1-4612-4476-9_17 \\
                 A. N. Habermann / Rotate and Double / 149--162 /
                 doi:10.1007/978-1-4612-4476-9_18 \\
                 Eric C. R. Hehner / Beautifying G{\"o}del / 163--172 /
                 doi:10.1007/978-1-4612-4476-9_19 \\
                 G. Helmberg / A Striptease of Entropy / 173--175 /
                 doi:10.1007/978-1-4612-4476-9_20 \\
                 Ted Herman / On a Theorem of Jacobson / 176--181 /
                 doi:10.1007/978-1-4612-4476-9_21 \\
                 Wim H. Hesselink / Modalities of Nondeterminacy /
                 182--192 / doi:10.1007/978-1-4612-4476-9_22 \\
                 C. A. R. Hoare / A Theory for the Derivation of C-mos
                 Circuit Designs / 193--205 /
                 doi:10.1007/978-1-4612-4476-9_23 \\
                 Rob Hoogerwoord / On Mathematical Induction and the
                 Invariance Theorem / 206--211 /
                 doi:10.1007/978-1-4612-4476-9_24 \\
                 J. J. Horning / Formalizing Some Classic
                 Synchronization Primitives / 212--219 /
                 doi:10.1007/978-1-4612-4476-9_25 \\
                 Cliff B. Jones / Consequences / 220--225 /
                 doi:10.1007/978-1-4612-4476-9_26 \\
                 Anne Kaldewaij / Shortest and Longest Segments /
                 226--232 / doi:10.1007/978-1-4612-4476-9_27 \\
                 Donald E. Knuth / A Simple Program Whose Proof Isn't /
                 233--242 / doi:10.1007/978-1-4612-4476-9_28 \\
                 Vadim E. Kotov / Binding Structure and Behaviour in
                 ``Whole Net'' Concurrency Semantics / 243--250 /
                 doi:10.1007/978-1-4612-4476-9_29 \\
                 F. E. J. Kruseman Aretz / Maximal Strong Components: An
                 Exercise in Program Presentation / 251--261 /
                 doi:10.1007/978-1-4612-4476-9_30 \\
                 Christian Lengauer, Duncan G. Hudson / A Systolic
                 Program for Gauss--Jordan Elimination / 262--273 /
                 doi:10.1007/978-1-4612-4476-9_31 \\
                 J. H. van Lint / Coding for Channels with Localized
                 Errors / 274--279 / doi:10.1007/978-1-4612-4476-9_32
                 \\
                 Johan J. Lukkien, Jan L. A. van de Snepscheut /
                 Topology-Independent Algorithms Based on Spanning Trees
                 / 280--288 / doi:10.1007/978-1-4612-4476-9_33 \\
                 Zohar Manna, Amir Pnueli / An Exercise in the
                 Verification of Multi--Process Programs / 289--301 /
                 doi:10.1007/978-1-4612-4476-9_34 \\
                 Alain J. Martin / The Limitations to
                 Delay--Insensitivity in Asynchronous Circuits /
                 302--311 / doi:10.1007/978-1-4612-4476-9_35 \\
                 Jayadev Misra / A Simple Proof of a Simple Consensus
                 Algorithm / 312--318 / doi:10.1007/978-1-4612-4476-9_36
                 \\
                 Carroll Morgan / Of wp and {CSP} / 319--326 /
                 doi:10.1007/978-1-4612-4476-9_37 \\
                 Joseph M. Morris / Programming by Expression
                 Refinement: the {KMP} Algorithm / 327--338 /
                 doi:10.1007/978-1-4612-4476-9_38 \\
                 Greg Nelson / Methodical Competitive Snoopy--Caching /
                 339--345 / doi:10.1007/978-1-4612-4476-9_39 \\
                 Peter G. Neumann / Beauty and the Beast of Software
                 Complexity Elegance versus Elephants / 346--351 /
                 doi:10.1007/978-1-4612-4476-9_40 \\
                 W. Peremans / A Note on Feasibility / 352--355 /
                 doi:10.1007/978-1-4612-4476-9_41 \\
                 Karel A. Post / A Curious Property of Points and
                 Circles in the Plane / 356--357 /
                 doi:10.1007/978-1-4612-4476-9_42 \\
                 Paul Pritchard / A Problem Involving Subsequences /
                 358--364 / doi:10.1007/978-1-4612-4476-9_43 \\
                 Martin Rem / A Personal Perspective of the
                 Alpern--Schneider Characterization of Safety and
                 Liveness / 365--372 / doi:10.1007/978-1-4612-4476-9_44
                 \\
                 Fred B. Schneider / Simpler Proofs for Concurrent
                 Reading and Writing / 373--379 /
                 doi:10.1007/978-1-4612-4476-9_45 \\
                 Carel S. Scholten / Goodbye Junctivity? / 380--385 /
                 doi:10.1007/978-1-4612-4476-9_46 \\
                 Henk C. A. van Tilborg / An Assignment Problem for the
                 Vertices of a Cycle / 386--389 /
                 doi:10.1007/978-1-4612-4476-9_47 \\
                 D. A. Turner / Duality and De Morgan Principles for
                 Lists / 390--398 / doi:10.1007/978-1-4612-4476-9_48 \\
                 W. M. Turski / The Quest for Timeless Specifications
                 Leads to Non--Stepping Automata / 399--409 /
                 doi:10.1007/978-1-4612-4476-9_49 \\
                 Jan Tijmen Udding / The Maximum Length of a Palindrome
                 in a Sequence / 410--416 /
                 doi:10.1007/978-1-4612-4476-9_50 \\
                 Lincoln A. Wallen / On Form, Formalism and Equivalence
                 / 417--426 / doi:10.1007/978-1-4612-4476-9_51 \\
                 N. Wirth / Drawing Lines, Circles, and Ellipses in a
                 Raster / 427--434 / doi:10.1007/978-1-4612-4476-9_52
                 \\
                 Jaap van der Woude / Calculations with Relations, an
                 Example / 435--441 / doi:10.1007/978-1-4612-4476-9_53
                 \\
                 Heinz Zemanek / Two Proofs for Pythagoras / 442--447 /
                 doi:10.1007/978-1-4612-4476-9_54 \\
                 Anonymous / Back Matter / 448--453",
}

@Proceedings{IEEE:1990:PAS,
  editor =       "{IEEE}",
  booktitle =    "{Proceedings: 31st Annual Symposium on Foundations of
                 Computer Science: October 22--24, 1990, St. Louis,
                 Missouri}",
  title =        "{Proceedings: 31st Annual Symposium on Foundations of
                 Computer Science: October 22--24, 1990, St. Louis,
                 Missouri}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "??",
  year =         "1990",
  CODEN =        "ASFPDV",
  ISBN =         "0-8186-2082-X (paperback), 0-8186-6082-1
                 (microfiche)",
  ISBN-13 =      "978-0-8186-2082-9 (paperback), 978-0-8186-6082-5
                 (microfiche)",
  ISSN =         "0272-5428",
  LCCN =         "TK7885.A1 S92 1990",
  bibdate =      "Thu Dec 3 07:11:18 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Formerly called the Annual Symposium on Switching and
                 Automata Theory. IEEE catalog number 90CH29256.
                 Computer Society order no. 2082.",
  acknowledgement = ack-nhfb,
  keywords =     "computational complexity --- congresses; electronic
                 data processing --- congresses; machine theory ---
                 congresses",
}

@Proceedings{Noor:1990:SCT,
  editor =       "Ahmed K. Noor and Isaac Elishakoff and Greg Hulbert",
  booktitle =    "{Symbolic computations and their impact on mechanics:
                 presented at the Winter Annual Meeting of the American
                 Society of Mechanical Engineers, Dallas, Texas,
                 November 25--30, 1990}",
  title =        "{Symbolic computations and their impact on mechanics:
                 presented at the Winter Annual Meeting of the American
                 Society of Mechanical Engineers, Dallas, Texas,
                 November 25--30, 1990}",
  volume =       "205",
  publisher =    pub-ASME,
  address =      pub-ASME:adr,
  pages =        "xv + 376",
  year =         "1990",
  CODEN =        "AMPPD5",
  ISBN =         "0-7918-0598-0",
  ISBN-13 =      "978-0-7918-0598-5",
  ISSN =         "0277-027X",
  LCCN =         "TA350 .S88 1990",
  bibdate =      "Tue Apr 09 09:08:44 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/mathematica.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       "PVP",
  acknowledgement = ack-nhfb,
}

@Proceedings{Watanabe:1990:IPI,
  editor =       "Shunro Watanabe and Morio Nagata",
  booktitle =    "{ISSAC '90: proceedings of the International Symposium
                 on Symbolic and Algebraic Computation: August 20--24,
                 1990, Tokyo, Japan}",
  title =        "{ISSAC '90: proceedings of the International Symposium
                 on Symbolic and Algebraic Computation: August 20--24,
                 1990, Tokyo, Japan}",
  publisher =    pub-ACM # " and " # pub-AW,
  address =      pub-ACM:adr # " and " # pub-AW:adr,
  pages =        "ix + 307",
  year =         "1990",
  ISBN =         "0-89791-401-5 (ACM), 0-201-54892-5 (Addison-Wesley)",
  ISBN-13 =      "978-0-89791-401-7 (ACM), 978-0-201-54892-1
                 (Addison-Wesley)",
  LCCN =         "QA76.95 .I57 1990",
  bibdate =      "Thu Sep 26 06:00:06 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/issac.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  abstract =     "The following topics were dealt with: foundations of
                 symbolic computation; computational logics; systems;
                 algorithms on polynomials; integration and differential
                 equations; and algorithms on geometry.",
  acknowledgement = ack-nhfb,
  classification = "C4210 (Formal logic); C4240 (Programming and
                 algorithm theory)",
  confdate =     "20--24 Aug. 1990",
  conflocation = "Tokyo, Japan",
  confsponsor =  "Inf. Processing Soc. Japan; Japan Soc. Software Sci.
                 Technol.; ACM",
  keywords =     "algebra --- data processing --- congresses;
                 Algorithms; Computational geometry; Computational
                 logics; Differential equations; Geometry; Integration;
                 mathematics --- data processing --- congresses;
                 Polynomials; Symbolic computation; Systems",
  pubcountry =   "USA",
  thesaurus =    "Algorithm theory; Computational geometry; Formal
                 logic; Symbol manipulation",
}

@Proceedings{ACM:1991:PTT,
  editor =       "{ACM}",
  booktitle =    "{Proceedings of the twenty third annual ACM Symposium
                 on Theory of Computing, New Orleans, Louisiana, May
                 6--8, 1991}",
  title =        "{Proceedings of the twenty third annual ACM Symposium
                 on Theory of Computing, New Orleans, Louisiana, May
                 6--8, 1991}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "vii + 573",
  year =         "1991",
  ISBN =         "0-89791-397-3",
  ISBN-13 =      "978-0-89791-397-3",
  LCCN =         "QA 76.6 A13 1991",
  bibdate =      "Thu Dec 3 07:11:18 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order no. 508910.",
  acknowledgement = ack-nhfb,
  keywords =     "computational complexity --- congresses",
}

@Book{Broy:1991:MPS,
  author =       "Manfred Broy and Martin Wirsing",
  booktitle =    "Methods of programming. {Selected} papers on the
                 {CIP-Project}",
  title =        "Methods of programming. {Selected} papers on the
                 {CIP-Project}",
  volume =       "544",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "xii + 268",
  year =         "1991",
  CODEN =        "LNCSD9",
  ISBN =         "3-540-54576-X (Berlin), 0-387-54576-X (USA)",
  ISBN-13 =      "978-3-540-54576-7 (Berlin), 978-0-387-54576-9 (USA)",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  LCCN =         "QA76.6 .M4543 1991, QA267.A1 L43 no.544",
  bibdate =      "Wed Aug 31 00:52:14 MDT 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/litprog.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/tocs/t0544.htm;
                 http://www.springerlink.com/openurl.asp?genre=issue&issn=0302-9743&volume=544",
  abstract =     "The following topics were dealt with: meta-models for
                 system development including OOP; transformational
                 programming; software reusability; formal
                 specification; deductive program development; reverse
                 Polish notation; literate programming; quantifier
                 elimination; and algebraic and functional
                 programming.",
  acknowledgement = ack-nhfb,
  classification = "C4210 (Formal logic); C4240 (Programming and
                 algorithm theory); C6110B (Software engineering
                 techniques)",
  keywords =     "Deductive program development; electronic digital
                 computers; Formal specification; Functional
                 programming; Literate programming; literate
                 programming; Meta-models; OOP; programming; Quantifier
                 elimination; Reverse Polish notation; Software
                 reusability; System development; Transformational
                 programming",
  tableofcontents = "Two metamodels for application system development:
                 conventional vs. object-oriented approach / W. Hesse
                 \\
                 Transformational meta program development / B.
                 Krieg-Br{\"u}ckner \\
                 Another case study on reusability of transformational
                 developments pattern matching according to Knuth,
                 Morris, and Pratt / H. A. Partsch, N. V{\"o}lker \\
                 A formal method for the systematic reuse of
                 specification components / R. Hennicker, M. Wirsing \\
                 Deductive program development: evaluation in reverse
                 Polish notation as an example / M. Broy \\
                 Literate program derivation: a case study / P. Pepper
                 \\
                 Programs viewed as SKOLEM functions / R.
                 Steinbr{\"u}ggen \\
                 Calculating a garbage collector / U. Berger, W.
                 Meixner, B. M{\"o}ller \\
                 On the use of elements of functional programming in
                 program development by transformations / R. Berghammer,
                 H. Ehler \\
                 Transformational development of circuit descriptions
                 for binary adders / C. Delgado Kloos, W. Dosch",
  thesaurus =    "Formal logic; Formal specification; Programming;
                 Programming theory; Software reusability",
}

@Proceedings{ACM:1992:CRN,
  editor =       "{ACM}",
  key =          "ACM SIGPLAN POPL '92",
  booktitle =    "{Conference record of the Nineteenth Annual ACM
                 SIGPLAN-SIGACT Symposium on Principles of Programming
                 Languages: papers presented at the symposium,
                 Albuquerque, New Mexico, January 19--22, 1992}",
  title =        "{Conference record of the Nineteenth Annual ACM
                 SIGPLAN-SIGACT Symposium on Principles of Programming
                 Languages: papers presented at the symposium,
                 Albuquerque, New Mexico, January 19--22, 1992}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "viii + 366",
  year =         "1992",
  ISBN =         "0-89791-453-8",
  ISBN-13 =      "978-0-89791-453-6",
  LCCN =         "QA76.7 .A15 1992",
  bibdate =      "Mon May 03 18:38:52 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order number 54990.",
  URL =          "http://www.acm.org/pubs/contents/proceedings/plan/143165/index.html",
  acknowledgement = ack-nhfb,
  keywords =     "electronic digital computers --- programming ---
                 congresses; programming languages (electronic
                 computers) --- congresses",
}

@Proceedings{ACM:1992:PAC,
  editor =       "{ACM}",
  booktitle =    "{Proceedings of the 1992 ACM Conference on LISP and
                 Functional Programming: papers presented at the
                 conference, San Francisco, California, June 22--24,
                 1992}",
  title =        "{Proceedings of the 1992 ACM Conference on LISP and
                 Functional Programming: papers presented at the
                 conference, San Francisco, California, June 22--24,
                 1992}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "viii + 357",
  year =         "1992",
  ISBN =         "0-89791-481-3, 0-89791-483-X",
  ISBN-13 =      "978-0-89791-481-9, 978-0-89791-483-3",
  LCCN =         "QA76.73.L23A26 1992",
  bibdate =      "Tue Nov 10 07:55:44 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/common-lisp.bib;
                 https://www.math.utah.edu/pub/tex/bib/python.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  note =         "Also published as {{\em LISP Pointers}}, vol. {\bf V},
                 no. 1, January-March, 1992. ACM order no. 552920.",
  acknowledgement = ack-nhfb,
  classification = "721.1; 723.1; 723.1.1",
  confdate =     "22--24 June 1992",
  conflocation = "San Francisco, CA, USA",
  confsponsor =  "ACM",
  conftitle =    "Proceedings of SIGPLAN Conference on Lisp and
                 Functional Programming",
  corpsource =   "Carnegie Mellon Univ., Pittsburgh, PA, USA",
  keywords =     "Common Lisp; Data abstraction; Digital storage;
                 Dynamic program parallelization; Fixed point iteration;
                 Formal logic; Functional programming; Garbage
                 collection; Lambda tagging; Lazy pattern matching;
                 Linear logic; Lisp (programming language); lisp
                 (programming language); Parallel processing systems;
                 Program compilers; Programming theory",
  pubcountry =   "USA",
  sponsororg =   "ACM",
  treatment =    "P Practical",
}

@Proceedings{ACM:1992:PPE,
  editor =       "{ACM}",
  booktitle =    "{PODS '92. Proceedings of the Eleventh ACM
                 SIGACT-SIGMOD-SIGART Symposium on Principles of
                 Database Systems, June 2--4, 1992, San Diego, CA}",
  title =        "{PODS '92. Proceedings of the Eleventh ACM
                 SIGACT-SIGMOD-SIGART Symposium on Principles of
                 Database Systems, June 2--4, 1992, San Diego, CA}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "viii + 392",
  year =         "1992",
  ISBN =         "0-89791-519-4 (paperback), 0-89791-520-8 (casebound)",
  ISBN-13 =      "978-0-89791-519-9 (paperback), 978-0-89791-520-5
                 (casebound)",
  LCCN =         "QA 76.9 D3 A26 1992",
  bibdate =      "Thu Oct 26 06:42:00 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order number 475920.",
  acknowledgement = ack-nhfb,
  keywords =     "PODS '92",
}

@Proceedings{ACM:1992:PTF,
  editor =       "{ACM}",
  booktitle =    "{Proceedings of the twenty-fourth annual ACM Symposium
                 on Theory of Computing, Victoria, British Columbia,
                 Canada, May 4--6, 1992}",
  title =        "{Proceedings of the twenty-fourth annual ACM Symposium
                 on Theory of Computing, Victoria, British Columbia,
                 Canada, May 4--6, 1992}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "ix + 784",
  year =         "1992",
  ISBN =         "0-89791-511-9",
  ISBN-13 =      "978-0-89791-511-3",
  LCCN =         "QA76.A15 1992",
  bibdate =      "Thu Dec 3 07:11:18 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order no. 508920.",
  acknowledgement = ack-nhfb,
  keywords =     "computational complexity --- congresses",
}

@Proceedings{Apostolico:1992:CPM,
  editor =       "Alberto Apostolico",
  booktitle =    "{Combinatorial pattern matching: third annual
                 symposium, Tucson, Arizona, USA, April 29--May 1, 1992:
                 proceedings}",
  title =        "{Combinatorial pattern matching: third annual
                 symposium, Tucson, Arizona, USA, April 29--May 1, 1992:
                 proceedings}",
  volume =       "644",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "x + 287",
  year =         "1992",
  CODEN =        "LNCSD9",
  DOI =          "????",
  ISBN =         "3-540-56024-6 (Berlin), 0-387-56024-6 (New York)",
  ISBN-13 =      "978-3-540-56024-1 (Berlin), 978-0-387-56024-3 (New
                 York)",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA76.9.A43 C65 1992",
  bibdate =      "Fri Apr 12 07:14:57 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  URL =          "http://link.springer-ny.com/link/service/series/0558/tocs/t0644.htm;
                 http://www.springerlink.com/content/978-3-540-56024-1;
                 http://www.springerlink.com/openurl.asp?genre=issue&issn=0302-9743&volume=644",
  acknowledgement = ack-nhfb,
  keywords =     "combinatorial analysis --- congresses; computer
                 algorithms --- congresses",
}

@Proceedings{Finkel:1992:SAS,
  editor =       "A. Finkel and M. Jantzen",
  booktitle =    "{STACS 92. 9th Annual Symposium on Theoretical Aspects
                 of Computer Science. Proceedings}",
  title =        "{STACS 92. 9th Annual Symposium on Theoretical Aspects
                 of Computer Science. Proceedings}",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "xiv + 620",
  year =         "1992",
  ISBN =         "3-540-55210-3",
  ISBN-13 =      "978-3-540-55210-9",
  LCCN =         "QA75.5.S958 1992",
  bibdate =      "Wed Sep 11 05:43:28 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sgml.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  confdate =     "13--15 Feb. 1992",
  conflocation = "Cachan, France",
  pubcountry =   "Germany",
}

@Proceedings{IEEE:1992:ASF,
  editor =       "{IEEE}",
  booktitle =    "{33rd Annual Symposium on Foundations of Computer
                 Science: October 24--27, 1992, Pittsburgh,
                 Pennsylvania: proceedings [papers]}",
  title =        "{33rd Annual Symposium on Foundations of Computer
                 Science: October 24--27, 1992, Pittsburgh,
                 Pennsylvania: proceedings [papers]}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xi + 734",
  year =         "1992",
  CODEN =        "ASFPDV",
  ISBN =         "0-8186-2901-0 (microfiche), 0-8186-2900-2
                 (paperback)",
  ISBN-13 =      "978-0-8186-2901-3 (microfiche), 978-0-8186-2900-6
                 (paperback)",
  ISSN =         "0272-5428",
  LCCN =         "QA 76 S979 1992",
  bibdate =      "Thu Dec 3 07:11:18 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE Catalog Number 92CH3188-0. IEEE Computer Society
                 Press Order Number 2900.",
  acknowledgement = ack-nhfb,
  keywords =     "electronic data processing --- congresses",
}

@Proceedings{Kapur:1992:ADC,
  editor =       "D. Kapur",
  booktitle =    "Automated deduction, {CADE-11: 11th} International
                 Conference on Automated Deduction, Saratoga Springs,
                 {NY}, {USA}, June 15--18, 1992: proceedings",
  title =        "Automated deduction, {CADE}-11: 11th International
                 Conference on Automated Deduction, Saratoga Springs,
                 {NY}, {USA}, June 15--18, 1992: proceedings",
  volume =       "607",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "xv + 793",
  year =         "1992",
  ISBN =         "3-540-55602-8",
  ISBN-13 =      "978-3-540-55602-2",
  LCCN =         "QA76.9.A96I57 1992",
  bibdate =      "Wed Oct 30 05:59:54 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hoare-c-a-r.bib;
                 https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  acknowledgement = ack-nhfb,
  confdate =     "15--18 June 1992",
  conflocation = "Saratoga Springs, NY, USA",
  pubcountry =   "Germany",
}

@Proceedings{Kim:1992:DSN,
  editor =       "Won Kim and Y. Kambayashi and In Sup Paik",
  booktitle =    "{Database systems for next-generation applications:
                 principles and practice}",
  title =        "{Database systems for next-generation applications:
                 principles and practice}",
  volume =       "1",
  publisher =    pub-WORLD-SCI,
  address =      pub-WORLD-SCI:adr,
  pages =        "ix + 312",
  year =         "1992",
  ISBN =         "981-02-1315-8",
  ISBN-13 =      "978-981-02-1315-2",
  LCCN =         "QA76.9.D3 D3589 1992",
  bibdate =      "Sat Dec 7 16:52:15 MST 1996",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       "Advanced Database Research and Development Series",
  acknowledgement = ack-nhfb,
  annote =       "Also known as DASFAA '89",
  keywords =     "",
  source =       "Database systems for next-generation applications:
                 principles and practice",
}

@Proceedings{Stonebraker:1992:PAS,
  editor =       "Michael Stonebraker",
  booktitle =    "{Proceedings of the 1992 ACM SIGMOD International
                 Conference on Management of Data, San Diego,
                 California, June 2--5, 1992}",
  title =        "{Proceedings of the 1992 ACM SIGMOD International
                 Conference on Management of Data, San Diego,
                 California, June 2--5, 1992}",
  volume =       "21(2)",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "xiv + 416",
  year =         "1992",
  ISBN =         "0-89791-521-6",
  ISBN-13 =      "978-0-89791-521-2",
  ISSN =         "0163-5808 (print), 1943-5835 (electronic)",
  LCCN =         "????",
  bibdate =      "Wed Oct 25 08:47:40 MDT 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       j-SIGMOD,
  acknowledgement = ack-nhfb,
  keywords =     "SIGMOD '92",
}

@Proceedings{USENIX:1992:PWU,
  editor =       "{USENIX}",
  booktitle =    "{Proceedings of the Winter 1992 USENIX Conference:
                 January 20 --- January 24, 1992, San Francisco,
                 California}",
  title =        "{Proceedings of the Winter 1992 USENIX Conference:
                 January 20 --- January 24, 1992, San Francisco,
                 California}",
  publisher =    pub-USENIX,
  address =      pub-USENIX:adr,
  pages =        "viii + 451",
  year =         "1992",
  bibdate =      "Sun Feb 18 07:46:09 MST 1996",
  bibsource =    "ftp://ftp.uu.net/library/bibliography;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/usenix1990.bib",
  acknowledgement = ack-nhfb,
  keywords =     "Computer networks --- Congresses; Operating systems
                 (Computers) --- Congresses; Programming (Electronic
                 computers) --- Congresses; UNIX (Computer file) ---
                 Congresses",
}

@Proceedings{ACM:1993:CRT,
  editor =       "{ACM}",
  key =          "ACM SIGPLAN POPL '93",
  booktitle =    "{Conference record of the Twentieth Annual ACM
                 SIGPLAN-SIGACT Symposium on Principles of Programming
                 Languages: papers presented at the symposium,
                 Charleston, South Carolina, January 10--13, 1993}",
  title =        "{Conference record of the Twentieth Annual ACM
                 SIGPLAN-SIGACT Symposium on Principles of Programming
                 Languages: papers presented at the symposium,
                 Charleston, South Carolina, January 10--13, 1993}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "viii + 510",
  year =         "1993",
  ISBN =         "0-89791-560-7 (soft cover), 0-89791-561-5 (series hard
                 cover)",
  ISBN-13 =      "978-0-89791-560-1 (soft cover), 978-0-89791-561-8
                 (series hard cover)",
  LCCN =         "QA76.7 .A15 1993",
  bibdate =      "Mon May 03 18:38:48 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order number 549930.",
  URL =          "http://www.acm.org/pubs/contents/proceedings/plan/158511/index.html",
  acknowledgement = ack-nhfb,
  classification = "C4210 (Formal logic); C4240 (Programming and
                 algorithm theory); C6110 (Systems analysis and
                 programming); C6140D (High level languages); C6150C
                 (Compilers, interpreters and other processors); C6170
                 (Expert systems)",
  confdate =     "10-13 Jan. 1993",
  conflocation = "Charleston, SC, USA",
  confsponsor =  "ACM",
  keywords =     "Compilers; Computational complexity; electronic
                 digital computers --- programming --- congresses;
                 Functional programming; Lambda calculus; Lazy
                 evaluation; Logic programming; Object-oriented
                 languages; Parallel computing; Parametricity;
                 Polymorphism; Program testing/debugging; Programming
                 language principles; programming languages (electronic
                 computers) --- congresses; Register allocation; Typed
                 languages",
  thesaurus =    "Computational complexity; High level languages; Lambda
                 calculus; Program compilers; Programming; Programming
                 theory; Storage allocation",
}

@Proceedings{ACM:1993:PTF,
  editor =       "{ACM}",
  booktitle =    "{Proceedings of the twenty-fifth annual ACM Symposium
                 on the Theory of Computing, San Diego, California, May
                 16--18, 1993}",
  title =        "{Proceedings of the twenty-fifth annual ACM Symposium
                 on the Theory of Computing, San Diego, California, May
                 16--18, 1993}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "ix + 812",
  year =         "1993",
  ISBN =         "0-89791-591-7",
  ISBN-13 =      "978-0-89791-591-5",
  LCCN =         "QA 76.6 A13 1993",
  bibdate =      "Thu Dec 3 07:11:18 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order no. 508930.",
  acknowledgement = ack-nhfb,
  keywords =     "computational complexity --- congresses",
}

@Proceedings{Agrawal:1993:VLD,
  editor =       "Rakesh Agrawal and Sean Baker and David Bell",
  booktitle =    "{Very large data bases, VLDB '93: proceedings of the
                 19th International Conference on Very Large Data Bases,
                 August 24--27, 1993, Dublin, Ireland}",
  title =        "{Very large data bases, VLDB '93: proceedings of the
                 19th International Conference on Very Large Data Bases,
                 August 24--27, 1993, Dublin, Ireland}",
  publisher =    pub-MORGAN-KAUFMANN,
  address =      pub-MORGAN-KAUFMANN:adr,
  pages =        "xx + 712",
  year =         "1993",
  ISBN =         "1-55860-152-X",
  ISBN-13 =      "978-1-55860-152-9",
  LCCN =         "QA76.9.D3 I61 1993",
  bibdate =      "Sat Dec 7 13:05:35 MST 1996",
  bibsource =    "DBLP; http://dblp.uni-trier.de;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldb.bib",
  note =         "Co-sponsored by VLDB Endowment and Irish Computer
                 Society; in co-operation with the IEEE Technical
                 Committee on Data Engineering.",
  acknowledgement = ack-nhfb,
  keywords =     "data base management -- congresses",
}

@Proceedings{Andre:1993:ICR,
  editor =       "Jacques Andr{\'e} and Jakob Gonczarowski and Richard
                 Southall",
  booktitle =    "{Editorial: Special issue: Proceedings of the Raster
                 Imaging and Digital Typography Conference}",
  title =        "{Editorial: Special issue: Proceedings of the Raster
                 Imaging and Digital Typography Conference}",
  volume =       "6(3)",
  publisher =    pub-WILEY,
  address =      pub-WILEY:adr,
  pages =        "115--116",
  month =        sep,
  year =         "1993",
  CODEN =        "EPODEU",
  ISBN =         "0-471-94823-3",
  ISBN-13 =      "978-0-471-94823-0",
  ISSN =         "0894-3982",
  LCCN =         "????",
  bibdate =      "Tue Feb 27 09:47:10 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/epodd.bib;
                 https://www.math.utah.edu/pub/tex/bib/font.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       j-EPODD,
  abstract =     "This issue of {\em Electronic Publishing\/} contains
                 the papers presented during the third Raster Imaging
                 and Digital Typography conference, held at Darmstadt,
                 Germany, from 11 to 13 April 1994. Earlier conferences
                 in the series took place in 1989 at Lausanne,
                 Switzerland (organized by Roger D. Hersch, EPFL) and in
                 1991 at Boston, Massachussets (organized by Robert A.
                 Morris, University of Massachussets at Boston). The
                 corresponding proceedings are published by Cambridge
                 University Press (see below). Digital typography is a
                 relatively new field: the first commercial
                 cathode-ray-tube photo\-composing machine appeared in
                 1966. Since that time, the field has been growing very
                 fast, and is still active. During the RIDT'89
                 conference, emphasis was laid on the rasterisation of
                 outline characters and on rendering techniques. RIDT'91
                 concentrated more on digital halftoning and on
                 greyscale characters. However, both of these
                 conferences bore in mind that beyond the mathematics of
                 shapes and their rendering, printing types exist with
                 their own aesthetic rules. That is why the
                 presentations were made by a mix of technologists,
                 scientists and designers. The RIDT'94 programme
                 committee tried to attract a similar mix of papers when
                 this conference was launched. As expected, the fields
                 have moved on since the last conference, but we hope
                 that the selected papers adequately exhibit the present
                 state of the art in raster imaging and digital
                 typography. In the recent past, formal research in
                 digital typography has dealt with graphical algorithms,
                 such as the rendering of outline characters and the
                 generation of outline characters from bit-mapped
                 drawings, to name but two. Present research focuses on
                 models and methods for concise but precise font
                 description and modelling. That trend began in industry
                 with font interpolation programs and font systems such
                 as Adobe Systems' Multiple Master technology. This
                 research definitively belongs to computer science, with
                 keywords such as {\em object orientation}, {\em regular
                 expressions}, {\em string matching\/} and {\em shape
                 parameterization}. A look at related fields, such as
                 computer-aided design, shows that there still remains
                 plenty of mathematical research to be done in digital
                 typography. Mathematics is already used in CAD to
                 express aesthetic criteria, both at the local
                 (individual curves/surfaces) and the global level, for
                 ensuring overall appearance and design consistency.
                 \ldots{}.",
  acknowledgement = ack-nhfb,
}

@Proceedings{Andre:1993:PTI,
  editor =       "Jacques Andr{\'e} and Jakob Gonczarowski and Richard
                 Southall",
  booktitle =    "{Proceedings of the third International Conference on
                 Raster Imaging and Digital Typography, 11--13 April
                 1994, Darmstadt, Germany}",
  title =        "{Proceedings of the third International Conference on
                 Raster Imaging and Digital Typography, 11--13 April
                 1994, Darmstadt, Germany}",
  volume =       "6(3)",
  publisher =    pub-WILEY,
  address =      pub-WILEY:adr,
  pages =        "iv + 166--308",
  year =         "1993",
  ISBN =         "0-471-94823-3",
  ISBN-13 =      "978-0-471-94823-0",
  ISSN =         "0894-3982",
  LCCN =         "Z250.7",
  bibdate =      "Mon Apr 27 08:08:18 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       j-EPODD,
  acknowledgement = ack-nhfb,
  source =       "RIDT '94",
  xxnote =       "Although the conference was held in 1994, the
                 (delayed) journal was still dated 1993.",
}

@Proceedings{Apostolico:1993:CPM,
  editor =       "Alberto Apostolico",
  booktitle =    "{Combinatorial pattern matching: 4th annual symposium,
                 CPM 93, Padova, Italy, June 1993: proceedings}",
  title =        "{Combinatorial pattern matching: 4th annual symposium,
                 CPM 93, Padova, Italy, June 1993: proceedings}",
  volume =       "684",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "viii + 265",
  year =         "1993",
  CODEN =        "LNCSD9",
  DOI =          "????",
  ISBN =         "3-540-56764-X (Berlin), 0-387-56764-X (New York)",
  ISBN-13 =      "978-3-540-56764-6 (Berlin), 978-0-387-56764-8 (New
                 York)",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA76.9.A43 C653 1993",
  bibdate =      "Fri Apr 12 07:14:57 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  price =        "DM58.00",
  series =       ser-LNCS,
  URL =          "http://link.springer-ny.com/link/service/series/0558/tocs/t0684.htm;
                 http://www.springerlink.com/content/978-3-540-56764-6;
                 http://www.springerlink.com/openurl.asp?genre=issue&issn=0302-9743&volume=684",
  acknowledgement = ack-nhfb,
  keywords =     "combinatorial analysis --- congresses; computer
                 algorithms --- congresses",
}

@Proceedings{Baozong:1993:PTI,
  editor =       "Yuan Baozong",
  booktitle =    "{Proceedings / TENCON '93, 1993 IEEE Region 10
                 Conference on Computer, Communication, Control, and
                 Power Engineering, October 19--21, 1993, Beijing,
                 Beijing International Convention Center, Beijing
                 Continental Grand Hotel}",
  title =        "{Proceedings / TENCON '93, 1993 IEEE Region 10
                 Conference on Computer, Communication, Control, and
                 Power Engineering, October 19--21, 1993, Beijing,
                 Beijing International Convention Center, Beijing
                 Continental Grand Hotel}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xxvi + 1206 (vol. 1), xvii + 676 (vol. 2), xv + 580
                 (vol. 3), xvii + 619 (vol. 4)",
  year =         "1993",
  ISBN =         "0-7803-1233-3",
  ISBN-13 =      "978-0-7803-1233-3",
  LCCN =         "QA75.5.I155 1993",
  bibdate =      "Wed Oct 30 05:56:55 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE Catalog No. 93CH3286-2.",
  acknowledgement = ack-nhfb,
  confdate =     "19--21 Oct. 1993",
  conflocation = "Beijing, China",
  pubcountry =   "USA",
}

@Proceedings{Bronstein:1993:IPI,
  editor =       "Manuel Bronstein",
  booktitle =    "{ISSAC'93: proceedings of the 1993 International
                 Symposium on Symbolic and Algebraic Computation, July
                 6--8, 1993, Kiev, Ukraine}",
  title =        "{ISSAC'93: proceedings of the 1993 International
                 Symposium on Symbolic and Algebraic Computation, July
                 6--8, 1993, Kiev, Ukraine}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "viii + 321",
  year =         "1993",
  ISBN =         "0-89791-604-2",
  ISBN-13 =      "978-0-89791-604-2",
  LCCN =         "QA 76.95 I59 1993",
  bibdate =      "Thu Sep 26 05:45:15 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/issac.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order number: 505930.",
  abstract =     "The following topics were dealt with: algebraic
                 solutions of equations; computer algebra systems;
                 algorithm theory and complexity; automated theorem
                 proving; polynomials; and matrix algebra.",
  acknowledgement = ack-nhfb,
  classification = "C4210 (Formal logic); C4240 (Programming and
                 algorithm theory); C7310 (Mathematics computing)",
  confdate =     "6--8 July 1993",
  conflocation = "Kiev, Ukraine",
  confsponsor =  "ACM",
  keywords =     "algebra --- data processing --- congresses; Algorithm
                 theory; Automated theorem proving; Complexity; Computer
                 algebra; mathematics --- data processing ---
                 congresses; Matrix algebra; Polynomials",
  pubcountry =   "USA",
  source =       "ISSAC '93",
  sponsor =      "Association for Computing Machinery.",
  thesaurus =    "Computational complexity; Mathematics computing;
                 Matrix algebra; Polynomials; Symbol manipulation;
                 Theorem proving",
}

@Proceedings{Deaton:1993:ACS,
  editor =       "E. Deaton and K. M. George and H. Bergel and G.
                 Hedrick",
  booktitle =    "{Applied Computing: States of the Art and Practice ---
                 1993 Proceedings of the 1993 ACM\slash SIGAPP Symposium
                 on Applied Computing --- February 1993, Indianapolis,
                 IN, USA}",
  title =        "{Applied Computing: States of the Art and Practice ---
                 1993 Proceedings of the 1993 ACM\slash SIGAPP Symposium
                 on Applied Computing --- February 1993, Indianapolis,
                 IN, USA}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "xi + 804",
  year =         "1993",
  ISBN =         "0-89791-567-4",
  ISBN-13 =      "978-0-89791-567-0",
  LCCN =         "QA76.76.A65 S95 1993",
  bibdate =      "Tue Feb 24 15:50:01 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sgml.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       "Applied Computing --- Symposium 1993",
  acknowledgement = ack-nhfb,
  confdate =     "14--16 Feb. 1993",
  conflocation = "Indianapolis, IN, USA",
  confsponsor =  "ACM",
}

@Proceedings{IEEE:1993:ASF,
  editor =       "{IEEE}",
  booktitle =    "{34th Annual Symposium on Foundations of Computer
                 Science: November 3--5, 1993, Palo Alto, California:
                 proceedings [papers]}",
  title =        "{34th Annual Symposium on Foundations of Computer
                 Science: November 3--5, 1993, Palo Alto, California:
                 proceedings [papers]}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xiii + 745",
  year =         "1993",
  CODEN =        "ASFPDV",
  ISBN =         "0-8186-4370-6 (paperback), 0-8186-4371-4
                 (microfiche)",
  ISBN-13 =      "978-0-8186-4370-5 (paperback), 978-0-8186-4371-2
                 (microfiche)",
  ISSN =         "0272-5428",
  LCCN =         "TK7885.A1 S92 1993",
  bibdate =      "Thu Dec 3 07:11:18 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/focs1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE Catalog Number 93CH3368-8. IEEE Computer Society
                 Press Order Number 4372-02.",
  acknowledgement = ack-nhfb,
  keywords =     "electronic data processing --- congresses; machine
                 theory --- congresses",
}

@Proceedings{Lengauer:1993:AEF,
  editor =       "T. Lengauer",
  booktitle =    "{Algorithms --- ESA'93. First Annual European
                 Symposium Proceedings: September 1993, Bad Honnef,
                 Germany}",
  title =        "{Algorithms --- ESA'93. First Annual European
                 Symposium Proceedings: September 1993, Bad Honnef,
                 Germany}",
  volume =       "726",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "ix + 418",
  year =         "1993",
  ISBN =         "3-540-57273-2, 0-387-57273-2",
  ISBN-13 =      "978-3-540-57273-2, 978-0-387-57273-4",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA76.9.A43E83 1993",
  bibdate =      "Tue Sep 10 19:13:47 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sgml.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  acknowledgement = ack-nhfb,
  confdate =     "30 Sept.--2 Oct. 1993",
  conflocation = "Bad Honnef, Germany",
  pubcountry =   "Germany",
}

@Proceedings{Storer:1993:DDC,
  editor =       "James A. (James Andrew) Storer and Martin Cohn",
  key =          "DCC'93",
  booktitle =    "{DCC '93: Data Compression Conference: [March
                 30--April 2, 1993, Snowbird, Utah: proceedings]}",
  title =        "{DCC '93: Data Compression Conference: [March
                 30--April 2, 1993, Snowbird, Utah: proceedings]}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xiii + 505",
  year =         "1993",
  DOI =          "https://doi.org/10.1109/DCC.1993.253151",
  ISBN =         "0-8186-3391-3 (microfiche), 0-8186-3392-1
                 (casebound)",
  ISBN-13 =      "978-0-8186-3391-1 (microfiche), 978-0-8186-3392-8
                 (casebound)",
  ISSN =         "1068-0314",
  LCCN =         "QA76.9.D33 D37 1993",
  bibdate =      "Sat Jan 26 15:55:24 MST 2013",
  bibsource =    "catalog.princeton.edu:7090/voyager;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/super.bib",
  note =         "IEEE Computer Society Press order number 3392-02. IEEE
                 catalog number 93TH0536-3.",
  URL =          "http://ieeexplore.ieee.org/servlet/opac?punumber=452",
  acknowledgement = ack-nhfb,
  meetingname =  "Data Compression Conference (3rd: 1993: Snowbird,
                 Utah)",
  remark =       "Cover title: Data Compression Conference,
                 proceedings.",
  series-URL =   "http://ieeexplore.ieee.org/xpl/conhome.jsp?punumber=1000177",
  sponsor =      "IEEE; Computer Society Technical Committee on Computer
                 Communications.",
  subject =      "Data compression (Computer science); Congresses",
}

@Proceedings{ACM:1994:CRP,
  editor =       "{ACM}",
  booktitle =    "{Conference record of POPL '94, 21st ACM
                 SIGPLAN-SIGACT Symposium on Principles of Programming
                 Languages: papers presented at the Symposium: Portland,
                 Oregon, January 17--21, 1994}",
  title =        "{Conference record of POPL '94, 21st ACM
                 SIGPLAN-SIGACT Symposium on Principles of Programming
                 Languages: papers presented at the Symposium: Portland,
                 Oregon, January 17--21, 1994}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "viii + 492",
  year =         "1994",
  ISBN =         "0-89791-636-0",
  ISBN-13 =      "978-0-89791-636-3",
  LCCN =         "QA76.7 .A15 1994",
  bibdate =      "Sat Sep 7 07:51:54 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.acm.org/pubs/contents/proceedings/plan/174675/index.html",
  abstract =     "The following topics were dealt with: programming
                 language principles; OOP; type theory; program
                 correctness; lambda calculus; garbage collection; logic
                 programming; scheduling; data flow graphs; functional
                 programming; and continuation passing.",
  acknowledgement = ack-nhfb,
  classification = "C4210 (Formal logic); C4240 (Programming and
                 algorithm theory); C6110J (Object-oriented
                 programming); C6120 (File organisation); C6140D (High
                 level languages); C6150C (Compilers, interpreters and
                 other processors)",
  confdate =     "17--21 Jan. 1994",
  conflocation = "Portland, OR, USA",
  confsponsor =  "ACM",
  keywords =     "Continuation passing; Data flow graphs; Functional
                 programming; Garbage collection; Lambda calculus; Logic
                 programming; OOP; Program correctness; Programming
                 language principles; Scheduling; Type theory",
  thesaurus =    "High level languages; Lambda calculus; Object-oriented
                 programming; Program compilers; Program verification;
                 Storage management; Type theory",
}

@Proceedings{ACM:1994:IPI,
  editor =       "{ACM}",
  booktitle =    "{ISSAC'94. Proceedings of the International Symposium
                 on Symbolic and Algebraic Computation}",
  title =        "{ISSAC'94. Proceedings of the International Symposium
                 on Symbolic and Algebraic Computation}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "ix + 359",
  year =         "1994",
  ISBN =         "0-89791-638-7",
  ISBN-13 =      "978-0-89791-638-7",
  LCCN =         "QA76.95.I59 1994",
  bibdate =      "Tue Sep 17 06:29:18 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/axiom.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  confdate =     "20--22 July 1994",
  conflocation = "Oxford, UK",
  confsponsor =  "ACM",
  pubcountry =   "USA",
}

@Proceedings{ACM:1994:PPT,
  editor =       "{ACM}",
  booktitle =    "{PODS '94. Proceedings of the Thirteenth ACM
                 SIGACT-SIGMOD-SIGART Symposium on Principles of
                 Database Systems, May 24--26, 1994, Minneapolis, MN}",
  title =        "{PODS '94. Proceedings of the Thirteenth ACM
                 SIGACT-SIGMOD-SIGART Symposium on Principles of
                 Database Systems, May 24--26, 1994, Minneapolis, MN}",
  volume =       "13",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "ix + 313",
  year =         "1994",
  ISBN =         "0-89791-642-5",
  ISBN-13 =      "978-0-89791-642-4",
  LCCN =         "QA 76.9 D3 A26 1994",
  bibdate =      "Sat Dec 7 16:52:15 MST 1996",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  keywords =     "PODS '94",
  source =       "Principles of database systems",
  sponsor =      "Association for Computing Machinery. Special Interest
                 Group for Automata and Computability Theory Association
                 for Computing Machinery. Special Interest Group for the
                 Management of data Association for Computing Machinery.
                 Special Interest Group for Artificial Intelligence.",
}

@Proceedings{ACM:1994:PTS,
  editor =       "{ACM}",
  booktitle =    "{Proceedings of the twenty-sixth annual ACM Symposium
                 on the Theory of Computing: Montreal, Quebec, Canada,
                 May 23--25, 1994}",
  title =        "{Proceedings of the twenty-sixth annual ACM Symposium
                 on the Theory of Computing: Montreal, Quebec, Canada,
                 May 23--25, 1994}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "ix + 822",
  year =         "1994",
  ISBN =         "0-89791-663-8",
  ISBN-13 =      "978-0-89791-663-9",
  LCCN =         "QA76 .A15 1994",
  bibdate =      "Thu Dec 3 07:11:18 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/stoc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order no. 508930.",
  acknowledgement = ack-nhfb,
  keywords =     "computational complexity --- congresses",
}

@Proceedings{Aoe:1994:CAS,
  editor =       "Jun-ichi Aoe",
  booktitle =    "{Computer Algorithms: String Pattern Matching
                 strategies}",
  title =        "{Computer Algorithms: String Pattern Matching
                 Strategies}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "ix + 281",
  year =         "1994",
  ISBN =         "0-8186-5461-9 (microfiche), 0-8186-5462-7 (hardcover),
                 0-8186-5460-0 (paperback)",
  ISBN-13 =      "978-0-8186-5461-9 (microfiche), 978-0-8186-5462-6
                 (hardcover), 978-0-8186-5460-2 (paperback)",
  LCCN =         "QA76.9.A43 C67 1994",
  bibdate =      "Sat Mar 23 12:07:55 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE Computer Society Press order number: 5462-05.
                 IEEE catalog number: 94EH0389-7",
  price =        "US\$56.00",
  acknowledgement = ack-nhfb,
}

@Proceedings{Banerjee:1994:LCP,
  editor =       "Uptal Banerjee and D. Gelernter and A. Nicolau and D.
                 Padua",
  booktitle =    "{Languages and compilers for parallel computing: 6th
                 international workshop, Portland, Oregon, USA, August
                 12--14, 1993: proceedings}",
  title =        "{Languages and compilers for parallel computing: 6th
                 international workshop, Portland, Oregon, USA, August
                 12--14, 1993: proceedings}",
  volume =       "768",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "xi + 655",
  year =         "1994",
  ISBN =         "3-540-57659-2 (Berlin), 0-387-57659-2 (New York)",
  ISBN-13 =      "978-3-540-57659-4 (Berlin), 978-0-387-57659-6 (New
                 York)",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA76.58 .W656 1993",
  bibdate =      "Sun Dec 22 10:18:08 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fortran3.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  price =        "DM122.00",
  series =       ser-LNCS,
  acknowledgement = ack-nhfb,
  classification = "C4240P (Parallel programming and algorithm theory);
                 C5440 (Multiprocessor systems and techniques); C6110P
                 (Parallel programming); C6120 (File organisation);
                 C6140D (High level languages); C6150C (Compilers,
                 interpreters and other processors)",
  keywords =     "Compilers; compilers (computer programs) ---
                 congresses; Data flow languages; Dynamic data
                 structures; Fine-grain parallelism; High performance
                 Fortran; Logic; Loop transformations; Parallel
                 computing languages; parallel processing (electronic
                 computers) --- congresses; Parallel program analysis;
                 programming languages (electronic computers) ---
                 congresses; Scalar analysis",
  pubcountry =   "Germany",
  thesaurus =    "Data structures; FORTRAN; Parallel algorithms;
                 Parallel languages; Parallel machines; Parallel
                 programming; Program compilers",
  xxvolume =     "4004464807",
}

@Proceedings{Botsford:1994:PCI,
  editor =       "J. Botsford and A. Gawman and M. Gentleman and E. Kidd
                 and K. Lyons and J. Slonim",
  booktitle =    "{Proceedings. CASCON '94. Integrated Solutions}",
  title =        "{Proceedings. CASCON '94. Integrated Solutions}",
  publisher =    "National Research Council of Canada",
  address =      "Ottawa, ON, Canada",
  pages =        "xxiv + 386",
  year =         "1994",
  bibdate =      "Wed Oct 30 06:22:08 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  confdate =     "31 Oct.--3 Nov. 1994",
  conflocation = "Toronto, Ont., Canada",
  confsponsor =  "IBM; Nat. Res. Council of Canada; Ind. Canada; Nat.
                 Sci. and Eng. Res. Council",
  numericalindex = "Memory size 4.2E+07 Byte",
  pubcountry =   "Canada",
}

@Proceedings{Bundy:1994:ADC,
  editor =       "Alan Bundy",
  booktitle =    "{Automated deduction, CADE-12: 12th International
                 Conference on Automated Deduction, Nancy, France, June
                 26--July 1, 1994: proceedings}",
  title =        "{Automated deduction, CADE-12: 12th International
                 Conference on Automated Deduction, Nancy, France, June
                 26--July 1, 1994: proceedings}",
  number =       "814",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "xvi + 848",
  year =         "1994",
  ISBN =         "3-540-58156-1, 0-387-58156-1",
  ISBN-13 =      "978-3-540-58156-7, 978-0-387-58156-9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA76.9.D337I58 1994",
  bibdate =      "Tue Oct 29 19:42:28 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       "Lecture Notes in Computer Science 1994",
  acknowledgement = ack-nhfb,
  searchkey =    "ti:gawk or gnu",
}

@Proceedings{Crochemore:1994:CPM,
  editor =       "Maxime Crochemore and Dan Gusfield",
  booktitle =    "{Combinatorial pattern matching: 5th annual symposium,
                 CPM 94, Asilomar, CA, USA, June 5--8, 1994:
                 proceedings}",
  title =        "{Combinatorial pattern matching: 5th annual symposium,
                 CPM 94, Asilomar, CA, USA, June 5--8, 1994:
                 proceedings}",
  volume =       "807",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "325",
  year =         "1994",
  CODEN =        "LNCSD9",
  DOI =          "????",
  ISBN =         "0-387-58094-8 (USA)",
  ISBN-13 =      "978-0-387-58094-4 (USA)",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA76.9.A43 C65 1994",
  bibdate =      "Fri Apr 12 07:15:01 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  URL =          "http://link.springer-ny.com/link/service/series/0558/tocs/t0807.htm;
                 http://www.springerlink.com/content/978-0-387-58094-4;
                 http://www.springerlink.com/openurl.asp?genre=issue&issn=0302-9743&volume=807",
  acknowledgement = ack-nhfb,
  keywords =     "combinatorial analysis --- congresses; computer
                 algorithms --- congresses",
}

@Proceedings{IEEE:1994:FAP,
  editor =       "{IEEE}",
  booktitle =    "{First Asia-Pacific Software Engineering Conference:
                 proceedings, December 7--9, 1994, Tokyo, Japan}",
  title =        "{First Asia-Pacific Software Engineering Conference:
                 proceedings, December 7--9, 1994, Tokyo, Japan}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xii + 459",
  year =         "1994",
  ISBN =         "0-8186-6960-8 (paper), 0-8186-6961-6 (microfiche)",
  ISBN-13 =      "978-0-8186-6960-6 (paper), 978-0-8186-6961-3
                 (microfiche)",
  LCCN =         "QA76.758.A77 1994",
  bibdate =      "Wed Oct 30 06:24:40 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  confdate =     "7--9 Dec. 1994",
  conflocation = "Tokyo, Japan",
  confsponsor =  "Special Interest Group on Software Eng. Inf. Process.
                 Soc. Japan",
  pubcountry =   "USA",
}

@Proceedings{IEEE:1994:PTC,
  editor =       "{IEEE}",
  booktitle =    "{Proceedings / the Tenth Conference on Artificial
                 Intelligence for Applications, March 1--4, 1994, San
                 Antonio, Texas}",
  title =        "{Proceedings / the Tenth Conference on Artificial
                 Intelligence for Applications, March 1--4, 1994, San
                 Antonio, Texas}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xvii + 511",
  year =         "1994",
  ISBN =         "0-8186-5550-X",
  ISBN-13 =      "978-0-8186-5550-0",
  LCCN =         "Q 334 C66 1994",
  bibdate =      "Wed Oct 30 05:56:55 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE Catalog No. 94CH3421-5.",
  acknowledgement = ack-nhfb,
  confdate =     "1--4 March 1994",
  conflocation = "San Antonia, TX, USA",
  confsponsor =  "IEEE; AAAI",
  pubcountry =   "USA",
}

@Proceedings{Muller:1994:ICS,
  editor =       "Hausi A. Muller and Mari Georges",
  booktitle =    "{International Conference on Software Maintenance:
                 proceedings, September 19--23, 1994, Victoria, British
                 Columbia, Canada}",
  title =        "{International Conference on Software Maintenance:
                 proceedings, September 19--23, 1994, Victoria, British
                 Columbia, Canada}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xvi + 449",
  year =         "1994",
  ISBN =         "0-8186-6330-8",
  ISBN-13 =      "978-0-8186-6330-7",
  LCCN =         "QA76.76.S64I58 1994",
  bibdate =      "Wed Oct 30 05:56:55 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  confdate =     "19--23 Sept. 1994",
  conflocation = "Victoria, BC, Canada",
  confsponsor =  "IEEE Comput. Soc. Tech. Council on Software Eng.; ACM;
                 Software Maintenance Assoc.; Software Manage. News",
  pubcountry =   "USA",
}

@Proceedings{Snodgrass:1994:PAS,
  editor =       "Richard T. Snodgrass and Marianne Winslett",
  booktitle =    "{Proceedings of the 1994 ACM SIGMOD International
                 Conference on Management of Data / SIGMOD '94,
                 Minneapolis, Minnesota, May 24--27, 1994}",
  title =        "{Proceedings of the 1994 ACM SIGMOD International
                 Conference on Management of Data / SIGMOD '94,
                 Minneapolis, Minnesota, May 24--27, 1994}",
  volume =       "23(2)",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "xv + 526",
  year =         "1994",
  ISBN =         "0-89791-639-5",
  ISBN-13 =      "978-0-89791-639-4",
  ISSN =         "0163-5808 (print), 1943-5835 (electronic)",
  LCCN =         "QA 76.9 D3 S53 v.23 no.2 1994",
  bibdate =      "Wed Oct 25 08:47:37 MDT 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       j-SIGMOD,
  acknowledgement = ack-nhfb,
  keywords =     "SIGMOD '94",
}

@Proceedings{ACM:1995:CRP,
  editor =       "{ACM}",
  booktitle =    "{Conference record of POPL '95, 22nd ACM
                 SIGPLAN-SIGACT Symposium on Principles of Programming
                 Languages: papers presented at the Symposium: San
                 Francisco, California, January 22--25, 1995}",
  title =        "{Conference record of POPL '95, 22nd ACM
                 SIGPLAN-SIGACT Symposium on Principles of Programming
                 Languages: papers presented at the Symposium: San
                 Francisco, California, January 22--25, 1995}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "vii + 408",
  year =         "1995",
  ISBN =         "0-89791-692-1",
  ISBN-13 =      "978-0-89791-692-9",
  LCCN =         "QA 76.7 A11 1995",
  bibdate =      "Mon May 3 17:47:49 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order number: 549950.",
  URL =          "http://www.acm.org/pubs/contents/proceedings/plan/199448/index.html",
  acknowledgement = ack-nhfb,
  alttitle =     "Proceedings, 22nd ACM SIGPLAN-SIGACT Symposium on
                 Principles of Programming Languages POPL '95",
  annote =       "Sponsored by the Association for Computing Machinery,
                 Special Interest Group on Algorithms and Computation
                 Theory (SIGACT), Special Interest Group on Programming
                 Languages (SIGPLAN).",
  keywords =     "Programming languages (Electronic computers) ---
                 Congresses.",
}

@Proceedings{ACM:1995:PPF,
  editor =       "{ACM}",
  booktitle =    "{PODS '95. Proceedings of the Fourteenth ACM
                 SIGACT-SIGMOD-SIGART Symposium on Principles of
                 Database Systems, PODS 1995, San Jose, California, May
                 22--25, 1995}",
  title =        "{PODS '95. Proceedings of the Fourteenth ACM
                 SIGACT-SIGMOD-SIGART Symposium on Principles of
                 Database Systems, PODS 1995, San Jose, California, May
                 22--25, 1995}",
  volume =       "14",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "viii + 292",
  year =         "1995",
  ISBN =         "0-89791-730-8",
  ISBN-13 =      "978-0-89791-730-8",
  LCCN =         "QA 76.9 D3 A26 1995",
  bibdate =      "Sat Dec 7 16:52:15 MST 1996",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  annote =       "Held in conjunction with the 1995 ACM SIGMOD
                 international conference on management of data; Also
                 known as PODS 1995",
  keywords =     "PODS '95",
  source =       "Principles of database systems",
  sponsor =      "Association for Computing Machinery. Special Interest
                 Group for Algorithms and Computation Theory Association
                 for Computing Machinery. Special Interest Group for the
                 Management of Data Association for Computing Machinery.
                 Special Interest Group for Artificial Intelligence.",
}

@Proceedings{ACM:1995:PTS,
  editor =       "ACM",
  booktitle =    "{Proceedings of the twenty-seventh annual ACM
                 Symposium on Theory of Computing: Las Vegas, Nevada,
                 May 29--June 1, 1995}",
  title =        "{Proceedings of the twenty-seventh annual ACM
                 Symposium on Theory of Computing: Las Vegas, Nevada,
                 May 29--June 1, 1995}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "viii + 763",
  year =         "1995",
  ISBN =         "0-89791-718-9",
  ISBN-13 =      "978-0-89791-718-6",
  LCCN =         "QA 76.6 A13 1995",
  bibdate =      "Thu Dec 3 07:11:18 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/stoc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order no. 508950.",
  acknowledgement = ack-nhfb,
  keywords =     "computational complexity --- congresses",
}

@Proceedings{Galil:1995:CPM,
  editor =       "Zvi Galil and E. Ukkonen",
  booktitle =    "{Combinatorial pattern matching: 6th annual symposium,
                 CPM 95, Espoo, Finland, July 5--7, 1995: proceedings}",
  title =        "{Combinatorial pattern matching: 6th annual symposium,
                 CPM 95, Espoo, Finland, July 5--7, 1995: proceedings}",
  volume =       "937",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "viii + 407",
  year =         "1995",
  CODEN =        "LNCSD9",
  DOI =          "????",
  ISBN =         "3-540-60044-2",
  ISBN-13 =      "978-3-540-60044-2",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA76.9.A43 C65 1995",
  bibdate =      "Fri Apr 12 07:15:03 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  URL =          "http://link.springer-ny.com/link/service/series/0558/tocs/t0937.htm;
                 http://www.springerlink.com/content/978-3-540-60044-2;
                 http://www.springerlink.com/openurl.asp?genre=issue&issn=0302-9743&volume=937",
  acknowledgement = ack-nhfb,
  keywords =     "combinatorial analysis --- congresses; computer
                 algorithms --- congresses",
}

@Proceedings{IEEE:1995:ASF,
  editor =       "{IEEE}",
  booktitle =    "{36th Annual Symposium on Foundations of Computer
                 Science: October 23--25, 1995, Milwaukee, Wisconsin}",
  title =        "{36th Annual Symposium on Foundations of Computer
                 Science: October 23--25, 1995, Milwaukee, Wisconsin}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xiii + 735",
  year =         "1995",
  CODEN =        "ASFPDV",
  ISBN =         "0-7803-3121-4 (casebound), 0-8186-7183-1 (softbound),
                 0-8186-7184-X (microfiche)",
  ISBN-13 =      "978-0-7803-3121-1 (casebound), 978-0-8186-7183-8
                 (softbound), 978-0-8186-7184-5 (microfiche)",
  ISSN =         "0272-5428",
  LCCN =         "TK7885.A1 S92 1995",
  bibdate =      "Thu Dec 3 07:11:18 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE catalog number 95CB35834.",
  acknowledgement = ack-nhfb,
  keywords =     "electronic data processing --- congresses; machine
                 theory --- congresses",
}

@Proceedings{IEEE:1995:PNA,
  editor =       "{IEEE}",
  booktitle =    "{Proceedings: the nineteenth annual International
                 Computer Software and Applications Conference (COMPSAC
                 '95): August 9--11, 1995, Dallas, Texas}",
  title =        "{Proceedings: the nineteenth annual International
                 Computer Software and Applications Conference (COMPSAC
                 '95): August 9--11, 1995, Dallas, Texas}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xviii + 431",
  year =         "1995",
  ISBN =         "0-8186-7119-X",
  ISBN-13 =      "978-0-8186-7119-7",
  LCCN =         "QA76.6 .I5 1995",
  bibdate =      "Wed Oct 30 06:22:08 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE Catalog No. 95CB35838.",
  acknowledgement = ack-nhfb,
  confdate =     "9--11 Aug. 1995",
  conflocation = "Dallas, TX, USA",
  confsponsor =  "IEEE Comput. Soc",
  pubcountry =   "USA",
}

@Proceedings{Levelt:1995:IPI,
  editor =       "A. H. M. Levelt",
  booktitle =    "{ISSAC '95: Proceedings of the 1995 International
                 Symposium on Symbolic and Algebraic Computation: July
                 10--12, 1995, Montr{\'e}al, Canada}",
  title =        "{ISSAC '95: Proceedings of the 1995 International
                 Symposium on Symbolic and Algebraic Computation: July
                 10--12, 1995, Montr{\'e}al, Canada}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "xviii + 314",
  year =         "1995",
  ISBN =         "0-89791-699-9",
  ISBN-13 =      "978-0-89791-699-8",
  LCCN =         "QA 76.95 I59 1995",
  bibdate =      "Thu Sep 26 05:34:21 MDT 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/issac.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order number: 505950",
  series =       "ISSAC -PROCEEDINGS- 1995",
  abstract =     "The following topics were dealt with: differential
                 equations; visualisation; algebraic numbers;
                 algorithms; systems; polynomial and differential
                 algebra; seminumerical methods; greatest common
                 divisors; and.",
  acknowledgement = ack-nhfb,
  classification = "C4100 (Numerical analysis); C4170 (Differential
                 equations); C7310 (Mathematics computing)",
  confdate =     "10--12 July 1995",
  conflocation = "Montr{\'e}al, Que., Canada",
  confsponsor =  "ACM",
  keywords =     "algebra --- data processing --- congresses; Algebraic
                 numbers; Algorithms; Differential algebra; Differential
                 equations; Greatest common divisors; mathematics ---
                 data processing --- congresses; Polynomial;
                 Seminumerical methods; Systems; Visualisation",
  pubcountry =   "USA",
  source =       "ISSAC '95",
  thesaurus =    "Data visualisation; Differential equations; Group
                 theory; Numerical analysis; Symbol manipulation",
}

@Proceedings{Storer:1995:DDC,
  editor =       "James A. (James Andrew) Storer and Martin Cohn",
  key =          "DCC'95",
  booktitle =    "{DCC '95, Data Compression Conference: March 28--30,
                 1995, Snowbird, Utah}",
  title =        "{DCC '95, Data Compression Conference: March 28--30,
                 1995, Snowbird, Utah}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xv + 503",
  year =         "1995",
  DOI =          "https://doi.org/10.1109/DCC.1995.515489",
  ISBN =         "0-8186-7012-6",
  ISBN-13 =      "978-0-8186-7012-1",
  ISSN =         "1068-0314",
  LCCN =         "????",
  bibdate =      "Tue Feb 5 05:42:24 MST 2013",
  bibsource =    "catalog.princeton.edu:7090/voyager;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE catalog number 95TH8037. IEEE Computer Society
                 Press order number PR07010.",
  URL =          "http://ieeexplore.ieee.org/servlet/opac?punumber=3874",
  acknowledgement = ack-nhfb,
  meetingname =  "Data Compression Conference (5th: 1995: Snowbird,
                 Utah)",
  series-URL =   "http://ieeexplore.ieee.org/xpl/conhome.jsp?punumber=1000177",
  subject =      "Data compression (Computer science); Congresses",
}

@Proceedings{Hirschberg:1996:CPM,
  editor =       "Dan Hirschberg and Gene Myers",
  booktitle =    "{Combinatorial pattern matching: 7th Annual Symposium,
                 CPM 96, Laguna Beach, California, June 10--12, 1996:
                 proceedings}",
  title =        "{Combinatorial pattern matching: 7th Annual Symposium,
                 CPM 96, Laguna Beach, California, June 10--12, 1996:
                 proceedings}",
  volume =       "1075",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "viii + 391",
  year =         "1996",
  CODEN =        "LNCSD9",
  DOI =          "????",
  ISBN =         "3-540-61258-0",
  ISBN-13 =      "978-3-540-61258-2",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA76.9.A43 C65 1996",
  bibdate =      "Sat Dec 21 16:06:37 MST 1996",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  URL =          "http://link.springer-ny.com/link/service/series/0558/tocs/t1075.htm;
                 http://www.springerlink.com/content/978-3-540-61258-2;
                 http://www.springerlink.com/openurl.asp?genre=issue&issn=0302-9743&volume=1075",
  acknowledgement = ack-nhfb,
  keywords =     "Combinatorial analysis --- Congresses; Computer
                 algorithms --- Congresses",
}

@Proceedings{Storer:1996:DDC,
  editor =       "James A. (James Andrew) Storer and Martin Cohn",
  key =          "DCC'96",
  booktitle =    "{DCC '96: Data Compression Conference, March 31--April
                 3, 1996, Snowbird, Utah}",
  title =        "{DCC '96: Data Compression Conference, March 31--April
                 3, 1996, Snowbird, Utah}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xiv + 474",
  year =         "1996",
  ISBN =         "0-8186-7358-3 (case), 0-8186-7359-1 (microfiche)",
  ISBN-13 =      "978-0-8186-7358-0 (case), 978-0-8186-7359-7
                 (microfiche)",
  ISSN =         "1068-0314",
  LCCN =         "QA76.9.D33 D37 1996",
  bibdate =      "Tue Feb 5 05:42:26 MST 2013",
  bibsource =    "catalog.princeton.edu:7090/voyager;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE Order Plan catalog number 96TB100013. IEEE
                 Computer Society Press order number PR07358",
  URL =          "http://ieeexplore.ieee.org/servlet/opac?punumber=3509",
  acknowledgement = ack-nhfb,
  meetingname =  "Data Compression Conference (6th: 1996: Snowbird,
                 Utah)",
  series-URL =   "http://ieeexplore.ieee.org/xpl/conhome.jsp?punumber=1000177",
  subject =      "Data compression (Computer science); Congresses",
}

@Book{Zhang:1996:AMI,
  editor =       "H. (Hantao) Zhang",
  booktitle =    "Automated Mathematical Induction",
  title =        "Automated Mathematical Induction",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "224",
  year =         "1996",
  DOI =          "https://doi.org/10.1007/978-94-009-1675-3",
  ISBN =         "94-010-7250-7 (print), 94-009-1675-2 (e-book)",
  ISBN-13 =      "978-94-010-7250-2 (print), 978-94-009-1675-3
                 (e-book)",
  LCCN =         "Q334-342",
  bibdate =      "Tue Mar 14 12:17:31 MDT 2017",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/agm.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://public.eblib.com/choice/publicfullrecord.aspx?p=3102529",
  abstract =     "Two decades ago, Boyer and Moore built one of the
                 first automated theorem provers that was capable of
                 proofs by mathematical induction. Today, the
                 Boyer--Moore theorem prover remains the most successful
                 in the field. For a long time, the research on
                 automated mathematical induction was confined to very
                 few people. In recent years, as more people realize the
                 importance of automated inductive reasoning to the use
                 of formal methods of software and hardware development,
                 more automated inductive proof systems have been
                 built.\par

                 Three years ago, the interested researchers in the
                 field formed two consortia on automated inductive
                 reasoning --- the MInd consortium in Europe and the
                 IndUS consortium in the United States. The two
                 consortia organized three joint workshops in
                 1992--1995. There will be another one in 1996.
                 Following the suggestions of Alan Bundy and Deepak
                 Kapur, this book documents advances in the
                 understanding of the field and in the power of the
                 theorem provers that can be built.\par

                 In the first of six papers, the reader is provided with
                 a tutorial study of the Boyer--Moore theorem prover.
                 The other five papers present novel ideas that could be
                 used to build theorem provers more powerful than the
                 Boyer-Moore prover.",
  acknowledgement = ack-nhfb,
  subject =      "Computer science; Logic; Artificial intelligence;
                 Logic, Symbolic and mathematical; Artificial
                 intelligence; Computer science; Logic; Logic, Symbolic
                 and mathematical",
  tableofcontents = "Induction Using Term Orders \\
                 New Uses of Linear Arithmetic in Automated Theorem
                 Proving by Induction \\
                 Productive Use of Failure in Inductive Proof \\
                 Middle-Out Reasoning for Synthesis and Induction \\
                 A Calculus for and Termination of Rippling \\
                 Interaction with the Boyer Moore Theorem Prover: A
                 Tutorial Study Using the Arithmetic--Geometric Mean
                 Theorem",
}

@Proceedings{ACM:1997:PEA,
  editor =       "{ACM}",
  booktitle =    "{Proceedings of the Eighth Annual ACM--SIAM Symposium
                 on Discrete Algorithms, New Orleans, Louisiana, January
                 5--7, 1997}",
  title =        "{Proceedings of the Eighth Annual ACM-SIAM Symposium
                 on Discrete Algorithms, New Orleans, Louisiana, January
                 5--7, 1997}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "788",
  year =         "1997",
  CODEN =        "PAAAF2",
  ISBN =         "0-89871-390-0",
  ISBN-13 =      "978-0-89871-390-9",
  LCCN =         "????",
  bibdate =      "Thu Sep 11 18:03:49 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Proceedings{ACM:1997:PPS,
  editor =       "{ACM}",
  booktitle =    "{PODS '97. Proceedings of the Sixteenth ACM
                 SIG-SIGMOD-SIGART Symposium on Principles of Database
                 Systems, May 12--14, 1997, Tucson, Arizona}",
  title =        "{PODS '97. Proceedings of the Sixteenth ACM
                 SIG-SIGMOD-SIGART Symposium on Principles of Database
                 Systems, May 12--14, 1997, Tucson, Arizona}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "viii + 268",
  year =         "1997",
  ISBN =         "0-89791-910-6",
  ISBN-13 =      "978-0-89791-910-4",
  LCCN =         "QA 76.9 D3 A26 1997",
  bibdate =      "Wed Oct 25 05:41:24 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  keywords =     "PODS '97",
}

@Proceedings{ACM:1997:PTN,
  editor =       "{ACM}",
  booktitle =    "{Proceedings of the twenty-ninth annual ACM Symposium
                 on the Theory of Computing: El Paso, Texas, May 4--6,
                 1997}",
  title =        "{Proceedings of the twenty-ninth annual ACM Symposium
                 on the Theory of Computing: El Paso, Texas, May 4--6,
                 1997}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "ix + 751",
  year =         "1997",
  ISBN =         "0-89791-888-6",
  ISBN-13 =      "978-0-89791-888-6",
  LCCN =         "QA76.5 .A849 1997",
  bibdate =      "Thu Dec 3 07:11:18 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/stoc1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order no. 508970.",
  acknowledgement = ack-nhfb,
  keywords =     "computational complexity --- congresses",
}

@Proceedings{Apostolico:1997:CPM,
  editor =       "Alberto Apostolico and Jotun Hein",
  booktitle =    "{Combinatorial pattern matching: 8th Annual Symposium,
                 CPM 97, Aarhus, Denmark, June 30--July 2, 1997:
                 proceedings}",
  title =        "{Combinatorial pattern matching: 8th Annual Symposium,
                 CPM 97, Aarhus, Denmark, June 30--July 2, 1997:
                 proceedings}",
  volume =       "1264",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "viii + 274",
  year =         "1997",
  CODEN =        "LNCSD9",
  DOI =          "????",
  ISBN =         "3-540-63220-4",
  ISBN-13 =      "978-3-540-63220-7",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA76.9.A43 S88 1997",
  bibdate =      "Mon Aug 25 09:50:07 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  URL =          "http://link.springer-ny.com/link/service/series/0558/tocs/t1264.htm;
                 http://www.springerlink.com/content/978-3-540-63220-7;
                 http://www.springerlink.com/openurl.asp?genre=issue&issn=0302-9743&volume=1264",
  acknowledgement = ack-nhfb,
  keywords =     "combinatorial analysis --- congresses; computer
                 algorithms --- congresses",
}

@Proceedings{IEEE:1997:ASF,
  editor =       "{IEEE}",
  booktitle =    "{38th Annual Symposium on Foundations of Computer
                 Science: October 20--22, 1997, Miami Beach, Florida}",
  title =        "{38th Annual Symposium on Foundations of Computer
                 Science: October 20--22, 1997, Miami Beach, Florida}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xiii + 606",
  year =         "1997",
  CODEN =        "ASFPDV",
  ISBN =         "0-8186-8197-7, 0-8186-8198-5 (casebound),
                 0-8186-8199-3 (microfiche)",
  ISBN-13 =      "978-0-8186-8197-4, 978-0-8186-8198-1 (casebound),
                 978-0-8186-8199-8 (microfiche)",
  ISSN =         "0272-5428",
  LCCN =         "TK7885.A1 .S92 1997",
  bibdate =      "Thu Dec 3 07:11:18 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/focs1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE catalog number 97CB36150. IEEE Computer Society
                 Press order number PR08197.",
  acknowledgement = ack-nhfb,
  keywords =     "electronic data processing --- congresses; machine
                 theory --- congresses",
}

@Proceedings{ACM:1998:PPA,
  editor =       "{ACM}",
  booktitle =    "{PODS '98. Proceedings of the ACM
                 SIGACT--SIGMOD--SIGART Symposium on Principles of
                 Database Systems, June 1--3, 1998, Seattle,
                 Washington}",
  title =        "{PODS '98. Proceedings of the ACM
                 SIGACT--SIGMOD--SIGART Symposium on Principles of
                 Database Systems, June 1--3, 1998, Seattle,
                 Washington}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "ix + 286",
  year =         "1998",
  ISBN =         "0-89791-996-3",
  ISBN-13 =      "978-0-89791-996-8",
  LCCN =         "QA76.9.D3 A296 1998",
  bibdate =      "Wed Oct 25 05:37:57 2000",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/series/sigmod_pods/;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order number 475980.",
  acknowledgement = ack-nhfb,
  keywords =     "PODS '98",
  source =       "Principles of database systems",
  sponsor =      "ACM; Special Interest Group for Algorithms and
                 Computation Theory. ACM; Special Interest Group for the
                 Management of Data. ACM; Special Interest Group for
                 Artificial Intelligence.",
}

@Proceedings{Farach-Colton:1998:CPM,
  editor =       "Martin Farach-Colton",
  booktitle =    "{Combinatorial pattern matching: 9th Annual Symposium,
                 CPM 98, Piscataway, New Jersey, USA, July 20--22, 1998:
                 Proceedings}",
  title =        "{Combinatorial pattern matching: 9th Annual Symposium,
                 CPM 98, Piscataway, New Jersey, USA, July 20--22, 1998:
                 Proceedings}",
  volume =       "1448",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "viii + 250",
  year =         "1998",
  CODEN =        "LNCSD9",
  DOI =          "????",
  ISBN =         "3-540-64739-2 (paperback)",
  ISBN-13 =      "978-3-540-64739-3 (paperback)",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA76.9.A43 C65 1998",
  bibdate =      "Sun Oct 11 16:16:40 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  URL =          "http://link.springer-ny.com/link/service/series/0558/tocs/t1448.htm;
                 http://www.springerlink.com/content/978-3-540-64739-3;
                 http://www.springerlink.com/openurl.asp?genre=issue&issn=0302-9743&volume=1448",
  acknowledgement = ack-nhfb,
  keywords =     "Combinatorial analysis --- Congresses; Computer
                 algorithms --- Congresses",
}

@Proceedings{IEEE:1998:ASF,
  editor =       "{IEEE}",
  booktitle =    "{39th Annual Symposium on Foundations of Computer
                 Science: proceedings: November 8--11, 1998, Palo Alto,
                 California}",
  title =        "{39th Annual Symposium on Foundations of Computer
                 Science: proceedings: November 8--11, 1998, Palo Alto,
                 California}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xiv + 745",
  year =         "1998",
  CODEN =        "ASFPDV",
  ISBN =         "0-8186-9172-7 (softbound), 0-7803-5229-7 (casebound),
                 0-8186-9174-3 (microfiche)",
  ISBN-13 =      "978-0-8186-9172-0 (softbound), 978-0-7803-5229-2
                 (casebound), 978-0-8186-9174-4 (microfiche)",
  ISSN =         "0272-5428",
  LCCN =         "QA267 .S95 1998 Sci-Eng",
  bibdate =      "Sat Oct 28 16:10:32 MDT 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE Catalog Number 98CB36280. IEEE Computer Society
                 Press Order Number PR9172.",
  acknowledgement = ack-nhfb,
  keywords =     "electronic data processing -- congresses; machine
                 theory -- congresses",
}

@Proceedings{Storer:1998:PDD,
  editor =       "James A. (James Andrew) Storer and Martin Cohn",
  key =          "DCC'98",
  booktitle =    "{Proceedings: DCC '98: Data Compression Conference:
                 March 30--April 1, 1998, Snowbird, Utah}",
  title =        "{Proceedings: DCC '98: Data Compression Conference:
                 March 30--April 1, 1998, Snowbird, Utah}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xvi + 589",
  year =         "1998",
  DOI =          "https://doi.org/10.1109/DCC.1998.672118",
  ISBN =         "0-8186-8406-2 (case), 0-8186-8408-9 (microfiche)",
  ISBN-13 =      "978-0-8186-8406-7 (case), 978-0-8186-8408-1
                 (microfiche)",
  ISSN =         "1068-0314",
  LCCN =         "QA76.9.D33 D232 1998",
  bibdate =      "Tue Feb 5 05:28:57 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.bibsys.no:2100/BIBSYS",
  note =         "IEEE Computer Society Press order number PR08406. IEEE
                 order plan catalog number 98TB100225.",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=672118",
  acknowledgement = ack-nhfb,
  meetingname =  "Data Compression Conference. 1998. Snowbird, Utah",
  series-URL =   "http://ieeexplore.ieee.org/xpl/conhome.jsp?punumber=1000177",
}

@Proceedings{ACM:1999:PEA,
  editor =       "{ACM}",
  booktitle =    "{Proceedings of the Eighteenth ACM
                 SIGMOD-SIGACT-SIGART Symposium on Principles of
                 Database Systems: PODS 1999: Philadelphia,
                 Pennsylvania, May 31--June 2, 1999}",
  title =        "{Proceedings of the Eighteenth ACM
                 SIGMOD-SIGACT-SIGART Symposium on Principles of
                 Database Systems: PODS 1999: Philadelphia,
                 Pennsylvania, May 31--June 2, 1999}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "ix + 369",
  year =         "1999",
  ISBN =         "1-58113-062-7",
  ISBN-13 =      "978-1-58113-062-1",
  LCCN =         "QA76.9.D3 A296 1999",
  bibdate =      "Wed Oct 25 05:30:41 MDT 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 OCLC Proceedings database",
  note =         "ACM order number 475990.",
  acknowledgement = ack-nhfb,
  keywords =     "PODS '99",
}

@Proceedings{ACM:1999:PTF,
  editor =       "{ACM}",
  booktitle =    "{Proceedings of the thirty-first annual ACM Symposium
                 on Theory of Computing: Atlanta, Georgia, May 1--4,
                 1999}",
  title =        "{Proceedings of the thirty-first annual ACM Symposium
                 on Theory of Computing: Atlanta, Georgia, May 1--4,
                 1999}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "xi + 790",
  year =         "1999",
  ISBN =         "1-58113-067-8",
  ISBN-13 =      "978-1-58113-067-6",
  LCCN =         "QA75.5 .A14 1999",
  bibdate =      "Sat Oct 28 16:10:32 MDT 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order number 508990.",
  acknowledgement = ack-nhfb,
  keywords =     "computational complexity -- congresses; computer
                 programming -- congresses; electronic data processing
                 -- congresses; electronic digital computers --
                 congresses",
}

@Proceedings{Atkinson:1999:PTF,
  editor =       "Malcolm P. Atkinson and Maria E. Orlowska and Patrick
                 Valduriez and Stanley B. Zdonik and Michael L. Brodie",
  booktitle =    "{Proceedings of the Twenty-fifth International
                 Conference on Very Large Databases, Edinburgh,
                 Scotland, UK, 7--10 September, 1999}",
  title =        "{Proceedings of the Twenty-fifth International
                 Conference on Very Large Databases, Edinburgh,
                 Scotland, UK, 7--10 September, 1999}",
  publisher =    pub-MORGAN-KAUFMANN,
  address =      pub-MORGAN-KAUFMANN:adr,
  pages =        "xviii + 761",
  year =         "1999",
  ISBN =         "1-55860-615-7",
  ISBN-13 =      "978-1-55860-615-9",
  LCCN =         "QA76.9.D3 I559 1999",
  bibdate =      "Tue Oct 24 18:36:50 MDT 2000",
  bibsource =    "DBLP; http://dblp.uni-trier.de;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldb.bib; OCLC
                 Proceedings database",
  note =         "Also known as VLDB'99",
  acknowledgement = ack-nhfb,
  keywords =     "very large data bases; VLDB",
}

@Book{Kernighan:1999:PP,
  author =       "Brian W. Kernighan and Rob Pike",
  booktitle =    "The Practice of Programming",
  title =        "The Practice of Programming",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "xii + 267",
  year =         "1999",
  ISBN =         "0-201-61586-X",
  ISBN-13 =      "978-0-201-61586-9",
  LCCN =         "QA76.6 .K48 1999",
  bibdate =      "Fri Jan 21 06:58:06 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/css.bib;
                 https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/mathcw.bib;
                 https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  price =        "US\$24.95, CAN\$37.50",
  URL =          "http://cm.bell-labs.com/cm/cs/tpop/code.html;
                 http://cseng.aw.com/bookdetail.qry?ISBN=0-201-61586-X&ptype=0;
                 http://tpop.awl.com",
  acknowledgement = ack-nhfb,
  remark =       "Section 9.2 discusses regular expressions.",
  shorttableofcontents = "Preface \\
                 1: Style / 1 \\
                 2: Algorithms and Data Structures / 29 \\
                 3: Design and Implementation / 61 \\
                 4: Interfaces / 85 \\
                 5: Debugging / 117 \\
                 6: Testing / 139 \\
                 7: Performance / 165 \\
                 8: Portability / 189 \\
                 9: Notation / 215 \\
                 Epilogue / 247 \\
                 Appendix: Collected Rules / 249 \\
                 Index / 253",
  tableofcontents = "Preface / ix \\
                 1: Style / 1 \\
                 1.1 Names / 3 \\
                 1.2 Expressions and Statements / 6 \\
                 1.3 Consistency and Idioms / 10 \\
                 1.4 Function Macros / 17 \\
                 1.5 Magic Numbers / 19 \\
                 1.6 Comments / 23 \\
                 1.7 Why Bother? / 27 \\
                 2: Algorithms and Data Structures / 29 \\
                 2.1 Searching / 30 \\
                 2.2 Sorting / 32 \\
                 2.3 Libraries / 34 \\
                 2.4 A Java Quicksort / 37 \\
                 2.5 O-Notation / 40 \\
                 2.6 Growing Arrays / 41 \\
                 2.7 Lists / 44 \\
                 2.8 Trees / 50 \\
                 2.9 Hash Tables / 55 \\
                 2.10 Summary / 58 \\
                 3: Design and Implementation / 61 \\
                 3.1 The Markov Chain Algorithm / 62 \\
                 3.2 Data Structure Alternatives / 64 \\
                 3.3 Building the Data Structure in C / 65 \\
                 3.4 Generating Output / 69 \\
                 3.5 Java / 71 \\
                 3.6 C++ / 76 \\
                 3.7 Awk and Perl / 78 \\
                 3.8 Performance / 80 \\
                 3.9 Lessons / 82 \\
                 4: Interfaces / 85 \\
                 4.1 Comma-Separated Values / 86 \\
                 4.2 A Prototype Library / 87 \\
                 4.3 A Library for Others / 91 \\
                 4.4 A C++ Implementation / 99 \\
                 4.5 Interface Principles / 103 \\
                 4.6 Resource Management / 106 \\
                 4.7 Abort, Retry. Fail? / 109 \\
                 4.8 User Interfaces / 113 \\
                 5: Debugging / 117 \\
                 5.1 Debuggers / 118 \\
                 5.2 Good Clues, Easy Bugs / 119 \\
                 5.3 No Clues, Hard Bugs / 123 \\
                 5.4 Last Resorts / 127 \\
                 5.5 Non-reproducible Bugs / 130 \\
                 5.6 Debugging Tools / 131 \\
                 5.7 Other People's Bugs / 135 \\
                 5.8 Summary / 136 \\
                 6: Testing / 139 \\
                 6.1 Test as You Write the Code / 140 \\
                 6.2 Systematic Testing / 145 \\
                 6.3 Test Automation / 149 \\
                 6.4 Test Scaffolds / 151 \\
                 6.5 Stress Tests / 155 \\
                 6.6 Tips for Testing / 158 \\
                 6.7 Who Does the Testing? / 159 \\
                 6.8 Testing the Markov Program / 160 \\
                 6.9 Summary / 162 \\
                 7: Performance / 165 \\
                 7.1 A Bottleneck / 166 \\
                 7.2 Timing and Profiling / 171 \\
                 7.3 Strategies for Speed / 175 \\
                 7.4 Tuning the Code / 178 \\
                 7.5 Space Efficiency / 182 \\
                 7.6 Estimation / 184 \\
                 7.7 Summary / 187 \\
                 8: Portability / 189 \\
                 8.1 Language / 190 \\
                 8.2 Headers and Libraries / 196 \\
                 8.3 Program Organization / 198 \\
                 8.4 Isolation / 202 \\
                 8.5 Data Exchange / 203 \\
                 8.6 Byte Order / 204 \\
                 8.7 Portability and Upgrade / 207 \\
                 8.8 Internationalization / 209 \\
                 8.9 Summary / 212 \\
                 9: Notation / 215 \\
                 9.1 Formatting Data / 216 \\
                 9.2 Regular Expressions / 222 \\
                 9.3 Programmable Tools / 228 \\
                 9.4 Interpreters, Compilers, and Virtual Machines / 231
                 \\
                 9.5 Programs that Write Programs / 237 \\
                 9.6 Using Macros to Generate Code / 240 \\
                 9.7 Compiling on the Fly / 241 \\
                 Epilogue / 247 \\
                 Appendix: Collected Rules / 249 \\
                 Index / 253",
}

@Proceedings{Paterson:1999:CPM,
  editor =       "Michael S. Paterson and Maxime Crochemore",
  booktitle =    "{Combinatorial pattern matching: 10th annual
                 symposium, CPM 99, Warwick University, UK, July 22--24,
                 1999: Proceedings}",
  title =        "{Combinatorial pattern matching: 10th annual
                 symposium, CPM 99, Warwick University, UK, July 22--24,
                 1999: Proceedings}",
  volume =       "1645",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "viii + 293",
  year =         "1999",
  CODEN =        "LNCSD9",
  DOI =          "????",
  ISBN =         "3-540-66278-2",
  ISBN-13 =      "978-3-540-66278-5",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA76.9.A43 C65 1999",
  bibdate =      "Mon Sep 13 11:29:25 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  URL =          "http://link.springer-ny.com/link/service/series/0558/tocs/t1645.htm;
                 http://www.springerlink.com/content/978-3-540-66278-5;
                 http://www.springerlink.com/openurl.asp?genre=issue&issn=0302-9743&volume=1645",
  acknowledgement = ack-nhfb,
  keywords =     "combinatorial analysis --- congresses; computer
                 algorithms --- congresses",
}

@Proceedings{Storer:1999:DPD,
  editor =       "James A. Storer and Martin Cohn",
  key =          "DCC'99",
  booktitle =    "{DCC '99: proceedings: Data Compression Conference:
                 March 29--31, 1999, Snowbird, Utah}",
  title =        "{DCC '99: proceedings: Data Compression Conference:
                 March 29--31, 1999, Snowbird, Utah}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xv + 566",
  year =         "1999",
  DOI =          "https://doi.org/10.1109/DCC.1999.755647",
  ISBN =         "0-7695-0096-X, 0-7695-0098-6 (microfiche)",
  ISBN-13 =      "978-0-7695-0096-6, 978-0-7695-0098-0 (microfiche)",
  ISSN =         "1068-0314",
  LCCN =         "QA76.9.D33 D37 1999",
  bibdate =      "Tue Feb 5 05:59:32 MST 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE Computer Society Order Number PR00096. IEEE Order
                 Plan Catalog Number PR00096.",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=755647",
  acknowledgement = ack-nhfb,
  meetingname =  "Data Compression Conference (1999: Snowbird, Utah)",
  series-URL =   "http://ieeexplore.ieee.org/xpl/conhome.jsp?punumber=1000177",
}

@Proceedings{ACM:2000:PTS,
  editor =       "{ACM}",
  booktitle =    "{Proceedings of the Thirty Second Annual ACM Symposium
                 on Theory of Computing: Portland, Oregon, May 21--23,
                 [2000]}",
  title =        "{Proceedings of the Thirty Second Annual ACM Symposium
                 on Theory of Computing: Portland, Oregon, May 21--23,
                 [2000]}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "ix + 756",
  year =         "2000",
  ISBN =         "1-58113-184-4",
  ISBN-13 =      "978-1-58113-184-0",
  bibdate =      "Sat Oct 28 16:10:32 MDT 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order number 508000.",
  acknowledgement = ack-nhfb,
  keywords =     "computational complexity; computer programming;
                 congresses; electronic data processing; electronic
                 digital computers; online resources",
}

@Proceedings{Giancarlo:2000:CPM,
  editor =       "Raffaele Giancarlo and David Sankoff",
  booktitle =    "{Combinatorial pattern matching: 11th annual
                 symposium, CPM 2000, Montr{\'e}al, Canada, June 21--23,
                 2000: Proceedings}",
  title =        "{Combinatorial pattern matching: 11th annual
                 symposium, CPM 2000, Montr{\'e}al, Canada, June 21--23,
                 2000: Proceedings}",
  volume =       "1848",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "xi + 422",
  year =         "2000",
  CODEN =        "LNCSD9",
  DOI =          "????",
  ISBN =         "3-540-67633-3",
  ISBN-13 =      "978-3-540-67633-1",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA267.A1 L43 no.1848",
  bibdate =      "Mon Oct 16 18:31:56 MDT 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  URL =          "http://link.springer-ny.com/link/service/series/0558/tocs/t1848.htm;
                 http://www.springerlink.com/content/978-3-540-67633-1;
                 http://www.springerlink.com/openurl.asp?genre=issue&issn=0302-9743&volume=1848",
  acknowledgement = ack-nhfb,
  keywords =     "combinatorial analysis --- congresses; computer
                 algorithms --- congresses",
}

@Proceedings{Amir:2001:CPM,
  editor =       "Amihood Amir and Gad M. Landau",
  booktitle =    "{Combinatorial pattern matching: 12th annual
                 symposium, CPM 2001, Jerusalem, Israel, July 1--4,
                 2001: Proceedings}",
  title =        "{Combinatorial pattern matching: 12th annual
                 symposium, CPM 2001, Jerusalem, Israel, July 1--4,
                 2001: Proceedings}",
  volume =       "2089",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "viii + 271",
  year =         "2001",
  CODEN =        "LNCSD9",
  DOI =          "????",
  ISBN =         "3-540-42271-4",
  ISBN-13 =      "978-3-540-42271-6",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA76.9.A43 C65 2001",
  bibdate =      "Thu Jan 17 11:49:19 MST 2002",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/kepler.bib;
                 https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS # " and " # ser-LNAI,
  URL =          "http://link.springer-ny.com/link/service/series/0558/tocs/t2089.htm;
                 http://www.springerlink.com/content/978-3-540-42271-6;
                 http://www.springerlink.com/openurl.asp?genre=issue&issn=0302-9743&volume=2089",
  acknowledgement = ack-nhfb,
  keywords =     "combinatorial analysis --- congresses; computer
                 algorithms --- congresses",
}

@Proceedings{Apers:2001:PTS,
  editor =       "Peter M. G. Apers and Paolo Atzeni and Stefano Ceri
                 and Stefano Paraboschi and Kotagiri Ramamohanarao and
                 Richard T. Snodgrass",
  booktitle =    "{Proceedings of the Twenty-seventh International
                 Conference on Very Large Data Bases: Roma, Italy,
                 11--14th September, 2001}",
  title =        "{Proceedings of the Twenty-seventh International
                 Conference on Very Large Data Bases: Roma, Italy,
                 11--14th September, 2001}",
  publisher =    pub-MORGAN-KAUFMANN,
  address =      pub-MORGAN-KAUFMANN:adr,
  pages =        "xviv + 727",
  year =         "2001",
  ISBN =         "1-55860-804-4",
  ISBN-13 =      "978-1-55860-804-7",
  LCCN =         "QA76.9.D3 I559 2001",
  bibdate =      "Fri Sep 22 14:23:22 2023",
  bibsource =    "DBLP; http://dblp.uni-trier.de;
                 http://www.dia.uniroma3.it/vldb2001/;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldb.bib",
  acknowledgement = ack-nhfb,
}

@Proceedings{Storer:2001:DPD,
  editor =       "James A. (James Andrew) Storer and Martin Cohn",
  key =          "DCC 2001",
  booktitle =    "{DCC 2001: proceedings, Data Compression Conference,
                 March 27--29, 2001, Snowbird, Utah}",
  title =        "{DCC 2001: proceedings, Data Compression Conference,
                 March 27--29, 2001, Snowbird, Utah}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xii + 533",
  year =         "2001",
  DOI =          "https://doi.org/10.1109/DCC.2001.917130",
  ISBN =         "0-7695-1031-0",
  ISBN-13 =      "978-0-7695-1031-6",
  ISSN =         "1068-0314",
  LCCN =         "QA76.9.D33 D37 2001",
  bibdate =      "Mon Jan 28 15:18:45 MST 2013",
  bibsource =    "clio-db.cc.columbia.edu:7090/Voyager;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE CSP number 01PR1031.",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=917130",
  acknowledgement = ack-nhfb,
  series-URL =   "http://ieeexplore.ieee.org/xpl/conhome.jsp?punumber=1000177",
  subject =      "Data compression (Computer science); Congresses",
}

@Proceedings{Apostolico:2002:CPM,
  editor =       "Alberto Apostolico and Masayuki Takeda",
  booktitle =    "{Combinatorial pattern matching: 13th annual
                 symposium, CPM 2002, Fukuoka, Japan, July 3--5, 2002:
                 Proceedings}",
  title =        "{Combinatorial Pattern Matching: 13th Annual
                 Symposium, CPM 2002 Fukuoka, Japan, July 3--5, 2002.
                 Proceedings}",
  volume =       "2373",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "viii + 288",
  year =         "2002",
  CODEN =        "LNCSD9",
  DOI =          "????",
  ISBN =         "3-540-43862-9 (paperback)",
  ISBN-13 =      "978-3-540-43862-5 (paperback)",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA76.9.A43 C65 2002",
  bibdate =      "Thu Nov 11 19:26:30 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  URL =          "http://link.springer-ny.com/link/service/series/0558/tocs/t2373.htm;
                 http://www.springerlink.com/content/978-3-540-43862-5;
                 http://www.springerlink.com/openurl.asp?genre=issue&issn=0302-9743&volume=2373",
  acknowledgement = ack-nhfb,
  keywords =     "combinatorial analysis --- congresses; computer
                 algorithms --- congresses",
}

@Proceedings{Bernstein:2002:VPT,
  editor =       "Philip A. Bernstein and others",
  booktitle =    "{VLDB 2002}: proceedings of the Twenty-Eighth
                 International Conference on Very Large Data Bases, Hong
                 Kong {SAR}, China, 20--23 August 2002",
  title =        "{VLDB 2002}: proceedings of the Twenty-Eighth
                 International Conference on Very Large Data Bases, Hong
                 Kong {SAR}, China, 20--23 August 2002",
  publisher =    pub-MORGAN-KAUFMANN,
  address =      pub-MORGAN-KAUFMANN:adr,
  pages =        "xxvi + 1118",
  year =         "2002",
  ISBN =         "1-55860-869-9",
  ISBN-13 =      "978-1-55860-869-6",
  LCCN =         "????",
  bibdate =      "Mon Dec 22 18:37:23 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 https://www.math.utah.edu/pub/tex/bib/vldb.bib",
  acknowledgement = ack-nhfb,
}

@Proceedings{Franklin:2002:PAS,
  editor =       "Michael Franklin and Bongki Moon and Anastassia
                 Ailamaki",
  booktitle =    "{Proceedings of the ACM SIGMOD International
                 Conference on Management of Data, June 3--6, 2002,
                 Madison, WI, USA}",
  title =        "{Proceedings of the ACM SIGMOD International
                 Conference on Management of Data, June 3--6, 2002,
                 Madison, WI, USA}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "xiv + 641",
  year =         "2002",
  ISBN =         "????",
  ISBN-13 =      "????",
  LCCN =         "????",
  bibdate =      "Fri Oct 31 08:15:18 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "ACM order number 475020.",
  acknowledgement = ack-nhfb,
}

@Proceedings{Storer:2002:DPD,
  editor =       "James A. (James Andrew) Storer and Martin Cohn",
  key =          "DCC 2002",
  booktitle =    "{DCC 2002: proceedings: Data Compression Conference:
                 April 2--4, 2002, Snowbird, Utah}",
  title =        "{DCC 2002: proceedings: Data Compression Conference:
                 April 2--4, 2002, Snowbird, Utah}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xi + 487",
  year =         "2002",
  DOI =          "https://doi.org/10.1109/DCC.2002.999937",
  ISBN =         "0-7695-1477-4, 0-7695-1478-2 (case), 0-7695-1479-0
                 (microfiche)",
  ISBN-13 =      "978-0-7695-1477-2, 978-0-7695-1478-9 (case),
                 978-0-7695-1479-6 (microfiche)",
  ISSN =         "1068-0314",
  LCCN =         "QA76.9.D33 D37 2002",
  bibdate =      "Mon Jan 28 15:18:45 MST 2013",
  bibsource =    "clio-db.cc.columbia.edu:7090/Voyager;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE Computer Society Order Number: PR01477.",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=999937",
  acknowledgement = ack-nhfb,
  meetingname =  "Data Compression Conference (2002: Snowbird, Utah)",
  series-URL =   "http://ieeexplore.ieee.org/xpl/conhome.jsp?punumber=1000177",
  subject =      "Data compression (Computer science); Congresses",
}

@Proceedings{Baeza-Yates:2003:CPM,
  editor =       "R. Baeza-Yates and Edgar Ch{\'a}vez and Maxime
                 Crochemore",
  booktitle =    "{Combinatorial pattern matching: 14th annual
                 symposium, CPM 2003, Morelia, Michoacan, Mexico, June
                 25--27, 2003: Proceedings}",
  title =        "{Combinatorial pattern matching: 14th annual
                 symposium, CPM 2003, Morelia, Michoacan, Mexico, June
                 25--27, 2003: Proceedings}",
  volume =       "2676",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "xi + 401",
  year =         "2003",
  CODEN =        "LNCSD9",
  DOI =          "????",
  ISBN =         "3-540-40311-6 (paperback)",
  ISBN-13 =      "978-3-540-40311-1 (paperback)",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA76.9.A43 C65 2003",
  bibdate =      "Thu Aug 21 09:09:03 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "Also available via the World Wide Web.",
  series =       ser-LNCS,
  URL =          "http://link.springer-ny.com/link/service/series/0558/tocs/t2676.htm;
                 http://www.springerlink.com/content/978-3-540-40311-1;
                 http://www.springerlink.com/openurl.asp?genre=issue&issn=0302-9743&volume=2676",
  acknowledgement = ack-nhfb,
  keywords =     "combinatorial analysis --- congresses; computer
                 algorithms --- congresses",
}

@Proceedings{Storer:2003:DPD,
  editor =       "James A. (James Andrew) Storer and Martin Cohn",
  key =          "DCC 2003",
  booktitle =    "{DCC 2003: proceedings: Data Compression Conference:
                 March 25--27, 2003, Snowbird, Utah}",
  title =        "{DCC 2003: proceedings: Data Compression Conference:
                 March 25--27, 2003, Snowbird, Utah}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xii + 461",
  year =         "2003",
  DOI =          "https://doi.org/10.1109/DCC.2003.1193990",
  ISBN =         "0-7695-1896-6",
  ISBN-13 =      "978-0-7695-1896-1",
  ISSN =         "1068-0314",
  LCCN =         "QA76.9.D33 D37 2003",
  bibdate =      "Mon Jan 28 15:18:45 MST 2013",
  bibsource =    "clio-db.cc.columbia.edu:7090/Voyager;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE Computer Society Order number PR01896.",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1193990",
  acknowledgement = ack-nhfb,
  meetingname =  "Data Compression Conference (2003: Snowbird, Utah)",
  series-URL =   "http://ieeexplore.ieee.org/xpl/conhome.jsp?punumber=1000177",
  subject =      "Data compression (Computer science); Congresses",
}

@Proceedings{Sahinalp:2004:CPM,
  editor =       "Suleyman Cenk Sahinalp and S. Muthukrishnan and Ugur
                 Dogrusoz",
  booktitle =    "{Combinatorial Pattern Matching: 15th annual
                 symposium, CPM 2004, Istanbul, Turkey, July 5--7, 2004:
                 Proceedings}",
  title =        "{Combinatorial Pattern Matching: 15th annual
                 symposium, CPM 2004, Istanbul, Turkey, July 5--7, 2004:
                 Proceedings}",
  volume =       "3109",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "xi + 486",
  year =         "2004",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/b98377",
  ISBN =         "3-540-22341-X",
  ISBN-13 =      "978-3-540-22341-2",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA76.9.A43 C65 2004",
  bibdate =      "Thu Nov 11 19:26:30 MST 2004",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  URL =          "http://link.springer-ny.com/link/service/series/0558/tocs/t3109.htm;
                 http://www.springerlink.com/content/978-3-540-22341-2;
                 http://www.springerlink.com/openurl.asp?genre=issue&issn=0302-9743&volume=3109;
                 http://www.springerlink.com/openurl.asp?genre=volume&id=doi:10.1007/b98377",
  acknowledgement = ack-nhfb,
}

@Proceedings{Storer:2004:DCC,
  editor =       "James A. (James Andrew) Storer and Martin Cohn",
  key =          "DCC 2004",
  booktitle =    "{Data Compression Conference, 2004. Proceedings. DCC
                 2004: Snowbird, Utah, USA: 23--25 March 2004}",
  title =        "{Data Compression Conference, 2004. Proceedings. DCC
                 2004: Snowbird, Utah, USA: 23--25 March 2004}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xiii + 579",
  year =         "2004",
  DOI =          "https://doi.org/10.1109/DCC.2004.1281440",
  ISBN =         "0-7695-2082-0",
  ISBN-13 =      "978-0-7695-2082-7",
  ISSN =         "1068-0314",
  LCCN =         "????",
  bibdate =      "Tue Feb 5 05:59:42 MST 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE Computer Society Order Number: P2082.",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1281440",
  acknowledgement = ack-nhfb,
  series-URL =   "http://ieeexplore.ieee.org/xpl/conhome.jsp?punumber=1000177",
}

@Proceedings{Apostolico:2005:CPM,
  editor =       "Alberto Apostolico and Maxime Crochemore and Kunsoo
                 Park",
  booktitle =    "{Combinatorial pattern matching: 16th annual
                 symposium, CPM 2005, Jeju Island, Korea, June 19--22,
                 2005, proceedings}",
  title =        "{Combinatorial pattern matching: 16th annual
                 symposium, CPM 2005, Jeju Island, Korea, June 19--22,
                 2005, proceedings}",
  volume =       "3537",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "????",
  year =         "2005",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/b137128",
  ISBN =         "3-540-26201-6 (softcover)",
  ISBN-13 =      "978-3-540-26201-5 (softcover)",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "????",
  bibdate =      "Thu Jun 2 09:16:25 MDT 2005",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.loc.gov:7090/Voyager",
  series =       ser-LNCS,
  URL =          "http://www.springerlink.com/content/978-3-540-26201-5;
                 http://www.springerlink.com/openurl.asp?genre=issue&issn=0302-9743&volume=3537;
                 http://www.springerlink.com/openurl.asp?genre=volume&id=doi:10.1007/b137128",
  acknowledgement = ack-nhfb,
}

@Proceedings{Storer:2005:DCC,
  editor =       "James A. (James Andrew) Storer and Martin Cohn",
  key =          "DCC 2005",
  booktitle =    "{Data Compression Conference, 2005. Proceedings. DCC
                 2005}",
  title =        "{Data Compression Conference, 2005. Proceedings. DCC
                 2005}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "????",
  year =         "2005",
  DOI =          "https://doi.org/10.1109/DCC.2005.28",
  ISBN =         "0-7695-2309-9",
  ISBN-13 =      "978-0-7695-2309-5",
  ISSN =         "1068-0314",
  LCCN =         "????",
  bibdate =      "Tue Feb 5 05:59:42 MST 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://ieeexplore.ieee.org/servlet/opac?punumber=9633;
                 http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1402158",
  acknowledgement = ack-nhfb,
  series-URL =   "http://ieeexplore.ieee.org/xpl/conhome.jsp?punumber=1000177",
}

@Proceedings{ACM:2006:PTF,
  editor =       "{ACM}",
  booktitle =    "{Proceedings of the Twenty-Fifth ACM
                 SIGMOD-SIGACT-SIGART Symposium on Principles of
                 Database Systems, Chicago, IL, USA June 26--28, 2006}",
  title =        "{Proceedings of the Twenty-Fifth ACM
                 SIGMOD-SIGACT-SIGART Symposium on Principles of
                 Database Systems, Chicago, IL, USA June 26--28, 2006}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "xii + 366",
  year =         "2006",
  ISBN =         "1-59593-318-2",
  ISBN-13 =      "978-1-59593-318-8",
  LCCN =         "QA76.9.D3 A296 2006",
  bibdate =      "Wed Aug 23 12:13:46 MDT 2006",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
}

@Proceedings{Lewenstein:2006:CPM,
  editor =       "Moshe Lewenstein and Gabriel Valiente",
  booktitle =    "{Combinatorial Pattern Matching: 17th Annual
                 Symposium, CPM 2006, Barcelona, Spain, July 5--7, 2006.
                 Proceedings}",
  title =        "{Combinatorial Pattern Matching: 17th Annual
                 Symposium, CPM 2006, Barcelona, Spain, July 5--7, 2006.
                 Proceedings}",
  volume =       "4009",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "222 (est.)",
  year =         "2006",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/11780441",
  ISBN =         "3-540-35455-7 (print), 3-540-35461-1 (e-book)",
  ISBN-13 =      "978-3-540-35455-0 (print), 978-3-540-35461-1
                 (e-book)",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "????",
  bibdate =      "Wed Dec 19 15:17:44 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  URL =          "http://www.springerlink.com/content/978-3-540-35461-1",
  acknowledgement = ack-nhfb,
}

@Proceedings{ACM:2007:PTS,
  editor =       "ACM",
  booktitle =    "{Proceedings of the Twenty-Sixth ACM
                 SIGMOD-SIGACT-SIGART Symposium on Principles of
                 Database Systems: PODS 2007, Beijing, China, June
                 11--13, 2007}",
  title =        "{Proceedings of the Twenty-Sixth ACM
                 SIGMOD-SIGACT-SIGART Symposium on Principles of
                 Database Systems: PODS 2007, Beijing, China, June
                 11--13, 2007}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "xi + 313",
  year =         "2007",
  ISBN =         "1-59593-685-8",
  ISBN-13 =      "978-1-59593-685-1",
  LCCN =         "????",
  bibdate =      "Fri Jun 20 13:10:08 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  meetingname =  "ACM SIGACT-SIGMOD-SIGART Symposium on Principles of
                 Database Systems (26th : 2007 : Beijing, China)",
}

@Proceedings{Ma:2007:CPM,
  editor =       "Bin Ma and Kaizhong Zhang",
  booktitle =    "{Combinatorial Pattern Matching: 18th Annual
                 Symposium, CPM 2007, London, Canada, July 9--11, 2007.
                 Proceedings}",
  title =        "{Combinatorial Pattern Matching: 18th Annual
                 Symposium, CPM 2007, London, Canada, July 9--11, 2007.
                 Proceedings}",
  volume =       "4580",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "194 (est.)",
  year =         "2007",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-540-73437-6",
  ISBN =         "3-540-73436-8 (print), 3-540-73437-6 (e-book)",
  ISBN-13 =      "978-3-540-73436-9 (print), 978-3-540-73437-6
                 (e-book)",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "????",
  bibdate =      "Wed Dec 19 15:21:26 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  URL =          "http://www.springerlink.com/content/978-3-540-73437-6",
  acknowledgement = ack-nhfb,
}

@Book{Oram:2007:BC,
  editor =       "Andrew Oram and Greg Wilson",
  booktitle =    "Beautiful code",
  title =        "Beautiful code",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  pages =        "xxi + 593",
  year =         "2007",
  ISBN =         "0-596-51004-7 (paperback)",
  ISBN-13 =      "978-0-596-51004-6 (paperback)",
  LCCN =         "QA76.758 .B428 2007; QA76.758 .B43 2007; QA76.758 .B48
                 2007",
  bibdate =      "Tue Aug 5 17:53:37 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/plan9.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 melvyl.cdlib.org:210/CDL90",
  series =       "Theory in practice",
  URL =          "http://www.oreilly.com/catalog/9780596510046",
  acknowledgement = ack-nhfb,
  subject =      "Software engineering",
}

@Proceedings{ACM:2008:SPA,
  editor =       "{ACM}",
  booktitle =    "{STOC '08: proceedings of the 40th Annual ACM
                 Symposium on Theory of Computing, Victoria, British
                 Columbia, Canada, May 17--20, 2008}",
  title =        "{STOC '08: proceedings of the 40th Annual ACM
                 Symposium on Theory of Computing, Victoria, British
                 Columbia, Canada, May 17--20, 2008}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "xv + 798",
  year =         "2008",
  ISBN =         "1-60558-047-3",
  ISBN-13 =      "978-1-60558-047-0",
  LCCN =         "QA76.6 .A152 2008",
  bibdate =      "Fri Jun 20 18:35:01 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.bibsys.no:2100/BIBSYS",
  acknowledgement = ack-nhfb,
}

@Proceedings{Aiello:2008:AMW,
  editor =       "William Anthony Aiello and others",
  booktitle =    "{Algorithms and models for the web-graph: fourth
                 international workshop, WAW 2006, Banff, Canada,
                 November 30--December 1, 2006: revised papers}",
  title =        "{Algorithms and models for the web-graph: fourth
                 international workshop, WAW 2006, Banff, Canada,
                 November 30--December 1, 2006: revised papers}",
  volume =       "4936",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "x + 165",
  year =         "2008",
  ISBN =         "3-540-78808-5, 3-540-78807-7",
  ISBN-13 =      "978-3-540-78808-9, 978-3-540-78807-2",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA76.9.A43 W39 2006",
  bibdate =      "Thu May 6 08:22:51 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/pagerank.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 melvyl.cdlib.org:210/CDL90",
  series =       ser-LNCS,
  acknowledgement = ack-nhfb,
  meetingname =  "WAW 2006 (2006: Banff, Alta.)",
  subject =      "computer algorithms; congresses; data mining; computer
                 science; data mining and knowledge discovery;
                 information systems applications (including Internet)",
}

@Proceedings{Ferragina:2008:CPM,
  editor =       "Paolo Ferragina and Gad M. Landau",
  booktitle =    "{Combinatorial Pattern Matching: 19th Annual
                 Symposium, CPM 2008, Pisa, Italy, June 18--20, 2008
                 Proceedings}",
  title =        "{Combinatorial Pattern Matching: 19th Annual
                 Symposium, CPM 2008, Pisa, Italy, June 18--20, 2008
                 Proceedings}",
  volume =       "5029",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "216 (est.)",
  year =         "2008",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-540-69068-9",
  ISBN =         "3-540-69066-2 (print), 3-540-69068-9 (e-book)",
  ISBN-13 =      "978-3-540-69066-5 (print), 978-3-540-69068-9
                 (e-book)",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "????",
  bibdate =      "Wed Dec 19 15:22:31 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  URL =          "http://www.springerlink.com/content/978-3-540-69068-9",
  acknowledgement = ack-nhfb,
}

@Proceedings{Lenzerini:2008:PTS,
  editor =       "Maurizio Lenzerini and Domenico Lembo",
  booktitle =    "{Proceedings of the Twenty-Seventh ACM
                 SIGMOD-SIGACT-SIGART Symposium on Principles of
                 Database Systems: PODS'08, Vancouver, BC, Canada, June
                 9--11, 2008}",
  title =        "{Proceedings of the Twenty-Seventh ACM
                 SIGMOD-SIGACT-SIGART Symposium on Principles of
                 Database Systems: PODS'08, Vancouver, BC, Canada, June
                 9--11, 2008}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "xi + 313",
  year =         "2008",
  ISBN =         "1-60560-932-3",
  ISBN-13 =      "978-1-60560-932-4",
  LCCN =         "????",
  bibdate =      "Fri Jun 20 13:10:29 MDT 2008",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hoare-c-a-r.bib;
                 https://www.math.utah.edu/pub/tex/bib/java2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  xxISBN =       "1-59593-685-8",
  xxisbn-13 =    "978-1-59593-685-1",
  xxnote =       "There is library confusion about the ISBN: I found
                 1-60558-152-6 (tagged invalid in catalog),
                 1-605-60932-3, 1-59593-685-9, 1-59593-685-X (invalid
                 checksum).",
}

@Proceedings{IEEE:2009:PAI,
  editor =       "{IEEE}",
  booktitle =    "{Proceedings of the 50th Annual IEEE Symposium on
                 Foundations of Computer Science: October 25--27, 2009,
                 Atlanta, Georgia, USA}",
  title =        "{Proceedings of the 50th Annual IEEE Symposium on
                 Foundations of Computer Science: October 25--27, 2009,
                 Atlanta, Georgia, USA}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xvi + 835",
  year =         "2009",
  ISBN =         "0-7695-3850-9",
  ISBN-13 =      "978-0-7695-3850-1",
  ISSN =         "0272-5428",
  LCCN =         "QA76 .S95 2009",
  bibdate =      "Thu May 6 08:34:02 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/focs2000.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 melvyl.cdlib.org:210/CDL90",
  note =         "IEEE Computer Society order number P3850.",
  acknowledgement = ack-nhfb,
  subject =      "electronic data processing; congresses; machine
                 theory",
}

@Proceedings{Kucherov:2009:CPM,
  editor =       "Gregory Kucherov and Esko Ukkonen",
  booktitle =    "{Combinatorial Pattern Matching: 20th Annual
                 Symposium, CPM 2009 Lille, France, June 22--24, 2009
                 Proceedings}",
  title =        "{Combinatorial Pattern Matching: 20th Annual
                 Symposium, CPM 2009 Lille, France, June 22--24, 2009
                 Proceedings}",
  volume =       "5577",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "235 (est.)",
  year =         "2009",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-02441-2",
  ISBN =         "3-642-02440-8 (print), 3-642-02441-6 (e-book)",
  ISBN-13 =      "978-3-642-02440-5 (print), 978-3-642-02441-2
                 (e-book)",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "????",
  bibdate =      "Wed Dec 19 15:25:32 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  URL =          "http://www.springerlink.com/content/978-3-642-02441-2",
  acknowledgement = ack-nhfb,
}

@Proceedings{Storer:2009:DPD,
  editor =       "James A. (James Andrew) Storer and Michael W.
                 Marcellin",
  key =          "DCC 2009",
  booktitle =    "{DCC 2009: Proceedings Data Compression Conference:
                 Snowbird, Utah, USA, 16--28 March 2011}",
  title =        "{DCC 2009: Proceedings Data Compression Conference:
                 Snowbird, Utah, USA, 16--28 March 2011}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  year =         "2009",
  DOI =          "https://doi.org/10.1109/DCC.2009.93",
  ISBN =         "0-7695-3592-5",
  ISBN-13 =      "978-0-7695-3592-0",
  ISSN =         "1068-0314",
  LCCN =         "????",
  bibdate =      "Tue Feb 05 12:50:20 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE Computer Society Order Number P3592. BMS Part
                 Number CFP09DCC-PRT.",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4976436",
  acknowledgement = ack-nhfb,
  series-URL =   "http://ieeexplore.ieee.org/xpl/conhome.jsp?punumber=1000177",
}

@Proceedings{Amir:2010:CPM,
  editor =       "Amihood Amir and Laxmi Parida",
  booktitle =    "{Combinatorial Pattern Matching: 21st Annual
                 Symposium, CPM 2010, New York, NY, USA, June 21--23,
                 2010. Proceedings}",
  title =        "{Combinatorial Pattern Matching: 21st Annual
                 Symposium, CPM 2010, New York, NY, USA, June 21--23,
                 2010. Proceedings}",
  volume =       "6129",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "226 (est.)",
  year =         "2010",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-13509-5",
  ISBN =         "3-642-13508-0 (print), 3-642-13509-9 (e-book)",
  ISBN-13 =      "978-3-642-13508-8 (print), 978-3-642-13509-5
                 (e-book)",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "????",
  bibdate =      "Wed Dec 19 15:20:22 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  URL =          "http://www.springerlink.com/content/978-3-642-13509-5",
  acknowledgement = ack-nhfb,
}

@Proceedings{Storer:2010:DPD,
  editor =       "James A. (James Andrew) Storer and Michael W.
                 Marcellin",
  key =          "DCC 2010",
  booktitle =    "{DDC 2010: proceedings: Data Compression Conference:
                 24--26 March 2010, Snowbird, Utah}",
  title =        "{DDC 2010: proceedings: Data Compression Conference:
                 24--26 March 2010, Snowbird, Utah}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  year =         "2010",
  DOI =          "https://doi.org/10.1109/DCC.2010.105",
  ISBN =         "0-7695-3994-7",
  ISBN-13 =      "978-0-7695-3994-2",
  ISSN =         "1068-0314",
  LCCN =         "????",
  bibdate =      "Mon Jan 28 15:10:39 MST 2013",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib;
                 z3950.bibsys.no:2100/BIBSYS",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5453521",
  acknowledgement = ack-nhfb,
  meetingname =  "Data Compression Conference",
  series-URL =   "http://ieeexplore.ieee.org/xpl/conhome.jsp?punumber=1000177",
}

@Proceedings{Giancarlo:2011:CPM,
  editor =       "Raffaele Giancarlo and Giovanni Manzini",
  booktitle =    "{Combinatorial Pattern Matching: 22nd Annual
                 Symposium, CPM 2011, Palermo, Italy, June 27--29, 2011.
                 Proceedings}",
  title =        "{Combinatorial Pattern Matching: 22nd Annual
                 Symposium, CPM 2011, Palermo, Italy, June 27--29, 2011.
                 Proceedings}",
  volume =       "6661",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "231 (est.)",
  year =         "2011",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-21458-5",
  ISBN =         "3-642-21457-6 (print), 3-642-21458-4 (e-book)",
  ISBN-13 =      "978-3-642-21457-8 (print), 978-3-642-21458-5
                 (e-book)",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "????",
  bibdate =      "Wed Dec 19 15:23:18 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  URL =          "http://www.springerlink.com/content/978-3-642-21458-5",
  acknowledgement = ack-nhfb,
}

@Proceedings{Lenzerini:2011:PPT,
  editor =       "Maurizio Lenzerini",
  booktitle =    "{PODS'11: Proceedings of the thirtieth ACM
                 SIGMOD-SIGACT-SIGART symposium on Principles of
                 database systems: June 13--15, 2011, Athens, Greece}",
  title =        "{PODS'11: Proceedings of the thirtieth ACM
                 SIGMOD-SIGACT-SIGART symposium on Principles of
                 database systems: June 13--15, 2011, Athens, Greece}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "322",
  year =         "2011",
  ISBN =         "1-4503-0660-8",
  ISBN-13 =      "978-1-4503-0660-7",
  LCCN =         "????",
  bibdate =      "Mon Apr 23 08:23:08 MDT 2012",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://dl.acm.org/citation.cfm?id=1989284",
  acknowledgement = ack-nhfb,
  subject =      "Informatique; Congr\`es; Ordinateurs",
}

@Proceedings{Storer:2011:DDC,
  editor =       "James A. (James Andrew) Storer and Michael W.
                 Marcellin",
  key =          "DCC 2011",
  booktitle =    "{DCC 2011: Data Compression Conference: Snowbird,
                 Utah, USA, 29--31 March 2011}",
  title =        "{DCC 2011: Data Compression Conference: Snowbird,
                 Utah, USA, 29--31 March 2011}",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "493",
  year =         "2011",
  DOI =          "https://doi.org/10.1109/DCC.2011.99",
  ISBN =         "1-61284-279-8",
  ISBN-13 =      "978-1-61284-279-0",
  ISSN =         "1068-0314",
  LCCN =         "????",
  bibdate =      "Tue Feb 5 05:59:51 MST 2013",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/datacompression.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  note =         "IEEE Computer Society Order Number P4352; BMS Part
                 Number: CFP11DCC-PRT",
  URL =          "http://ieeexplore.ieee.org/servlet/opac?punumber=5749456",
  acknowledgement = ack-nhfb,
  series-URL =   "http://ieeexplore.ieee.org/xpl/conhome.jsp?punumber=1000177",
}

@Proceedings{Karkkainen:2012:CPM,
  editor =       "Juha K{\"a}rkk{\"a}inen and Jens Stoye",
  booktitle =    "{Combinatorial Pattern Matching: 23rd Annual
                 Symposium, CPM 2012, Helsinki, Finland, July 3--5,
                 2012. Proceedings}",
  title =        "{Combinatorial Pattern Matching: 23rd Annual
                 Symposium, CPM 2012, Helsinki, Finland, July 3--5,
                 2012. Proceedings}",
  volume =       "7354",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "256 (est.)",
  year =         "2012",
  CODEN =        "LNCSD9",
  DOI =          "https://doi.org/10.1007/978-3-642-31265-6",
  ISBN =         "3-642-31264-0 (print), 3-642-31265-9 (e-book)",
  ISBN-13 =      "978-3-642-31264-9 (print), 978-3-642-31265-6
                 (e-book)",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "????",
  bibdate =      "Wed Dec 19 15:20:44 MST 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/lncs2012f.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  URL =          "http://www.springerlink.com/content/978-3-642-31265-6",
  acknowledgement = ack-nhfb,
}

@Proceedings{Krotzsch:2012:PPA,
  editor =       "Markus Kr{\"o}tzsch and Maurizio Lenzerini and Michael
                 Benedikt",
  booktitle =    "{PODS'12: Proceedings of the 31st ACM
                 SIGMOD-SIGACT-SIGART symposium on Principles of
                 database systems: May 20--24, 2012, Scottsdale, AZ,
                 USA}",
  title =        "{PODS'12: Proceedings of the 31st ACM
                 SIGMOD-SIGACT-SIGART symposium on Principles of
                 database systems: May 20--24, 2012, Scottsdale, AZ,
                 USA}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "????",
  year =         "2012",
  ISBN =         "????",
  ISBN-13 =      "????",
  LCCN =         "????",
  bibdate =      "Tue Nov 06 11:29:58 2012",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://www.sigmod.org/2012/",
  acknowledgement = ack-nhfb,
  subject =      "Informatique; Congr\`es; Ordinateurs",
}

@Proceedings{Dediu:2013:LAT,
  editor =       "Adrian-Horia Dediu and Carlos Mart{\'i}n-Vide and
                 Bianca Truthe",
  booktitle =    "{Language and Automata Theory and Applications: 7th
                 International Conference, LATA 2013, Bilbao, Spain,
                 April 2--5, 2013. Proceedings}",
  title =        "{Language and Automata Theory and Applications: 7th
                 International Conference, LATA 2013, Bilbao, Spain,
                 April 2--5, 2013. Proceedings}",
  volume =       "7810",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "xiv + 580 + 69",
  year =         "2013",
  DOI =          "https://doi.org/10.1007/978-3-642-37064-9",
  ISBN =         "3-642-37063-2 (print), 3-642-37064-0 (e-book)",
  ISBN-13 =      "978-3-642-37063-2 (print), 978-3-642-37064-9
                 (e-book)",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA75.5-76.95",
  bibdate =      "Mon Sep 7 07:18:27 MDT 2020",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  abstract =     "This book constitutes the refereed proceedings of the
                 7th International Conference on Language and Automata
                 Theory and Applications, LATA 2013, held in Bilbao,
                 Spain in April 2013. The 45 revised full papers
                 presented together with 5 invited talks were carefully
                 reviewed and selected from 97 initial submissions. The
                 volume features contributions from both classical
                 theory fields and application areas (bioinformatics,
                 systems biology, language technology, artificial
                 intelligence, etc.). Among the topics covered are
                 algebraic language theory; algorithms for
                 semi-structured data mining; algorithms on automata and
                 words; automata and logic; automata for system analysis
                 and program verification; automata, concurrency and
                 Petri nets; automatic structures; cellular automata;
                 combinatorics on words; computability; computational
                 complexity; computational linguistics; data and image
                 compression; decidability questions on words and
                 languages; descriptional complexity; DNA and other
                 models of bio-inspired computing; document engineering;
                 foundations of finite state technology; foundations of
                 XML; fuzzy and rough languages; grammars (Chomsky
                 hierarchy, contextual, multidimensional, unification,
                 categorial, etc.); grammars and automata architectures;
                 grammatical inference and algorithmic learning; graphs
                 and graph transformation; language varieties and
                 semigroups; language-based cryptography;
                 language-theoretic foundations of artificial
                 intelligence and artificial life; parallel and
                 regulated rewriting; parsing; pattern recognition;
                 patterns and codes; power series; quantum, chemical and
                 optical computing; semantics; string and combinatorial
                 issues in computational biology and bioinformatics;
                 string processing algorithms; symbolic dynamics;
                 symbolic neural networks; term rewriting; transducers;
                 trees, tree languages and tree automata; weighted
                 automata.",
  acknowledgement = ack-nhfb,
  subject =      "Computer science; Computer software; Logic design;
                 Artificial intelligence; Social sciences; Data
                 processing; Computation by Abstract Devices;
                 Mathematical Logic and Formal Languages; Algorithm
                 Analysis and Problem Complexity; Artificial
                 Intelligence (incl. Robotics); Logics and Meanings of
                 Programs; Computer Appl. in Social and Behavioral
                 Sciences; Artificial intelligence.; Computer science.;
                 Computer software.; Logic design.; Data processing.",
  tableofcontents = "Invited Talks. \\
                 Complexity Dichotomy for Counting Problems / Jin-Yi Cai
                 \\
                 Algorithms for Analyzing and Verifying Infinite-State
                 Recursive Probabilistic Systems / Kousha Etessami \\
                 Recursion Schemes, Collapsible Pushdown Automata and
                 Higher-Order Model Checking / Luke Ong \\
                 Discrete Linear Dynamical Systems / Jo{\{"}e}l Ouaknine
                 \\
                 XML Schema Management: A Challenge for Automata Theory
                 / Thomas Schwentick \\
                 Regular Papers. \\
                 On the Complexity of Shortest Path Problems on
                 Discounted Cost Graphs / Rajeev Alur \ldots{} [et al.]
                 \\
                 Termination of Rule-Based Calculi for Uniform
                 Semi-Unification / Takahito Aoto, Munehiro Iwami \\
                 Deciding WQO for Factorial Languages / Aistis Atminas,
                 Vadim Lozin, Mikhail Moshkov \\
                 On the Construction of a Family of Automata That Are
                 Generically Non-minimal / Parisa Babaali, Christopher
                 Knaplund \\
                 Limited Non-determinism Hierarchy of Counter Automata /
                 Sebastian Bala, Dariusz Jackowski \\
                 Unambiguous Automata Denoting Finitely Sequential
                 Functions / Sebastian Bala, Artur Koni{\'n}ski \\
                 Duplication-Loss Genome Alignment: Complexity and
                 Algorithm / Billel Benzaid, Riccardo Dondi, Nadia
                 El-Mabrouk \\
                 Maximizing Entropy over Markov Processes / Fabrizio
                 Biondi \ldots{} [et al.] \\
                 MAT Learning of Universal Automata / Johanna
                 Bj{\"o}rklund, Henning Fernau, Anna Kasprzik \\
                 A Graph Polynomial Approach to Primitivity / Francine
                 Blanchet-Sadri \ldots{} [et al.] \\
                 Suffix Trees for Partial Words and the Longest Common
                 Compatible Prefix Problem / Francine Blanchet-Sadri,
                 Justin Lazarow \\
                 Dynamic Communicating Automata and Branching High-Level
                 MSCs / Benedikt Bollig \ldots{} [et al.] \\
                 Visibly Pushdown Automata: Universality and Inclusion
                 via Antichains / V{\'e}ronique Bruy{\`e}re, Marc
                 Ducobu, Olivier Gauwin \\
                 Two-Sided Derivatives for Regular Expressions and for
                 Hairpin Expressions / Jean-Marc Champarnaud \ldots{}
                 [et al.] \\
                 How to Travel between Languages / Krishnendu
                 Chatterjee, Siddhesh Chaubal, Sasha Rubin \\
                 Execution Information Rate for Some Classes of Automata
                 / Cewei Cui \ldots{} [et al.]",
}

@Proceedings{Hull:2013:SPC,
  editor =       "Richard Hull and Wenfei Fan",
  booktitle =    "{SIGMOD/PODS'13: compilation proceedings of the 2013
                 ACM Symposium on Principles of Database Systems, ACM
                 SIGMOD international conference on management of data,
                 and SIGMOD/PODS 2013 PhD symposium: June 22--27, 2013,
                 New York, New York, USA}",
  title =        "{SIGMOD/PODS'13: compilation proceedings of the 2013
                 ACM Symposium on Principles of Database Systems, ACM
                 SIGMOD international conference on management of data,
                 and SIGMOD/PODS 2013 PhD symposium: June 22--27, 2013,
                 New York, New York, USA}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "????",
  year =         "2013",
  ISBN =         "1-4503-2066-X, 1-4503-2037-6",
  ISBN-13 =      "978-1-4503-2066-5, 978-1-4503-2037-5",
  LCCN =         "????",
  bibdate =      "Wed Mar 5 07:48:23 MST 2014",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/hash.bib;
                 https://www.math.utah.edu/pub/tex/bib/pods.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  URL =          "http://dl.acm.org/citation.cfm?id=2463664;
                 http://www.sigmod.org/2013/",
  acknowledgement = ack-nhfb,
}

@Proceedings{Kroening:2015:CAV,
  editor =       "Daniel Kroening and Corina S. P{\u{a}}s{\u{a}}reanu",
  booktitle =    "{Computer Aided Verification: 27th International
                 Conference, CAV 2015, San Francisco, CA, USA, July
                 18--24, 2015, Proceedings, Part I}",
  title =        "{Computer Aided Verification: 27th International
                 Conference, CAV 2015, San Francisco, CA, USA, July
                 18--24, 2015, Proceedings, Part I}",
  volume =       "9206",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  bookpages =    "xxiii + 677 + 141",
  pages =        "xxiii + 677 + 141",
  year =         "2015",
  DOI =          "https://doi.org/10.1007/978-3-319-21690-4",
  ISBN =         "3-319-21689-9",
  ISBN-13 =      "978-3-319-21689-8",
  bibdate =      "Sat Jan 9 11:36:57 2016",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/java2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/lncs.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  series =       ser-LNCS,
  URL =          "http://link.springer.com/book/10.1007/978-3-319-21690-4",
  acknowledgement = ack-nhfb,
}