1.5. Декларативный и процедурный смысл программ
1.5. Декларативный и процедурный смысл программ
До сих пор во всех наших примерах всегда можно было понять результаты работы программы, точно не зная, как система в действительности их нашла. Поэтому стоит различать два уровня смысла программы на Прологе, а именно:
• декларативный смысл и
• процедурный смысл.
Декларативный смысл касается только отношений, определенных в программе. Таким образом, декларативный смысл определяет, что должно быть результатом работы программы. С другой стороны, процедурный смысл определяет еще и как этот результат был получен, т.е. как отношения реально обрабатываются пролог-системой.
Способность пролог-системы прорабатывать многие процедурные детали самостоятельно считается одним из специфических преимуществ Пролога. Это свойство побуждает программиста рассматривать декларативный смысл программы относительно независимо от ее процедурного смысла. Поскольку результаты работы программы в принципе определяются ее декларативным смыслом, последнего (Опять же в принципе) достаточно для написания программ. Этот факт имеет практическое значение, поскольку декларативные аспекты программы являются, обычно, более легкими для понимания, нежели процедурные детали. Чтобы извлечь из этого обстоятельства наибольшую пользу, программисту следует сосредоточиться главным образом на декларативном смысле и по возможности не отвлекаться на детали процесса вычислений. Последние следует в возможно большей мере предоставить самой пролог-системе.
Такой декларативный подход и в самом деле часто делает программирование на Прологе более легким, чем на таких типичных процедурно-ориентированных языках, как Паскаль. К сожалению, однако, декларативного подхода не всегда оказывается, достаточно. Далее станет ясно, что, особенно в больших программах, программист не может полностью игнорировать процедурные аспекты по соображениям эффективности вычислений. Тем не менее следует поощрять декларативный стиль мышления при написании пролог-программ, а процедурные аспекты игнорировать в тех пределах, которые устанавливаются практическими ограничениями.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Предисловие Смысл жизни – 1 (секс, война, Linux)
Предисловие Смысл жизни – 1 (секс, война, Linux) МЕСТО ДЕЙСТВИЯ: Большая Калифорнийская долина, федеральное шоссе номер пять; черный «Форд» последней модели несется на юг. В автомобиле – Линус и Туве Торвальдс, их дочки Патриция и Даниела, а также будущий соавтор этой книги.
Смысл жизни – 2
Смысл жизни – 2 Вам случалось когда-нибудь в теплую летнюю ночь лежать, глядя на звезды, и думать, почему вы живете на свете? Каково ваше место в жизни и как следует жить дальше?Да, вот и мне не случалось.Тем не менее я выработал собственную теорию жизни, Вселенной и всего на
2.1. Слова, предложения и смысл
2.1. Слова, предложения и смысл «Механизм восприятия образов обладает некоторыми недостатками, которые являются платой за его исключительно ценные качества. Два из них, видимо, наиболее важны: образ, в особенности зрительный, склонен к обособлению ситуаций, более чем это
Процедурный вопрос
Процедурный вопрос Новый домен первого уровня обычно вызывает живой интерес у пользователей, которые планируют зарегистрировать в нем имена. При этом имена в новом домене – ресурс ограниченный, требующий тщательного распределения. В ситуации, когда о планируемом
R.8.2 Смысл описателей
R.8.2 Смысл описателей Список описателей следует после (возможно пустого) списка спецификаций-описания (§R.7.1). Каждый описатель содержит в точности одно имя-из-описателя, которое задает описываемый идентификатор. Если не считать описаний некоторых специальных функций
Правило 50: Когда имеет смысл заменять new и delete
Правило 50: Когда имеет смысл заменять new и delete Вернемся к основам. Прежде всего зачем кому-то может понадобиться подменять предлагаемые компилятором версии operator new и operator delete? Существуют, по крайней мере, три распространенные причины.• Чтобы обнаруживать ошибки
1. Смысл нормализации схем баз данных
1. Смысл нормализации схем баз данных Понятие, которое мы будем рассматривать в данном разделе, связано с понятием функциональных зависимостей, т. е. смысл нормализации схем баз данных неразрывно связан с понятием ограничений, накладываемых системой функциональных
Процедурный язык (PSQL)
Процедурный язык (PSQL) Стандарт не описывает возможности процедурного языка, поскольку в принципе предполагает, что общие задачи программирования будут решены с использованием языка программирования. Не существует спецификаций для конструкций языка по манипулированию,
6.2.2 Предопределенный Смысл Операций
6.2.2 Предопределенный Смысл Операций Относительно смысла операций, определяемых пользоватлем, не делается никаких предположений. В частности, посколку не предполагается, что перегруженное = реализует присваивание ее первому операнду, не делается никакой провеки, чтобы
8.4 Смысл описателей
8.4 Смысл описателей Каждый описатель считается утверждением того, что если в выражении возникает конструкция, имеющаяя ту же форму, что и описатель, то она дает объект указанного типа и класса памти. Каждый описатель содержит ровно одно оп_имя; оно опредляет описываемый
2.3. Декларативный смысл пролог-программ
2.3. Декларативный смысл пролог-программ В главе 1 мы уже видели, что пролог-программу можно понимать по-разному: с декларативной и процедурной точек зрения. В этом и следующем разделах мы рассмотрим более формальное определение декларативного и процедурного смыслов
Процедурный тип
Процедурный тип Тип, предназначенный для хранения ссылок на процедуры или функции, называется процедурным, а переменная такого типа - процедурной переменной. Основное назначение процедурных переменных - хранение и косвенный вызов действий (функций) в ходе выполнения
Идентификация, абстрагирование, смысл Юрий Гуськов
Идентификация, абстрагирование, смысл Юрий Гуськов Опубликовано 12 августа 2010 года Орфография и пунктуация автора сохранены. Интернет — это большая свалка информации. Впрочем, не без попыток отсортировать и упорядочить. Но даже самые
Смысл наследования
Смысл наследования Мы уже рассмотрели основные способы наследования. Многое еще предстоит изучить, в частности, множественное наследование и детали того, что происходит с утверждениями в контексте наследования (понятие субконтрактов).Но вначале следует поразмышлять
АНАЛИЗЫ: Здравый смысл vs. законодательство
АНАЛИЗЫ: Здравый смысл vs. законодательство Не секрет, что представления наших с вами соотечественников о праве очень часто далеки от реальности — даже для таких «обыденных», казалось бы, отраслей, как уголовное или гражданское. Ну а «копирайт» демонизировать, как
Ubuntu 11.10: есть ли смысл в тюнинге?
Ubuntu 11.10: есть ли смысл в тюнинге? Автор: Евгений КрестниковОпубликовано 31 октября 2011 годаО планах Canonical по переводу Ubuntu на графическую оболочку Gnome 3 с модификацией Unity было известно давным-давно. Отсутствие в конфигурации по умолчанию прежней gnome-shell также ожидаемо - свою