Unit SS, Part B: String Matching, Shift-Or
Preprocessing:
- Let pat= pattern, A=pattern alphabet
- Each entry "a" in A is represented by a |pat| bit string,
indicating where "a" occurs in the pattern
Searching:
- Initial state = |pat| 1's
- Match=0 state: (state<<1)OR T[char]
Advantages:
- Easy to implement in hardware
- Only need to store 1 char. of text (no buffering or text storage)
- Can handle regular expressions: sets of chars, don't cares
- Extends to don't cares or errors in text