Теория и практика программирования

Научная деятельность

СМ - грамматики
(грамматики, записанные в семантическом метаязыке - СМ)

 

Исторически работы по СМ-грамматикам начались в 1964 году в процессе разработки вычислительной машины, работающей на алгоритмических языках высокого уровня (типа АЛГОЛ, ПАСКАЛЬ). Предполагалось, что грамматика алгоритмического языка высокого уровня записывается в СМ-метаязыке, вводится в постоянную память устройства управления вычислительной машины, после чего она (машина) работает на этом языке (выполняет аппаратно программы на этом языке) без традиционной предварительной программной трансляции входных программ в упрощенный язык машины [1]. Эти работы по так называемым в то время вычислительным машинам со структурной интерпретацией языков высокого уровня проводились в Институте кибернетики под руководством академика В.М.Глушкова по трем направлениям: машины МИР (главный конструктор - доктор техн. наук С.Б.Погребинский), машина УКРАИНА (главный конструктор - доктор техн. наук З.Л.Рабинович) и альтернативный проект - СМ-машина (главный конструктор - доктор техн. наук Г.А.Михайлов). В ходе работ по СМ-машине потребовались более глубокие фундаментальные исследования по СМ-метаязыку независимо от аппаратной или программной схемы его использования. Эта часть работ проводилась под общим руководством чл.-кор. АН Украины Е.Л.Ющенко, которая сразу сориентировала работы на определение мощности СМ-метаязыка и сравнение его с существующими на то время теоретическими моделями [2].

В результате проведенных фундаментальных исследований СМ-метаязык существует в двух интерпретациях - в виде таблиц, которые иногда назывались синтаксическими картами, и в виде Р- графов. Метаязык СМ в своей основе имеет два фундаментальных понятия: синтерм и память. Синтерм - это любой символ или несколько символов алгоритмического языка, имеющих одинаковый смысл использования по ходу описания языка. Примерами синтермов являются: + (плюс), S (буква S латинская), цф (любая цифра - 0, 1, 2,…, 9), бк (любая буква), бц (любая буква и цифра) и т.д.

Память в СМ-метаязыке, кроме традиционных - счетчик, магазин (один или несколько), может быть типа бобслей (первый вошел, первым вышел), регистровой, табличной, специальной и т.д. Строго определялся набор допустимых операций над такими памятями [3,4].

Грамматика языка представлялась в виде иерархии таблиц, соответствующих состоянию вычислительной машины или транслятора при программной реализации СМ-грамматик. Столбцы таблицы соответствовали текущим синтермам входного предложения языка для соответствующего состояния интерпретирующего автомата, строки - допустимым следующим символам и состояниям. На пересечении строк и столбцов записывались условия перехода в новое состояние и выполняемые при этом операции с памятями СМ-грамматик.

Графическая форма записи СМ-грамматик осуществляется нагруженными по дугам графами, которые назывались Р -графами, Р-грамматиками. На дуге сверху таких графов записывались синтермы, а снизу - выполняемые соответствующие действия над памятями СМ-метаязыка, направление дуги графа определяло направление перехода в следующее состояние. В результате СМ-метаязык по сравнению с известными метаязыками позволял задать грамматику (синтаксис и семантику) как угодно сложного языка программирования более конструктивно (проще, компактнее, нагляднее и быстрее) в любой программной или аппаратной реализации.

Персоналии

Работа по СМ-метаязыку - это большая коллективная работа. Можно с благодарностью выделить следующих основных разработчиков, стоящих у истоков всех работ: Медведева Валентина Николаевна, Попов Григорий Евгеньевич, Рублевская Надежда Владимировна, Житницкая Людмила Ильинична, Нетесин Игорь Евгеньевич, Шолмов Леонид Иванович, Ковалев Александр Львович, Каюров Василий Юрьевич, Кирсанов Виктор Федорович, Ходаковский Василий Николаевич.

И.В.Вельбицький

Литература

1. А.с. 284432 (СССР). Вычислительная машина (И.В.Вельбицкий, Г.А.Михайлов). - Опубл. в Б.И., 1970, (Заявл. 20.9.1965 г.)
2. Вельбицкий И.В., Михайлов Г.А., Ющенко Е.Л. Метод синтаксических карт для проверки программ. - Кибернетика, 1967, №3, с.100-102.
3. Вельбицкий И.В. Формальное задание семантик языков современных систем программирования. - Докл. АН СССР, 1975, т.223, №6, с.1329-1332. Представлена а к а д е м и к о м В.М.Глушковым.
4. Вельбицкий И.В. Метод обработки дискретной информации на базе одного способа формального задания семантики языков.- Дис. … д-ра физ.-мат.наук - Киев, 1977. - 401 с.

 

HTD © 2003