4. Парадигма модульності. Недоліки та переваги Парадигма — спосіб або метод міркувань, який застосовується для розв’язання широкого класу задач. Парадигма модульності. Модуль — окремо трансльована програмна одиниця. (unit, module). Парадигма модульності застосовує принцип розділяй і володій до даних, а парадигма алгоритмізаціі — до алгоритмів. Мови, які підтримують інструменти, для розбиття програми на модулі: +Fortran (1954),-Algol-60, -Algol-68,-Pascal,+C(інструменти для розбиття на модулі відсутні, але окремі файли компілюються окремо), +Turbo Pascal, +Object Pascal, +C++, +Java, +C#, +PHP. Прикл: “Модуль стеку”. Розробити модуль, який би уособлював структуру даних “стек”. Вимоги до стеку: 1) Дисципліна стеку здійснюються, шляхом виклику 2х підпрограмм. Pop & Push. 2) Користувач модуля, для роботи зі стеком має лише ці 2 можливості. 3) Автоматична ініціалізація перед першим використанням. //Main.cpp: #include <iostream> #include “stack.h” void main() { char c = 'x'; push (c); c = pop(); if(c!='*') cout<<'?'<<endl; else cout <<”ok” <<endl; //stack.h: void push(char c); char pop(); const int stk.size=100; stack.cpp: #include “stack.h” char stk[stk.size]; int sp=stk.size; void push(char c) { stk[--sp]=c; } char pop(){return stk[sp++];} Недолік парадигми: Неможливість тиражування (типів): int i1,i2,i3; stack s1,s2,s3; //неможемо.
Подразумевает отдельные файлы – отдельные модули Fortrain +- LISP – Algol60 – Algol68 + C + Pascal – TurboPascal - C++ + Delfie + (Приклад) Модуль стеку Вимоги до модуля: 1) Забезпечити наявність функцій push and pop 2) Заборонити наявність інших можливостей доступу до стеку 3) Автоматична ініціалізація стеку
Недолік Відсутня можливість тиражувати екземпляри обєктів описуваних модулем.