Функциональные языки программирования
Функциональные языки программирования - языки, в которых единственным действием является вызов функции, единственным способом расчленения программы на части является введение имени для функции и задание
Для этого имени выражения, вычисляющего значения функции, а единственным правилом композиции - оператор суперпозиции функции. Основная специфика функциональных языков программирования заключается в том, что функции обмениваются между собой данными непосредственно, т. е. без использования промежуточных переменных и присваиваний. Переменные, однажды получив значение, никогда его не изменят. Присваивание - конструкция, вносящая время в процесс вычисления. Правая часть присваивания должна быть вычислена и только после этого ее значение будет связано с левой частью. В результате, в функциональных языках циклы заменяются аппаратом рекурсивных функций. Благодаря отсутствию присваивания, программы на функциональных языках вообще не содержат так называемых побочных эффектов.
Особенность ранних функциональных языков - в их динамической типизации. Типы формируются вместе с их значениями в ходе вычислений. За последние 15 лет функциональное программирование перестало быть исключительно исследовательским. Современные языки функционального программирования (ML, Haskell) - строго типизированные, компилирующиеся, предназначенные как для индивидуальной работы над программами, так и для коллективной разработки.
|
|
Класс задач
Функциональное программирование обычно применяется для решения тех задач, которых трудно сформулировать в терминах последовательных операций. В эту категорию попадают практически все задачи, связанные с искусственным интеллектом. Это такие задачи, как обработка естественного языка, экспертные консультирующие системы, проблемы зрительного восприятия, и многие другие.
2.4. Методология логического программирования
2.4.1. Методология логического программирования
Методология логического программирования– подход, согласно которому программа содержит описание проблемы в терминах фактов и логических формул, а решение проблемы система выполняет с помощью механизмов логического вывода.
Происхождение
Логическое программирование начинает свой отсчет времени с конца 60-х годов ХХ века, когда Корделл Грин предложил использовать резолюцию как основу логического программирования. Алан Колмероэ создал язык логического программирования Prolog в 1971 году. В основе логических языков лежит теория хорновских дизъюнктов. Логическое программирование пережило пик популярности в середине80-х годов ХХ века, когда оно было положено в основу проекта разработки программного и аппаратного обеспечения вычислительных систем пятого поколения.
|
|
Методы
Метод единообразного применения механизма логического доказательствако всей программе.
Метод унификации- механизм сопоставления с образцом для создания и декомпозиции структур данных.
Вычислительная модель
Логическое программирование - это программирование в терминах фактов и правил вывода
Синтаксис и семантика
В логике теории задаются при помощи аксиом и правил вывода. То же самое мы имеем и в базисном языке логического программирования Prolog. Аксиомы здесь принято называть фактами, а правила вывода ограничить по форме до так называемых «дизъюнктов Хорна».
Переменные в утверждениях принято обозначать идентификаторами, начинающимися с заглавной буквы.
Обычно Prolоg-система работает в форме диалога с пользователем. Утверждение, которое требуется доказать, вводится с клавиатуры. Компилирующие версии трансляторов Prolog могут располагать специальными синтаксическими средствами для задания утверждений, которые требуется доказать. Такие утверждения в Prolog принято называть целями.
|
|
Ргоlоg-система использует метод унификации и метод резолюций для доказательства утверждений. Унификация- это сопоставление двух произвольных термов, содержащих переменные, с целью определения того, можно ли присвоить этим переменным такие значения, чтобы получились два одинаковых терма. Метод резолюцийзаключается в последовательном доказательстве отдельных утверждений, входящих в посылку дизъюнкта Хорна, для доказательства его следствия. Этот метод имеет прямой аналог в обычной логике высказываний.
Дата добавления: 2018-05-12; просмотров: 431; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!