RUS  ENG
Полная версия
ЖУРНАЛЫ // Вестник Самарского государственного технического университета. Серия «Физико-математические науки» // Архив

Вестн. Сам. гос. техн. ун-та. Сер. Физ.-мат. науки, 2014, выпуск 3(36), страницы 169–182 (Mi vsgtu1334)

Эта публикация цитируется в 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



Реферативные базы данных:


© МИАН, 2024