Непейвода Н.Н. Программирование. Раздел 1

Непейвода Н.Н. Программирование. Страница 115

Сентенциальное программирование отличается следующими особенно­стями.

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

В некоторых из вариантов сентенциального программирования эти выра­жения могут содержать переменные, а в других — нет. Например, в языке Prologполе зрения — конечная система скобочных выражений, подобная

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

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

И левая, и правая части оператора могут при этом содержать переменные, значения которых станут известны лишь в момент применения оператора.

Выполняется тот оператор, для которого активная часть выражения по­лучается из левой части оператора некоторой подстановкой значений переменных, их конкретизацией либо унификацией11. Полученные при конкретизации (унификации) значения переменных используются для конкретизации правой части (а при унификации — и всего поля памя­ти). Активная часть выражения заменяется на правую часть правила.

Например, если у нас есть правило

то вся активная часть поля памяти будет проверена на возможность пред­ставления форме X*(Y+Z), при этом переменные X, Y, Zполучат значения,

после чего будет произведена соответствующая замена выражения с исполь­зованием найденных значений переменных.

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

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие "Крокодилы"

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама