Cтраница 1
Использование отсечения делает предикат R детерминированным. Конструкция такого типа весьма похожа на оператор CASE в процедурных языках программирования. [1]
Использование отсечения только по прямоугольным областям заметно ускоряет и упрощает процесс отсечения, но за это приходится расплачиваться несколькими вызовами функции рисования для областей, являющихся объединением нескольких прямоугольников. [2]
Ограничения на использование отсечения проистекают из того, что есть опасность потерять такое важное для нас соответствие между декларативным и процедурным смыслами программы. [3]
Заметьте, что использование отсечения в предложении для категории победитель не обязательно, что связано с особенностями наших трех классов. [4]
И поэтому, хотя использование отсечения, fail и not придают программированию в реальном ПРОЛОГе большую гибкость, ни программист, ни пользователь не имеют гарантии того, что их програм - s мы будут вычислять правильные результаты. [5]
Важным моментом здесь является то, что при использовании отсечения требуется уделять больше внимания процедурным аспектам. К несчастью, эта дополнительная трудность повышает вероятность ошибок программирования. [6]
В этом разделе мы рассмотрим первый из нескольких подходов к решению задач без использования отсечений на ранних этапах. Эти подходы имеют общую идею построения абстрактного пространства поиска, но отличаются в своих предположениях о природе этого пространства. Абстракция подчеркивает важные обстоятельства некоторой проблемы и позволяет разбить ее на подпроблемы. В простейшем случае имеется постоянное разбиение в абстрактном пространстве, приемлемое для всех проблем из некоторой предметной области. [7]
Функционирование отсечения может быть описано только в терминах процедурной интерпретации ПРОЛОГ-программ. Это означает, что ответственность за последствия использования отсечения и управление вычислением возлагается на программиста. Необходимость включения отсечения в состав языка ПРОЛОГ постоянно оспаривается теми, кто хочет видеть ПРОЛОГ чисто логическим языком программирования. Эти возражения опираются на следующие доводы. [8]
В наших примерах из предыдущего раздела мы видели, что удаление отсечений из программы может привести к изменению ее декларативного смысла. Использование отсечений последнего типа требует меньшей осторожности, и поэтому такие отсечения иногда называют зелеными отсечениями, С точки зрения наглядности программы такие отсечения невшшы и их использование вполне приемлемо. При чтении программы их можно просто игнорировать. [9]
Подход к интерпретации данных, используемый в системе HEARSAY - Ц, отличается от подхода, использованного в системе GA1, обсуждавшейся в разд. Обе программы имеют дело с большим пространством поиска. Система GA1 справляется с этим благодаря использованию отсечений, производимых на возможно более ранних этапах поиска. [10]
В дальнейшем мы покажем, что использование отсечения может также затронуть и декларативный смысл программы. [11]
Оператор отсечения следует применять с осторожностью. Всегда, когда это возможно, предпочтение следует отдавать зеленым отсечениям перед красными. Использование красных отсечений должно ограничиваться четко определенными конструкциями, такими как оператор not или конструкция выбора между альтернативами. [12]
Но это не снимет присущей данной грамматике неоднозначности, а даст лишь уверенность в том, что согласно процедурной интерпретации правил Пролога с отсечением будет толучен всего лишь один вариант грамматического разбора. Ввиду того что определение неоднозначности не содержит никаких намеков на процедурность применения правил, грамматика, определяемая утверждениями, должна быть декларативно ясной с тем, чтобы обеспечить нахождение критерия, делающего ее однозначной. По) тим соображениям использование отсечения исключается. [13]