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