In this paper two concurrent versions of Brzozowski's deterministic finite automaton (DFA) construction algorithm are developed from first principles, the one being a slight refinement of the other. We rely on Hoare's CSP as our notation. The specifications that are proposed of the Brzozowski algorithm are in terms of the concurrent composition of a number of top-level processes, each participating process itself composed of several other concurrent processes. After considering a number of alternatives, this particular overall architectural structure seemed like a natural and elegant mapping from the sequential algorithm's structure. While we have carefully argued the reasons for constructing the concurrent versions as proposed in the paper, there are of course, a large range of alternative design choices that could be made. There might also be scope for a more fine-grained approach to updating sets or checking for similarity of regular expressions. At this stage, we have chosen to abstract away from these considerations, and leave their exploration for a subsequent step in our research.
[1]
C. A. R. Hoare,et al.
Communicating sequential processes
,
1978,
CACM.
[2]
Kunle Olukotun,et al.
The Future of Microprocessors
,
2005,
ACM Queue.
[3]
Djelloul Ziadi,et al.
An Optimal Parallel Algorithm to Convert a Regular Expression into its Glushkov Automaton
,
1999,
Theor. Comput. Sci..
[4]
Janusz A. Brzozowski,et al.
Derivatives of Regular Expressions
,
1964,
JACM.
[5]
James R. Larus,et al.
Software and the Concurrency Revolution
,
2005,
ACM Queue.
[6]
Herb Sutter,et al.
A Fundamental Turn Toward Concurrency in Software
,
2008
.
[7]
Richard McDougall.
Extreme Software Scaling
,
2005,
ACM Queue.
[8]
Manish Gupta,et al.
Systems research challenges: A scale-out perspective
,
2006,
IBM J. Res. Dev..