ITMO University
“Programming Technologies” Department


 Новости науки
 Почетные доктора
Учебный процесс
 Курсовые проекты
 Лабораторные работы
 Учебные курсы
 События и факты
 Искусственный интеллект
 Генетические алгоритмы
 Роботы и агенты
 Нейронные сети

О нас
 Сертификаты и дипломы
 Соревнования по программированию



 Automata-Based Programming
 UniMod Projects

Поиск по сайту


    / Projects / Joint usage of compiler theory and SWITCH-technology (on the example of development of calculator) (версия для печати)

Joint usage of compiler theory and SWITCH-technology (on the example of development of calculator)

(C) 2003 A.A.Shtuchkin, A.A.Shalyto

Saint-Petersburg State Institute of Fine Mechanics and Optics (Technical University)

From here it is possible to download the full text of documentation in Russian in a PDF-format (275 Kb)
Here is application (84 Kb)
Source texts (7 Kb)


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].


  1. A. Aho, R. Seti, D. Ulman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1986.
  2. Shalyto A. SWITCH-technology. Algorithmization and programming of logic control problems. SPb.: Science, 1998.
  3. Shalyto A. Tukkel N. From Turing programming to finite automata's. //PC World, 2002, #2.
  4. Legalov A. Translators. Development methods.
  5. B. Stroustrup. The C++ Programming Language (Third edition). Addison-Wesley, 1997.

© 2002—2018 По техническим вопросам сайта: