Модуль №4 "Системи програмування"



Дата конвертації04.01.2017
Розмір445 b.


Модуль №4 "Системи програмування"

  • Модуль №4 "Системи програмування"

  • Лекція 4.1 Уявлення про систему програмування. Класифікація систем програмування за надаваними можливостями. Основні функції та компоненти системи програмування

  • 4.1.1. Уявлення про систему програмування

  • Стрімкий розвиток обчислювальної техніки зумовив потребу у створенні нових засобів спілкування програмістів з ЕОМ. Найбільш універсальними та потужними засобами такого спілкування є мови програмування.

  • Під мовою програмування розуміють правила подання даних і запису алгоритмів їх оброблення, що автоматично виконуються ЕОМ. У більш абстрактному вигляді мова програмування є засобом створення програмних моделей об’єктів і явищ зовнішнього світу. Натепер вже створено десятки різних мов.


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

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

  • Мова програмування призначена для того, щоб людина (програміст) вказувала операції, сценарії та дії, які має виконувати машина. Для цього програміст створює програми, які і є записами цих дій в мові програмування.

  • Мови програмування можна розглядати з різних точок зору. По-перше, мова програмування є інструментом програміста для створення програм. Для створення якісних програм потрібні зручні мови програмування. Тому розробники мов програмування прагнуть до створення більш досконалих програм.



По друге, процес розроблення програми можна порівнювати з промисловим виробництвом, у якому визначальними чинниками є продуктивність праці колективу програмістів, собівартість і якість програмної продукції. Створюються різноманітні технології розроблення програм (структурне, модульне, об’єктно-орієнтоване програмування та ін.), що мають підтримуватися мовою програмування.

  • По друге, процес розроблення програми можна порівнювати з промисловим виробництвом, у якому визначальними чинниками є продуктивність праці колективу програмістів, собівартість і якість програмної продукції. Створюються різноманітні технології розроблення програм (структурне, модульне, об’єктно-орієнтоване програмування та ін.), що мають підтримуватися мовою програмування.

  • Програми можна розглядати як аналог електронних приладів оброблення інформації, в яких замість радіодеталей і мікросхем використовують конструкції мови програмування (елементна база програми). Як і електронні прилади, програми можуть бути найпростішими (рівня детекторного приймача) і дуже складними (рівня автоматичної космічної станції), при цьому рівень інструменту повинен відповідати складності виробу. Крім того, людині зручніше



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

  • описувати об’єкт, що моделюється, використовуючи терміни предметної галузі, а не мову цифр. Тому важливою рушійною силою, що веде до створення нових, спеціалізованих, орієнтованих на проблемну галузь, потужних мов програмування, є збільшення різноманітності і підвищення складності завдань, які розв’язуються за допомогою ЕОМ.

  • Удосконалення самих ЕОМ також потребує створення мов, що максимально реалізують нові можливості ЕОМ. Мова програмування повинна забезпечувати тривалий життєвий цикл програми.

  • Перші ЕОМ, створені людиною, мали невеликий набір команд і вбудованих типів даних, але дозволяли виконувати програми машинною мовою. Машинна мова – єдина мова, яку розуміє ЕОМ. Вона реалізується апаратно: кожну команду виконує певний електронний пристрій.



Програма машинною мовою являє собою послідовність команд і даних, заданих у цифровому вигляді. Наприклад, команда вигляду 1А12 або 0001101000010010 означає операцію додавання (1А) вмісту регістрів 1 і 2. Машинною мовою дані подаються у вигляди чисел і символів. Операції є елементарними і з них будується вся програма. Уведення програми в цифровому вигляді виконувалося безпосередньо в пам’ять з пульта ЕОМ або з примітивних пристроїв уведення. Природно, що процес програмування дуже трудомісткій, а ефект від застосування ЕОМ незначний.

  • Програма машинною мовою являє собою послідовність команд і даних, заданих у цифровому вигляді. Наприклад, команда вигляду 1А12 або 0001101000010010 означає операцію додавання (1А) вмісту регістрів 1 і 2. Машинною мовою дані подаються у вигляди чисел і символів. Операції є елементарними і з них будується вся програма. Уведення програми в цифровому вигляді виконувалося безпосередньо в пам’ять з пульта ЕОМ або з примітивних пристроїв уведення. Природно, що процес програмування дуже трудомісткій, а ефект від застосування ЕОМ незначний.

  • Цей етап розвитку мови програмування показав, що програмування є складною проблемою, що важко піддається автоматизації, а саме програмне забезпечення визначає ефективність застосування ЕОМ. Тому на всіх наступних етапах зусилля спрямовувалися на вдосконалення інтерфейсу між програмістом і ЕОМ – мови програмування.



Прагнення програмістів оперувати не цифрами, а символами зумовило створення мнемонічної мови програмування, що називають асемблером, мнемокодом, автокодом. Ця мова має певний синтаксис запису програм, у якому зокрема цифровий код операції замінений мнемонічним кодом. Наприклад, команда додавання записується у вигляді AR 1,2 й означає додавання (аddition) типу регістр – регістр (register) для регістрів 1 і 2. Тепер програма має зручнішу для читання форму, але її не розуміє ЕОМ. Тому потрібно було ще створити спеціальну програму-транслятор, що перетворює програму з мови асемблеру на машинну мову. Цє, в свою чергу, потребувало глибоких наукових досліджень і розроблення різноманітних теорій, наприклад, теорії формальних мов, що лягли в основу створення трансляторів.

  • Прагнення програмістів оперувати не цифрами, а символами зумовило створення мнемонічної мови програмування, що називають асемблером, мнемокодом, автокодом. Ця мова має певний синтаксис запису програм, у якому зокрема цифровий код операції замінений мнемонічним кодом. Наприклад, команда додавання записується у вигляді AR 1,2 й означає додавання (аddition) типу регістр – регістр (register) для регістрів 1 і 2. Тепер програма має зручнішу для читання форму, але її не розуміє ЕОМ. Тому потрібно було ще створити спеціальну програму-транслятор, що перетворює програму з мови асемблеру на машинну мову. Цє, в свою чергу, потребувало глибоких наукових досліджень і розроблення різноманітних теорій, наприклад, теорії формальних мов, що лягли в основу створення трансляторів.



Будь-який клас ЕОМ має свою мову асемблеру. Тепер мова асемблеру використовується для створення системних програм, що використовують специфічні апаратні можливості цього класу ЕОМ.

  • Будь-який клас ЕОМ має свою мову асемблеру. Тепер мова асемблеру використовується для створення системних програм, що використовують специфічні апаратні можливості цього класу ЕОМ.

  • Наступний етап характеризується створенням мов високого рівня. Ці мови є універсальними (дають змогу створювати будь-які прикладні програми) й алгоритмічно повними, мають більш широкий спектр типів даних і операцій, підтримують технології програмування. Цими мовами створюється безліч різноманітних прикладних програм. Принциповими відмінностями мов високого рівня від мов низького рівня є:

  • використання змінних;

  • можливість запису складних виразів;

  • можливість розширення набору типів даних за рахунок конструювання нових типів з базових;



можливість розширення набору операцій за рахунок підключення бібліотек підпрограм;

  • можливість розширення набору операцій за рахунок підключення бібліотек підпрограм;

  • низька залежність від типу ЕОМ. З ускладненням мови програмування модернізуються й транслятори для них.

  • У набір інструментів програміста, окрім транслятора, входить текстовий редактор для введення тексту програм, настроювач для усунення помилок, бібліотекар для створення бібліотек програмних модулів і багато інших службових програм. Усе це разом називається системою програмування. Найбільш яскравими представниками є FORTRAN, PL/1, Pascal, C, Basic, Ada.

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



Водночас з розвитком універсальних мов високого рівня стали розвиватися проблемно-орієнтовні мови програмування, що вирішували економічні завдання (COBOL), завдання реального часу (Modula-2, Ada), символьного оброблення (Snobol), моделювання (GPSS, Simula, SmallTalk), числово-аналітичні задачі (Аналітик) та ін. Ці спеціалізовані мови давали змогу адекватніше описувати об’єкти і явища реального світу, наближаючи мови програмування до мови фахівця у проблемній галузі.

  • Водночас з розвитком універсальних мов високого рівня стали розвиватися проблемно-орієнтовні мови програмування, що вирішували економічні завдання (COBOL), завдання реального часу (Modula-2, Ada), символьного оброблення (Snobol), моделювання (GPSS, Simula, SmallTalk), числово-аналітичні задачі (Аналітик) та ін. Ці спеціалізовані мови давали змогу адекватніше описувати об’єкти і явища реального світу, наближаючи мови програмування до мови фахівця у проблемній галузі.

  • Іншим напрямом розвитку мови програмування є створення мов надвисокого рівня. Мовою високого рівня програміст задає процедуру (алгоритм) отримання результату на основі відомих вихідних даних, тому їх називають процедурними мовами програмування. Мовою надвисокого рівня програміст задає відношення між об’єктами в програмі, наприклад, систему лінійних рівнянь, і визначає,



що потрібно знайти, але не вказує як отримати результат. Такі мови називають також непроцедурни-ми, оскільки сама процедура пошуку розв’язку вбудо-вана в мову (в її інтерпретатор). Вони використову-ються, наприклад, для розв’язування задач штучного інтелекту (Lisp, Prolog) і дають змогу моделювати розу-мову діяльність людини в процесі пошуку розв’язків. До непроцедурних мов можна віднести і мови запитів систем керування базами даних (QBE, SQL).

  • що потрібно знайти, але не вказує як отримати результат. Такі мови називають також непроцедурни-ми, оскільки сама процедура пошуку розв’язку вбудо-вана в мову (в її інтерпретатор). Вони використову-ються, наприклад, для розв’язування задач штучного інтелекту (Lisp, Prolog) і дають змогу моделювати розу-мову діяльність людини в процесі пошуку розв’язків. До непроцедурних мов можна віднести і мови запитів систем керування базами даних (QBE, SQL).

  • Мови програмування можуть бути компіляторами або інтерпретаторами.

  • Компілятор (сompiler від англ. to compile – збирати в ціле) – комп’ютерна програма (або набір комп’ютерних програм), що перетворює (компілює) програмний код, написаний певною мовою програмування (мова джерела – source language), на семантично еквівалентний код в іншій мові



програмування (мова цілі – target language). Це, зазвичай потрібно для виконання програми на комп’ютері.

  • програмування (мова цілі – target language). Це, зазвичай потрібно для виконання програми на комп’ютері.

  • Інтерпретатор (interpreter) – програма чи технічні засоби, необхідні для виконання інших програм; вид транслятора, який здійснює пооператорне (покомандне) оброблення, перетворення у машинні коди та виконання програми або запиту (на відміну від компілятора, який транслює у машинні коди всю програму без її виконання).

  • Інтерпретатори можуть працювати як з вихідним кодом програми, написаним мовою програмування, так і з байт-кодом (інтерпретатори байт-коду).

  • Система програмування (programming system) – 1) те саме, що й інструментальна система; 2) система автоматичного програмування, що



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

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

  • Інструментальна система (development environ-ment) – комплекс програмних або програмних і технічних засобів, який використовується фахівцями з програмування як інструмент для розроблення ПЗ (програм, програмних комплексів та систем тощо).

  • Від складання програми до її виконання комп’юте-ром – досить тривалий процес, що здійснюється спеці-альними службовими програмами, що складають систему автоматизації програмування. З часом слово «автоматизація» випущено із наведеного словосполуче-ння, в результаті чого воно перетворилося на систему програмування. Ця система складається з кількох компонент, а саме: препроцесора (preprocessor),



компілятора (compiler), компонувальника (linker), налаштувача (debugger), об’єднаних спільним інтер-фейсом в універсальне середовище розроблення програм.

  • компілятора (compiler), компонувальника (linker), налаштувача (debugger), об’єднаних спільним інтер-фейсом в універсальне середовище розроблення програм.

  • Головна особливість підготовки програми до викона-ння полягає у використанні багатьох різнорідних скла-дових частин. Деякі з них підготовлені заздалегідь; вони зберігаються в бібліотеках, системних або власних, інші складають частини програми, розміщені в різних файлах. У мові С++ лише поглибилася тенденція винесення значної частини мови на рівень бібліотеки, яка була закладена ще авторами С. Зокрема на бібліотеку, а не на мову покладено відповідальність за зв’язок програми з ОС.

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



Завдяки йому поділяють програму на файли, які називаються одиницями трансляції (translation unit), групуючи в одному файлі тісно пов’язані між собою частини програми. У такий спосіб великі за розмірами програми діляться на частини, якими легше керувати.

  • Завдяки йому поділяють програму на файли, які називаються одиницями трансляції (translation unit), групуючи в одному файлі тісно пов’язані між собою частини програми. У такий спосіб великі за розмірами програми діляться на частини, якими легше керувати.

  • Програмування – це діяльність, яка потребує великої організованості. Тому під час складання програм дотримуються певних правил, одне з яких полягає в розділенні визначень і обчислень між файлами двох типів: файлів заголовків (header) і файлів реалізації (source file). Файли заголовків обробляються препроце-сором, файли реалізації готуються препроцесором для подальшого оброблення компілятором.



4.1.2. Класифікація систем програмування за надаваними можливостями

  • 4.1.2. Класифікація систем програмування за надаваними можливостями

  • Системи програмування, так само, як і мови програмування, можна класифікувати за ступенем орієнтації на специфічні можливості. Зокрема, мови та системи програмування поділяють на машиннозалежні та машиннонезалежні.

  • До машиннозалежних належать машинні мови, асемблери і автокоди, що використовуються в системному програмуванні. Програма машиннозалежною мовою програмування може виконуватися лише на ЕОМ цього типу. Програма машиннонезалежною мовою після трансляції на машинну мову стає машиннозалежною. Ця ознака визначає мобільність створюваних програм (можливість перенесення на ЕОМ іншого типу).



За ступенем деталізації алгоритму отримання результату системи та мови програмування поділяються на такі:

  • За ступенем деталізації алгоритму отримання результату системи та мови програмування поділяються на такі:

  • мови низького рівня;

  • мови високого рівня;

  • мови надвисокого рівня.

  • Рівень мови програмування визначається на основі складності елементів мови, з яких будується програма. Найнижчим рівнем є машинна мова, а найвищим, мабуть, рівень природної мови людини, якою форму-люється задача типу «Дано: …,треба: ... ». До мов низького рівня належать машинні мови, асемблери та автокоди. До мов високого рівня належать мови, які мають типи даних (наприклад, масиви) та програмні конструкції (наприклад, цикли), що безпосередньо не реалізовуються машинною мовою.



Взагалі, одному оператору мови високого рівня відповідає певна програма машинною мовою. Традиційно мовами високого рівня є мови класу FORTRAN, PL/1, Pascal, C, Basic, Ada. До мов надвисокого рівня належать мови, які мають найбільш абстрактні механізми опису завдання та вбудовані засоби його розв’язання. Ці мови дають змогу зосередитися на самому завданні, а не на деталях його розв’язання. Такими мовами є мови класу Lisp, Prolog.

  • Взагалі, одному оператору мови високого рівня відповідає певна програма машинною мовою. Традиційно мовами високого рівня є мови класу FORTRAN, PL/1, Pascal, C, Basic, Ada. До мов надвисокого рівня належать мови, які мають найбільш абстрактні механізми опису завдання та вбудовані засоби його розв’язання. Ці мови дають змогу зосередитися на самому завданні, а не на деталях його розв’язання. Такими мовами є мови класу Lisp, Prolog.

  • За ступенем орієнтації на розв’язання завдань певного класу системи програмування та мови програмування поділяються на проблемно-зорієнтовані та універсальні.

  • Проблемно-зорієнтовані системи програмування містять спеціалізовані засоби опису та розв’язання завдань певного класу.



Універсальні системи програмування не містять таких засобів, дозволяють розв’язувати будь-які завдання, але більшими зусиллями. За можливістю доповнення новими типами даних і операціями системи програмування поділяються на такі, що розширюються і на такі, що не розширюються.

  • Універсальні системи програмування не містять таких засобів, дозволяють розв’язувати будь-які завдання, але більшими зусиллями. За можливістю доповнення новими типами даних і операціями системи програмування поділяються на такі, що розширюються і на такі, що не розширюються.

  • Системи програмування, що дозволяють розширювати склад типів даних і операцій, фактично містять механізм адаптації мови для розв’язання певних завдань. Вони є замкненими системами програмування.

  • За можливістю керування реальними об’єктами і процесами системи програмування поділяються на системи реального часу та системи умовного часу.

  • Мови систем реального часу забезпечують створення систем керування реальними об’єктами.



4.1.3. Основні функції та компоненти системи програмування

  • 4.1.3. Основні функції та компоненти системи програмування

  • Однією з найпоширеніших мов програмування серед сучасних мов високого рівня, що використовуються в ПК, є мова Visual C++.

  • Слово Visual означає, що за допомогою цієї мови реалізовано візуальний стиль програмування. Це зовсім новий стиль, за якого програми не пишуть, а проектують. Програмістів, які використовують його, доцільніше називати інженерами-проектувальниками програмних засобів, оскільки перед тим, як почати набирати перший рядок коду, створюється інтерфейс, тобто проектується зовнішній вигляд робочого середовища, за яким працюватиме користувач ПК.



C++ у назві мови свідчить про те, що остання є розвитком давно відомої мови C++, яка в свою чергу є об’єктно-орієнтовною модифікацією популярної мови С. Ця мова здобула популярність своєю потужністю та продуманістю реалізації.

  • C++ у назві мови свідчить про те, що остання є розвитком давно відомої мови C++, яка в свою чергу є об’єктно-орієнтовною модифікацією популярної мови С. Ця мова здобула популярність своєю потужністю та продуманістю реалізації.

  • Мова C++ динамічно розвивається разом з комп’ютерами та комп’ютерними технологіями. Крім того, конструкції цієї мови універсальні як для різних типів комп’ютерів, так і різних ОС.

  • Для зміни однозадачних ОС (типу Windows) потрібен принципово новий підхід до розроблення програм у багатовіконному середовищі, що полягає не тільки в написанні тексту програми, а, що головне, в наявності графічного інструмента розроблення, який може працювати в середовищі системи Windows, створюва-ти додатки, здатні використати всі переваги графічних, мультимедійних, діалогових і багатопроцесорних мож-ливостей ОС Windows.



У зв’язку з цим створено нове середовище програмування Visual C++. Саме завдяки відмінним ві-зуальним засобам розроблення прикладних програм система й дістала таку назву. Попри те, що мова Visual C++ суттєво відрізняється від мови C++, але покладений в її основу принцип гнучкості та точності залишився незмінним.

  • У зв’язку з цим створено нове середовище програмування Visual C++. Саме завдяки відмінним ві-зуальним засобам розроблення прикладних програм система й дістала таку назву. Попри те, що мова Visual C++ суттєво відрізняється від мови C++, але покладений в її основу принцип гнучкості та точності залишився незмінним.

  • Це мова, на яку «роблять ставку» майже всі провідні фірми в галузі розроблення комп’ютерних технологій. Нові версії мови Visual C++ використовуються для розроблення системного ПЗ.

  • Visual С++ – це сучасна потужна система програмування, яку складає низка компонентів.

  • Одним із компонентів будь-якої сучасної системи програмування, у тому числі системи Visual C++ є інтегроване середовище – оболонка, що включає вбудований редактор тексту, систему інформаційної



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

  • контекстуальної допомоги, транслятор-компілятор, компонувальник і настроювач програм, а також елементи, призначені для користувача інтерфейсу.

  • Безпосередня взаємодія програміста з інтегрованим середовищем здійснюється за допомогою засобів керування, розміщених у головному вікні проекту. Це вікно з’являється на екрані монітора щоразу під час запуску Visual C++. Розглянемо основні його елементи.

  • Меню Edit містить відомі команди редагування: Cut – вирізати; Сору – копіювати; Paste – уставити; Find – знайти; Delete – вилучити; Can’t Undo – скасувати; Can’t Redo – повернути; Select All – виділити все.

  • Меню View містить команди, що дають змогу розкрити в головному вікні проекту інструментальні вікна, необхідні для розроблення на налаштування додатка. Основні з них наведено в таблиці 1.





За допомогою команд із меню Windows можна змінювати порядок розміщення вікон у головному вікні: горизонтально, вертикально або каскадно.

  • За допомогою команд із меню Windows можна змінювати порядок розміщення вікон у головному вікні: горизонтально, вертикально або каскадно.

  • Вікно елементів керування Toolbox забезпечує проектувальника набором інструментів, необхідних для розроблення прикладної програми під час розміщення елементів керування на екранній формі.

  • Елементи керування – це візуальний засіб для створення об’єктів на формі, наприклад, рисунки, написи, кнопки керування, списки, смуги прокручування, меню і геометричні фігури.






База даних захищена авторським правом ©pres.in.ua 2016
звернутися до адміністрації

    Головна сторінка