Как работать в программе пролог

Содержание
Читайте также:
Что делать если компьютер долго открывает папки и программы

Определяет или считывает символьное имя файла для устройства ввода.

( i ) – связывает текущее устройство чтения с открытым файлом. Под СимвИменемФайла понимается символьное имя клавиатуоы либо симвоьное имя файла, открытого для чтения или модификации.

(o) – связывеат символьное имя файла с именем текущего устройства чтения, которое может быть клавиатурой или файла.

readdevice (X) X= клавиатура

writedevice ( СимвИмяФайла ) (symbol) : (i) (o)

Определяет или считывает символьное имя файла для устройства вывода.

( i ) – переназначает текущее устройство записи на открытый файл с именем СимвИмяФайла, который может быть одним из заранее определенных символьных имен ( screen или printer ) или имеет символьное имя, задаваемое пользоваетелем для файла, открытого для записи или модификации.

( o ) – связывает параметр СимвИмяФайла с именем текущего устрйоства записи, которое может иметь имя screen , printer или символьное имя файла.

Описание файловых доменов

Для того, чтобы использовать в прграмме файлы, необходимо в раздел domains произвести описание файлового домена:

Работа с программой ПРОЛОГ

file – стандартный тип домена

datafile – символьное имя файла (логическое имя файла)

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

file = df1; df2; df3 % (; или )

Предикат ТП для работы с файлами

Удаление файлов

deletefile (ИмяФайлаДОС) ( string ) : ( i )

Параметр ИмяФайлаДОС может создать имя накопителя, но не должен указывать путь.

deletefile («C: progr.pro”)

Сохранение файла

save (ИмяФайлаДОС) ( string ) : ( i )

Используется для записи на внешнйи накопитель динамической базы данных. После этого файо можно снова загрузить в ОП. Если заданный файл ИмяФайлаДОС уже существует, то его содержимое уничтожается.

Переименование файлов

renamefile (СтИмяФДОС, НовИмяФДОС) ( string , string ) : ( i , i )

Проверка наличия файла

existfile (ИФД) ( string ) : ( i )

Выполняется успешно, если заданный файл имеется в текущем каталоге.

Сброс данных из внутреннего файлового буфера в заданный файл

flash ( СимвИФ ) (file) : (i)

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

Установка накопителя и пути

disc ( ПутьДОС ) (string) : (i) (o)

(i) – устанавливает путь и накопитель

(o) – связывает с параметром текущий накопитель и путь.

Читайте также:
Как понизить пинг в фортнайт на ПК программы

Вывод текущего каталога

dir (Путь, СпецификацияФайла, ИФД) ( string , string , string ) : ( i , i , o )

Выдается каталог имен файлов в соответствии с заданными параметрами и присваивается 3-му параметру имя выбранного из каталога файла.

Открытие файлов

— для чтения : openread

— для записи: openwrite

— для чтения/записи : openmodify

— для заполнения (до записи) : openappend .

Формат этих предикатов одинаков: (СИФ, ИФД) ( file , string ) : ( i , i )

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

Закрытие файла

closefile ( СИФ ) (file) : (i)

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

Проверка на конец файла

eof ( СИФ ) (file) : (i)

Выполняется успешно, если указатель текущей позиции файла указывает на конец файла.

Установка или чтение типа файал

filemode ( СИФ , тип ) (file, integer) : (i, i) (i, o)

( i , i ) – устанавливает тип файла ( 0 – текстовый, 1 – бинарный)

( i , o ) – читает тип заданного файла и связывает его с параметром тип файла.

Устанвока или чтение позиции указателя файла

filepos ( СИФ , Позиция , Режим ) (file, real, integer) : (i, i, i) (i, o, i)

( i , i , i ) – устанавливает указатель данного файла на заданню позицию (Режим=0 – относительно начала файла, =1 – текущей позиции, =2 – конца)

( i , o , i ) – определяет позицию указателя относительно начала файла.

Чтение строки из файла

file_str ( ИФД , Строка ) (string, string) : (i, o) (i ,i)

( i , o ) – читает строку из заданного файла и связывает ее с параметрм строка.

Максимально допустимый размер строки 64 кБайта. Признаком конца строки является символ Ctrl — Z (126).

Запись в файл

Последовательность действий, необходимая для записи в файл:

1. Открытие файла с помощью предиката openwrite . Если файла с указанным именем нет, то создаетс яновый файл. Если файл уже есть, то его содержимое будет утрачено. Чтобы от этого застраховаться, можно сначала проверить наличие файла предикатом existfile , и принять соответствующие меры, если existfile будет успешным.

2. Назначение файла в качнстве устройства записи предиката writedevice .

3. Самма запись в файл write или writef .

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

5. Закрытие файла предикатом closefile .

/* Вывод информации на экран дисплея в файл на диск */

openwrite (data, «a1.dat”),

Источник: prolog.ucoz.com

Study Число положительное или равно нулю»):-
find_solution (X , «Число равно нулю»):-

find_solution (X , «Число отрицательное или равно нулю»):-
goal
find_solution (0 , КакоеЧисло).

КакоеЧисло=Число положительное или равно нулю

КакоеЧисло=Число равно нулю

КакоеЧисло=Число отрицательное или равно нулю

А если мы изменим тип детерминизма на procedure то получим ошибку компиляции.

E;Test_Goal, pos: 407, 590 Nondeterministic clause: find_solution
Для избежания данной проблемы мы вынуждены пользоваться отсечением (cut, !).
predicates
procedure find_solution (integer , string)
clauses
find_solution (X , «Число положительное или равно нулю»):-
find_solution (X , «Число равно нулю»):-
find_solution (X , «Число отрицательное или равно нулю»):-
goal
find_solution (0 , КакоеЧисло).

Вот результат запуска программы:

КакоеЧисло=Число равно нулю

Следующим шагом на пути создания библиотеки dll будет создание специального файла определений для экспорта. Ведь согласитесь, что глупо все объявленные предикаты делать общедоступными для пользователей. Если у вы начинали программировать под windows и разрабатывали библиотеки в конце win3.11 и вначале win95, то до появления директив, вроде:

__declspec(dllexport)

использовался специальный файл *.DEF, в котором описывались характеристики библиотеки и указывались имена экспортируемых функций.

Когда мы создали проект типа “dll”, среда Vip5 автоматически сгенерировала данный файл, но к сожалению не добавила его к проекту. Придется нам самим для удобства дальнейшей его правки добавить к проекту. Используйте кнопку “New” в менеджере проекта, и выберите на диске данный файл.

Пролог (язык программирования)

Mercury , Prolog ) — язык и система логики предикатов первого порядка .

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

Факты в языке Пролог описываются логическими предикатами с конкретными значениями. Правила в Прологе записываются в форме правил логического вывода с логическими заключениями и списком логических условий.

Особую роль в интерпретаторе Пролога играют конкретные запросы к базам знаний, на которые система логического программирования генерирует ответы «истина» и «ложь». Для обобщенных запросов с переменными в качестве аргументов созданная систем Пролог выводит конкретные данные в подтверждение истинности обобщенных сведений и правил вывода.

Факты в базах знаний на языке Пролог представляют конкретные сведения (знания). Обобщённые сведения и знания в языке Пролог задаются правилами логического вывода (определениями) и наборами таких правил вывода (определений) над конкретными фактами и обобщенными сведениями.

Начало истории языка относится к 1970-м годам. [1] Будучи декларативным языком программирования , Пролог воспринимает в качестве программы некоторое описание задачи или баз знаний, и сам производит логический вывод, а также поиск решения задач, пользуясь механизмом

  • 1 Развитие
  • 2 Межплатформенность
  • 3 Архитектура
  • 4 Критика
  • 5 Новая перспектива
  • 6 Примечания
  • 7 Ссылки
  • 8 Литература

Развитие [ ]

Интерес к Прологу поднимался и затихал несколько раз, энтузиазм сменялся жёстким неприятием. Наиболее высоко был поднят интерес к языку Пролог, как к языку будущего, во время разработок японской национальной программы компьютеры пятого поколения в 1980-х годах, когда разработчики надеялись, что с помощью Пролога можно будет сформулировать новые принципы, которые приведут к созданию компьютеров более высокого уровня интеллекта.

Язык Пролог в 1980-х годах был включен в ряд советских вузовских и школьных учебников баз знаний и моделей экспертных систем. С этой целью на IBM PC и ряде советских школьных компьютеров были реализованы учебные русскоязычные интерпретаторы Пролога.

В языке Прологе факты описываются в форме логических предикатов с конкретными значениями. Правила вывода описываются логическими предикатами с определением правил логического вывода в виде списка предикатов над базами знаний и процедурами обработки информации.

Межплатформенность [ ]

Пролог реализован практически для всех известных операционных систем и платформ (в том числе для Архитектура [ ]

Критика [ ]

Пролог критикуется в первую очередь за свою недостаточную гибкость, отчего решения на обычных языках программирования (типа Новая перспектива [ ]

Перспектива развития всемирной Сети, известной как проект OWL, основанного на концепции First-Order Logic (FOL) [2] , реализацию которой, в свою очередь, можно рассматривать как значительно более расширенную технику классического Prolog.

Примечания [ ]

  1. ↑История языка Prolog
  2. ↑http://www.ruleml.org/fol

Ссылки [ ]

  • Международный стандарт ISO для языка Пролог
  • tuProlog — основанный на Java облегчнный Пролог
  • Русский Пролог — Актор
  • Visual Prolog
  • Gprolog (GNU Prolog)
  • Болгарский Клубничный Пролог
  • SWI-пролог
  • Искусственный интеллект: стагнация или новая перспектива

Источник: cybernetics.fandom.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru