При использовании теории компиляторов [1] возникает ряд проблем, которые могут быть устранены при совместном применении указанной теории и SWITCH-технологии [2, 3], которая базируется на применении конечных автоматов.
Перечислим недостатки, которые позволяет устранить указанная технология.
В работе [1], как и в других работах по теории компиляторов [4], излагаются основы их проектирования, но переход от проекта компилятора к его программной реализации недостаточно формализован.
Еще один недостаток известного подхода состоит в том, что используемые алгоритмы описываются традиционным путем с помощью псевдоязыка, в то время как это может быть сделано с помощью автоматов.
Изложенный подход позволяет устранить указанные недостатки:
совместное применение теории построения компиляторов и SWITCH-технологии позволяет объединить математическую строгость проектирования этого класса программ с формальностью их реализации;
на всех этапах создания компилятора используются конечные автоматы в форме графов переходов;
разработка компилятора полностью документирована;
получаемый исходный код весьма прост и понятен, так как структура каждого из его основных модулей изоморфна структуре схемы связей автомата и его графа переходов;
если автоматическое построение лексических и синтаксических анализаторов целесообразно выполнять с помощью генераторов Lex и Yacc соответственно (или их аналогов) [1], то ручное проектирование - на основе предлагаемого подхода.
Подход апробирован на примере программной реализации калькулятора, описание функциональности которого приведено в работе [5].
Литература
Ахо А., Сети Р., Ульман Д. Компиляторы. Принципы, технологии, инструменты. М.: Вильямс, 2001.
Шалыто А.А. SWITCH-технология. Алгоритмизация и программирование задач логического управления. СПб.: Наука, 1998.
Шалыто А.А., Туккель Н.И. От тьюрингова программирования к автоматному. // Мир ПК, 2002, №2.