-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathREADME
More file actions
29 lines (19 loc) · 1.09 KB
/
Copy pathREADME
File metadata and controls
29 lines (19 loc) · 1.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Implementation of algorithms from the paper
Monoid machines: a O(log n) parser for regular languages
Armando B. Matos
2006
Supplies parse functions which convert the input DFA into its
corresponding transitional monoid representation and parses the input string
according to the algorithms outlined in the paper.
p prefixes indicate paralell methods
The sequential algorithm runs in linear time in the input word size and the
parallel algorithm approaches logarithmic time as the number of processes increases.
See the file for a write up including an example and pertinent definitions from the paper.
Use:
Use either the parse or pparse functions to parse an input word by converting the input DFA to its
transitional monoid and running the algorithm.
Can create DFA accept function on input, or use supplied createAccept' finals start to create one for you.
Enjoy!
*Idiomatic Haskell edits and parallel implementation by Samuel Schlesinger.
----------------------------------------------------------------------------
An OCaml implementation of sequential algorithm has been added as well.