Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TP_Book_Nizhyn.doc
Скачиваний:
73
Добавлен:
03.12.2018
Размер:
3.4 Mб
Скачать

2.6 Програми і мови

Поняття програми тісно пов'язане з поняттям мови. Дескрипції можуть трактуватися як речення мови, функції – як значення речень. Тому способи подання програм можуть розглядатися як певні мови, які називають мовами програмування. Для дослідження таких штучних мов можна використовувати лінгвістику, яку була розвинена для природних мов. Разом з тим є певні відмінності між природними мовами та мовами програмування, які сформулюємо у наступній таблиці. Зауважимо, що, використовуючи термін «мова програмування», ми фактично будемо більше говорити про мови програм, ніж про процеси програмування.

Таблиця 2.2

Характе-ристика мови

Природні мови

Мови програмування

1

Походжен-ня

Природні мови з’явились у результаті історичного розвитку певної групи людей.

Мови програмування є штучними мовами.

2

Основні аспекти

Природні мови мають багато основних аспектів, таких як комунікативний, когнітивний, референціальний, сігніфікативний, експресивний, лікувальний і т.д.

Основних аспектів небагато, але вони мають достатньо точні визначення.

3

Точність визна-чення мови

Точних визначень немає, є різні моделі. Мови багатозначні.

Мови програмування, як правило, точно визначені.

Мова однозначна.

4

Відкри-тість

Мова постійно розширюється.

Мова фіксована.

Як бачимо, мови програмування значно простіші та бідніші від природних мов. Але це дає можливість більш точно описати мови програмування. Однозначність мов програмування важлива при створенні відповідних систем програмування та при досліджені програм.

2.7 Пентада програмних понять процесного типу

Введені програмні поняття є досить абстрактними. Згідно принципу розвитку від абстрактного до конкретного, треба розвивати основні поняття до більш конкретних та багатих.

Наступним рівнем конкретизації може бути розгляд більш конкретних типів проблем, не лише функціонального типу, як це було зроблено раніше, але і проблем процесного типу, коли їх суть полягає не стільки в інформаційності, скільки в необхідності виконання низки дій. Такі проблеми будемо називати проблемами процесного типу.

Уточнення програмних понять для проблем процесного типу веде до пентади, аналогічній раніше побудованій, в якій замість поняття функції береться поняття процесу.

Отримуємо наступну пентаду: дія – процес– ім’я процесу–композиція процесів – дескрипція процесів, яка подана на малюнку 2.10.

денотація

Малюнок 2.10. Пентада програмних понять процесного типу

Поняття процесу є важливим для моделювання та дослідження більш багатих програмних систем, а саме розподілених, паралельних, реактивних і т.д. В рамках цього посібника такі системи розглядати не будемо.

Висновки

В цьому розділі було розвинено основні поняття програмування на основі загальногносеологічних принципів, основним з яких є принцип розвитку від абстрактного до конкретного. Основні результати можна сформулювати таким чином.

1. Було розглянуто словникові визначення поняття програми та продемонстровано, що ці визначення нечіткі, спрощені та ведуть до хибного кола визначень.

2. Були розглянуто основні гносеологічні принципи визначення понять. За основу був взятий підхід, що базується на діалектичній логіці, але який лише застосовується до проблем програмування.

3. Було розвинено основні поняття програмування в їх взаємозв’язках: спочатку тріада користувач–проблема–програма, яка потім в пентаді доповнюється поняттями процесу виконання та процесу програмування. Введені відношення задають зовнішні сторони понять програми та програмування.

4. Було розвинено основні програмні поняття в їх взаємозв’язках: спочатку тріада дане–функція–ім’я функції, яка потім в пентаді доповнюється поняттями композиції та дескрипції.

5. Основними внутрішніми аспектами програм є семантичний, синтаксичний та денотаційний аспекти.

6. Було зроблено порівняльний аналіз семіотичних та сутнісний аспектів програм. Семіотичні аспекти (прагматика, семантика, синтаксис) ставлять лише поняття знака у центр уваги, применшуючи важливість інших понять. Теорія сутнісних аспекті програм виділяє зовнішні (адекватність, прагматичність, обчислюваність, генетичність) та внутрішні аспекти (семантика, синтаксис, денотація) дозволяючи більш адекватно розкрити поняття програми.

7. Зроблено порівняльний аналіз природних мов та мов програмування. Підкреслено вимоги однозначності та точності для мов програмування.

8. В контексті подальшої конкретизації основних понять програмування побудовано пентаду понять для проблем процесного типу.

Контрольні питання.

  1. Проаналізуйте визначення поняття програми та програмування, наведені у різних словниках.

  2. Розкрийте зміст принципу гносеологічності.

  3. Наведіть приклади категорій.

  4. Розкрийте зміст принципу програмологічної проекції.

  5. Розкрийте зміст категорій абстрактне та конкретне.

  6. Як формулюється принцип розвитку?

  7. Як розуміється відносний характер принципу розвитку та інших гносеологічних принципів.

  8. Які поняття та відношення утворюють початкову тріаду понять програмування?

  9. Які поняття та відношення утворюють тріаду прагматичності програм?

  10. Які поняття та відношення утворюють тріаду основних понять програмування?

  11. Які поняття та відношення утворюють пентаду основних понять програмування?

  12. Наведіть визначення програмування різних рівнів абстракції.

  13. Які поняття та відношення утворюють тріаду основних програмних понять?

  14. Розкрийте зміст принципу інформативності проблем.

  15. Як формулюється принцип аплікативності?

  16. Як формулюється принцип номінативності?

  17. Як формулюється принцип композиційності?

  18. Як формулюється принцип дескриптивності?

  19. Які поняття та відношення утворюють пентаду основних програмних понять?

  20. Сформулюйте семіотичні аспекти програм.

  21. Сформулюйте сутнісні аспекти програм.

  22. Як формулюється принцип підпорядкованості?

  23. Як формулюється принцип семантико-синтаксичної орієнтації?

  24. Які властивості формулюються для природних мов та мов програмування?

  25. Які поняття та відношення утворюють пентаду основних програмних понять процесного типу?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]