THE BELL

Є ті, хто прочитали цю новину раніше вас.
Підпишіться, щоб отримувати статті свіжими.
Email
ім'я
Прізвище
Як ви хочете читати The Bell
без спаму

Навіть при наявності сотень тисяч програм для ПК користувачам може знадобитися щось таке, чого не роблять (або роблять, але не так) наявні програми. У цих випадках для створення нових програм використовується інструментальне ПЗ, що дозволяє розробляти як системне, так і прикладне програмне забезпечення. Отже, воно відіграє в програмуванні роль засобів виробництва.

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

До складу системи програмування зазвичай входить редактор текстів програм, трансляторпрограм, бібліотеки підпрограм і редактори зв'язків, отладчики, Довідкові системи, а іноді і різні допоміжні програми.

Мова програмування- це штучна мова, за допомогою якого записується алгоритм вирішення задачі у вигляді, зрозумілому ПК.

Існує безліч мов програмування, і у кожного можуть бути десятки версій. Кожен програміст пише програми на тій мові, який йому зручний, і немає мови програмування, що вважається загальноприйнятим.

Але у всіх мов програмування є одна загальна властивість. Вони зрозумілі програмістам, але незрозумілі процесору, так як процесор може працювати тільки з двійковими числами і тому розуміє програми, записані тільки в машинному коді. Тому програми, записані на будь-якій мові програмування, спочатку «переводять» на мову процесора, тобто перетворюють в машинний код. Цей переклад виконують спеціальні програми-перекладачі. По-англійськи «переклад» називається трансляцією (translation), Тому програми, що виконують переклад програм на мову машинного коду, називають трансляторами.

На етапі трансляціївідбувається перетворення вихідного кодупрограми в об'єктний код,який далі обробляється редактором зв'язків.Редактор зв'язків - спеціальна програма, Що забезпечує побудову завантажувального модуля, Придатного до виконання (рис. 6.2).

Мал. 6.2. Схема процесу створення завантажувального модуля програми

Розрізняють такі види трансляторів: інтерпретатор, компілятор.

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

З універсальних мов програмування сьогодні найбільш популярні наступні: Бейсік (Basic), Паскаль (Pascal), Сі ++ (C ++), Ява (Java).

Для кожного з цих мов програмування сьогодні є чимало систем програмування, що випускаються різними фірмами і орієнтованих на різні моделі ПК і операційні системи. Найбільш популярні такі візуальні середовища швидкого проектування програм для Windows: Microsoft Visual Basic; Borland Delphi; Borland C ++ Builder; Microsoft Visual Studio (Visual Basic.net, C ++, C #, J #).

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

Особливим класом систем програмування є системи для створення додатків типу клієнт-сервер. Ці системи дозволяють швидко створювати інформаційні системи для підрозділів і навіть великих підприємств. У них містяться кошти для створення призначеного для користувача інтерфейсу, Опису процедур обробки даних, заготовки для виконання типових дій з обробки даних і т.д. Ці системи, як правило, дозволяють працювати з самими різними СУБД - Oracle, Sybase, Microsoft SQL Server і ін. Серед найбільш популярних систем такого роду можна назвати PowerBuilder фірми Sybase, Delphi фірми Borland, Visual Basic фірми Microsoft. Зрозуміло, кошти для створення додатків типу клієнт-сервер є і в складі СУБД типу клієнт-сервер (Oracle, Sybase та ін.), Але вони орієнтовані тільки на дану СУБД.

1. Класифікація програмного забезпечення

Призначенням ЕОМ є виконання програм. Програма містить команди, що визначають порядок дії комп'ютера. Сукупність програм для комп'ютера утворює програмне забезпечення (ПО) . За функціональною ознакою розрізняють системне і прикладне програмне забезпечення.

У першому наближенні всі програми, що працюють на комп'ютері, можна умовно розділити на три категорії (дивись малюнок):

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

2. системні програми , Які виконують різні допоміжні функції, наприклад:

    управління ресурсами комп'ютера;

    створення копій використовуваної інформації;

    перевірка працездатності пристроїв комп'ютера;

    видача довідкової інформації про комп'ютер та ін .;

3. інструментальні програмні системи , Що полегшують процес створення нових програм для комп'ютера.

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

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

Розвиток ПО пішло як вглиб (з'явилися нові підходи до побудови операційних систем, мов програмування і т.д.), так і вшир (прикладні програми перестали бути прикладними і придбали самостійну цінність).

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

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

На сьогоднішній день можна сказати, що більш-менш виразно склалися такі групи програмного забезпечення:

    операційні системи та оболонки;

    системи програмування (транслятори, бібліотеки підпрограм, отладчики і т.д.);

    інструментальні системи;

    інтегровані пакети програм;

    динамічні електронні таблиці;

    системи машинної графіки;

    системи управління базами даних (СКБД);

    прикладне програмне забезпечення.

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

Операційна система (ОС) -система програм, призначена для управління пристроями ЕОМ, управління обробкою і зберіганням даних, забезпечення призначеного для користувача інтерфейсу.

Операційна система зазвичай зберігається у зовнішньої пам'яті комп'ютера - на диску. При включенні комп'ютера вона зчитується з дискової пам'яті і розміщується в ОЗУ.
Цей процес називається завантаженням операційної системи.

У функції операційної системи входить:

Здійснення діалогу з користувачем;
введення-виведення і керування даними;
планування та організація процесу обробки програм;
розподіл ресурсів (оперативної пам'яті і кеша, процесора, зовнішніх пристроїв);
запуск програм на виконання;
всілякі допоміжні операції обслуговування;
передача інформації між різними внутрішніми пристроями;
програмна підтримка роботи периферійних пристроїв (дисплея, клавіатури, дискових накопичувачів, принтера та ін.).

Залежно від кількості одночасно оброблюваних завдань і числа користувачів, яких можуть обслуговувати ОС, розрізняють чотири основні класи операційних систем:

1. однопользовательские однозадачні, які підтримують одну клавіатуру і можуть працювати тільки з однією (в наразі) Завданням;

2. однопользовательские однозадачні з фонової печаткою, Які дозволяють крім основного завдання запускати одну додаткову задачу, орієнтовану, як правило, на висновок інформації на друк. Це прискорює роботу при видачі великих обсягів інформації на друк;

3. однопользовательские багатозадачні, Які забезпечують одному користувачеві паралельну обробку декількох завдань. Наприклад, до одного комп'ютера можна підключити кілька принтерів, кожен з яких буде працювати на "свою" завдання;

4. розраховані на багато користувачів багатозадачні, Що дозволяють на одному комп'ютері запускати кілька завдань декільком користувачам. Ці ОС дуже складні і вимагають значних машинних ресурсів.

У різних моделях комп'ютерів використовують операційні системи з різною архітектурою і можливостями. Для їх роботи потрібні різні ресурси. Вони надають різну ступінь сервісу для програмування і роботи з готовими програмами.

Операційна система для персонального комп'ютера, Орієнтованого на професійне застосування, повинна містити наступні основні компоненти:

Програми управління вводом / виводом;
програми, що управляють файловою системою і планують завдання для комп'ютера;
процесор командного мови, який приймає, аналізує і виконує команди, адресовані операційній системі.
Кожна операційна система має свій командний мову, який дозволяє користувачеві виконувати ті чи інші дії:
звертатися до каталогу;
виконувати розмітку зовнішніх носіїв;
запускати програми;
... інші дії.

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

Для управління зовнішніми пристроями комп'ютера використовуються спеціальні системні програми - драйвери. Драйвери стандартних пристроїв утворюють в сукупності базову систему введення-виведення (BIOS), яка зазвичай заноситься в постійне ЗУ комп'ютера.

Сучасні операційні системи для ПЕОМ відрізняються один від одного, перш за все орієнтацією на машини певного класу, підтримуваними ними режимами обробки, наданими сервісними можливостями. Прикладами ОС для ПЕОМ є СР / М, MS DOS, OS / 2 Warp (IBM), Windows 95 (Microsoft).

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

За своїм призначенням вони близькі системам програмування. До інструментальних програм, наприклад, відносяться:

    редактори;

    засоби компонування програм;

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

    допоміжні програми, що реалізують часто використовувані системні дії;

    графічні пакети програм і т.п.

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

Виходячи із завдань, поставлених перед інструментальним програмним забезпеченням, можна виділити велику кількість різних за призначенням видів інструментального програмного забезпечення:

1) Текстові редактори

2) Інтегровані середовища розробки

4) Компілятори

5) Інтерпретатори

6) лінковщік

7) Парсериігенератори парсеров (см.Javacc)

8) Асемблери

9) Відладчики

10) Профілювальники

11) Генератори документації

12) Засоби аналізу покриття коду

13) Засоби безперервної інтеграції

14) Засоби автоматизованого тестування

15) Системи управління версіяміі ін.

Слід зазначити, що оболонки для створення прикладних програм створюються також інструментальними програмами і тому можуть бути віднесені до прикладних програм. Розглянемо коротко призначення деяких інструментальних програм.

висновок

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

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

Необхідно відзначити тенденцію до спрощення процесу програмування і створення певного підкласу - напівпрофесійне програмування для прикладних цілей.

Саме це дозволить досвідченому користувачеві комп'ютера, але не професійному програмістові, створювати якісь програми та невеликі виконують у середовищі Microsoft Office файли, які використовуються в першу чергу для цілей обліку та забезпечення документообігу в невеликих компаніях.

Саме з цією метою Microsoft був розроблений програмний комплекс Visual Basic for Application, що дозволяє полегшити процес програмування і дав можливість займатися прикладним програмуванням користувачам, а не програмістам. Дана можливість була реалізована в першу чергу шляхом створення розділу програми - «Редактор сценаріїв» і можливості записувати і виконувати «Макрос», як окремий різновид графічно програмованих модулів. Реалізована можливість створення додатків сграфіческім інтерфейсомдля MSWindows. Також перевагою даного виду інструментального програмного забезпечення є простойсінтаксіс, дозволяє дуже швидко освоїти мову, і застосовувати його для програмування у всіх стандартних додатках Microsoft Office.

Тому важко переоцінити значення інструментального забезпечення в цілому, і Visual Basic for Application зокрема, хоча недоліки, а про них було сказано вище, також мають місце. Але це швидше навіть не негативні сторони продукту, а орієнтири для подальшого вдосконалення інструментального забезпечення в особі Visual Basic for Application.

Список використаних джерел

1. алгоритмічні мови реального часу / Под ред. Янга С. / 2004 р

2. Журнал PC Magazine Russian Edition №2 2008р. Комп'ютер сьогодні.

3. Інформатика. / Под ред. Могильов А.В., Пак Н.І., Хеннер Є.К / - М .: ACADEMIA, 2000..

4. Інформатика і інформаційні технології: Підручник / За ред. Романова Д.Ю. / ТОВ «видавництво« Ексмо », 2007.

5. Новітня енциклопедія персонального комп'ютера / Под ред. Леонтьєва В. / Москва, 1999 рік. - 271 с.

6. Нові мови програмування та тенденції їх розвитку / Под ред. Ушков В. / 2001 р

7. Педагогіка / Под ред. Пидкасистого П.І. / - М .: Педагогічне товариство Росія, 2000..

8. Програмування для Microsoft Excel 2000 за 21 день. / Под ред. Харіса М. / - М .: Вільямс, 2000..

9. Симонович С. Інформатика: базовий курс. Учеб. для ВНЗ. СПб, Пітер, 2002 г.

10. З Excel 2000 без проблем. / Под ред. Ковальські / - М .: Біном, 2000..

11. «Ефективна робота в Windows 98» / Под ред. Стінсона К. / 2000 рік. - 247 с.

12. Мови програмування. кн.5 / Под ред. Вауліна А.С. / 2003 р

13. Мови програмування: розробка та реалізація / Под ред. Терренса П. / 2001 р

14. Електронний підручник з інформатики. Алексєєв О.Г. http://www.stf.mrsu.ru/economic/lib/Informatics/text/Progr.html\

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

функції, як і для всього програмного забезпечення в цілому. Загальні функції розглянуті нами вище, а спеціалізованими функціями, притаманними тільки даного типу програм, є:

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

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

3. З'єднання окремих модулів в єдиний виконуваний код, з дотриманням необхідної структури, забезпечення координації взаємодії окремих частин між собою.

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

Види інструментального програмного забезпечення

Виходячи із завдань, поставлених перед інструментальним програмним забезпеченням, можна виділити велику кількість різних за призначенням видів інструментального програмного забезпечення:

1) Текстові редактори

2) Інтегровані середовища розробки

4) Компілятори

5) Інтерпретатори

6) лінковщік

7) Парсери і генератори парсеров (див. Javacc)

8) Асемблери

9) Відладчики

10) Профілювальники

11) Генератори документації

12) Засоби аналізу покриття коду

13) Засоби безперервної інтеграції

14) Засоби автоматизованого тестування

15) Системи управління версіями і ін.

Слід зазначити, що оболонки для створення прикладних програм створюються також інструментальними програмами і тому можуть бути віднесені до прикладним програмам. Розглянемо коротко призначення деяких інструментальних програм.

Текстові редактори.

Текстовий редактор -- комп'ютерна програма, Призначена для обробки текстових файлів, такий як створення і внесення змін.

типи текстових редакторів.

Умовно виділяють два типи редакторів: потокові текстові редактори іінтерактивні.

1) Потокові текстові редактори

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

2) Інтерактивні текстові редактори

Інтерактивні текстові редактори - це сімейство комп'ютерних програм призначених для внесення змін до текстовий файл в інтерактивному режимі. Такі програми дозволяють відображати поточний стан текстових даних у файлі та щоб між ними чинити різні дії.

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

Текстові редактори призначені для створення і редагування текстових документів. Найбільш поширеними є MS WORD, Лексикон. Основними функціями текстових редакторів є:

1) робота з фрагментами документа,

2) вставка об'єктів створених в інших програмах

3) розбивка тексту документа на сторінки

4) введення і редагування таблиць

5) введення і редагування формул

6) форматування абзацу

7) автоматичне створення списків

8) автоматичне створення змісту.

Відомі десятки текстових редакторів. Найбільш доступними є NOTEPAD (блокнот), WORDPAD, WORD. Робота конкретного редактора тексту визначається зазвичай функціями, призначення яких відображено в пунктах меню і в довідковій системі.

Інтегроване середовище розробки

Інтегроване середовище розробки, ІСР-- система програмних засобів, яка використовується програмістами для розробки програмного забезпечення (ПО). Зазвичай середовище розробки включає в себе:

1) текстовий редактор

2) компілятор і / або інтерпретатор

3) засоби автоматизації збірки

4) відладчик.

Іноді містить також засоби для інтеграції з системами управління версіями і різноманітні інструменти для спрощення конструювання графічного інтерфейсу користувача. багато сучасні середовища розробки також включають браузер класів, інспектор об'єктів і діаграму ієрархії класів - для використання при об'єктно-орієнтованої розробки ПЗ. Хоча, і існують середовища розробки, призначені для декількох мов програмування - такі, як Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator або Microsoft Visual Studio, зазвичай середовище розробки призначається для одного певного мови програмування - як, наприклад, Visual Basic, Delphi , Dev-C ++.

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

SDK (Від англ. Software Development Kit) або «devkit» - комплект засобів розробки, який дозволяє фахівцям з програмного забезпечення створювати додатки для певного пакету програм, програмного забезпечення базових засобів розробки, апаратної платформи, комп'ютерної системи, Відеоігрових консолей, операційних систем і інших платформ.

Програміст, як правило, отримує SDK безпосередньо від розробника цільової технології або системи. Часто SDK поширюється через Інтернет. Багато SDK поширюються безкоштовно для того, щоб заохотити розробників використовувати дану технологію або платформу.

Постачальники SDK іноді підміняють термін Software в словосполученні Software Development Kit на більш точне слово. Наприклад, «Microsoft» і «Apple» надають Driver Development Kits (DDK) для розробки драйверів пристроїв, а «PalmSource» називає свій інструментарій для розробки «PalmOS Development Kit (PDK)».

Приклади SDK:

5) Java Development Kit

6) Opera Devices SDK

Компілятори.

компілятор -

1) Програма або технічний засіб, Яке виконує компіляцію.

2) Машинна програма, яка використовується для компіляції.

3) в камері, що виконує перетворення програми, складеної мовою оригіналу, в об'єктний модуль.

4) Програма, яка переводить текст програми на мові високого рівня в еквівалентну програму на машинній мові.

5) Програма, призначена для трансляції високорівневого мови в абсолютний код або, іноді, в мову асемблера. Вхідний інформацією для компілятора ( вихідний код) Є опис алгоритму або програма на проблемно-орієнтованої мови, а на виході компілятора - еквівалентне опис алгоритму на машинно-орієнтованої мови (об'єктний код).

компіляція -

1) Трансляція програми на мову, близьку до машинного.

2) Трансляція програми, складеної мовою оригіналу, в об'єктний модуль. Здійснюється компілятором.

Компілювати - проводити трансляцію машинної програми з проблемно-орієнтованої мови на машинно-орієнтована мова.

Види компіляторів:

1) векторизуется. Транслює вихідний код в машинний код комп'ютерів, оснащених векторних процесором.

2) Гнучкий. Складено за модульним принципом, управляється таблицями і запрограмований на мові високого рівня або реалізований за допомогою компілятора компіляторів.

3) Діалоговий.

4) Інкрементальний. Повторно транслює фрагменти програми і доповнення до неї без перекомпіляції всієї програми.

5) Інтерпретує (покроковий). Послідовно виконує незалежну компіляцію кожного окремого оператора (команди) вихідної програми.

6) Компілятор компіляторів. Транслятор, що сприймає формальний опис мови програмування і генерує компілятор для цієї мови.

7) Налагоджувальний. Усуває окремі види синтаксичних помилок.

8) Резидентний. Постійно перебуває в основний пам'яті і доступний для повторного використання багатьма завданнями.

9) Самокомпіліруемий. Написаний на тій же мові, з якого здійснюється трансляція.

10) Універсальний. Заснований на формальному описі синтаксису і семантики вхідної мови. складовими частинами такого компілятора є: ядро, синтаксичний і семантичний завантажувачі.

Види компіляції:

1) пакетна. Компіляція декількох вихідних модулів в одному пункті завдання.

2) Построчная.

3) Умовна. Компіляція, при якій транслюється текст залежить від умов, заданих у вихідній програмі. Так, в залежності від значення деякої константи, можна включати або вимикати трансляцію частини тексту програми.

Структура компілятора.

Процес компіляції складається з наступних етапів:

1) Лексичний аналіз. На цьому етапі послідовність символів вихідного файлу перетвориться в послідовність лексем.

2) Синтаксичний (граматичний) аналіз. Послідовність лексем перетворюється в дерево розбору.

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

4) Оптимізація. Виконується видалення зайвих конструкцій і спрощення коду зі збереженням його сенсу. Оптимізація може бути на різних рівнях і етапах - наприклад, над проміжним кодом або над кінцевим машинним кодом.

5) Генерація коду. З проміжного представлення породжується код на цільовому мовою.

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

Трансляція і компоновка.

Важливою історичною особливістю компілятора, відображеної в його назві (англ. compile - збирати разом, складати), було те, що він міг виробляти і компоновку (тобто містив дві частини - транслятор і компонувальник). Це пов'язано з тим, що роздільна компіляція і компонування як окрема стадія збірки виділилися значно пізніше появи компіляторів. У зв'язку з цим, замість терміна «компілятор» іноді використовують термін «транслятор» як його синонім: або в старій літературі, або коли хочуть підкреслити його здатність переводити програму в машинний код (і навпаки, використовують термін «компілятор» для підкреслення здатності збирати з багатьох файлів один).

Інтерпретатори.

Інтерпретатор (мови програмування) -

1) Програма або технічний засіб, що виконує інтерпретацію.

2) Вид транслятора, який здійснює пооператорную (покомандного) обробку і виконання вихідної програми або запиту (на відміну від компілятора, який транслює всю програму без її виконання).

3) Програма (іноді апаратний засіб), Що аналізує команди або оператори програми і тут же виконує їх.

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

Типи інтерпретаторів.

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

Інтерпретатор компілює типу - це система з компілятора, який переводить вихідний код програми в проміжне представлення, наприклад, в байт-код або p-код, і власне інтерпретатора, який виконує отриманий проміжний код (так звана віртуальна машина). Перевагою таких систем є більшу швидкодію виконання програм (за рахунок виносу аналізу вихідного коду в окремий, разовий прохід, і мінімізації цього аналізу в інтерпретаторі). Недоліки - більше вимога до ресурсів і вимога на коректність вихідного коду. Застосовується в таких мовах, як Java, PHP, Python, Perl (використовується байт-код), REXX (зберігається результат парсинга вихідного коду), а також в різних СУБД (використовується p-код).

За рівної кількості інтерпретатора компілює типу на компоненти виходять компілятор мови і простий інтерпретатор з мінімізованих аналізом вихідного коду. Причому вихідний код для такого інтерпретатора не обов'язково повинен мати текстовий формат або бути байт-кодом, який розуміє тільки даний інтерпретатор, це може бути машинний код якийсь існуючої апаратної платформи. Наприклад, віртуальні машини зразок QEMU, Bochs, VMware включають в себе інтерпретатори машинного коду процесорів сімейства x86.

Деякі інтерпретатори (наприклад, для мов Лисп, Scheme, Python, Бейсік і інших) можуть працювати в режимі діалогу або так званого циклу читання-обчислення-друку (англ. Read-eval-print loop, REPL). У такому режимі інтерпретатор зчитує закінчену конструкцію мови (наприклад, s-expression в мові Лісп), виконує її, друкує результати, після чого переходить до очікування введення користувачем наступної конструкції.

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

Слід також зазначити, що режими інтерпретації можна знайти не тільки в програмному, а й апаратне забезпечення. Так, багато мікропроцесори інтерпретують машинний код за допомогою вбудованих мікропрограм, а процесори сімейства x86, починаючи з Pentium (наприклад, на архітектурі Intel P6), під час виконання машинного коду попередньо транслюють його у внутрішній формат (в послідовність мікрооперацій).

Алгоритм роботи простого інтерпретатора:

2. проаналізувати інструкцію і визначити відповідні дії;

3. виконати відповідні дії;

4. якщо не досягнуто умова завершення програми, прочитати наступну інструкцію і перейти до пункту 2.

Переваги та недоліки інтерпретаторів.

переваги:

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

2) Як правило, більш досконалі і наочні засоби діагностики помилок у вихідних кодах.

3) Спрощення налагодження вихідних кодів програм.

4) Менші розміри коду в порівнянні з машинним кодом, отриманим після звичайних компіляторів.

недоліки:

1) Скриптової програма не може виконуватися окремо без програми-інтерпретатора. Сам інтерпретатор при цьому може бути дуже компактним.

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

3) Практично відсутня оптимізація коду, що призводить до додаткових втрат в швидкості роботи інтерпретованих програм.

Компоновщик.

компоновщик (Також редактор зв'язків, линкер) - програма, яка виробляє компоновку - приймає на вхід один або кілька об'єктних модулів і збирає по ним виконуваний файл.

Для зв'язування модулів компоновщик використовує таблиці імен, створені компілятором в кожному з об'єктних модулів. Такі імена можуть бути двох типів:

1) Певні або експортуються імена - функції і змінні, визначені в даному модулі та надаються для використання інших модулів.

2) Невизначені або імпортовані імена - функції і змінні, на які посилається модуль, але не визначає їх усередині себе.

Робота компоновщика полягає в тому, щоб в кожному модулі дозволити посилання на невизначені імена. Для кожного імпортованого імені знаходиться його визначення в інших модулях, згадка імені замінюється на його адресу.

Компоновщик зазвичай не виконує перевірку типів і кількості параметрів процедур і функцій. Якщо треба об'єднати об'єктні модулі програм, написані на мовах з суворою типізацією, то необхідні перевірки повинні бути виконані додаткової утилітою перед запуском редактора зв'язків.

Асемблер.

асемблер (Від англ. Assembler - складальник) - комп'ютерна програма, компілятор початкового тексту програми, написаної на мові асемблера, в програму на машинній мові.

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

Ассемблирование може бути не першим і не останнім етапом на шляху отримання виконуваного модуля програми. Так, багато компілятори з мов програмування високого рівня видають результат у вигляді програми на мові асемблера, яку в подальшому обробляє асемблер. Також результатом ассемблирования може бути не виконуваний, а об'єктний модуль, що містить розрізнені і неприв'язані один до одного частини машинного коду і даних програми, з якого (або з декількох об'єктних модулів) в подальшому за допомогою програми-компоновщика ( «линкера») може бути скомпонований здійсненний файл.

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

Список отладчиков.

1) AQtime - комерційний відладчик для додатків, створених для.NET Framework версії 1.0, 1.1, 2.0, 3.0, 3.5 (включаючи ASP.NET додатки), а також для Windows 32 і 64-бітних додатків.

2) DTrace - фреймворк динамічного трасування для Solaris, OpenSolaris, FreeBSD, Mac OS X і QNX.

3) Electric Fence - відладчик пам'яті.

4) GNU Debugger (GDB) - відладчик програм від проекту GNU.

5) IDA - потужний дизассемблер і низькорівневий відладчик для операційних систем сімейства Windows і Linux.

6) Microsoft Visual Studio - середовище розробки програмного забезпечення, що включає засоби налагодження від корпорації Microsoft.

7) OllyDbg - безкоштовний низькорівневий відладчик для операційних систем сімейства Windows.

8) SoftICE - низькорівневий відладчик для операційних систем сімейства Windows.

9) Sun Studio - середовище розробки програмного забезпечення, що включає відладчик dbx для ОС Solaris і Linux, від корпорації Sun Microsystems.

10) Dr. Watson - стандартний відладчик Windows, дозволяє створювати дампи пам'яті.

11) TotalView - один з комерційних отладчиков для UNIX.

12) WinDbg - безкоштовний відладчик від корпорації Microsoft.

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

Зазвичай генератор аналізує вихідний код програми, виділяючи синтаксичні конструкції, що відповідають значимих об'єктів програми (типам, класам і їх членам / властивостям / методам, процедурам / функціям і т. П.). В ході аналізу також використовується мета-інформація про об'єкти програми, представлена \u200b\u200bу вигляді документують коментарів. На основі всієї зібраної інформації формується готова документація, як правило, в одному із загальноприйнятих форматів - HTML, HTMLHelp, PDF, RTF та інших.

Документують коментарі.

Документує коментар - це особливим чином оформлений

Інструментальне ПЗ або системи програмування - це системи для автоматизації розробки нових програм на мові програмування. У найзагальнішому випадку для створення програми на обраною мовою програмування (мовою системного програмування) потрібно мати наступні компоненти: 1. Текстовий редактор для створення файлу з вихідним текстом програми. 2. Компілятор або інтерпретатор. Оригінальний текст за допомогою програми-компілятора переводиться в проміжний об'єктний код. Оригінальний текст великої програми складається з кількох модулів(Файлів з вихідними текстами). Кожен модуль компілюється в окремий файл з об'єктним кодом, які потім треба об'єднати в одне ціле. 3. Редактор зв'язків або збирач, який виконує зв'язування об'єктних модулів і формує на виході працездатний додаток - виконані код. Виконані код - це закінчена програма, яку можна запустити на будь-якому комп'ютері, де встановлена \u200b\u200bопераційна система, для якої ця програма створювалася. Як правило, підсумковий файл має расшіреніе.ЕХЕ ілі.СОМ. 4. Останнім часом набули поширення візуальний методи програмування (за допомогою мов опису сценаріїв), орієнтовані на створення Windows-додатків. Цей процес автоматизований в середовищах швидкого проектування. При цьому використовуються готові візуальні компоненти, які настроюються за допомогою спеціальних редакторів. Найбільш популярні редактори (системи програмування програм з використанням візуальних засобів) візуального проектування:

 Borland Delphi - призначений для вирішення практично будь-яких завдання прикладного програмування

 Borland C ++ Builder - це відмінний засіб для розробки DOS і Windows додатків

 Microsoft Visual Basic - це популярний інструмент для створення Windows-програм

 Microsoft Visual C ++ - це засіб дозволяє розробляти будь-які програми, які працюють в середовищі ОС типу Microsoft Windows

1.3.2. файлові системи

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

 Функції для роботи з файлами (створення, видалення, перейменування файлів і т.д.)

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

Відомо, що файли використовуються для організації та зберігання даних на машинних носіях. Файл - це послідовність довільного числа байтів, що володіє унікальним власним ім'ям або пойменована область на машинних носіях. Структурування безлічі файлів на машинних носіях здійснюється за допомогою каталогів, в яких зберігаються атрибути (параметри і реквізити) файлів. Каталог може включати безліч підкаталогів, в результаті чого на дисках утворюються розгалужені файлові структури.Організація файлів у вигляді дерева називається файлової системою. Принцип організації файлової системи - табличний. Дані про те, в якому місці на диску записано файл, зберігається в таблиці розміщення файлів (File Allocation Table, FAT). Ця таблиця розміщується на початку томи. З метою захисту томи на ньому зберігаються дві копії FAT. У разі пошкодження першої копії FAT дискові утиліти можуть скористатися другою копією для відновлення томи. За принципом побудови FAT схожа на зміст книги, так як операційна система використовує її для пошуку файлу і визначення кластерів, які цей файл займає на жорсткому диску. Найменшою фізичної одиницею зберігання даних є сектор. Розмір сектора 512 байт. Оскільки розмір FAT - таблиці обмежений, то для дисків, розмір яких перевищує 32 Мбайт, забезпечити адресацію до кожного окремого сектору не представляється можливим. У зв'язку з цим групи секторів умовно об'єднуються в кластери. Кластер є найменшою одиницею адресації до даних. Розмір кластера, на відміну від розміру сектора, не фіксований і залежить від ємності диска.

Спочатку для дискет і невеликих жорстких дисків (менше 16 Мбайт) використовувалася 12-розрядної версії FAT (так звана FAT12). Потім в MS-DOS була введена 16-розрядної версії FAT для більших дисків. Операційні системи MS DOS, Win 95, Win NT реалізують 16 - розрядні поля в таблицях розміщення файлів. Файлова система FAT32 була введена в Windows 95 OSR2 і підтримується в Windows 98 і Windows 2000. FAT32 являє собою вдосконалену версію FAT, призначену для використання на томах, обсяг яких перевищує 2 Гбайт. FAT32 забезпечує підтримку дисків розміром до 2 Тбайт і більш ефективне витрачання дискового простору. FAT32 використовує більш дрібні кластери, що дозволяє підвищити ефективність використання дискового простору. У Windows XP застосовується FAT32 і NTFS. Більш перспективним напрямком в розвитку файлових систем став перехід до NTFS (New Technology File System - файлова система нової технології) з довгими іменами файлів і надійною системою безпеки. Обсяг розділу NTFS не обмежений. В NTFS мінімізується обсяг дискового простору, що втрачається внаслідок записи невеликих файлів у великі кластери. Крім того, NTFS дозволяє економити місце на диску, стискаючи сам диск, окремі папки та файли.

За способами іменування файлів розрізняють "короткий" і "довгий" ім'я. Відповідно до угоди, прийнятому в MS-DOS, способом іменування файлів на комп'ютерах IBM PC була угода 8.3., Тобто ім'я файлу складається з двох частин: власне імені та розширення імені. На ім'я файлу відводиться 8 символів, а на його розширення - 3 символи. Ім'я від розширення відокремлюється крапкою. Як ім'я, так і розширення можуть включати тільки алфавітно-цифрові символи латинського алфавіту. Імена файлів, записані відповідно до угоди 8.3, вважаються "короткими". З появою операційної системи Windows 95 було введено поняття "довгого" імені. Таке ім'я може містити до 256 символів. Цього цілком достатньо для створення змістовних імен файлів. "Довге" ім'я може містити будь-які символи, крім дев'яти спеціальних: \\ /: *? "< > |. В імені дозволяється використовувати прогалини і кілька точок. Файл закінчується розширенням, що складається з трьох символів. Розширення використовується для класифікації файлів за типом. Унікальність імені файлу забезпечується тим, що повним ім'ям файлу вважається власне ім'я файлу разом з шляхом доступу до нього. Шлях доступу до файлу починається з імені пристрою і включає всі імена каталогів (папок), через які проходить. Як роздільник використовується символ "\\" (зворотний слеш - зворотна коса риска) .Наприклад: D: \\ Documents and Settings \\ ТВА \\ Мої документи \\ lessons-tva \\ robots.txt Незважаючи на те, що дані про місцезнаходження файлів зберігаються в табличній структурі, користувачеві вони представляються у вигляді ієрархічної структури - людям так зручніше, а всі необхідні перетворення бере на себе операційна система. До функції обслуговування файлової структури належать такі операції, що відбуваються під управлінням операційної системи:

 створення файлів і присвоєння їм імен;

 створення каталогів (папок) і присвоєння їм імен;

 перейменування файлів і каталогів (папок);

 копіювання та переміщення файлів між дисками комп'ютера і між каталогами (папками) одного диска;

 видалення файлів і каталогів (папок);

 навігація по файловій структурі з метою доступу до заданого файлу, каталогу (папки);

 управління атрибутами файлів.

THE BELL

Є ті, хто прочитали цю новину раніше вас.
Підпишіться, щоб отримувати статті свіжими.
Email
ім'я
Прізвище
Як ви хочете читати The Bell
без спаму