Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Действие семантика является основой для формальной спецификации из семантики языков программирования , изобретенной Дэвид Уотт и Питер Д. мхов в 1990 - х годах. Это смесь денотационной , операционной и алгебраической семантики .

Семантика действия стремится быть прагматичной. Семантические описания действий (ASD) предназначены для масштабирования для работы с реалистичными языками программирования. Этому способствует расширяемость и модифицируемость ASD. Это помогает гарантировать, что расширения и изменения не потребуют слишком большого количества изменений в описании. Это контрастирует с типичным случаем при расширении денотационной или операционной семантики, что может потребовать переформулирования всего описания.

Структура семантики действия была первоначально разработана в Орхусском университете и университете Глазго . С тех пор группы и отдельные лица по всему миру внесли свой вклад в этот подход.

Семантические сущности [ править ]

Важной частью семантики действия, которая придает ему модульность, не замеченную в семантике предыдущих языков программирования, является использование семантических сущностей первого порядка. Первый порядок относится к тому, как, в отличие от денотационной семантики, где семантическая функция может быть применена к другой семантической функции, в семантике действия семантическая сущность не может быть применена к другой семантической сущности такого рода. [1]Кроме того, семантические сущности, используемые семантикой действий, расширяют способность структуры описывать конструкции языка программирования, служа для обозначения как поведения программы, которое не зависит от какой-либо конкретной реализации, так и того, каким образом части программы влияют на общую производительность в целом. Соответствующим образом названная нотация действия используется для выражения трех типов семантических сущностей, обнаруженных в семантике действия : действия , данные и результаты . Центральная семантическая сущность в этой структуре - действия, с данными и данными, играющими дополнительные роли. [2] В частности, действия - это механизмы, с помощью которых обрабатываются доходности и данные. [1]Действие, которое может происходить в рамках другого действия, представляет собой пошаговое представление поведения программы, где каждый шаг получает доступ к текущей информации, изменяет текущую информацию или делает и то, и другое. Доставщики появляются в действиях и получают доступ только к текущей информации. Сущность, дающая урожай, может быть оценена, и когда это возможно, продукт является объектом данных. [2]

Сущности действия [ править ]

Сущности действия могут напрямую представлять семантику программы, описывая возможное поведение программы, или более косвенным образом представлять влияние, которое отдельные части программы, такие как операторы или выражения, оказывают на семантику программы в целом. [2] Они моделируют вычислительное поведение, указывая изменения в состоянии посредством генерации новых значений из переданных значений. В частности, действие принимает данные, переданные ему через текущую информацию - предоставленные ему временные данные, полученные им привязки и текущее состояние хранения - и, исходя из этого, дает новые временные данные, создает новые привязки, обновляет состояние хранения или любое их сочетание. [1] Сущность действия может достигнуть кульминации четырьмя возможными способами. Это может: завершить(завершение обычно), escape (завершение в исключении), сбой (альтернатива отбрасывается) или отклонение (не завершение). [2]

Есть четыре категории информации, которые обрабатываются при выполнении действия. Временная информация соответствует промежуточным результатам и доступна для немедленного использования действием. [2] Данные, содержащие информацию о переходных процессах, включают значения, заданные выражениями. Если эти значения сразу не использовать, они теряются. [1] Информация с ограниченным объемом соответствует таблицам символов, и на нее можно ссылаться из любого места внутри действия и его под-действий. [2] Также возможно, чтобы такая информация была скрыта внутри суб-действия, посредством создания внутренней области действия, и в этом случае она будет доступна только локально в пределах этой области действия для этого суб-действия. [1] Стабильная информациясоответствует значениям, присвоенным переменным, и может быть изменен при выполнении действия. [2] Поскольку изменения в хранилище во время выполнения действия являются постоянными, только явные действия могут вызывать такие изменения. [1] В соответствии с этим, стабильная информация доступна до тех пор, пока она не будет явно уничтожена. И, в отличие от информации с ограниченным объемом, ее нельзя скрыть. Постоянная информация соответствует данным, которыми обмениваются действия, и может быть расширена, но не изменена. Временная информация создается только тогда, когда действие завершается или ускользает, а информация с ограниченной областью действия создается только после завершения действия. Модификация стабильной информации и расширение постоянной информации должны происходить во время выполнения действия. [2]

Сущность действия имеет пять различных аспектов, один для обработки, которая не полагается на информацию, и четыре для обработки каждого из четырех различных типов информации. Основной аспект, пример которого будет контроль потоков, не привязан к информации любого рода. В функциональном фасеточных занимается обработкой преходящей информации и характеризуются действиями , дающих и принимающих данные. В декларативном фасеточных занимается обработкой контекстной информации и характеризуются действиями , создающих и принимающих привязки. В императивном фасеточном имеет дело с обработкой информации стабильной и характеризуются действиями выделения и освобождение ячеек памяти, и извлекая и модифицирующие данные , сохраненные в них. Вкоммуникативный аспект связан с обработкой постоянной информации и характеризуется действиями по отправке и получению сообщений и «предложению контрактов агентам». [2] Существует два разных типа действий с точки зрения их влияния на информацию в каждом аспекте. Примитивные действия влияют на информацию только в одном аспекте. Комбинаторы действий разрешают действия, которые включают несколько аспектов, управляя потоками управления и информации для каждого аспекта, участвующего в комбинированном действии. [2] Комбинируя действия, комбинаторы действий регулируют последовательность выполнения под-действий, а также входящие и исходящие потоки данных для каждого под-действия. [1]

Сущности данных [ править ]

Сущности данных - это элементы, которые содержат информацию, обрабатываемую в сущностях действия. Данные организованы в структуры, известные как сортировки. Сортировки - это наборы математических объектов, включающие операции, которые могут выполняться с этими объектами, и определенные в соответствии с алгебраическими критериями. [1] Эти структуры позволяют получить доступ к каждому отдельному объекту. Примеры объектов данных могут включать в себя конкретные элементы, такие как карты, списки, наборы, строки, символы, числа и значения истинности, более абстрактные элементы, используемые исключительно для целей некоторой вычислительной операции, а именно для доступа к данным, таких как агенты, ячейки, соответствующие ячейкам памяти. , а также токены или элементы, такие как контракты и сообщения, состоящие из компонентов данных. [2] абстракция- это объект данных, который инкапсулирует объект действия, и в этом случае выполнение абстракции приводит к выполнению действия. Это метод, с помощью которого семантика действия представляет объявление и вызов подпрограмм. [1]

Подходящие сущности [ править ]

Сущности доходности состоят из неоцененных объемов данных. Значения этих величин зависят от текущей информации и состояния вычислений. Производители используют временные данные, привязки и хранилище для выбора информации, которая будет обрабатываться действиями. [1] Именно во время выполнения действия оцениваются доходности, и их результаты вычисляются в объектах данных. В то время как текущая информация может влиять на данные, полученные в результате оценки компании-поставщика, оценка не может влиять на текущую информацию. Если операции с данными применяются к объектам-получателю, в результате могут быть сформированы составные объекты-получатели. [2]

Обозначение действия [ править ]

Обычные английские слова служат символами обозначения действий. Нотация действий предназначена для имитации естественного языка, который иллюстрируется в частях речи, используемых для обозначения семантических сущностей. Сущности действия представлены глагольными фразами и данными, а объекты-выходцы - словосочетаниями-существительными. Результатом такого выбора символов является структура, которая легко читается и не менее формальна, чем другие структуры, поскольку остается точно определенной. [2]

Другие ключевые аспекты [ править ]

Семантика действия включает в себя уровень абстракции, который увеличивает ее понятность. Специфика потоков управления и данных, связанных с действием, неявно включается в действие, в отличие от явного выражения, поскольку детали семантических функций находятся в денотационной семантике. Когда действие выполняется, большая часть обработки информации и манипуляций происходит автоматически. [1]

Программные фразы сопоставляются с действиями при построении определения значения языка программирования в семантике действий. Выполнение программной фразы соответствует выполнению действия, которому она соответствует. [1]

Спецификация языка программирования, созданная на основе применения семантики действия, может быть разбита на нижний уровень ( микросемантика ) и верхний уровень ( макросемантика ). Нижний уровень состоит из определения значения нотации действия, в то время как верхний уровень состоит из определения значения языка программирования, используя для этого нотацию действия. [1]

Ссылки [ править ]

  1. ^ a b c d e f g h i j k l m Кеннет Слоннегер и Барри Л. Курц (1995) Формальный синтаксис и семантика языков программирования: лабораторный подход . Ридинг, Массачусетс: Эддисон-Уэсли,.
  2. ^ a b c d e f g h i j k l m Питер Д. Моссес (1996) Теория и практика семантики действия . Публикация. Орхус, Дания: Орхусский университет, 1996. Серия отчетов БРИКС RS9653.