The compilation of regular expressions into integrated circuits

We consider the design of integrated circuits to implement arbitrary regular expressions. In general, we may use the McNaughton-Yamada algorithm to convert a regular expression of length n into a nondeterministic finite automaton with at most 2n states and 4n transitions. Instead of converting the nondeterministic device to a deterministic one, we propose two ways of implementing the nondeterministic device directly. First, we could produce a PLA (programmable logic array) of approximate dimensions 4n × 4n by representing the states directly by columns, rather than coding the states in binary. This approach, while theoretically suboptimal, makes use of carefully developed technology and, because of the care with which PLA implementation has been done, may be the preferred technique in many real situations. Another approach is to use the hierarchical structure of the automaton produced from the regular expression to guide a hierarchical layout of the circuit. This method produces a circuit 0(√n) on a side and is, to within a constant factor, the best that can be done in general.

[1]  Dave Johannsen,et al.  Bristle Blocks: A Silicon Compiler , 1979, 16th Design Automation Conference.

[2]  Robert McNaughton,et al.  Regular Expressions and State Graphs for Automata , 1960, IRE Trans. Electron. Comput..

[3]  C. Thomborson,et al.  Area-time complexity for VLSI , 1979, STOC.

[4]  Amar Mukhopadhyay,et al.  Hardware Algorithms for Nonnumeric Computation , 1978, IEEE Transactions on Computers.

[5]  Leslie G. Valiant,et al.  Universality considerations in VLSI circuits , 1981, IEEE Transactions on Computers.

[6]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[7]  Alfred V. Aho,et al.  Principles of Compiler Design (Addison-Wesley series in computer science and information processing) , 1977 .

[8]  H. T. Kung,et al.  The chip complexity of binary arithmetic , 1980, STOC '80.

[9]  H. T. Kung,et al.  The Area-Time Complexity of Binary Multiplication , 1981, JACM.

[10]  Charles E. Leiserson,et al.  Area-Efficient Graph Layouts (for VLSI) , 1980, FOCS.

[11]  Charles E. Leiserson,et al.  Area-efficient graph layouts , 1980, 21st Annual Symposium on Foundations of Computer Science (sfcs 1980).

[12]  Lynn Conway,et al.  Introduction to VLSI systems , 1978 .

[13]  Richard Edwin Stearns,et al.  Memory bounds for recognition of context-free and context-sensitive languages , 1965, SWCT.

[14]  Andrzej Ehrenfeucht,et al.  Complexity measures for regular expressions , 1974, STOC '74.

[15]  John P. Gray Introduction to Silicon Compilation , 1979, 16th Design Automation Conference.

[16]  Andrzej Ehrenfeucht,et al.  Complexity Measures for Regular Expressions , 1976, J. Comput. Syst. Sci..