Claims
- 1. A method for generating lookup tables for a regular expression recognition engine which recognizes a plurality of characters in parallel, said characters being from an alphabet,
generating a DFA state machine to recognize characters of a regular expression, generating the n-closure list for each character byte position n and for each state s, generating the alphabet transition list for each entry on said n-closure list, generating a limited set of classes by mapping into the same class characters which have the same set of transitions for each byte position n and state s, generating a look up table, for each state s and byte position n, said table having one value for each member of said alphabet, said values consisting of members of said limited set of classes.
- 2) The method recited in claim 1 wherein said limited set of classes are used to identify the next state of said state machine.
- 3. The method recited in claim 1 wherein said n-closure list is a list of states reachable in n transitions from a particular state.
- 4) The method recited in claim 1 wherein said alphabet transition list is a list of the transitions out of a particular state for each of the characters in said alphabet.
- 5. The method recited in claim 1 where x characters are examined in parallel and wherein the n-closure list is generated for values of n up to the value x.
- 6. The method recited in claim 1 wherein said DFA state machine is optimized.
- 7. The method recited in claim 4 wherein x characters are examined in parallel and wherein the n-closure list is generated for values of n up to the value x.
- 8. The method recited in claim 1 wherein x characters are examined in parallel and wherein said regular expression recognition engine has m states, and wherein x times m look up tables are generated.
- 9. A method for generating state look up tables for a Real-time Deterministic Finite state Automaton (RDFA) state machine that recognizes characters in a regular expression of characters in an alphabet, said RDFA examining a plurality of characters in parallel,
generating a DFA state machine to recognize characters of said regular expression, generating the n-closure list for each character byte position n and for each state s in said DFA state machine, generating the alphabet transition list for each entry on said n-closure list, generating a limited set of classes by mapping into the same class characters which have the same set of transitions for each byte position n and state s, generating a look up table, for each state s and byte position n, said table having one value for each member of said alphabet, said values consisting of members of said limited set of classes, whereby said look up tables comprise said state look tables for said RDFA and whereby the size of said state lookup tables is smaller than the size of the look up tables in said DFA machine.
- 10. The method recited in claim 9 where n characters are examined in parallel and the n-closure list is generated for values of n up to the number of characters being examined in parallel.
- 11. The method recited in claim 9 wherein said DFA state machine is optimized.
- 12. The method recited in claim 9 wherein n characters are recognized in parallel and wherein said state machine has m states, and wherein n times m look up tables are generated.
- 13) A method of generating next state look up tables for a multi bit Real-time Deterministic Finite state Automaton (RDFA) which recognizes a regular expression which consists of characters from an alphabet, said method consisting of the steps,
generating a DFA state machine which recognizes said characters, generating the n-closure list for each byte position for each state in said DFA machine, generating the alphabet transition list for each n-closure list, generating a limited set of classes by mapping into the same class characters which have the same set of transitions for each byte position n and state s, generating lookup tables for said RDFA utilizing said classes, whereby said RDFA has less states than said DFA.
- 14. The method recited in claim 13 where n characters are examined in parallel and the n-closure list is generated for values of n up to the number of characters being examined in parallel.
- 15. The method recited in claim 13 wherein said DFA state machine is optimized.
- 16. The method recited in claim 13 wherein n characters are examined in parallel and wherein said state machine has m states, and wherein n times m look up tables are generated.
- 17) A method of reducing the memory required by a state machine used to recognize a regular expression which consists of characters from an alphabet, comprising the steps of,
generating an optimized DFA machine, for each state in said DFA machine grouping alphabet transitions which result in the same next state into classes, generating a lookup table which stores only an output indication of the class matched by a particular character, using the class matched by a character to determine the next state for said state machine.
- 18) A system for generating look up tables for a state machine that recognizes a regular expression of characters in an alphabet, said recognition examining a plurality of characters in parallel,
means for generating a DFA state machine to recognize characters of a regular expression, means for generating the n-closure list for each character byte position n and for each state s, generating the alphabet transition list for each entry on said n-closure list, means for generating a limited set of classes by mapping into the same class characters which have the same set of transitions for each byte position n and state s, means for generating a look up table, for each state s and byte position n, said table having one value for each member of said alphabet, said values consisting of members of said limited set of classes. whereby the size of the lookup tables is smaller than the number of characters in the alphabet under consideration.
RELATED APPLICATIONS
[0001] This application is a non-provisional application of provisional applications:
[0002] a) 60/322,012 filed Sep. 12, 2001 and
[0003] b) 60/357,384 filed Feb. 15, 2002
[0004] This application is also a continuation-in-part of application Ser. No. 10/005462 filed Dec. 3, 2001.
[0005] Priority from the above three referenced co-pending applications is claimed and their content including the appendices is hereby incorporated herein by reference.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60357384 |
Feb 2002 |
US |
|
60322012 |
Sep 2001 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10005462 |
Dec 2001 |
US |
Child |
10217592 |
Aug 2002 |
US |