A number of problems appear when the compiler theory [1] is used in practice. These problems could be eliminated combining compiler theory with SWITCH-technology [2, 3], which is based upon using finite automata.
Let's count some of the problems, which can be eliminated using this technology.
In paper [1], like in other papers on compiler theory [4], only basics on compiler design are stated, but the transition from compiler project to its source code lacks formalism.
Another problem is that algorithms used in compiler designing are described in terms of natural or some pseudo-language. It can be done more effectively using finite automata.
Using SWITCH-technology this problems could be removed.
Joint usage of compiler theory and SWITCH-technology makes it possible to combine mathematical strictness of designing such programs with formal writing source code.
Finite automata (in the form of transition graphs) is used on all stages of creating compiler.
Compiler development process is fully documented.
Source code is rather simple and clear because the structure of each of it's units is isomorphous to the structure of its tie chart and transition graph.
Automatic construction of lexical and syntactical analyzers is advisable to do using Lex and Yacc generators, though manual construction - using SWITCH-technology.
This approach is approved on the example of development of calculator. Description you can find in paper [5].
References
A. Aho, R. Seti, D. Ulman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1986.
Shalyto A. SWITCH-technology. Algorithmization and programming of logic control problems. SPb.: Science, 1998.
Shalyto A. Tukkel N. From Turing programming to finite automata's. //PC World, 2002, #2.