триці. Вирішення цієї проблеми можливе декількома шляхами:
- Побудовою мови програмування, що містить як можна більше типів даних, і вибором для кожного класу задач деякого підмножини цієї мови. Така мова іноді називають мовою-оболонкою. На роль мови-оболонки претендував мова ПЛ/1, що виявився настільки складним, що так і не вдалося побудувати його формалізований опис. Відсутність формалізованого описи, однак, не завадило широкому застосуванню ПЛ/1 як у Західній Європі, так і в СРСР.
- Побудовою розширюваної мови, що містить невелике ядро ​​і допускає розширення, доповнює мову типами даних і операторами, що відображають концептуальну сутність конкретного класу задач. Такий мову називають мовою-ядром. Як мова-ядро були розроблені мови Симула і Алгол-68, які не отримали широкого розповсюдження, але що зробили великий вплив на розробку інших мов програмування.
Подальшим розвитком другого шляху з'явився об'єктно-орієнтований підхід до програмування.
2. Відмінності функціонального та об'єктно-орієнтованого підходів програмування
Є два принципово відрізняються підходу до технології програмування: інженерно-конструкторський та математичний. Перший заснований на тому, що виготовлення програмного продукту по заданим вимогам суть ітеративний процес послідовної реалізації алгоритму розв'язання задачі. Другий підхід заснований на математичному доказі правильності програми і автоматичному (чи напівавтоматичному) отриманні готової програми з заданим специфікаціям.
Об'єктно-орієнтований підхід до технології програмування - інженерно-конструкторський, в якому увагу концентрується на самому процесі рішення задачі. У даній статті авторами узагальнюється досвід використання об'єктно-орієнтованої технології при розробці середовища об'єктно-орієнтованого програмування та деяких прикладних програм, що працюють в цьому середовищі.
Оцінимо переваги та недоліки найбільш поширеною інженерної технології - функціональної. Існує три головні проблеми функціонального підходу:
1. Слабка формалізація зв'язків між етапами. Спеціалізація етапів призводить до того, що інтерфейси між ними описуються на різних мовах з різною ступенем формалізації. Слабка формалізація зменшує надійність програми і, що саме неприємне, її адекватність вимогам замовника.
2. Відсутність гнучкості. Поетапна послідовна схема жорстко пов'язана з низхідним способом створення програми. Однак практика показує, що процес. створення. хоч скільки-небудь складної програми неминуче виявляється циклічним, з поверненнями для внесення змін у попередні етапи. Такі повернення пов'язані з великими витратами, оскільки втягують етапи з різними інтерфейсами і різними виконавцями.
3. Погане використання результатів попередніх розробок. Низхідний проектування разом зі слабкою формалізацією мов специфікац...