Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
000161_03_006_Kafedra_IT-Lektsii_po_distsipline....doc
Скачиваний:
15
Добавлен:
20.04.2019
Размер:
717.31 Кб
Скачать

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

Новую область — логическое, или реляционное программирование, — открыло появление языка PROLOG (Пролог) (PROgramming in LOGic — программирование в терминах логики). Этот язык был создан французским ученым А. Кольмероэ в 1973 году. В настоящее время известны и другие языки, однако наиболее развитым и распространенным языком логического программирования является именно Пролог. Так, имеется свыше 15 различных его реализаций на ПЭВМ. Языки логического программирования, в особенности Пролог, широко используются в системах искусственного интеллекта, рассматриваемых в данном учебном пособии.

Центральным понятием в логическом программировании является отношение. Программа представляет собой совокупность определений отношений между объектами (в терминах условий или ограничений) и цели (запроса). Процесс выполнения программы трактуется как процесс общезначимости логической формулы, построен- ной из программы по правилам, установленным семантикой используемого языка. Результат вычисления является побочным продуктом этого процесса. В реляционном программировании нужно только специфицировать факты, на которых алгоритм основывается, а не определять последовательность шагов, которые требуется выполнить. Это свидетельствует о декларативности языка логического программирования. Она метко выражена в формуле Р. Ковальского: «алгоритм = логика + управление». Языки логического программирования характеризуются:

  • высоким уровнем;

  • строгой ориентацией на символьные вычисления;

  • возможностью инверсных вычислений, то есть переменные в процедурах не делятся на входные и выходные;

  • возможной логической неполнотой, поскольку зачастую невозможно выразить в программе определенные логические соотношения, а также невозможно получить из программы все выводы правильные.

Логические программы, в принципе, имеют небольшое быстродействие, так как вычисления осуществляются методом проб и ошибок, поиском с возвратами к предыдущим шагам.

Программирование на алгоритмических языках Бейсик/Паскаль: Данные и основные операторы языка; Структура программы

Программа на языке Pascal имеет следующий вид:

program имя программы; раздел подключения модулей раздел описаний begin   операторы end.

Первая строка называется заголовком программы и не является обязательной.

Раздел подключения модулей начинается со служебного слова uses, за которым следует список имен модулей, перечисляемых через запятую.

Раздел описаний может включать разделы описания переменных, констант, типов, процедур и функций, которые следуют друг за другом в произвольном порядке.

Раздел подключения модулей и раздел описаний могут отсутствовать.

Операторы отделяются один от другого символом "точка с запятой".

Идентификаторы и служебные слова

Идентификаторы служат в качестве имен программ, модулей, процедур, функций, типов, переменных и констант. Идентификатором считается любая последовательность латинских букв или цифр, начинающаяся с буквы. Буквой считается также символ подчеркивания "_".

Например, a1, _h, b123 - идентификаторы, а 1a, ф2 - нет.

Служебные слова служат для оформления конструкций языка и не могут быть использованы в качестве имен. Список всех служебных слов языка Pascal приведен ниже:

and

array

as

begin

break

case

class

const

constructor

continue

destructor

div

do

downto

else

end

exit

external

externalsync

file

finalization

for

forward

function

if

in

inherited

initialization

is

mod

not

of

or

private

procedure

program

property

protected

public

record

repeat

set

shl

shr

sizeof

string

then

to

type

unit

until

uses

var

while

with

xor

Идентификаторы-имена при использовании могут уточняться именем модуля, в котором они описаны, следующим образом:

ИмяМодуля.Имя

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

Имя программы также считается именем модуля.