Письмо А.А. Шалыто к В.Е. Зюбину



Анатолий Шалыто - Владимиру Зюбину - автору учебно-методического пособия "Программирование информационно-управляющих систем на основе конечных автоматов". Новосибирский государственный университет, 2006. http://softcraft.ru/auto/etc/mpz/mpz.pdf

Владимир!

Пособие прочел. Понравилось. Особенно начало, где показана связь программирования на основе конечных автоматов с машинами Поста и Тьюринга.

А теперь, что касается меня и моего подхода к программированию. Во-первых, если я упомянут с портретом (!), да еще в такой компании (Э. Пост, А. Тьюринг, В.М. Глушков, С.И. Баранов, А.Д. Закревский и М.А. Гаврилов), то почему было не упомянуть мою книгу, которая здесь явно по делу http://is.ifmo.ru/books/switch/1.

Во-вторых, Ваше представление о switch-технологии, осталось на уровне 1998 года, когда вышла указанная книга. С тех пор прошло десять лет, и технология сильно развилась (http://is.ifmo.ru и http://ru.wikipedia.org/wiki/Switch-технология).

А теперь, главное - то, в чем наши подходы принципиально отличаются.

Я и Алиса из страны чудес любим картинки (см. эпиграф (http://is.ifmo.ru/books/switch/4) к моей книге: "Девочки любят картинки, - сказала Алиса." Л. Кэррол "Алиса в стране чудес").

Она, как и я, любит картинки, а не тексты. Поэтому я с 1991 года развиваю автоматное программирование, в котором главное - визуальное описание поведения программ в виде графов переходов, причем доскональное, а не как предлагаете вы, советуя, что "перед кодированием имеет смысл наметить общую структуру программы, что делается в произвольной форме".

При использовании моего подхода графы переходов формально и изоморфно вручную или автоматически реализуются на заданном языке программирования, например, на том, что предлагаете Вы.

Если графов переходов нет, то нет когнитивного проектирования поведения программ, и вообще это другое программирование - традиционное, хотя и на языке предметной области. Нами тоже выполняются работы по созданию текстовых языков программирования (http://knit2007.sgu.ru/docs/113.doc). Однако, при этом я считаю, что они хороши только тогда, когда при написании автоматного теста автоматически строятся графы переходов (как указано в приведенной выше ссылке), а магистральным направлением при создании программы со сложным поведением считаю визуальное конструирование программ, как, например, это делается в разработанном нами инструментальном средстве UniMod (http://is.ifmo.ru/unimod-projects/).

Здесь графы переходов не только, как считаете Вы, предназначены для документирования проекта, но главное, что они являются "кодом", который либо интерпретируется или компилируется автоматически (!). В студенческих проектах, опубликованных на указанной выше странице, только 20-30% кода (входные и выходные воздействия) пишутся вручную на текстовом языке программирования. Самое же главное, что это средство позволяет реализовывать программу в целом, а не только описывающие ее поведение графы переходов, так как схема связей реализуется диаграммой классов и задает структуру объектно-ориентированной программы.

Так что отличие в наших подходах принципиальное, а не только то, что указано в Вашей книге.

С уважением, Шалыто