Языки логического программирования

Согласно логическому подходу к программированию, программа представляет собой совокупность правил, или логических высказываний. Кроме того, в программе допустимы логические причинно-следственные связи. Таким образом, языки логического программирования базируются на классической логике и применимы для систем логического вывода, в частности, для так называемых экспертных систем. На языках логического программирования естественно формализуется логика поведения, и они применимы для описаний правил принятия решений, например, в системах, ориентированных на поддержку бизнеса.

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

Программы на языках логического программирования выражены как формулы математической логики, а компилятор пытается получить следствия из них. Родоначальником большинства языков логического программирования является язык ПРОЛОГ (Prolog, 1971). У него есть ряд потомков — Parlog (1983, ориентирован на параллельные вычисления), Delta Prolog и др.

ПРОЛОГ — это язык, предназначенный для поиска решений. Это декларативный язык, т.е. формальная постановка задачи может быть использована для ее решения. ПРОЛОГ определяет логические отношения в задаче как отличные от пошагового решения этой задачи.

Центральной частью ПРОЛОГа являются средства логического вывода, которые решают запросы, используя заданное множество фактов и правил, к которым обращаются как к утверждениям. ПРОЛОГ также не имеет деления переменных на типы и может динамически добавлять правила и факты к средствам вывода.

Для удобства восприятия приведем таблицу с характеристиками основных языков программирования (табл. 2.1).

Таблица 2.1. Характеристика основных языков программирования

Язык

Основное использование

Описание

Ada

В оборонной промышленности

Высокого уровня

АССЕМБЛЕР

Для работ, требующих детального контроля за аппаратным обеспечением, быстрого исполнения и программ малого размера

Быстрый и эффективный, но требующий определенных усилий и навыков

БЕЙСИК

В образовании, бизнесе, дома

Прост в изучении

С

В системном, универсальном программировании

Быстрый и эффективный, широко используется как универсальный язык

C++

В объектно-ориентированном программировании

Основан на языке С

КОБОЛ

В программировании в бизнесе

Жестко ориентирован на коммерческие задачи, легко научиться, но очень много операторов

ФОРТРАН

Для научной работы и вычислений

Основан на математических формулах

ЛИСП

Для искусственного интеллекта

Язык символов с репутацией трудно изучаемого

МОДУЛА-2

В системном программировании, программировании в режиме реального времени и универсальном программировании

Высоко структурирован, разработан взамен ПАСКАЛя

Окончание табл. 2.1

Язык

Основное использование

Описание

ОБЕРОН

В универсальном программировании

Небольшой, компактный язык, соединяющий многие черты ПАСКАЛЯ и МОДУЛЫ-2

ПАСКАЛЬ

Универсальный язык

Высоко структурирован

ПРОЛОГ

Для искусственного интеллекта

Символьно-логическая система программирования, в начале предназначенная для решения теорем, но сейчас использующаяся чаще для решения задач, связанных с искусственным интеллектом

Существует множество классификаций языков программирования по различным критериям. Самое простое деление — на языки высокого и низкого уровня.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >