TURBO PROLOG. Терёхин В.В. - 13 стр.

UptoLike

Составители: 

13
строения программ. Основная цель состоит в том, чтобы показать, почему
Турбо-Пролог называется декларативным языком, и в чем отличие деклара-
тивных языков от императивных.
При освоении нового языка важно изучить способ представления
данных и процесс выполнения программы. В этой главе показано, как внут-
ренние подпрограммы унификации системы Турбо-Пролог управляют
вы-
полнением программы и обработкой данных. "Псевдопрограммы" и примеры
фрагментов программ помогут понять основы использования Турбо-
Пролога для решения задач.
2.2 Декларативные и императивные языки
По-видимому, наилучший способ понять идеи декларативных языков
состоит в рассмотрении их в контексте эволюции языков программирова-
ния. Первоначально способ решения задачи на ЭВМ заключался в
состав-
лении программ на "естественном языке" ЭВМ, т.е. в машинных кодах. Имея
полностью в своем распоряжении память и центральный процессор ЭВМ,
программисты, использовавшие машинные языки, должны были задавать
машине способ решения задачи в виде последовательности шагов, которые
должна выполнить машина, и способы обработки данных. Программы на
машинных языках были
императивными, то есть они диктовали шаги реше-
ния задачи (алгоритм) и способы обработки данных.
Программирование на машинных языках требует много времени,
и кроме того, эти языки сложны для чтения и составления программ про-
граммистом. Поэтому были разработаны специальные программы для транс-
ляции в машинный код более естественных и легко понимаемых
языковых
конструкций, описывающих алгоритмы. Транслирующие программы преоб-
разуют команды, заданные в символической форме, в последовательность
команд машинного языка. Эти программы называются компиляторами и
интерпретаторами. Транслируемые команды, заданные в символической
форме, представляют собой языки высокого уровня, такие, например, как
Фортран и Кобол. Создание языков высокого уровня существенно увеличило
скорость разработки программ и
сократило потребность в программистах,
хорошо знакомых с архитектурой ЭВМ. Но программы, написанные на язы-
ках высокого уровня, все еще оставались императивными по своей природе,
так как все еще в них было необходимо указывать шаги обработки и манипу-
лирования данными.
Большинство используемых сейчас языков являются императив-
ными. Но в 60-х гг
. были разработаны неимперативные языки, например,
Лисп и Исвим, основанные на декларативных принципах. Неимперативные
языки, создали новые методы программирования, которые позволили сгла-
дить различия между шагами решения задачи и манипулированием данными.
Пролог (ПРОграммирование на ЛОГическом языке) был разрабо-
тан в течении этого периода. Программы на Прологе содержат утверждения,
сделанные программистом, т
.е. "декларации" логических соотношений, не-
обходимых для решения задачи. Языки, позволяющие описывать логиче-
строения программ. Основная цель состоит в том, чтобы показать, почему
Турбо-Пролог называется декларативным языком, и в чем отличие деклара-
тивных языков от императивных.
           При освоении нового языка важно изучить способ представления
данных и процесс выполнения программы. В этой главе показано, как внут-
ренние подпрограммы унификации системы Турбо-Пролог управляют вы-
полнением программы и обработкой данных. "Псевдопрограммы" и примеры
фрагментов программ помогут понять основы использования Турбо-
Пролога для решения задач.

      2.2 Декларативные и императивные языки
      По-видимому, наилучший способ понять идеи декларативных языков
состоит в рассмотрении их в контексте эволюции языков программирова-
ния. Первоначально способ решения задачи на ЭВМ заключался в состав-
лении программ на "естественном языке" ЭВМ, т.е. в машинных кодах. Имея
полностью в своем распоряжении память и центральный процессор ЭВМ,
программисты, использовавшие машинные языки, должны были задавать
машине способ решения задачи в виде последовательности шагов, которые
должна выполнить машина, и способы обработки данных. Программы на
машинных языках были императивными, то есть они диктовали шаги реше-
ния задачи (алгоритм) и способы обработки данных.
            Программирование на машинных языках требует много времени,
и кроме того, эти языки сложны для чтения и составления программ про-
граммистом. Поэтому были разработаны специальные программы для транс-
ляции в машинный код более естественных и легко понимаемых языковых
конструкций, описывающих алгоритмы. Транслирующие программы преоб-
разуют команды, заданные в символической форме, в последовательность
команд машинного языка. Эти программы называются компиляторами и
интерпретаторами. Транслируемые команды, заданные в символической
форме, представляют собой языки высокого уровня, такие, например, как
Фортран и Кобол. Создание языков высокого уровня существенно увеличило
скорость разработки программ и сократило потребность в программистах,
хорошо знакомых с архитектурой ЭВМ. Но программы, написанные на язы-
ках высокого уровня, все еще оставались императивными по своей природе,
так как все еще в них было необходимо указывать шаги обработки и манипу-
лирования данными.
            Большинство используемых сейчас языков являются императив-
ными. Но в 60-х гг. были разработаны неимперативные языки, например,
Лисп и Исвим, основанные на декларативных принципах. Неимперативные
языки, создали новые методы программирования, которые позволили сгла-
дить различия между шагами решения задачи и манипулированием данными.
            Пролог (ПРОграммирование на ЛОГическом языке) был разрабо-
тан в течении этого периода. Программы на Прологе содержат утверждения,
сделанные программистом, т.е. "декларации" логических соотношений, не-
обходимых для решения задачи. Языки, позволяющие описывать логиче-


                                                                      13