<<
>>

Операционная семантика

Операционное определение языка программирования описывает выполнение программы, составленной на данном языке, средствами виртуального компьютера [86]. Виртуальный компьютер определяется как абстрактный автомат.
Внутренние состояния этого автомата моделируют состояния вычислительного процесса при выполнении программы. Автомат транслирует исходный текст программы в набор формально определенных операций. Этот набор задает переходы автомата из исходного состояния в последовательность промежуточных состояний, изменяя значения переменных программы. Автомат завершает свою работу, переходя в некоторое конечное состояние. Таким образом, здесь идет речь о достаточно прямой абстракции возможного использования языка программирования.

Итак, операционная семантика описывает смысл программы путем выполнения ее операторов на простой машине-автомате. Изменения, происходящие в состоянии машины при выполнении данного оператора, определяют смысл этого оператора.

С одной стороны, машина-автомат способна воспринимать задания, представляемые лишь на простом языке моделирования.

С другой стороны, современный компьютер может служить универсальным интерпретатором такого языка. Подобный интерпретатор может быть реализован программой, которая становится виртуальной машиной для языка моделирования.

Таким образом, в операционной семантике требуются:

? транслятор, преобразующий операторы исходного языка программирования L в команды низкоуровневого языка моделирования;

? виртуальная машина (ВМ) для языка моделирования.

Например, язык моделирования может представляться набором простых команд, записанных в табл. 7.4.

Таблица 7.4. Язык моделирования виртуальной машины

Команды виртуальной машины_________________________________________

ident := van ident := ident + 1 ident := ident - 1 goto label

if van relop var goto label ident := var bin_op var ident := un_op var

Здесь приняты следующие обозначения: van — переменная, ident — имя переменной, goto label — команда безусловного перехода на символический адрес label,

Аксиоматическая семантика

189

relop — обозначение одной из операций сравнения (, =, ), bin_op — операция над двумя аргументами, un_op — операция над одним аргументом. Условимся, что символический адрес команды (метку) будем отделять от команды двоеточием.

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

Таблица 7.5. Программа для виртуальной машины

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

ПРИМЕЧАНИЕ ---------------------------------------------------------------------------------------------------

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

В 1972 году была разработана операционная модель языка под названием Vienna Definition Language (VDL) — это метаязык, предназначенный для описания других языков. В ее состав входили транслятор и виртуальная машина. С помощью данной модели был описан язык программирования PL/1.

<< | >>

Еще по теме Операционная семантика:

  1. Э. ТАНЕНБАУМ, А. ВУДХАЛЛ. ОПЕРАЦИОННЫЕ СИСТЕМЫ Разработка и реализация 3-е издание, 2007
  2. В.Е. Карпов К.А. Коньков. Основы операционных систем, 2005
  3. Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ, 2015
  4. М.Руссинович, Д.Соломон. Внутреннее устройство Microsoft Windows (главы 1–4), 2005
  5. Задания для самостоятельной работы
  6. ЗООСЕМАНТИКА
  7. е. Мазохизм (самонаказание).
  8. Владимир Викторович Маслов. Введение в Perl, 2003
  9. Кудинов Ю. И., Пащенко Ф. Ф., Келина А. Ю.. Практикум по основам современной информатики: Учебное пособие., 2011
  10. Ю. И. КУДИНОВ, Ф.Ф. ПАЩЕНКО, А. Ю. КЕЛИНА. ПРАКТИКУМ ПО ОСНОВАМ СОВРЕМЕННОЙ ИНФОРМАТИКИ, 2011
  11. Таненбаум Э.. Архитектура компьютера. 5-е изд, 2007
  12. ТЕОРИЯ ИГРЫ
  13. 3.2. Проверка лидерских качеств на практике