Pattern recognition and generation is ubiquitous in computing:
Finite automata are formal (or abstract) machines for recognizing patterns. These machines are used extensively in compilers and text editors, which must recognize patterns in the input.
Regular expressions are a formal notation for generating patterns. This notation is used extensively in programming language manuals (used to describe legal patterns of input) and in command languages (such as the Unix shell, where it is used to describe patterns for naming files, etc.)
last modified Jan 16 1996 / Tom LeBlanc / leblanc@cs.rochester.edu