Інструментальне за прикладами. Інструментальні системи програмування. Сутність VisualBasic та її коротка історія

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

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

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

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

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

Але у всіх мов програмування є одна загальна властивість. Вони зрозумілі програмістам, але незрозумілі процесору, оскільки процесор може працювати лише з двійковими числами і тому розуміє програми, записані тільки в машинному коді. Тому програми, записані будь-якою мовою програмування, спочатку «переводять» на мову процесора, тобто. перетворюють на машинний код. Цей переклад виконують спеціальні програми-перекладачі. Англійською «переклад» називається трансляцією (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 та інших.), але вони спрямовані лише цю СУБД.

Реферат

ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ - сукупність програм системи обробки інформації та програмних документів, необхідні експлуатації цих програм (ГОСТ 19781-90). Також - сукупність програм, процедур та правил, а також документації, що належать до функціонування системи обробки даних (СТ ІСО 2382/1-84).

ІНСТРУМЕНТАЛЬНЕ ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ – програмне забезпечення, призначене для використання під час проектування, розробки та супроводу програм. Зазвичай цей термін застосовується для акцентування відмінності даного класу програмного забезпечення від прикладного та системного програмного забезпечення.

КОМПІЛЯТОР – транслятор, який виконує перетворення програми, складеної вихідною мовою, на об'єктний модуль.

ІНТЕРПРЕТАТОР – програма (іноді апаратний засіб), яка аналізує команди або оператори програми і тут же виконує їх.

ОПЕРАЦІЙНА СИСТЕМА - комплекс керуючих та обробних програм, які, з одного боку, виступають як інтерфейс між пристроями обчислювальної системи та прикладними програмами, а з іншого - призначені для управління пристроями, управління обчислювальними процесами, ефективного розподілу обчислювальних ресурсів між обчислювальними процесами та організації надійних обчислень .

ПРИКЛАДНА ПРОГРАМА - програма, призначена для виконання певних завдань користувача і розрахована на безпосередню взаємодію з користувачем.

VISUALBASIC - засіб розробки програмного забезпечення, що розробляється корпорацією Microsoft і включає мову програмування та середовище розробки.

VISUALBASICFORAPPLICATION - трохи спрощена реалізація мови програмування Visual Basic, вбудована в лінійку продуктів Microsoft Office(включаючи версії для Mac OS), а також багато інших програмних пакетів, таких як AutoCAD, SolidWorks, CorelDRAW, WordPerfect і ESRI ArcGIS.

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

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

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

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

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

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

6) Лінковщики

8) Асемблери

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

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

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

Для створення програми обраною мовою програмування потрібно мати такі компоненти:

2. Компілятор чи інтерпретатор. Вихідний текст за допомогою програми-компілятора перетворюється на проміжний об'єктний код.

Результат роботи: Розглянуто програмне забезпечення, його функції та види, зокрема інструментальне програмне забезпечення, його сутність, завдання. У третій главі розглянуто Microsoft Visual Basic як засіб розробки програмного забезпечення та його діалект - Microsoft Visual Basic forApplication. У курсової роботиреалізовано алгоритм розв'язання фінансово-економічного завдання з використанням мови програмування Pascal.

Вступ

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

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

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

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

Для наочності ми розглянемо інструментальне програмне забезпечення (об'єкт дослідження) з прикладу програмного комплексу VisualBasicforApplication (предмет дослідження), застосовуваного для програмування серед MicrosoftOffice – найпоширенішого і найпопулярнішого офісного пакета.

1. Програмне забезпечення

1.1 Поняття та сутність програмного забезпечення

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

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

До програмного забезпечення (ПЗ) відноситься також вся галузь діяльності з проектування та розробки ПЗ:

1) технологія проектування програм (наприклад, низхідне проектування, структурне та об'єктно-орієнтоване проектування);

2) методи тестування програм;

3) методи доказу правильності програм;

4) аналіз якості роботи програм;

5) документування програм;

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

Існує безліч різних визначень ПЗ. Взагалі, програмне забезпечення - сукупність програм системи обробки інформації та програмних документів, необхідні експлуатації цих програм (ГОСТ 19781-90). Також - сукупність програм, процедур та правил, а також документації, що належать до функціонування системи обробки даних (СТ ІСО 2382/1-84).

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

У комп'ютерному сленгу часто використовується слово софт від англійського software, яке в цьому сенсі вперше застосував у статті в American Mathematical Monthly математик з Прінстонського університету Джон Тьюкі (англ. John W. Tukey) в 1958 році.

Інші визначення:

1) ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ - це сукупність програм, що дозволяють здійснити на комп'ютері автоматизовану обробку інформації.

2) ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ (математичне забезпечення електронної обчислювальної машини), сукупність програм системи обробки даних та програмних документів, необхідних для реалізації програм на електронній обчислювальній машині.

3) ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ - сукупність програм управління процесом роботи комп'ютера, автоматизації програмування.

4) ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ - комплекс комп'ютерних програм, що забезпечує обробку чи передачу даних.

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

1.2 Функції програмного забезпечення

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

1. Апаратно-механічні. Здійснюють пару різних компонентів комп'ютера, забезпечують передачу апаратного сигналу від одного компонента до іншого.

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

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

4. Інтерфейсні. Забезпечують обробку та інтерпретацію програмного коду у формат відображення доступний для сприйняття користувачем. Створює сприятливе середовище для взаємодії "Комп'ютер-Людина, Людина-Комп'ютер".

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

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

1.3 Види програмного забезпечення

Залежно від функцій, що забезпечується певним компонентом комп'ютера, виникає необхідність створення для нього свого спеціалізованого програмного забезпечення, що є основним мотивом створення програмного забезпечення різних видів, наведених на (рис.1):

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

b) системні програми, призначені для управління роботою обчислювальної системи, виконують різні допоміжні функції, наприклад:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Програма, написана алгоритмічною мовою, має бути перетворена на об'єктний модуль, записаний машинною мовою (у двійкових кодах). Подібне перетворення виконується трансляторами (ассемблером – з мови Assembler та компіляторами – з мов високого рівня). Для деяких алгоритмічних мов використовуються інтерпретатори, які не створюють об'єктний модуль, а при кожному черговому виконанні програми, що перекладають кожен її рядок або оператор на машинну мову. Об'єктний модуль обробляється завантажувачем - редактором зв'язків, що перетворюють його на машинну програму, що виконується.

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

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

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

Пакет прикладних програм - це сукупність програм на вирішення кола завдань з певної тематики чи предмету. Розрізняють такі типи пакетів прикладних програм:

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

2) методо-орієнтовані – реалізація різноманітних економіко-математичних методів вирішення завдань (математичного програмування, мережевого планування та управління, теорії масового обслуговування, математичної статистики тощо);

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

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

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

2. Інструментальне програмне забезпечення

2.1 Сутність та поняття інструментального програмного забезпечення

Інструментальне програмне забезпечення (ІПО) - програмне забезпечення, призначене для використання в ході проектування, розробки та супроводження програм.

Застосовується інструментальне забезпечення у фазі розробки. Інструментальне програмне забезпечення - це сукупність програм, використовуваних на допомогу програмістам у роботі, на допомогу керівникам розробки програмного забезпечення у тому прагненні проконтролювати процес розробки та одержувану продукцію. Найбільш відомими представниками цієї частини програмного забезпечення є програми трансляторів із мов програмування, які допомагають програмістам писати машинні команди. Інструментальними програмами є транслятори з мов Фортран, Кобол, Джо-віал, Бейсік, АПЛ та Паскаль. Вони полегшують створення нових робочих програм. Однак транслятори з мов це лише найвідоміша частина інструментальних програм; існує ж їх безліч.

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

У загальному випадку для створення програми обраною мовою програмування (мові системного програмування) потрібно мати такі компоненти:

1. Текстовий редактор для створення файлу із вихідним текстом програми.

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

3. Редактор зв'язків або збирач, який виконує зв'язування об'єктних модулів і формує на виході працездатну програму - код, що можна здійснити.

Здійснюваний код - це закінчена програма, яку можна запустити на будь-якому комп'ютері, де встановлена ​​операційна система, для якої ця програма створювалася. Як правило, підсумковий файл має розширення.ЕХЕ або.СОМ.

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

Найбільш популярні редактори (системи програмування програм із використанням візуальних засобів) візуального проектування:

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

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

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

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

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

2.2 Завдання та функції інструментального програмного забезпечення

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

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

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

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

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

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

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

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

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

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

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

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

6) Лінковщики

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

8) Асемблери

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

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

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

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

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

14) Кошти автоматизованого тестування

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

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

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

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

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

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

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

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

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

Текстові редактори призначені для створення та редагування текстових документів. Найбільш поширеними є 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.

SDK (від англ. SoftwareDevelopmentKit) або «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-printloop, 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) та/або кінцевих користувачів системи, по особливим чином коментованим вихідним кодом і, в деяких випадках, по виконуваним модулям (отриманим на виході компілятора).

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

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

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

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

Документуючі коментарі, як правило, оформлюються як багаторядкові коментарі у стилі мови Сі. У кожному випадку коментар повинен бути перед документованим елементом. Першим символом у коментарі (і спочатку рядків коментаря) має бути *. Блоки поділяються порожніми рядками.

3. Visual Basic for Applications

програмне забезпечення операційний системний

3.1 Сутність VisualBasic та її коротка історія

Microsoft Visual Basic (VB) - засіб розробки програмного забезпечення, що розробляється корпорацією Microsoft і включає мову програмування та середовище розробки. Мова Visual Basic успадкувала дух, стиль і синтаксис свого предка - мови Бейсік, у якого є чимало діалектів. У той же час Visual Basic поєднує процедури та елементи об'єктно-орієнтованих і компонентно-орієнтованих мов програмування. Середовище розробки VB включає інструменти для візуального конструювання інтерфейсу користувача. (Див. табл.).

Visual Basic (основні характеристики)

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

У процесі еволюції Visual Basic пройшов ряд послідовних етапів, що дозволили йому стати однією з найпопулярніших мов програмування на сьогоднішній день. Отже, еволюція VisualBasic йшла наступним шляхом:

1. травень1991 - випущений Visual Basic 1.0 для Microsoft Windows. За основу мови було взято синтаксис QBasic, а нововведенням, що приніс потім мови величезну популярність, з'явився принцип зв'язку мови та графічного інтерфейсу.

2. вересень 1992 - випущено Visual Basic 1.0 під DOS. Він не був повністю сумісний із Windows-версією VB, оскільки був наступною версією QuickBASIC та працював у текстовому режимі екрану.

3. Листопад 1992 - випущено Visual Basic 2.0. Середовище розробки стало простіше у використанні та працювало швидше.

4. влітку 1993 - побачив світ Visual Basic 3.0 у версіях Standard і Professional. До того ж, до складу поставки додався двигун для роботи з базами даних Access.

5. Серпень 1995 — Visual Basic 4.0 — версія, яка могла створювати як 32-х, так і 16-розрядні Windows-програми.

6. Лютий 1997 - Visual Basic 5.0 - починаючи з цієї версії, стало можливо, поряд зі звичайними програмами, розробляти COM-компоненти.

7. У 1998 - вийшла Visual Basic 6.0. Після цього Microsoft різко змінила політику щодо мов сімейства Basic. Замість розвитку Visual Basic була створена абсолютно нова мова Visual Basic .NET.

8. 2005 року вийшла нова версія Visual Basic, в комплекті Visual Studio. Потішила вона новим інтерфейсом та можливостями. Мова базується на Visual Basic.NET.

9. Наприкінці 2007 року Microsoft випустила нову версію Visual Basic - Visual Basic 2008, який також був заснований на Visual Basic.NET.

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

1. Класичний Visual Basic (версії 5-6) Ця мова дуже прив'язана до свого середовища розробки та до операційної системи Windows, будучи виключно інструментом написання програм Windows.

2. VisualBasicforApplications (VBA) Це засіб програмування, що практично нічим не відрізняється від класичного Visual Basic, який призначений для написання макросів та інших прикладних програм для конкретних додатків. Найбільшу популярність отримав завдяки своєму використанню в пакеті Microsoft Office. Широке поширення Visual Basic for Applications у поєднанні з спочатку недостатньою увагою до питань безпеки призвело до поширення макровірусів.

3. VisualBasicScriptingEdition (VBScript) Скриптова мова, яка є дещо усіченою версією звичайного Visual Basic. Використовується в основному для автоматизації адміністрування систем Windows, а також для створення сторінок ASP та сценаріїв для Internet Explorer.

3.2 VisualBasicforApplication інтерфейс, основні функції та можливості

Створюючи VisualBasicforApplication, корпорація Microsoft ставила своїм основним завданням створення інструментального забезпечення, доступного для користувачів, які не є професійними програмістами, але в той же час є достатньо кваліфікованими для розробки та проектування прикладних програм і програм на базі MicrosoftOffice. Саме вирішуючи вказану задачу, розробники створили VBA, наділивши його низкою унікальних особливостей. Однією з таких, найбільш цінних для користувача є можливість створювати та використовувати в програмах нестандартні (настроювані) діалогові вікна, додаючи об'єкт UserForm в проект, а також зручний інтерфейс користувача.

Інтерфейс програми VisualBasicforApplicationскладається з комплексу різних віконта вкладок, що використовуються при проектуванні створюваної програми, основними з яких є:

1) вікно Проекту (рис.2), що відображає структуру проекту, що створюється.

2) вікно Програмного коду (рис. 3), що відображає програмний код створюваного проекту і дає можливість писати програму класичним способомза допомогою вбудованого редактора кодових слів, яких у VBA понад 16 тисяч. Також це вікно дозволяє редагувати код і перевіряти його на наявність помилок.

3) закладка Властивостей (рис. 4), що відображає встановлені до вказаного об'єкта параметри і дозволяє змінити зазначені настройки.

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

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

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

Нестандартне діалогове вікно створюється у VBA за допомогою додавання об'єкта UserForm у проект. Цей об'єкт є порожнім діалоговим вікном; воно має рядок заголовка і кнопку закриття, але в ньому відсутні будь-які інші елементи керування. Нестандартне діалогове вікно створюється шляхом додавання елементів керування в об'єкт UserForm і зазвичай називається просто формою (Мал. 5).

Кожен об'єкт UserForm має властивості, методи та події, що успадковуються від класу об'єктів UserForm.

Кожен об'єкт UserForm також містить модуль класу, який користувач додає власні методи і властивості або вписує процедури обробки подій для даної форми.

Можливість створювати створити власний інтерфейс, незалежний від середовища програми-програми, наприклад Excel, за допомогою екранних форм є однією з найбільш цінних можливостей у VBA.

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

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

Для відображення нестандартного діалогового вікна використовується метод Show об'єкта UserForm. Якщо зараз форма не завантажена в пам'ять, метод Show завантажує форму та відображає її. Якщо форму вже завантажено, метод Show просто відображає її.

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

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

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

VBA дозволяє програмувати табличні функції. Щоб створити окремий робочий лист для програмного модуля, передбачена закладка Insert Module із меню Visual, команда Module із меню Insert Macro. Після цього з'явиться новий робочий аркуш "Modele1". У програмному модулі слід описати функцію мовою VBA. У вікні програмного модуля можна працювати як у вікні невеликого текстового редактора.

Вбудовування функцій здійснюється командою Object Browser із меню View. Функції, визначені користувачем, розглядаються у програмі як самостійні об'єкти. VBA має значний набір вбудованих функцій, поділяючи їх на типи.

Visual Basic дозволяє резервувати змінні, із зазначенням розміру та без нього, працювати з різними типами даних, використовувати константи, працювати з математичними операторами та функціями, використовувати додаткові оператори. Передбачено використання операторів циклів For Next, Do, об'єктів типу таймер (невидимий секундомір у програмі). Точність встановлення часу у програмі становить 1 мілісекунду, або 1/1000 сек. Запущений таймер працює - тобто. виконується відповідна процедура обробки переривання через заданий інтервал часу - доки користувач не зупинить таймер або не відключить програму.

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

Якщо узагальнити всі функції програми, Visual Basic forApplication дозволяє:

1) працювати із засобами управління

Переваги :

1. Висока швидкість створення програм з графічним інтерфейсом для MS Windows.

2. Простий синтаксис, що дозволяє дуже швидко освоїти мову.

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

4. Захист від помилок, пов'язаних із застосуванням покажчиків та доступом до пам'яті. Цей аспект робить Visual Basic програми більш стабільними, але також є об'єктом критики.

5. Можливість використання більшості WinAPI функцій для розширення функціональних можливостей програми. Це питання найбільш повно досліджено Деном Епплманом, який написав книгу "Visual Basic Programmer's Guide to the Win32 API".

Критика :

1. Часто критикують такі аспекти Visual Basic, як можливість відключити засоби стеження за оголошеними змінними, можливість неявного перетворення змінних, наявність типу даних «Variant». На думку критиків, це дає можливість писати вкрай поганий код. З іншого боку, це можна як плюс, оскільки VB не нав'язує «хороший стиль», а дає більше свободи програмісту.

2. Відсутність покажчиків, низькорівневий доступ до пам'яті, ASM-вставок. Незважаючи на те, що парадигма Visual Basic дозволяє середньому VB-програмісту обходитися без цього, перелічені речі також нерідко стають об'єктами критики. І хоча, використовуючи недокументовані можливості та певні хитрощі, все це можна реалізувати і на VB (наприклад, за допомогою функцій для отримання покажчиків VarPtr(), StrPtr() та ObjPtr()); користуватися цими трюками набагато складніше, ніж, наприклад, на C++.

Однак варто відзначити, що всі недоліки мови випливають з її основної переваги – простоти розробки графічного інтерфейсу. Тому багато програмістів використовують Visual Basic для розробки інтерфейсу користувача, а функціональність програми реалізують у вигляді бібліотек (DLL), що динамічно підключаються, написаних іншою мовою (найчастіше C++).

4. Практична частина

4.1 Постановка задачі

Скласти блок-схему та написати програму мовою Pascal. Розрахувати внутрішню вартість цінних паперів. Внутрішня вартість активу визначається майбутнім потоком доходів від цього активу

pv – поточна внутрішня вартість акції

c – очікуване надходження від активу, що розглядається

r – норма доходності, очікувана інвестором для доходу з відповідним рівнем ризику

n - фактор часу (у місяцях).

Виконати аналіз ринку та впорядкувати результат щодо зростання отриманих даних.

4.2 Текст програми мовою Pascal

pv: array of real;

writeLn ('Введіть очікуване надходження від ',i,'-го активу c:');

writeLn ('Введіть норму доходності, очікувану інвестором r:');

pv:=c/exp(ln(1+r)*i);

writeLn ('поточна внутрішня вартість активу дорівнює', pv[i]: 1:3);

writeLn ('Внутрішня вартість активу дорівнює', s);

for j:=1 to 4 do

if pv[j] > pv then

writeLn ('Вартість активів, відсортована за зростанням');

for i:=1 to 5 do

writeLn (pv[i]: 1:3);

4.3 Контрольний приклад

4.4 Результат виконання програми на контрольному прикладі

Висновок

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

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

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

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

Саме з цією метою Microsoft було розроблено програмний комплекс VisualBasicforApplication, що дозволяє полегшити процес програмування і дав можливість займатися прикладним програмуванням користувачам, а не програмістам. Ця можливістьбула реалізована насамперед шляхом створення розділу програми – «Редактор сценаріїв» та можливості записувати та виконувати «Макроси», як окремий різновид графічно програмованих модулів. Реалізовано можливість створення програм з графічним інтерфейсом для MS Windows. Також перевагою даного виду інструментального програмного забезпечення є простий синтаксис, що дозволяє дуже швидко освоїти мову, та застосовувати її для програмування у всіх стандартних програмах MicrosoftOffice.

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

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\

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

Компілятори

Транслятори

Асемблери

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

Компонувальники

Відладчики

Засоби автоматизованого тестування програм

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

Комплект засобів розробки (SDK)

Системи керування версіями

Системи програмування та інтегровані середовища розробки програм

Системи автоматизації програмування (CASE)

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

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

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

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

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

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

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

Комплект засобів розробки (SDK, Software Development Kit) або «devkit» – набір програм та бібліотек підпрограм, що дозволяє фахівцям з програмного забезпечення створювати програми для певного пакету програм, програмного забезпечення базових засобів розробки, апаратної платформи, комп'ютерної системи, відеоігрових консолей, операційних систем та інших платформ. Програміст зазвичай отримує SDK безпосередньо від розробника цільової технології або системи. Часто SDK розповсюджується через Інтернет. Багато SDK розповсюджуються безкоштовно для того, щоб заохотити розробників використовувати цю технологію або платформу.

Система керування версіями (Version Control System, VCSабо Revision Control System) - програмне забезпечення для полегшення роботи з інформацією, що змінюється. Система керування версіями дозволяє зберігати кілька версій одного і того ж документа, при необхідності, повертатися до більш ранніх версій, визначати, хто і коли зробив ту чи іншу зміну та багато іншого. Такі системи найбільш широко застосовуються при розробці програмного забезпечення для зберігання вихідних кодів програми, що розробляється. Однак, вони можуть з успіхом застосовуватися і в інших областях, в яких ведеться робота з великою кількістю електронних документів, що безперервно змінюються.

Інтегроване середовище розробки (ІСР) (Integrated development environment, IDE) - Система програмних засобів, що використовується для розробки програмного забезпечення. Зазвичай середовище розробки включає текстовий редактор, компілятор та/або інтерпретатор, засоби автоматизації складання та відладчик. Іноді також містить засоби для інтеграції із системами керування версіями та різноманітні інструменти для спрощення конструювання графічного інтерфейсу користувача. Багато сучасних середовищ розробки також включають браузер класів, інспектор об'єктіві діаграму ієрархії класів- для використання під час об'єктно-орієнтованої розробки ПЗ. Хоча й існують середовища розробки, призначені для кількох мов - такі як Eclipse, NetBeans, Embarcadero RAD Studio або Microsoft Visual Studio, зазвичай середовище розробки призначається однієї певної мови програмування - як, наприклад, Visual Basic, Delphi, Dev-C++. Частковий випадок ІСР - середовища візуальної розробки, які включають можливість візуального редагування інтерфейсу програми. Іноді ІСР називають "Система програмування" хоча в більшості випадків ІСР охоплює розширений спектр функцій і можливостей.

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

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

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

Проблемно-орієнтовані програми

Системи автоматизованого проектування(САПР)

ПЗ для автоматизованих систем управління

Програми загального призначення

Офісні системи

Інтелектуальні системи

Програмні системимультимедіа

Настільні видавничі системи

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

Програми бухгалтерського обліку;

Програми фінансової складової діяльності;

програми управління персоналом;

Програми керування підприємством;

Банківські інформаційні та автоматизовані системи;

Автоматизовані робочі місця для підприємства;

Системи автоматизованого проектування (CAD System - Computer Aided Design System ) призначені для підтримки роботи конструкторів, технологів, електриків та електронників, архітекторів та інших фахівців, пов'язаних із розробкою креслень, схем, моделей, графічним моделюванням, конструюванням. Системи такого класу дуже вимогливі до апаратного забезпечення ЕОМ, швидкодії, пам'яті. Істотно наявність бібліотек вбудованих функцій, об'єктів, інтерфейсів із графічними системами та базами даних.

У САПР прийнято виділяти сім видів забезпечення:

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

Математичне(МО), що поєднує математичні методи, моделі та алгоритми для виконання проектування;

Програмне(ПЗ), що представляється комп'ютерними програмами САПР;

Інформаційне(ІВ), що складається з баз даних (БД), систем управління базами даних (СУБД), а також інших даних, що використовуються під час проектування. Вся сукупність використовуваних під час проектування даних називається інформаційним фондом САПР, а БД разом із СУБД зветься банку даних (БнД);

Лінгвістичне(ЛО), що виражається мовами спілкування між проектувальниками та ЕОМ, мовами програмування та мовами обміну даними між технічними засобами САПР;

Методичний(МетО), що включає різні методики проектування, іноді до МетО відносять також математичне забезпечення;

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

За сферою застосування можна виділити такі групи САПР:

САПР для застосування у галузях загального машинобудування. Їх часто називають машинобудівними САПР чи MCAD (Mechanical CAD) системами;

САПР для радіоелектроніки Їхні назви - ECAD (Electronic CAD) або EDA (Electronic Design Automation) системи.

САПР у галузі архітектури та будівництва.

Крім того, відомо велике число більш спеціалізованих САПР, або які виділяються у зазначених групах, або що представляють самостійну гілка класифікації. Прикладами таких систем є САПР великих інтегральних схем (ВІС); САПР літальних апаратів; САПР електричних машин та ін.

за цільового призначення розрізняють САПР чи підсистеми САПР, що забезпечують різні аспекти проектування. Так, у складі MCAD з'являються CAE/CAD/CAM системи:

САПР функціонального проектування, інакше САПР-Ф чи CAE (Computer Aided Engineering) системи.

Конструкторські САПР загального машинобудування – САПР-К, часто звані просто CAD системами;

Технологічні САПР загального машинобудування – САПР-Т, інакше звані автоматизованими системами технологічної підготовки виробництва АСТПП чи системами CAМ (Computer Aided Manufacturing).

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

Найбільш відомі такі класи АСУ:

Автоматизована система управління технологічним процесом (АСУ ТП) – вирішує завдання оперативного управління та контролю технічними об'єктами в промисловості, енергетиці, на транспорті;

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

Автоматизована система управління виробництвом (АСУ П) – вирішує завдання організації виробництва, включаючи основні виробничі процеси, вхідну та вихідну логістику. Здійснює короткострокове планування випуску з урахуванням виробничих потужностей, аналіз якості продукції, моделювання виробничого процесу. Для вирішення цих завдань застосовуються MIS та MES-системи, а також LIMS-системи.

Автоматизована система управління підприємством (АСУП) - на вирішення цих завдань застосовуються MRP,MRP II і ERP-системы. Наприклад, якщо підприємством є вищий навчальний заклад, має місце АСУ ВНЗ.

В якості прикладунайбільш відомих АСУ можна виділити:

Автоматизована система управління дорожнім рухом або АСУД - призначена для керування транспортних засобів та пішохідних потоків на дорожній мережі міста чи автомагістралі;

Автоматизована система керування вуличним освітленням («АСУ УО») – призначена для організації автоматизації централізованого керування вуличним освітленням;

"Автоматизована система управління" для готелів;

Автоматизована система контролю проїзду (АСКП) у громадському транспорті м. Москви та ін.

Останнім часом повсюдно використовуються та впроваджуються автоматизовані системи обробки інформації та управління (АСОІУ) – це широкий клас автоматизованих систем управління, пов'язаних з автоматизацією в галузі обробки, зберігання та передачі інформації. АСОІУ на відміну АСУ можуть застосовуватися практично повсюдно, як інформаційних системсистем управління, систем автоматизації практично будь-якої сфери діяльності людини Сучасні АСОІУ базуються на використанні обчислювальних мереж, орієнтовані на обробку графічної, відео- та звукової інформації, використовують технології мультимедіа, елементи систем штучного інтелекту. Без такого програмного забезпечення нині важко уявити сучасне підприємство, незалежно від обсягу й напрями діяльності. Цим пояснюється стрімке зростання використання АСОІУ у всіх галузях економіки.

До групи програм загального призначення можна віднести:

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

Сервери БД

Генератори звітів

Текстові процесори

Табличні процесори

Засоби презентаційної графіки

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

Методоорієнтовані програми

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

візуалізація схем баз даних;

Автоматична підтримка цілісності БД за різних видів обробки (включення, видалення, модифікація);

Наявність про майстрів, які забезпечують підтримку процесу проектування;

Шаблони та прототипи структур БД, звітів форм тощо.

Сервери БД- це ПЗ, призначене для створення та використання при роботі в мережі інтегрованих БД в архітектурі клієнт-сервер.

Розраховані на багато користувачів СУБД в мережевому варіанті обробки інформації зберігають дані на файл-сервері, спеціально виділеному комп'ютері, але сама обробки ведеться на робочих станціях.

Спільним для різних видів БД є використання реляційної мови SQL (Structured Query Language) реалізації запитів до даних.

Генератори звітів(Сервери звітів) забезпечують реалізацію запитів та формування звітів у друкованому або екранному вигляді в умовах мережі з архітектурою клієнт-сервер. Сервер звітів підключається до сервера БД за допомогою драйверів сервісу БД (Crystal Reports, Profit for windows).

Текстові процесорипризначені до роботи з текстовими документами. Розвитком даного напрямує видавничими системами Microsoft Word).

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

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

Інтегровані пакети– це набір кількох програмних продуктів, що функціонально доповнюють один одного, що підтримують єдині інформаційні технології, реалізовані на єдиній операційній обчислювальній платформі (Microsoft Office).

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

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

Офісні ППП забезпечують організаційне керування діяльністю офісу.

У розряд офісних ППП входять:

Організатори (планувальники) – програмне забезпечення для планування робочого часу, складання протоколів зустрічей, розкладів, ведення записів та телефонної книжки (калькулятор, записна книжка, годинник, календар тощо)

Програми-перекладачі, засоби перевірки орфографії, розпізнавання тексту (Tiger – система розпізнавання російської мови, Stylus Lingvo Office, що містить Fine Reader, Stylus for Windows – перекладач на вказану мову, коректор орфографії Lingvo Corrector та резидентний словник Lingvo)

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

Браузери, засоби створення WWW-сторінок

Засоби електронної пошти (Pegasys Mail)

Настільні видавничі системи– це широкий клас ПЗ, що реалізує основні компоненти видавничої діяльності.

Цей клас ПЗ включає програми, що забезпечують:

Форматування та редагування текстів

Автоматичне розбиття тексту на сторінки

Комп'ютерну верстку друкованої сторінки

Монтування графіки

Підготовка ілюстрацій

Підготовку оригінал-макету

До настільних видавничих систем належать:

PhotoShop for Windows

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

Системи штучного інтелекту:

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

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

Системи аналізу та розпізнавання мови, тексту тощо.

Під інтелектуальними системами (ІВ) можна розуміти автоматичні та автоматизовані системи з елементами штучного інтелекту (ІІ).

Основними напрямками ІІ є:

Подання знань та розробка систем, заснованих на знаннях

Творчість та ігри (шахи, шашки, го)

Розробка природно-мовних інтерфейсів та машинний переклад текстів

Розпізнавання образів (кожному об'єкту ставиться у відповідність матриця ознак, через яку проходить його розпізнання)

Нові архітектури компонентів (нейрокомп'ютери)

Інтелектуальні роботи

Спеціальне ПЗ (мови Лісп, Пролог)

Навчання та самонавчання (включають моделі, методи та алгоритми, орієнтовані на автоматичне накопичення знань на основі аналізу та узагальнення даних)

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

Моделі представлення знань:

Продукційні моделі

Семантичні моделі

Фреймові моделі

Формальні логічні моделі

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

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

До інструментальних програм, наприклад, належать:

    редактори;

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

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

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

      1. Система програмування

Система програмування - це система розробки нових програм конкретної мові програмування.

Сучасні системи програмування зазвичай надають користувачам потужні та зручні засоби розробки програм. У них входять:

    компілятор чи інтерпретатор;

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

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

    великі бібліотеки стандартних програмта функцій;

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

    "дружнє" до користувача діалогове середовище;

    багатовіконний режим роботи;

    потужні графічні бібліотеки; утиліти для роботи з бібліотеками

    вбудований асемблер;

    вбудована довідкова служба;

    Інші специфічні особливості.

Транслятор (англ. translator – перекладач) – це програма-перекладач. Вона перетворює програму, написану однією з мов високого рівня, на програму, що складається з машинних команд.

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

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

Інтерпретатор (англ. interpreter - тлумач, усний перекладач) перекладає та виконує програму рядок за рядком.

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

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

Популярні системи програмування Turbo Basic, Quick Basic, Turbo Pascal, Turbo C, Borland C++, Borland Delphi та ін.

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

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

      Тенденції розвитку програмного забезпечення

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

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

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) та/або кінцевих користувачів системи, по особливим чином коментованим вихідним кодом і, в деяких випадках, за модулями, що виконуються (отриманим на виході компілятора) .

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

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

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