Лекция 1. Основы логического программирования.
Цель лекций. Принципы логического программирования, история возникновения и языки логического программирования.
Содержание лекций. Хороший стиль программирования предполагает разделение конкретных свойств языка программирования и уровней программирования. Специфика задач искусственного интеллекта требует их глубокой взаимосвязи. Структура языка должна удовлетворять нижним уровням компьютерной архитектуры, включая операционную систему, архитектуру аппаратных средств, объем памяти и быстродействие процессора. Этим и объясняется их популярность при решении задач искусственного интеллекта. Искусственный интеллект сформировался как отдельная область знаний и продемонстрировал свою применимость для решения многих практических задач на основе языка PROLOG. Однако в последнее время удельный вес этих языков при решении задач искусственного интеллекта несколько снизился. Это объясняется требованиями к разработке программных систем. Системы искусственного интеллекта зачастую служат модулями других больших приложений, поэтому стандарты разработки приводят к необходимости использования единого языка программирования всего приложения. Кроме того, эти языки служат для обоснования многих средств, которые впоследствии включаются в современные языки программирования. Первая PROLOG-программа была написана в начале 1970-х годов во Франции в рамках проекта по пониманию естественного языка. Преимущества этого языка были продемонстрированы при разработке исследовательских проектов, призванных оценить и повысить выразительность логического программирования. Языки основанные на логике языки, поддерживает декларативный стиль программирования т.е. конструирование программы в терминах высокоуровневого описания ограничений предметной области задачи [1,2]. В отличие от него, процедурный стиль программирования предполагает написание программы в виде последовательности инструкций по выполнению алгоритма. В логическом программировании компьютеру сообщается, "что есть истина", а не "как это сделать". Это позволяет программистам сосредоточиться на решении задачи и создании спецификаций для предметной области, а не на деталях написания низкоуровневых алгоритмических инструкций вида "что делать далее". Как реализация принципов логического программирования язык PROLOG вносит интересный и существенный вклад в решение задач искусственного интеллекта. Наиболее важное значение имеетдекларативная семантика - средство прямого выражения взаимосвязей в задачах искусственного интеллекта, а также встроенные средства унификации и некоторые приемы проверки соответствия и поиска. PROLOG - это наиболее известный пример языка логического программирования (logic programming language). Логическая программа - это набор спецификаций в рамках формальной логики. PROLOG основан на теории предикатов первого порядка. Само имя этого языка программирования расшифровывается как Programming in Logic (Программирование в логике). При выполнении программы интерпретатор постоянно реализует вывод на основе логических спецификаций. Идея использования возможностей представления теории предикатов первого порядка - это одно из основных преимуществ применения языка PROLOG для компьютерных наук вообще и искусственного интеллекта в частности. Применение теории предикатов первого порядка в языке программирования обеспечивает прозрачный, элегантный синтаксис и хорошо определенную семантику. Развитие языка PROLOG уходит корнями в исследования, связанные с доказательством теорем, а точнее, с разработкой алгоритмов опровержения резолюции. Процедура доказательства, получившая название резолюции (resolution), стала основным методом вычислений на языке PROLOG. Благодаря этим свойствам PROLOG зарекомендовал себя в качестве полезного средства исследования таких экспериментальных вопросов программирования, как автоматическая генерация кода, верификация программ и разработка высокоуровневых языков программирования. PROLOG, как и другие основанные на логике языки, поддерживает декларативный стиль программирования т.е. конструирование программы в терминах высокоуровневого описания ограничений предметной области задачи. В отличие от него, процедурный стиль программирования предполагает написание программы в виде последовательности инструкций по выполнению алгоритма. Как реализация принципов логического программирования язык PROLOG вносит интересный и существенный вклад в решение задач искусственного интеллекта. Наиболее важное значение имеет. декларативная семантика (declarative semantics) - средство прямого выражения взаимосвязей в задачах искусственного интеллекта, а также встроенные средства унификации и некоторые приемы проверки соответствия и поиска. В следующих лекциях будут затронуты многие важные вопросы логического программирования и организации языка PROLOG. Несмотря на существование многочисленных диалектов языка PROLOG, обычно используется исходная версия языка С-PROLOG, разработанная Уорреном и Перейрой. Однако существуют многочисленные отличия синтаксиса логики предикатов от языка PROLOG [3,4].
Достарыңызбен бөлісу: |