Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
flp.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
206.85 Кб
Скачать

1. Парадигмы императивного и декларативного программирования.

Императивная предполагает, что программист последовательно описывает порядок выполнения операций, приводящих к результату.

Декларативная предполагает, что описываются только свойства требуемого результата.

2. Основные задачи для функционального и логического программирования.

Целью логического и функционального программирования является вывод решений и они тесно связаны с задачами, решаемыми в искусственном интеллекте и экспертных системах (ЭС).

3. Основные понятия систем ии.

Практический подход предполагает, что с ИИ моделируют отдельные стороны интеллектуальной деятельности человека: восприятие, логический вывод, умозаключение.

Задачи ИИ:

а) классификация, предполагает отнесение объекта к одному из раннее описанных классов.

б) кластеризация, предполагает, что свойства каждого класса не описаны, более того группы, т.е. классы могут быть не известны, но система относит объект к какому-то классу, тем самым все исходное множество объектов разбивается на группы.

в) распознавание образов, может рассматриваться как частный случай классификации.

г) экспертные системы и базы знаний, следующая задача ИИ

4. Понятие функционального программирования и основные положения по а.П. Ершову.

Функциональное программирование - способ составления программы, при котором единственное действие - вызов функции.

А.П.Ершов сказал: «Способ составления программ, при котором:

- единственным действием является вызов функции;

- единственным способом расчленения программы на части является введение имени функции;

- единственным способом композиции является оператор суперпозиции;

- никаких ячеек памяти;

- ни операторов-присваивания;

- ни блок-схем;

- ни передач управления».

5. Понятие функциональности.

Свойство функциональности (прозрачность по ссылкам) означает, что результат работы функции не зависит от места программы в котором она вызвана, а зависит только от аргументов вызова.

Основное требование к программе – функциональность: значение функции зависит только от нее самой и аргумента вывода, но не зависит от места программы, в котором эта функция встречается (т.е. не должно быть обращения функции к глобальной переменной). Менее принципиальное свойство – бестиповость.

6. Понятие прозрачности по ссылкам.

Свойство функциональности (прозрачность по ссылкам) означает, что результат работы функции не зависит от места программы в котором она вызвана, а зависит только от аргументов вызова

7. Виды вычислений в функциональных языках.

Ленивые вычисления означают, что на каждом шаге вычисляется только то, что нужно для того, чтобы перейти к следующему шагу.

Энергичные вычисления – вычисляется всё, что может быть вычислено.

В энергичном случае вычисляется всё, что можно, а в ленивом – всё, что нужно.

8. Понятие бестипового программирования.

Бестиповый язык предполагает, что переменные одновременно могут быть связаны с разными по типу объектами. Бестиповые языки: Common Lisp, Erlang, Sheme и др.

9. Обзор функциональных языков программирования.

Критерии сравнения:

Практичность - использование языка программирования в реальных приложениях, наличие коммерческих компиляторов.

Академический - означает, что язык использовался только в научных приложениях, для обучения студентов, на нем нет реальных коммерческих разработок.

Типизация - статическая, динамическая. Строгая - тип переменной определяется до её использования. Динамическая - во время. Не строгая предполагает, что тип переменной определяется типом значения, которое заносится в неё. Безтиповая типизация.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]