Реферат Курсовая Конспект
Команды операционной системы - раздел Программирование, Логическое программирование Для Выполнения Команд System И Dir Необходимо, Чтобы ...
|
Для выполнения команд system и dir необходимо, чтобы
Турбо-Прологу была доступна дискета с COMMAND. СОМ.
system(команда)
(string):(i)
Передает указанную команду операционной системе.
date(год.месяц,день)
(integer,integer,integer): (i,i, i)(0,0,0)
Устанавливает (i,i,i) или возврапрет (i,i,i) системную дату.
time( часы, минуты, секунды, сотые_секунды)
(integer,integer,integer,integer): (i,i,i,i)(0,0,0,0)
Устанавливает (i,i,i,i) или возвращает (0,0,0,0) системное
время.
mеmbyte(сегмент,смещение,байт)
(integer,integer,integer):(i,i,i) (i,i,о)
Пишет (i,i,i) или возвращает (i,i,о) байт, адрес памяти которого
равен сегмент * 16 + смещение (offset). Адреса в диапазоне
[32768,65536] рассматриваются как отрицательные целые числа.
menword(сегмент,смещение,слово)
(integer,integer,integer):(i,i,i) (i,i,o)
Пишет (i,i,i) или возвращает (i,i,o) слово, адрес памяти
которого равен сегмент * 16 + смещение. Адреса в диапазоне
[32768,65536] рассматриваются как отрицательные целые числа.
portbyte(номер_порта,байт)
(integer,integer): (i,i)(i,о)
Пишет (i,i) байт в указанный порт, или возвращает (i,о) байт от
него.
ptr_dvord( строка_переменная,сегмент,смещение)
(string,integer,integer):(i,о,о)(о,i,i)
Возвращает (i,o,o) внутренние адреса сегмента и смешения указанной
конкретизированной строкой_переменной, или возвращает (о,i,i)
строку (.чонец при байте NUL) указанных адресов.
diг(маршрут,спецификация_файла,имя_файла)
(string,string,string):(i,i,о)
Выдаются специфированные файлы из подкаталога (по маршруту).
Возможно выбрать один файл с помощью стрелок. При нажатии <ВК>
возвращается имя выбранного файла.
Например, файл выбрать, читать, редактировать и писать обратно:
goal
makewindow(1.7,7,"",0,0,25,80),
dir("a: ","*. *",F), /* выбрать файл */
file_str(F,S), /* читать его */
edit(S,N), /* редактировать */
file_str(F,N). /* писать обратно */
stогаgе(стек,хип,трейл) .
(real,real,real): (о,о,о)
Возвращает размеры стека, "кучи" (heap) и "хвоста" (trail).
blos(номер_прерывания,вх_регистр,вых_регистр)
(integer, regdom, regdom): (i, i, о)
Активизирует прерывание биоса с указанным номером, с указанными
в вх_регистр значениями регистров и возвращает значения
регистров после выполнения прерывания в вых_регистр. Вх_регистр
и вых_регистр относятся к сгенерированной внутри Турбо-Пролога
области определения regdom, которая определена как
regdom=reg(AX,ВХ,СХ,DX,SI,DI,DS,ES), где AX... ES типа lnteger.
Дополнительные предикаты для работы Турбо-пролога
bound(переменная)
Истинно, если переменная является конкретизированной.
free(переменная)
Истинно, если переменная является неконкретиаированной.
Например, предикат для сложения, который реализует конкретизации
(i,i,0), (i,0,i), (0,i,i) И (i,i,i):
predicates
plus( real, real, real)
clauses
plus(X,Y,Z):-
free(Z),bound(X),bound(Y),Z=X+Y,I. /* сложение */
plus(X,Y,Z):-
free(Y),bound(X),bound(Z),Y»Z-X,I. /* вычетание */
plus(X,Y,Z):-
free(X),bound(Y),bound(Z),X»Z-Y,l. /* вычетание */
plus(X,Y,Z):- .
bound(X),bound(Y),bound(Z),Z"X+Y. /* проверка */
После 'запуска можно указать внешние цели:
Goal: ответ (без количества решений)
plus(3,2,X) .X=5
plus(3,X,5) X=2
plus(X,2,5) X=3
plus(3,2,5) True
plus(3,2,6) False
isname(строка)
(string) :(i)
Истинно, если строка является именем встроенного предиката
Турбо-Пролога.
fail
Всегда ложно. Вызывает возврат.
Отсечение. Ограничивает возврат .
findall(переменная,предикат(...),список_решений)
В списке решений возвращается все решения для указанной
переменной в указанном предикате. Для списка решений должна быть
указана подходящая область определения.
Например, из множества адресов выбрать определенные:
domains
familija=string
gorod =string
spisok_rai'nllij-familija* /* / области определения для */
spisok_gorodov=gorod* /* ответных списков findall */
predicates
adres(familija,eorod)
clauses
adres("Иванов","Киев").
adres("Гринхофс","Рига").
adres("Шевченко","Киев").
adres("Иванов","Рига").
goal
findall(Gor,adres("Иванов",Gor).Spisok1),
nl,write(Spisokl), /* выводит ["Киев","Рига"] */
findall (Fam, adres( Fam, ) , Spisok2),
nl,wrlte(Splsok2).
/* выводит ["Иванов", "Гринхофс", "Шэвченко", "Иванов"] */
exit
Останавливает выполнение пользовательской программы и передает
управление меню Турбо-Пролога.
not(подцель)
Истинно, если подцель ложна.
trace .
Общее включение режима отладки. Указывается в начале исходной
программы.
trace(статус)
(symbol) :(i)(0)
Устанавливает (i) или возвращает (0) текущий режим отладки. В
начале исходной программы должен быть указан предикат trace. В
качестве статуса возможно указать on - для включение, off - для
выключения отладки. Этот предикат позволяет выборочно отладить
программу.
diagnostics
Комприлятор выдает анализ программы, в который входит:
-- имена использованных предикатов;
- являются ли дизъюнкты для определенного предиката фактами или
нет;
- является ли предикат детерминированным или нет;
- размер кода каждого предиката;
- конкретизированность предиката;
- области определения аргументов.
nowarnings
При компиляции исходной программы не будут выдаваться
предупреждения.
project "имя_файла"
Указывает, что данная программа является частью проекта.
include "имя_файла"
В компиляцию включается файл с указанным именем.
– Конец работы –
Эта тема принадлежит разделу:
Логическое программирование... После многолетних теоретических работ по математической логике в году в... Для программиста особенность языка Пролог состоит в том что он на основе выражений логики предикатов может заниматься...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Команды операционной системы
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов