Програмне забезпечення ПК
2.2.1. Визначення та особливості мов програмування
Існуючі в даний час мови програмування підрозділяють на три великих класи: машинно-орієнтовані, процедурно-орієнтовані і проблемно-орієнтовані. До машинно-орієнтованих мов програмування відносяться мови, у яких, з одного боку, явно виражений зв’язок з конкретною ЕОМ (структура команд, пам’яті, зовнішніх пристроїв тощо ), а з іншого боку - у мову введені елементи, що спрощують і автоматизують процес програмування (символьне позначення команд і комірок пам’яті, широке використання звичних для людини позначень тощо ). Машинно-орієнтовані мови програмування дозволяють писати програми, що не поступаються за ефективністю програмам, написаним безпосередньо в кодах машини, але в значній мірі полегшують роботу з їх налагодження. Як правило, машинно-орієнтовані мови програмування призначені для системних програмістів, що працюють на обслуговуванні ЕОМ і побудові математичного забезпечення для них. У залежності від ступеня зв’язку людини з ЕОМ, машинно-орієнтовані мови програмування поділяються на:
- машинні мови програмування,
- автокоди (мови символьного кодування, чи асемблерні мови)
- машинно-незалежні мови програмування.
Відмінною рисою машинних мов є цифрове кодування команд (у деякій системі числення) і, отже, відсутність розбіжності між внутрішнім поданням операторів (команд), за допомогою яких у цих мовах описуються програми, і формою подання даних. Останнє є запорукою можливості реалізації на ЕОМ таких програм, які в результаті роботи формують інші програми (транслятори, генератори програм, тощо) чи перетворюють у процесі виконання самих себе. Мови програмування більш високих рівнів цією особливістю машинних мов не володіють і тільки в новітніх мовах з’являються деякі обмежені можливості впливу на програми в процесі їхньої реалізації (наприклад, у мові АЛГОЛ-68).
Уже реалізація найпростіших алгоритмів на перших ЕОМ (циклічних і процесів, що розгалужуються, і підпрограм) приводила до необхідності перетворення команд у процесі їхнього виконання (до так званих команд модифікації). Аналіз програм дозволив пред’явити до структур ЕОМ певні вимоги з метою спрощення виконання програм за рахунок удосконалення внутрішніх мов ЕОМ. Так, наявність у системі команд ЕОМ операцій за адресами 2-го рангу (непрямої адресації) дозволяє реалізувати будь-яку програму без модифікації її запису при виконанні (отже, дає можливість розміщати програми в односторонній пам’яті), зробити так, щоби запис будь-якої програми не залежав від її розміщення в пам’яті ЕОМ, від розмірів оброблюваних масивів, місця розміщення даних тощо.
Тому вже з кінця 60-х рр. у внутрішні мови включаються ті чи інші еквіваленти непрямої адресації (індекс-регістри і покажчики, адреси вищих рангів). Названі особливості машинних мов увійшли в мови програмування більш високих рівнів. Разом із тим уже машинним мовам властиві найбільш характерні риси всіх мов програмування фразової структури: команди мови складаються із символів, що позначають посилання на належну для виконання операцію і на дані, над якими вона повинна бути виконана, чи на команду, що повинна бути виконана після даної, або на пристрій, що повинний бути підключеним для роботи.
Опис процесів автоматичної обробки даних внутрішніми мовами ЕОМ спряжений зі значними труднощами, викликаними малою наочністю цих мов і наявністю специфічних особливостей, що накладаються конкретною технічною реалізацією. Виняток становлять внутрішні мови машин із високим рівнем інтерпретації, тобто машин, внутрішні мови яких є мовами процедурно-орієнтованими (наприклад, мови машин "МІР-1", "МІР-2"), Проте машинні мови знаходять застосування (як правило, за допомогою символьного кодування) при підготовці системного програмного забезпечення ЕОМ. Задача формального опису машинних мов зв’язана з проблемою точного опису можливостей реальних машин, що перебувають в розвитку, (пристроїв уведення – виведення даних, систем переривання ЕОМ, роботи в реальному масштабі часу тощо) і дотепер не може вважатися вирішеною.
Автокоди (чи мови один до одного; 1:1) призначені для заміни двійкових кодів операцій і адреса команд їхніми символьними позначеннями, а в більш розвинутих мовах (макромовах чи автокодах 1 : n) - для розширення набору елементарних операцій ЕОМ деякими макрокомандами, що реалізують виконання визначених підпрограм. Використання останніх стало першим реальним кроком на шляху автоматизації програмування і послужило основою для створення мов програмування, які розширяються. У мовах цього рівня запис арифметичних та інших виразів або розщеплюється на ланцюжок більш елементарних записів, або подається в спеціальних мовах, більш близьких до природної (різні варіанти запису бездужкових виразів тощо).
Мови символьного кодування знайшли застосування ще в машинах 1-го покоління, що дозволило спростити процес програмування за рахунок автоматизації розподілу пам’яті, обліку її ступіней тощо Застосування універсальних засобів опису процесів обробки даних, наданих мовами програмування більш високих рівнів, може приводити до менш ефективного використання устаткування і до втрати швидкості виконання програм. Мови символьного кодування є базовими в операційних системах і використовуються як мови збірки, тому їх також називають асемблерними мовами, чи мовами зборки. Оскільки ці мови, як правило, охоплюють усі можливості машинних мов, вони знаходять застосування в машинах наступних поколінь при створенні системного програмного забезпечення - програм, від яких потрібно найбільш висока ефективність.
Дата добавления: 2016-07-22; просмотров: 1964;