- •Лекция №12-13
- •Алгоритм, алгоритмизация, алгоритмический язык
- •Свойства алгоритмов
- •Управляющие структуры и основные конструкции алгоритмов
- •Неформальные описания алгоритмов
- •Сортировка методом простого выбора
- •Сортировка в интегрированных пакетах
- •Сортировка в приложении Word
- •Сортировка в приложении Excel
- •Алгоритмы генерации случайных чисел
- •Сложность алгоритмов
- •Технологии (парадигмы) программирования
- •Процедурное программирование
- •Функциональное программирование
- •Логическое программирование
- •Объектно-ориентированное программирование
- •Визуальное программирование
- •Языки программирования баз данных
- •Языки программирования для компьютерных сетей
- •Инженерия программного обеспечения
- •Принцип программного управления
Технологии (парадигмы) программирования
В настоящее время основными парадигмами программирования являются: процедурное, функциональное, логическое, объектно-ориентированное и визуальное программирование.
Процедурное программирование
Процедурное программирование - есть отражение фон Неймановской архитектуры компьютера. Программа, написанная на процедурном языке, представляет собой последовательность команд, определяющих алгоритм решения задачи. Основная идея процедурного программирования - использование памяти для хранения данных. Основная команда - присвоение, с помощью которой определяется и меняется память компьютера. Программа производит преобразование содержимого памяти, изменяя его от исходного состояния к результирующему. Языками процедурного программирования являются, например, следующие языки:
Фортран (Fortran) создан в 50-х годов 20-го века для программирования научно-технических задач;
Кобол (Cobol) (конец 60-х г.г.) - для решения задач обработки больших объемов данных, хранящихся на различных носителях данных, используется до сих пор для решения экономических задач;
Алгол (Algol) (1960 г.) – универсальный язык программирования, в котором впервые введены понятия «блочная структура программы» и «динамическое распределение памяти»;
PL-1 (1963-1966 г.г.) ‑ универсальный язык программирования, использовавшийся для решения задач различных классов, включая: исследование и планирования вычислительных процессов; моделирования; решения логических задач; разработки систем математического обеспечения;
Паскаль (PASCAL) (1968-1971 г.г.) – разработан Н. Виртом как язык для обучения программированию. Однако язык оказался столь успешным, что ему сопутствовал не только академический, но коммерческий успех;
Ада (Ada) (1979 г.) - универсальный язык программирования, назван в честь Ады Лавлейс- дочери Байрона. Ожидали, что язык Ада заменит все языки высокого уровня, в частности в определённый период данных язык Ада рассматривался как официальный единственный язык для программных задач Пентагона;
С (начало 70-х г.г.) - универсальный язык программирования. Изначально C создавался для системного программирования, что заменить ассемблеры.
Функциональное программирование
В отличие от процедурного, функциональное программирование не использует концепцию памяти как хранилища значений переменных. Операторы присваивания отсутствуют, вследствие чего переменные обозначают не области памяти, а объекты программы, что полностью соответствует понятию переменной в математике. Роль основной конструкции в функциональных языках играет выражение. К выражениям относятся скалярные константы, структурированные объекты, функции, тела функций и вызовы функций. Программа представляет собой совокупность описаний функций (возможно вложенных) и выражения, которые необходимо вычислить посредством редукции (серии упрощений).
Теоретической основой функционального программирования является лямбда-исчисление Чёрча. Функциональные языки отличаются своей простотой, легкостью реализации, компактностью и пригодностью для символьных вычислений. Основными структурированными объектами в аппликативных языках являются списки, удобные для символьной обработки. Языками функционального программирования являются, например, следующие языки:
Лисп (Lisp) - LISt Processing language, т.е. язык обработки списков
Хаскел (Haskell) (начоло 90-х г.г.) – назван в честь американского математика Хаскелла Карри (Haskell Curry).
F# (эф-шарп) - функциональный язык для платформы Microsoft .NET.
