
- •Підпрограма. Визначення. 1
- •Підпрограма. Визначення. 2
- •Застосування підпрограм
- •Відкриті та закриті підпрограми
- •Закриті підпрограми. 1
- •Закриті підпрограми. 2
- •Процедурна абстракція
- •Абстракція управління
- •Оболонка підпрограмної капсули. Параметри підпрограми
- •Параметри закритої підпрограми. 1
- •Параметри закритої підпрограми. 2
- •Параметри закритої підпрограми. 3
- •Параметри закритої підпрограми. 4
- •Параметри закритої підпрограми. 5
- •Параметри закритої підпрограми. 6
- •Локальні об'єкти підпрограм. 1
- •Локальні об'єкти підпрограм. 2
- •Глобальні об'єкти підпрограм
- •Правило хорошого стилю програмування
- •Відмінності між параметрами та локальними об’єктами підпрограми. 1
- •Відмінності між параметрами та локальними об’єктами підпрограми. 2
- •Прототип підпрограми
- •Способи передачі значень параметрів підпрограми. 1
- •Способи передачі значень параметрів підпрограми. 2
- •Передавання значення вмісту. 1
- •Передавання значення вмісту. 2
- •Передавання значення вмісту. 3
- •Передавання імені. 3
- •Приклад застосування різних способів передачі параметрів
- •Передача значення
- •Передача посилання
- •Передача імені
- •Процедури
- •Функції
- •Абстрактний тип даних. 1
- •Абстрактний тип даних. 2
- •Операції абстрактних типів даних
- •Склад абстрактного типу даних
- •Процедурний тип
- •Процедурний тип. Приклад
- •Вказівник на функцію
- •Алгоритм читання оператора опису
- •Приклади читання оператора опису
- •Вказівник на функцію. Приклад
Підпрограма. Визначення. 1
Програмна конструкція на підпрограмному рівні інкапсуляції складається з операторів і називається підпрограмою. З підпрограм складаються бібліотеки підпрограм, які колись стали основою систем програмування.
З початку підпрограми розглядалися як повторювальні частини програм, що попередньо описуються окремо від програми або безпосередньо в ній і багаторазово використовуються шляхом викликів підпрограм.
Таким чином, підпрограми здебільшого слугували засобом скорочення текстів програм, ніж засобом абстрагування і проектування.
Підпрограма. Визначення. 2
Нині, завдяки процедурної абстракції і абстракції управління, підпрограма відіграє дуже важливу роль в модульній організації програм і їх проектуванні, і є фундаментальною концепцією будь-якої мови програмування.
Таким чином підпрограма (subroutine), це повторювальна частина програми, яка важлива з двох точок зору: по-перше, як засіб скорочення зусиль на запис програми, по-друге, як засіб проектування програм.
Застосування підпрограм
Застосування підпрограми (subroutine) пов'язане з виконанням двох процесів, перший з яких – опис підпрограми (створення) та вказування на її виклик (використання) – реалізує програміст, а другий – обробка виклику та виконання підпрограми реалізується транслятором або спеціальною програмою та процесором відповідно.
Виклик підрограми (subroutine call) – це спеціальний оператор, який розміщується в тому місці тексту програми, де необхідно виконати підпрограму. Підпрограми можуть зберігатися в бібліотеці підпрограм або в тій програмі, в якій вони використовуються.
Відкриті та закриті підпрограми
Залежно від того, як транслятор або спеціальна програма виконують обробку виклику, підпрограми поділяються на відкриті та закриті.
Оболонка капсули відкритої підпрограми не існує після її виклику, тому вона «не міцна», а капсула більш відкрита для програміста. Оболонка закритої підпрограмної капсули існує і після виклику, вона більш «міцна», ніж оболонка структурної капсули. Мірою "міцності" може бути оператор go to.
Інтерфейс підпрограми. 1
Якщо для структурної капсули перехід у неї і вихід із неї за оператором go to заборонені організаційно, то в підпрограмній капсулі (закрита підпрограма) це неможливо вже конструктивно. Тому для реалізації абстракції управління частина оболонки підпрограмної капсули має відігравати роль інтерфейсу.
Інтерфейс підпрограми. 2
Інтерфейс забезпечує зв'язок зовнішнього оточення капсули з компонентами, розміщеними в середині капсули.
Очевидно, що виконання підпрограми веде до обробки деяких значень і, можливо, до отримання значення – результату, який треба повертати до зовнішнього середовища.
Відкриті підпрограми. 1
Якщо розглядати відкриту підпрограму (open subroutine) як капсулу, то сутність обробки її виклику полягає в тому, що капсула відкритої підпрограми безпосередньо заміщує відповідний виклик в програмі.
виклик
підпрограми
підпрограми
.
.
Заміщення викликів підпрограм
Відкриті підпрограми. 2
Оператори, складові капсули, підставляються в текст програми на місце виклику підпрограми, тому рядки програми розсовуються і вона стає більш довгою. При цьому у момент обробки виклику підпрограми оболонка капсули зникає, а оператори капсули стають звичайними операторами програми.
Для обробки викликів відкритих підпрограм використовується спеціальна програма – макропроцесор, яка працює до роботи компілятора і тому ще називається препроцесором, а процес обробки викликів називається макрообробкою, макрообчисленням, або препроцесорною обробкою.
На основі відкритих підпрограм будується програмна конструкція підпрограмного рівня інкапсуляції, котра називається макрос.