Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Чтение программ




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

Системе Prolog можно сообщить, что она должна прочитать и обработать про­грамму из файла 1, с помощью цели в форме consult. -, например, следующим об­разом:?- consult) ргодгатЗ)

В зависимости от реализации может потребоваться присвоить файлу с указанным именем, в данном случае ргодгатЗ, расширение, которое обозначает его как про­граммный файл Prolog. Результатом достижения этой цели становится то, что все предложения в файле ргодгапз считываадтся и загружаются в память. Затем эти предложения используются системой Prolog при формировании ответов на после­дующие вопросы пользователя. В дальнейшем на протяжении того же сеанса для по­лучения консультации может быть загружен другой файл. По сути, результат такой операции состоит в том, что предложения из этого нового файла загружаются в па­мять. Но нюансы выполнения данной операции зависят от реализации Prolog и от других обстоятельств. Например, если новый файл содержит предложения, касаю­щиеся процедуры, которая определена в файле, ранее использовавшемся для получе­ния консультации, то в одном варианте новые предложения могут быть добавлены к концу текущего набора предложений, а другой вариант может предусматривать пол­ную замену предыдущего определения этой процедуры новым определением.



Часть I. Язык Prolog


Для получения консультации с помощью одной и той же цели consult можно использовать несколько файлов, например, следующим образом:?- consult ([ programs, program-}, queens! >.

Подобный вопрос может быть также записан более просто: 1- [ programs, program4, queens].

Программы, использовавшиеся для получения консультации, служат в качестве дополнительной информации для интерпретатора Prolog (именно поэтому операция получения консультации имеет такое название). Если данная реализация Prolog пре­дусматривает также использование компилятора, то программы могут быть загруже­ны в откомпилированной форме. Это позволяет повысить быстродействие программы, причем обычно быстродействие откомпилированного кода по сравнению с интерпре­тируемым возрастает в 5-10 раз. Программы загружаются в память в откомпилиро­ванной форме с помощью встроенного предиката compile, например, следующим об­разом:

?- compile! programs). или?- compile! [ program4, queens, programs]}.

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

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

Резюме

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

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

• Переключение между потоками осуществляется с помощью перечисленных ниже предикатов.

 

• see (File). Файл File становится текущим входным потоком.

• tell (File). Файл File становится текущим выходным потоком.

• seen. Закрывает текущий входной поток,

• told. Закрывает текущий выходной поток.

• Файлы считываются и записываются следующими способами:

• как последовательности символов;

• как последовательности термов.

Ниже перечислены встроенные процедуры для чтения и записи символов и термов.

read (Term}. Вводит следующий терм.


Глава 6. ВВОДИ ВЫВОД



• write (Term). Выводит терм Term.

• put (CharCode). Выводит символ с указанным кодом ASCII,

• get0 (CharCode). Вводит следующий символ.

• get (CharCode). Вводит следующийлечшюшшыТ! символ.

• Для форматирования применяются две процедуры, перечисленные ниже.

• nl. Выводит символ с обозначением новой строки.

• tab< N). Выводит N пробелов.

• Процедура name (Atom, CodeList) применяется для анализа и формирова­
ния атомов.
CodeList — это список кодов символов ASCII в имени атома

Atom.

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





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 393 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Ваше время ограничено, не тратьте его, живя чужой жизнью © Стив Джобс
==> читать все изречения...

2264 - | 2207 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.