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

Вопрос 1) Сравнительная характеристика декларативных и процедурных языков программирования

Процедурное (императивное) программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 1940-х годах. Теоретической моделью процедурного программирования служит алгоритмическая система под названием Машина Тьюринга.

При функциональном (декларативном) программировании программистом не задается пошаговый алгоритм решения задачи ("как" решить задачу), а некоторым образом описывается, "что" требуется получить в качестве результата. Механизм обработки сопоставление по образцу декларативных утверждений уже реализован в устройстве языка.

Сравнительная характеристика декларативных и процедурных языков программирования.

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

Время появления: 1950-е г.г.

Краткая характеристика:

программа – последовательность инструкций-операторов, включающих блоки типичных действий – процедуры или функции.

Примеры: Fortran, Pascal, C, Basic

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

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

Время появления: 1960-е г.г.

Краткая характеристика: программа – описание действий, которые необходимо осуществить.

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

Фактически, программист оперирует не набором инструкций, а абстрактными понятиями,

которые могут быть достаточно обобщенными.

Примеры: LISP (Interlisp, Common Lisp, Scheme), Haskell, Prolog

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

подход, возникший с появлением и развитием языка LISP.

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

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

Более того, типы отдельных функций, используемых в функциональных языках, могут

быть переменными. Таким образом обеспечивается возможность обработки разнородных (полиморфизм).

Еще одним важным преимуществом реализации языков ФП является автоматизированное динамическое распределение памяти компьютера для хранения данных. «Сборки мусора» – очистки памяти от тех данных, которые больше не потребуются программе (обычно этот процесс периодически инициируется компьютером).

В 70-х г.г. возникла еще одна ветвь языков декларативного программирования, связанная

с проектами в области искусственного интеллекта, а именно, языки ЛП.

Согласно логическому подходу к программированию, программа представляет собой

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

(метод откатов)

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