Реферат: Объектно-Ориентированное программирование
передача параметров в процедуру и возврат значений,
рекурсивность, т.е. возможность процедуры вызывать саму себя (известная задача о Ханойской башне),
хранение подпрограмм в отдельных библиотеках.
Далее, технологическая ступенька начала 70-х годов:
Структурное программирование – основные положения:
любую программу можно написать, пользуясь ограниченным набором базовых конструкций (здесь схемы основныхконструкций структурного программирования, Павловская, стр 39):
-
Последовательность операторов/блоков,
-
Ветвление или выбор if, if..else, swith-case
-
Циклы: с постусловием (do while), цикл с предусловием (while)
Каждая из базовых конструкций имеет один вход и один выход.
“Правильная” структура программы (блока программы, подпрограммы), имеет один вход и один выход.
Причем, любую программу можно и нужно писать без использования оператора GoTo, который очень запутывает структуру программы (аналог – команда перехода JMP в assembler).
Для исключения оператора GoTo достаточно применять базовые конструкции “цикл” - не всегда это удобно, но почти всегда оправдано.
Одновременно с определением набора базовых конструкций была осознана необходимость предварительного анализа данных и конструирования структур данных на начальной стадии разработки программы.
Следование этим правилам при разработке программ и означало применение структурного подхода к программированию. Эти правила ограничивали “свободу” программистов (по сравнению с assembler и Fortran), но позволяли писать более понятные, простые, надежные программы. Улучшился контроль над кодом, стала возможна реализация более крупных проектов.
На базе принципов структурного программирования (СП) был создан новый, элегантный язык PASCAL (примерно 1968 г, Никлаус Вирт)
Проанализируем программирование на PASCAL с позиций СП.
Базовые конструкции СП внесены в язык: IF..[ELSE], CASE, WHILE, REPEAT..UNTIL.
Для описания сложных типов данных в языке есть массивы, записи (RECORD), множества.
!Важно:
Структура программы на Pascal состоит из разделов:
-
Uses - включение модулей
-
Const – раздел констант
-
Type – описание новых типов данных (конструирование)
-
Var – объявление (выделение памяти под реальные переменные)
-
Процедуры – реализуют автономные фрагменты вычислений
-
Главная программа – Реализует полный алгоритм решения задачи.
PASCAL жестко навязывал программистам использование стиля СП – это был переход на новый технологический уровень в разработке программ общего назначения (обработка данных, научные расчеты) – это был технологический прорыв.
Пожалуй, все последующие реализации ЯВУ, включали конструкции СП.
Разработка в стиле СП имеет накладные расходы (по сравнению с assembler), код программы получается больше за счет избыточных проверок в циклах и отсутсвия GoTo – это был основной аргумент противников СП (в основном, противниками были программисты на assemblere).
Cтруктурное программирование на С/С++
На прошлом занятии говорили о СП, акцентировали основные положения:
процедурное П, П с исп. базовых конструкций СП, структура программы на PASCAL.
Сложнее всего следовать стилю СП было на assembler’s.
Язык С(Си) создан в конце 60-х - начале 70-х для разработки системного ПО в рамках проекта ОС Unix (Деннис Ричи – один из авторов).
С включает конструкции СП, в нем реализован механизм построения сложных структур данных.
Но этот язык не навязывает жестко дисциплины СП, не имеет такой строгой структуры программы и строгого контроля типа данных, как PASCAL, позволяет напрямую работать с адресами через указатели и ссылки, он ближе к аппаратуре, позволяет делать вставки на ассемблере для работы с регистрами процессора.
С дает большую свободу действий, но требует от программиста большей самодисциплины.
Многие программисты на assembler в 80-е годы перешли на C.