Эта публикация цитируется в
2 статьях
Информатика
Препроцессор языка Templet: инструмент программирования в терминах модели «процесс–сообщение»
С. В. Востокин Самарский государственный аэрокосмический университет им. ак. С. П. Королёва (национальный исследовательский университет), г. Самара, 443086, Россия
Аннотация:
Мотивация: Для большого числа прикладных задач целесообразно представление кода решаемой задачи в виде совокупности процессов, обменивающихся сообщениями. Традиционное применение модели «процесс–сообщение» в средстве программирования состоит в разработке специального языка или библиотеки времени исполнения для имеющегося языка. Недостаток первого подхода — это сложность разработки, а второго — сложность применения. Предлагается новый метод описания модели «процесс–сообщение», использующий язык программирования с процедурной семантикой и препроцессор, устраняющий указанные недостатки.
Метод: Код программы в терминах модели «процесс–сообщение» делится на блоки: библиотека времени исполнения; связывающий код, объединяющий библиотеку времени исполнения и код конкретной задачи; типы данных для сообщений и процедуры их обработки. Границы блоков обозначаются комментариями. Для описания структуры кода в целом предлагается предметно-ориентированный язык, названный Templet. Метод позволяет проводить контроль соответствия структуры кода модели «процесс–сообщение» автоматически перед компиляцией.
Описание каналов: Канал описывает протокол обмена сообщениями между парой процессов. Приведён синтаксис каналов с использованием расширенной нотации Бекуса–Наура (EBNF). Информационная структура каналов, используемая для генерации кода, описана с применением диаграммы «сущность–связь» (ER).
Описание процессов: Процесс определяет алгоритм обработки сообщений, поступающих по каналам от других процессов, и ответы на сообщения. Показана информационная структура каналов во взаимосвязи с синтаксисом. В описании также использованы метамодели EBNF и ER. Описание синтаксиса сопровождается примером процесса «разветвление–слияние».
Схема работы препроцессора: Рассматривается укрупнённый алгоритм работы и архитектура препроцессора языка Templet. Препроцессор состоит из подсистем синтаксического анализатора, анализатора блоков, базы данных, семантического анализатора, механизма вывода и генератора кода. Описывается алгоритм работы препроцессора. На основе анализа количества строк кода в контрольном примере показано сокращение объёма ручного кодирования примерно в 20 раз.
Применение и сравнение с аналогами: Препроцессор применяется в составе web-сервиса для автоматизации параллельных вычислений. Он используется для подготовки скелетов программ, которые пользователи дополняют проблемно-ориентированным кодом. Описаны преимущества, общие черты и различия предложенного подхода в сравнении с технологиями разметки последовательного кода, генерирующими макропроцессорами, специализированными параллельными языками, метапрограммированием и разработкой, управляемой моделями.
Ключевые слова:
препроцессор, предметно-ориентированный язык, процесс, сообщение, параллельное программирование.
УДК:
519.682
MSC: 68N15,
68N19 Поступила в редакцию 18/VII/2014
в окончательном варианте – 21/VIII/2014
DOI:
10.14498/vsgtu1334