А. В. ПАНЧОЯН

Научный руководитель – В. Э. ВОЛЬФЕНГАГЕН, д. т.н., профессор

Московский инженерно-физический институт (государственный университет)

РАЗРАБОТКА ПРИЛОЖЕНИЯ СРЕДЫ СЕМАНТИЧЕСКОГО МОДЕЛИРОВАНИЯ ДЛЯ КОНСТРУКЦИЙ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

В работе рассматривался процесс разработки среды семантического моделирования, исполняющей конструкции языков программирования.

К настоящему времени преобладающее распространение получили неформальные приемы описания языков программирования. В этом случае книга, излагающая такое описание, предполагается потенциально доступной максимально широкому кругу читателей. К сожалению, эта потенциальная широта далеко не всегда реализуется, поскольку, например, достаточно искушенные читатели будут предпочитать более краткие и концептуальные руководства, с меньшими неоднозначностями излагающие наиболее существенные идеи и просто показывающие, в каком же направлении следует работать дальше.

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

Языки программирования обладают хорошо развитой синтаксической формализацией и обычно используются как инструмент выяснения, являются ли те или иные вопросы логического характера принципиально вычислимыми. Вместе с тем построение семантической теории языков все еще далеко от завершения.

В книге «Конструкции языков программирования» показана важность развития видения программы в терминах объектов или функций. Даже если синтаксически это не очевидно, и программист имеет дело с конструкциями выражений и команд, то семантика может быть построена на принципах исчислений объектов [1]. В этой связи описание конструкций языков программирования средствами денотационной семантики характеризует именно объекты и их взаимосвязи, а ее возможности сравнительно недавно осмыслены и только начали себя проявлять на практике.

НЕ нашли? Не то? Что вы ищете?

В работе разрабатывается среда для изучения семантического моделирования конструкций языков программирования. Среда должна поддерживать вычисления простейших конструкций языков программирования, таких как: for, while, if then else и др. Означивание конструкций должно происходить в соответствие с денотационной семантикой и построенным формальным описанием.

Выделим основные результаты работы:

1.  Разработана архитектура системы, работающая через веб-интерфейс с использованием технологии и MS SQL Server 2005.

2.  Разработаны различные модели, описывающие данные и поведение пользователей в среде.

3.  Разработана среда для изучения семантического моделирования конструкций языков программирования, позволяющая интерпретировать семантические конструкции в исполняемый на O’Caml код. Были реализованы такие конструкции как, например:

a. not EЕсли значением E является true (false), то not E соответственно имеет значение false (true). В других случаях вырабатывается ошибка;

b.  E1 = E2 – Значением E1 = E2 является true, если значение E1 эквивалентно значению E2. В противном случае значением считается false.

c. E1 + E2 – Значением E1 + E2 является числовая сумма значений E1 и E2. Если E1 либо E2 – не число, то вырабатывается ошибка.

d.  I := EI в памяти связывается со значением E, причем прежнее связывание I замещается.

e. while E do C Если значением E является true, то выполняется C. Затем повторно выполняется while E do C для состояния, полученного в результате выполнения C. Если значением E является false, то ничего не делается. В случае других значений E вырабатывается ошибка.

f. if E then C1 else C2Если значением E является true (false), то выполняется C1 (C2). В противном случае вырабатывается ошибка.

g.  C1:C2Сперва выполняется С1, затем С2.

Построенная среда позволяет реализовывать выполнение программы, исходя непосредственно из ее денотационной семантики, что является ценным инструментом для проектировщика языка программирования

Список литературы

1.  Конструкции языков программирования. – М.: АО «Центр ЮрИнфоР», 2001.

2.  Методы и средства вычисления с объектами. – М.: АО «Центр ЮрИнфоР», 2004.