Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_1_Методологии_программирования_для_ЭВМ.ppt
Скачиваний:
0
Добавлен:
11.02.2026
Размер:
981.5 Кб
Скачать

Структурное программирование

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

Принципы структурного программирования: 1.Любая программа представляет собой структуру, построенную из трёх типов базовых конструкций: • последовательное исполнение; • ветвление; • цикл.

2.Повторяющиеся фрагменты программы (либо логически целостные вычислительные блоки) могут оформляться в виде т.н. подпрограмм. 3.Разработка программы ведётся пошагово, методом «сверху вниз».

Преимущества структурного программирования : 1. Снижается сложность программы. 2.Облегчается понимание её другими разработчиками. 3. Сама программа является собственно блок-схемой. 4. Сильно упрощается процесс тестирования и отладки структурированных программ.

11

Декларативное программирование

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

др.

ДП — термин с двумя различными значениями.

Согласно первому определению, программа «декларативна», если она описывает каково́ нечто, а не как его создать. Например, веб- страницы на HTML декларативны, так как они

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

12

Согласно второму определению, программа «декларативна», если она написана на функциональном языке программирования,

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

13

Функциональное программирование

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

В функциональном программировании вычисления выполняются путем объединения функций, которые принимают аргументы и возвращают конкретное значение (или значения). Эти функции не изменяют свои входные аргументы и не изменяют состояние программы. Они просто предоставляют результат данного вычисления. Такие функции обычно называются чистыми функциями (pure functions).

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

14

Математические функции выражают связь между

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

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

15

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

Недостатки функционального программирования:

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

2. В чистой функциональной парадигме отсутствуют циклы в привычном понимании программ. Языки : Лисп (Lisp), Miranda, Haskell, Gofer, Clean,F#, Python.

16

Логическое

программирование

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

Истоки логики связаны с исследованием научного мышления. -Логика представляет точный язык для явного выражения

целей, знаний и предположений.

-Логика даёт основание, позволяющее выводить следствия из исходных положений.

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

истинности или ложности других утверждений.

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

17

Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов.

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

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

От языка Planner также произошли логические языки программирования QA-4, Popler, Conniver, и QLISP. Языки программирования Mercury, Visual Prolog, Oz и Fril произошли уже от языка Prolog.

18

ориентированное

программирование

ООП— парадигма программирования, в которой основными концепциями являются понятия объектов и классов (либо прототипов).

Основные понятия ООП: 1. Абстракция данных 2. Инкапсуляция 3. Сокрытие данных 4. Наследование 5. Полиморфизм. Это программирование “ снизу вверх”.

Принципы ООП : 1. Данные являются объектами. 2. Каждый объект является представителем (экземпляром) класса, который выражает общие свойства объектов. 3. Объекты взаимодействуют между собой. 4. Классы организованы в единую древовидную структуру с общим корнем, называемую иерархией наследования.

Прототипное программирование — стиль объектно-ориентированного программирования, при котором отсутствует понятие класса, а повторное использование (наследование) производится путём клонирования существующего экземпляра объекта — прототипа. Канонический пример прототип- ориентированного языка – Self. Среди других примеров – JavaScript, Cecil, NewtonScript, Io, Slate, MOO, REBOL, Kevo, Lua.

19

Обобщенное

программирование

Назначение ОП такое же как ООП – упростить повторное использование кодов программ и методов абстрагирования общих понятий.

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

ООП – это инструмент для разработки больших программ, тогда как ОП обеспечивает выполнение задач общего характера, таких как, например, сортировка данных или поиск.

20

Соседние файлы в предмете Вводный курс программирования