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