Поняття, призначення та складові елементи систем програмування. p>
Невід'ємна частина сучасних ЕОМ - системи програмного забезпечення, що є логічним продовженням логічних засобів
ЕОМ, розширюють можливості апаратури і сферу їх використання. Система програмного забезпечення, будучи посередником між людиною і технічними
пристроями машини, автоматизує виконання тих чи інших функцій залежно від профілю фахівців і режимів їх взаємодії з ЕОМ. Основне призначення
програмного забезпечення - підвищення ефективності праці користувача, а також збільшення пропускної спроможності ЕОМ за допомогою скорочення часу і витрат
на підготовку і виконання програм. Програмне забезпечення ЕОМ можна розділити на загальне і спеціальне програмне забезпечення. P>
Загальне програмне забезпечення реалізує функції, пов'язані з роботою ЕОМ, і включає в себе системи програмування,
операційні системи, комплекс програм технічного обслуговування. p>
Спеціальне програмне забезпечення включає в себе пакети прикладних програм, які проблемно орієнтовані на вирішення цілком
певного класу задач. p>
p>
Системою програмування називається комплекс програм, призначений для автоматизації програмування задач на ЕОМ.
Система програмування звільняє проблемного користувача або прикладного програміста від необхідності написання програм вирішення своїх завдань на
незручному для нього мовою машинних команд і надають їм можливість використовувати спеціальні мови більш високого рівня. Для кожного з таких
мов, які називаються вхідними або вихідними, система програмування має програму, що здійснює автоматичний переклад (трансляцію) текстів програми
з вхідного мови на мову машини. Зазвичай система програмування містить опису вживаних мов програмування, програми-транслятори з цих
мов, а також розвинену бібліотеку стандартних підпрограм. Важливо розрізняти мову програмування і реалізацію мови. P>
Мова - це набір правил, що визначають систему записів, що складають програму, синтаксис і семантику використовуваних граматичних
конструкцій. p>
Реалізація мови - це системна програма, яка переводить (перетворює) запису на мові високого рівня в
послідовність машинних команд. p>
Є два основних види засобів реалізації мови: компілятори та інтерпретатори. p>
Компілятор транслює весь текст програми, написаної на мові високого рівня, в ході безперервного процесу. При цьому створюється повна
програма в машинних кодах, яку потім ЕОМ виконує без участі компілятора. p>
Інтерпретатор послідовно аналізує по одному оператору програми, перетворюючи при цьому кожну синтаксичну конструкцію, записану на
мовою високого рівня, в машинні коди і виконуючи їх одна за одною. Інтерпретатор повинен постійно бути присутніми в зоні основної пам'яті разом з
інтерпретується програмою, що потребує значних обсягів пам'яті. p>
Слід зауважити, що будь-яку мову програмування може бути як інтерпретується, так і компіляції, але в більшості випадків у
кожної мови є свій кращий спосіб реалізації. Мови Фортран, Паскаль в основному компілюють; мову Асемблер майже завжди інтерпретує;
мови Бейсік і Лісп широко використовують обидва способи. p>
Основною перевагою компіляції є швидкість виконання готової програми. Скриптової програма неминуче виконується
повільніше, ніж компільовані, оскільки інтерпретатор повинен будувати відповідну послідовність команд у момент, коли інструкція
наказує виконання. p>
У той же час інтерпретується мова часто більш зручний для програміста, особливо початківця. Він дозволяє проконтролювати
результат кожної операції. Особливо добре таку мову підходить для діалогового стилю розробки програм, коли окремі частини програми можна написати,
перевірити і виконати в ході створення програми, не відключаючи інтерпретатора. p>
За набором вхідних мов розрізняють системи програмування одно-і багатомовні. Відмінна риса багатомовних
систем полягає в тому, що окремі частини програми можна складати на різних мовах і допомогою спеціальних обробних програм об'єднувати їх у готову
для виконання на ЕОМ програму. p>
Для побудови мов програмування використовується сукупність загальноприйнятих символів і правил, що дозволяють описувати алгоритми
розв'язуваних завдань і однозначно тлумачити сенс створеного написання. Основною тенденцією у розвитку мов програмування є підвищення їх семантичного
рівня з метою полегшення процесу розробки програм і збільшення продуктивності праці їх укладачів. p>
За структурою, рівнем формалізації вхідного мови та цільовим призначенням розрізняють системи програмування машинно-орієнтовані
і машинно-незалежні. p>
p>
Машинно-орієнтовані системи програмування мають вхідний мова, набори
операторів і образотворчі засоби яких істотно залежать від особливостей ЕОМ (внутрішнього мови, структури пам'яті і т.д.).
Машинно-орієнтовані системи дозволяють використовувати всі можливості та особливості машинно-залежних мов: p>
висока якість створюваних програм; p>
можливість використання конкретних апаратних ресурсів; p>
передбачуваність об'єктного коду та замовлень пам'яті; p>
для складання ефективних програм необхідно знати систему команд та особливості функціонування даної
ЕОМ; p>
трудомісткість процесу складання програм (особливо на машинних мовах і ЯСК), погано захищеного від
появи помилок; p>
низька швидкість програмування; p>
неможливість безпосереднього використання програм, складених на цих мовах, на ЕОМ
інших типів. p>
Машинно-орієнтовані системи за ступенем автоматичного програмування поділяються на класи: p>
1.Машінний мову. У таких системах програмування окремий комп'ютер має свій певний Машинний Мова (далі МЯ), йому
наказують виконання згаданих операцій над обумовленими ними операндами, тому МЯ є командним. Однак, деякі сімейства ЕОМ (наприклад, ЄС
ЕОМ, IBM/370/тощо) мають єдиний МЯ для ЕОМ різної потужності. У команді будь-якого з них повідомляється інформація про місцезнаходження
операндів і тип виконуваної операції. У нових моделях ЕОМ намічається тенденція до підвищення внутрішніх мов машинно-апаратним шляхом реалізовувати більш складні
команди, що наближаються за своїми функціональними дій до операторів алгоритмічних мов програмування. p>
2.Система Символічного Кодування. У даних системах використовуються Мови Символічного
Кодування (далі ЯСК), які так само, як і МЯ, є командними. Однак коди операцій та адреси в машинних командах, що представляють собою
послідовність двійкових (у внутрішньому коді) або вісімкових (часто використовуваних при написанні програм)
цифр, в ЯСК замінені символами (ідентифікаторами), форма написання яких допомагає програмісту легше запам'ятовувати смисловий зміст операції. Це
забезпечує суттєве зменшення кількості помилок при складанні програм. Використання символічних адрес - перший крок до створення ЯСК. Команди ЕОМ замість
істинних (фізичних) адрес містять символічні адреси. За результатами складеної програми визначається необхідна кількість сейфів для зберігання
вихідних проміжних і результуючих значень. Призначення адрес, що виконується окремо від складання програми в символічних адресах, може
проводитися менш кваліфікованим програмістом або спеціальною програмою, що в значній мірі полегшує працю програміста. p>
3.Автокоди. Існують системи програмування, що використовують мови, які включають в
себе всі можливості ЯСК, за допомогою розширеного введення макрокоманд - вони називаються автокодом. У різних програмах зустрічаються деякі досить
часто використовуються командні послідовності, які відповідають певним процедурам перетворення інформації. Ефективна реалізація таких
процедур забезпечується оформленням їх у вигляді спеціальних макрокоманд і включенням останніх у мову програмування, доступний програмісту.
Дії переводяться в машинні команди двома шляхами - розстановкою і генеруванням. У постановочної системі містяться «кістяки» - серії команд,
реалізують потрібну функцію, позначену дії. Дії забезпечують передачу фактичних параметрів, які в процесі трансляції вставляються
в «кістяк» програми, перетворюючи її в реальну машинну програму. В системі з генерацією є спеціальні програми, що аналізують дії, які
визначають, яку функцію необхідно виконати і формують необхідну послідовність команд, що реалізують цю функцію. Обидві зазначених системи
використовують транслятори з ЯСК і набір макросів, які також є операторами автокодом. Розвинені автокодом отримали назву Асемблер. Сервісні
програми тощо, як правило, складені на мовах типу Асемблер. p>
4.Макрос. У таких системах мова, що є засобом для заміни послідовності
символів описують виконання необхідних дій ЕОМ на більш стислу форму - називається Макрос (засіб заміни). В основному, Макрос призначений для того,
щоб скоротити запис вихідної програми. Компонент програмного забезпечення, що забезпечує функціонування макросів, називається Макропорцесори. На
Макропорцесори надходить макросопределяющій і початковий текст. Реакція Макропорцесори на виклик - видача вихідного тексту. Макрос однаково може
працювати, як з програмами, так і з даними. p>
Машинно-незалежні системи програмування - це засіб опису алгоритмів вирішення завдань та інформації, що підлягає обробці. Вони зручні в
використанні для широкого кола користувачів і не вимагають від них знання особливостей організації функціонування ЕОМ. У таких системах програми,
складаються мовами, що мають назву високорівневих мов програмування, являють собою послідовності операторів, структуровані відповідно до
правилами розглядання мови (завдання, сегменти, блоки і т.д.). Оператори мови описують дії, які повинна виконувати
система після трансляції програми на МЯ. Таким чином, командні послідовності (процедури, підпрограми), часто використовувані в машинних
програмах, представлені в високорівневих мовах окремими операторами. Програміст отримав можливість не розписувати в деталях обчислювальний процес
на рівні машинних команд, а зосередитися на основних особливостях алгоритму. p>
Серед машинно-незалежних систем програмування слід виділити: p>
1.Процедурно-орієнтовані системи. Вхідні мови програмування в таких системах служать для запису
алгоритмів (процедур) обробки інформації, характерних для вирішення задач певного класу. Ці мови, повинні забезпечити програміста засобами,
дозволяють коротко і чітко формулювати завдання і отримувати результати у необхідній формі. Процедурних мов дуже багато, наприклад: Фортран, Алгол --
мови, створені для вирішення математичних завдань; Simula, слензі - для моделювання; Лісп, Снобол - для роботи з обліковим структурами. p>
2.Проблемно-орієнтовані системи в якості вхідного мови використовують мову
програмування з проблемною орієнтацією. З розширенням областей застосування обчислювальної техніки виникла необхідність формалізувати подання
постановки і рішення нових класів задач. Необхідно було створити такі мови програмування, які, використовуючи в даній області позначення та термінологію,
дозволили б описувати необхідні алгоритми для вирішення поставлених завдань. Ці мови, орієнтовані на вирішення певних проблем, повинні забезпечити
програміста засобами, що дозволяють коротко і чітко формулювати завдання і отримувати результати у необхідній формі. Програми, складені на основі цих
мов програмування, записані в термінах розв'язуваної задачі і реалізуються виконанням відповідних процедур. p>
3.Діалоговие мови. Поява нових технічних можливостей поставило завдання перед системними
програмістами - створити програмні засоби, що забезпечують оперативну взаємодію людини з ЕОМ їх назвали діалоговими мовами. Створювалися
спеціальні керуючі мови для забезпечення оперативного впливу на проходження завдань, які складалися на будь-яких раннє неопрацьованих (не
діалогових) мовами. Розроблялися також мови, які крім цілей управління забезпечували б опис алгоритмів вирішення завдань. Необхідність забезпечення
оперативної взаємодії з користувачем зажадала збереження в пам'яті ЕОМ копії вихідної програми навіть після отримання об'єктної програми в машинних
кодах. При внесенні змін до програми система програмування за допомогою спеціальних таблиць встановлює взаємозв'язок структур вихідної та об'єктної
програм. Це дозволяє здійснити необхідні редакційні зміни до об'єктної програмі. P>
4.Непроцедурние мови. Непроцедурного мови складають групу мов, що описують організацію
даних, що обробляються за фіксованими алгоритмами (табличні мови і генератори звітів), і мов зв'язку з операційними системами. Дозволяючи чітко
описувати як завдання, так і необхідні для її вирішення дії, таблиці рішень дають змогу в наочній формі визначити, які умови повинні
виконуватися, перш ніж переходити до якого-небудь дії. Одна таблиця рішень, що описує деяку ситуацію, містить всі можливі блок-схеми реалізацій
алгоритмів рішення. Табличні методи легко освоюються фахівцями будь-яких професій. Програми, складені на табличному мовою, зручно описують складні
ситуації, що виникають при системному аналізі. p>
У самому загальному випадку для створення програми обраною мовою програмування потрібно мати наступні компоненти. p>
1.Текстовий редактор. Спеціалізовані текстові редактори, орієнтовані на
конкретний мова програмування, необхідні для отримання файлу з вихідним текстом програми, який містить набір стандартних символів для запису
алгоритму. p>
2.Ісходний текст за допомогою програми-компілятора переводиться в машинний код.
Оригінальний текст програми полягає, як правило, з декількох модулів (файлів з вихідними текстами). Кожен модуль компілюється в окремий файл з об'єктним
кодом, які потім потрібно об'єднати в одне ціле. Крім того, системи програмування, як правило, включають в себе бібліотеки стандартних
підпрограм. Стандартні підпрограми мають єдину форму звернення, що створює можливості автоматичного включення таких підпрограм в зухвалу програму
і настройки їх параметрів. p>
3.Об'ектний код модулів і підключені до нього стандартні функції обробляє спеціальна
програма - редактор зв'язків. Дана програма об'єднує об'єктні коди з урахуванням вимог операційної системи і формує на виході працездатний
додаток - виконані код для конкретної платформи. Здійснимих код це закінчена програма, яку можна запустити на будь-якому комп'ютер, де
встановлена операційна система, для якої ця програма створювалася. p>
4. У сучасних системах програмування є ще один компонент - відладчик,
який дозволяє аналізувати роботу програми під час її виконання. З його допомогою можна послідовно виконувати окремі оператори вихідного тексту
послідовно, спостерігаючи при цьому, як змінюються значення різних змінних. p>
5. В останні кілька років у програмуванні (особливо для операційного середовища Windows) намітився так званий візуальний підхід. Цей
процес автоматизований в середовищах швидкого проектування. При цьому використовуються готові візуальні компоненти, властивості й поведінка яких
настроюються за допомогою спеціальних редакторів. Таким чином, відбувається перехід від мов програмування системного рівня до мов сценаріїв. P>
Ці мови створювалися для різних цілей, що зумовило ряд фундаментальних
відмінностей міжним. Системні розроблялися для побудови структур даних і алгоритмів "з нуля", починаючи від таких примітивних елементів, як слово пам'яті
комп'ютера. На відміну від цього, мови опису сценаріїв створювалися для зв'язування готових програм. Їх застосування має на увазі наявність достатньої
асортименту потужних компонентів, які потрібно тільки об'єднати між собою. Мови системного рівня використовують строгий контроль типів даних, що
допомагає розробникам додатку справлятися зі складними завданнями. Мови опису сценаріїв не використовують поняття типу, що спрощує встановлення зв'язків
між компонентами, а також прискорює розробку прикладних систем. p>
Мови опису сценаріїв засновані на трохи іншому наборі компромісів, ніж мови системного рівня. В них швидкість
виконання і строгість контролю типів ставляться у шкалі пріоритетів на більш низьке місце, але зате вище цінуватися продуктивність праці програміста і
повторне використання. Це співвідношення цінностей виявляється все більш обгрунтованим в міру того, як комп'ютери стають швидкодіючими і менше
дорогими, чого не можна сказати про програмістів. Мови системного програмування добре підходять для
створення компонентів, де основна складність полягає в реалізації алгоритмів і структур даних, тоді як мови опису сценаріїв краще пристосовані для побудови додатку з готових
компонентів, де складність полягає в налагодженні межкомпонентних зв'язків. Завдання останнього роду отримують все більше поширення, так що роль мов опису
сценаріїв буде зростати. p>
Список літератури p>
1. В. Ю. Дем'яненко. Програмні засоби створення та ведення баз даних. -М.: Фінанси і статистика, 1984. P>
2. В. А. Мясников, С.А. Майоров, Г.І. Новіков. ЕОМ для всіх. -М.: Знання, 1985. P>
3. А. Г. Гейн. Основи інформатики та обчислювальної техніки. -М.: Просвещение, 1997. P>
4. В. Ф. Ляхович. Основи інформатики. -Ростов-на-Дону: Фенікс, 1996. P>
5. Обчислювальна техніка та програмування/Под ред. А. В. Петрова-М.: Висш. шк., 1990. p>
6. Інформатика: Базовий курс/С.В. Симонович и др. - СПб.: Питер, 1999. P>