Исполнение - логическая программа - Большая Энциклопедия Нефти и Газа, статья, страница 1
При поносе важно, какая скорость у тебя, а не у твоего провайдера. Законы Мерфи (еще...)

Исполнение - логическая программа

Cтраница 1


Исполнение логической программы удобно описывать на основе введенных во второй главе механизмов входа в процедуру и выхода из процедуры.  [1]

Руководство исполнением логических программ осуществляется главным образом механизмами управления, заложенными в интерпретатор. Программист может оказывать влияние на общий ход исполнения программы, например на последовательность, в которой строятся вычисления, однако более тонкие детали, такие как управление протоколом связываний, могут быть оставлены для разбора интерпретатору.  [2]

Значительные возможности для повышения скорости исполнения логических программ заключены в реализации механизма унификации. Наиболее часто для выполнения унификации используются различные варианты алгоритма Робинсона.  [3]

Оказывается, что стандартная стратегия исполнения логических программ полностью согласуется со стратегией выбора правил, обычно предписываемой алгоритмам Маркова. Читатель, имеющий склонность к теории, может восполнить детали этой формулировки ( краткое и простое изложение алгоритмов Маркова дается Элсоном ( 1973)) и получить тем самым формальное доказательство ее эквивалентности алгоритмам Маркова и, следовательно, ее универсальности.  [4]

Поведение, получающееся в результате исполнения логической программы, образует алгоритм. Алгоритм можно не без пользы рассматривать как пару: ( логика, управление), логическая компонента которой - это множество утверждений, составляющих программу, а управляющая компонента - это стратегия исполнения.  [5]

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

Целевые утверждения образуются здесь в таком же духе, как и при исполнении логической программы. Вследствие использования резолюции исполнение программы ( Р, GI) порождает каждое новое целевое утверждение Gt i так, чтобы выполнялось отношение Р, Gt Gt i - При выводе процедур с целью выбора информации на каждом шаге вместо множества процедур Р используется спецификация S, и в общем случае для работы с более произвольным синтаксисом целевых утверждений требуются более сложные правила вывода, чем правило резолюции.  [7]

По сравнению со скоростью исполнения, которая достигается при написании программ на языках ассемблера или на языках относительно низкого уровня, подобных Бейсику и Фортрану, исполнение эквивалентных логических программ обычно происходит медленнее. До некоторой степени это обусловлено механизмами, необходимыми для обеспечения недетерминированного исполнения, однако в большей мере это является результатом недостаточной разработки методов эффективного манипулирования данными. В ранний период логического программирования при осуществлении реализаций много усилий было затрачено на усовершенствование обработки представлений посредством структурированных термов, в результате чего гораздо меньше внимания уделялось разработке мощных механизмов управления, предназначенных для манипулирования большими, нерегулярными структурами данных, представленных иными способами.  [8]

Термины логическое программирование и программирование на языке Пролог часто употребляются как равнозначные, однако подразумеваемая стратегия управления в Прологе, в роли которой выступает определенная ранее в этой главе стандартная стратегия, отнюдь не является единственной стратегией, имеющейся для исполнения логических программ.  [9]

10 Алгоритм управления. [10]

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

В ходе построения вычисления длина текущего целевого утверждения может изменяться в зависимости от числа вызовов, которые вводятся в него в результате обращения к процедурам. Если в текущем целевом утверждении имеется несколько вызовов, то на следующем шаге может быть активирован каждый из них. Принятие решения относительно того, какой именно вызов следует активировать, называется выбором вызова; это один из аспектов исполнения логических программ, связанных с необходимостью делать выбор.  [12]

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



Страницы:      1