Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Polnoe_sobranie_konspektov_33.docx
Скачиваний:
8
Добавлен:
01.03.2025
Размер:
1 Мб
Скачать
☆

Логическое программирование

Математическая логика использует отточенный формальный язык для представления знаний об объектах той или иной предметной области, включая явные средства выражения гипотез и суждений. Подобные качества роднят логику и искусство программирования. Идея непосредственного применения логики в качестве средства программирования возникла практически одновременно с первыми процедурными языками. Главная особенность такого подхода состоит в том, что программа (логическая) состоит из набора утверждений (аксиом), а вычисление, выполняемое под управлением такой программы, представляет собой логический вывод некоторого целевого утверждения - искомого результата. Вывод производится из аксиом программы по правилам математической логики, причем эти правила применяются автоматически, программист не должен их специально указывать.

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

Серьезные практические результаты в области логического программирования появились только в 70-е годы после того, как была подготовлена достаточная теоретическая база и достигнут значительный прогресс в развитии вычислительной техники. К этому времени после целой череды экспериментальных языков группой Алана Колмероэ в Марселе была создана (еще неэффективная) реализация языка, заменившего последовательные вычисления машины фон Неймана на логический вывод. Новый язык, названный Прологом (Программирование логическое), предназначался для анализа текстов, написанных на естественном языке, т.е. для решения задач, обычно относимых к области искусственного интеллекта. Приблизительно в те же годы были разработаны и теоретические основы нового направления в программировании. Основные результаты в этой области принадлежат Алану Робинсону и Роберту Ковальскому. Первая реализация Пролога, выполненная кстати на Фортране, заинтересовала специалистов, но не получила широкого распространения по причине низкой эффективности. Мешал распространению Пролога и накопившийся к этому времени у специалистов (в основном американских) общий скепсис по отношению к идее логического программирования, поскольку все реализации предшественников Пролога были также неэффективны.

Настоящая революция в этой области произошла в конце 70-х, когда Дэвид Уоррен из Эдинбургского университета создал первый компилятор для языка Пролог. Этот компилятор работал настолько эффективно, что скепсис специалистов немедленно сменился всеобщим энтузиазмом. С тех пор и до настоящего времени направление логического программирования успешно развивается и поддерживается как профессионалами, так и просто любителями программирования.