
- •Введение
- •Тема 1.1.Лексические основы языка программирования Общие сведения о программах, лексемах и алфавите
- •Тема 1.2.Концепция типа данных Понятие переменной
- •Основные типы данных
- •Указатели
- •Перечисления (перечислимый тип)
- •Массивы
- •Тема 1.3.Основные управляющие структуры программирования Понятие алгоритма
- •Свойства алгоритма:
- •С помощью языка программирования. Управляющие структуры и основные конструкции языков программирования
- •Тема 1.4.Основы модульного программирования
- •Подпрограммы
- •Рекурсивные функции
- •Раздел 2.Технология создания программ Тема 2.1.Интегрированная среда программирования
- •Трансляторы
- •Тема 2.2.Жизненный цикл программного обеспечения (Этапы подготовки и решения задач на эвм)
- •Анализ требований (постановка задачи, обследование)
- •Определение спецификаций
- •Кодирование
- •Тестирование, отладка и оптимизация
- •Внедрение и сопровождение
- •Раздел 3.Основные парадигмы программирования Тема 3.1.Генезис языков программирования.
- •Основные вехи в истории развития языков программирования
- •Классификация языков программирования
- •Уровни языков программирования
- •Поколения языков программирования
- •Тема 3.2.Основные парадигмы (технологии) программирования
- •Структурное программирование
- •Функциональное программирование
- •Логическое программирование
- •Объектно-ориентированное программирование (ооп)
- •Основные свойства ооп
- •Структуры (записи)
- •Объединения (запись с вариантами)
- •Как массив символов
- •Как указатель на строковую константу
Тема 3.2.Основные парадигмы (технологии) программирования
Основные идеи способа составления программ называют парадигмами программирования. Как уже было отмечено выше существует классификация языков программирования в соответствии с парадигмой, которую они реализуют.
Языки программирования высокого уровня |
||||
Алгоритмические (директивные, императивные) (BASIC, Ada, Pascal, C) |
объектно-ориентированные (Smaltalk, C++, Object Pascal, Delphi, Java) |
Логические (Prolog) |
функциональные (Lisp, ЛОГО) |
|
Языки программирования баз данных (SQL, Oracle) |
Языки программирования для Интернет (HTML, Perl, Vrml) |
|
|
Однако отмечалось, что такую классификацию языков нельзя считать полностью корректной и актуальной в современном мире.
Опишем четыре основных парадигмы программирования.
Структурное программирование
Структурное программирование сосредотачивает свое внимание на логике программы и включает три основных компонента: модульное программирование, структурное кодирование, нисходящее проектирование.
В модульном программировании основная идея - разбиение программы на последовательность модулей, каждый из которых выполняет одно или несколько действий. Требование к модулю - чтобы его выполнение всегда начиналось с первой команды и всегда заканчивалось последней (вход и выход из модуля невозможен). Это означает реализацию принципа Input-Prosecc-Output. Модули логически независимы - результат работы модуля зависит только от исходных данных, но не зависит от работы других модулей.
Основная идея структурного кодирования - структура модуля компонуется из базовых структур (цепочка, ветвление, цикл) с последовательной детализацией алгоритма. Главными элементами императивных языков программирования являются переменные, которые моделируют ячейки памяти компьютера и операторы присваивания, основанные на операции пересылки данных.
Наличие подпрограмм позволяет вести проектирование и разработку программы "сверху вниз" - нисходящее проектирование. Сначала выделяется несколько подпрограмм, решающих самые глобальные задачи, потом каждый из этих модулей детализируется на более низком уровне, разбиваясь в свою очередь на некоторое число других подпрограмм. Такой подход удобен тем, что позволяет человеку постоянно мыслить на предметном уровне, не опускаясь до конкретных операторов и переменных. В результате строится иерархическая схема, отражающая состав и взаимоподчиненность отдельных функций - функциональная структура.
Восходящее проектирование основано на противоположном процессе.
Функциональное программирование
Основная идея - задача разбивается на группы, которые дробятся на элементарные функции, определенное сочетание которых реализует решение подзадач. Процесс дробления на элементарные функции заканчивается тогда, когда каждая из полученных функций выполняет некоторую логически отдельную операцию и результат работы данной функции может служить входом для другой функции. Язык реализации Лисп.