Головна Інформатика
Інформаційні технології
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ІНСТРУМЕНТАЛЬНА БАЗА ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙЗнаряддя виробництва у вигляді інструментів і технологічного оснащення є необхідною складовою будь-якої технології. Не є винятком і інформаційні технології, що функціонують на основі інструментальної бази, що включає програмні, технічні та методичні засоби. Головним фактором успішного розвитку і впровадження технології на промисловому рівні є уніфікація і стандартизація всіх компонентів, в тому числі і інструментальної бази. Проведений аналіз всіх складових інструментальної бази показує існуючі тенденції їх розвитку, дозволяє орієнтуватися на сформованому ринку обчислювальних і мережних видів продукції. Для входження в єдиний інформаційний простір необхідно орієнтуватися па світові стандарти, яким приділено значну увагу при розгляді методичних засобів. Програмні засоби інформаційних технологійПрограмні засоби інформаційних технологій можна розділити на дві великі групи: базові і прикладні. Базові програмні засоби відносяться до інструментальної стратегії інформаційних технологій і включають в себе:
Прикладні програмні засоби призначені для вирішення комплексу задач або окремих завдань в різних предметних областях. Детально вони розглянуті в гл. 6. ОС призначені для управління ресурсами ЕОМ і процесами, що використовують ці ресурси. В даний час існують дві основні лінії розвитку ОС: Windows і Unix. Генеалогічні лінії даних ОС розвивалися наступним чином:
У свою чергу кожен елемент лінії має свій розвиток, наприклад, Windows розвивався в такій послідовності: Windows 95, 98, Me, NT, 2000. Відповідно, Linux розвивався таким чином: версії 0.01, 0.96, 0.99, 1.0, 1.2, 2.0, 2.1 , 2.1.10. Кожна версія може відрізнятися додаванням нових функціональних можливостей (мережеві засоби, орієнтація на різні процесори, багатопроцесорні конфігурації і ін.). Більшість алгоритмічних мов програмування (Сі, Паскаль) створені на рубежі 60-х і 70-х років (за винятком Java). За минулий період часу періодично з'являлися нові мови програмування, проте на практиці вони не отримали широкого та тривалого поширення. Іншим напрямком в еволюції сучасних мов програмування були спроби створення універсальних мов (Алгол, PL / 1, Ада), які об'єднували в собі переваги раніше розроблених. Поява ПК і ОС з графічним інтерфейсом (Mac OS, Windows) призвело до зміщення уваги розробників програмного забезпечення в сферу візуального або об'єктно-орієнтованого програмування, мережевих протоколів, баз даних. Це призвело до того, що в даний час в якості інструментального середовища використовується конкретна середовище програмування (Delphi, Access і ін.) І знання базової мови програмування нс потрібно. Тому можна вважати, що коло використовуваних мов програмування стабілізувався. Аналіз синтаксису і семантики мов програмування показує, що їх родинні конструкції розрізняються головним чином "зовнішнім виглядом" (набором ключових слів або порядком проходження компонентів). Вміст практично ідентично, за винятком невеликих відмінностей, які не мають істотного значення. Таким чином, конструкції сучасних мов мають загальний вміст (семантику), різний порядок проходження компонент (синтаксис) і різні ключові слова (лексику). Отже, різні мови надають користувачеві однакові можливості при різному зовнішньому вигляді програм. Стандартизацію мов програмування в даний час здійснюють комітети ISO / ANSI, проте їх діяльність спрямована в основному на невиправдане синтаксичне розширення мов. Для виключення існуючих недоліків запропоновані способи завдання семантичного і синтаксичного стандартів мов програмування. Семантичний опис будь-якої конструкції мови (оператора, типу даних, процедури і т.д.) повинно містити не менше трьох обов'язкових частин:
Для синтаксичного опису зазвичай використовується формальний опис конструкції, наприклад, у вигляді БНФ. Синтаксичне опис присутній в будь-якій мові, починаючи з Алгола. Серед великого числа мов саму помітну роль у розвитку програмування зіграли три пари: Алгол-60 і Фортран, Паскаль і Сі, Java і С ++. Ці мови не випадково об'єднані в пари, так як протистояння закладених в них ідей сприяло прогресивному розвитку. У табл. 8.1 наведені основні відомості про найбільш поширених мовах, а в табл. 8.2 - про мови спеціального призначення (експериментальних і промислових) [39]. Види (парадигми) мов по областях застосування: Таблиця 8.1
* Підтримка системного програмування. Таблиця 8.2
* Див. тайл. 8.1. А - процедурне програмування; В - об'єктно-орієнтоване програмування; З - структурне програмування; D - модульне (компонентне програмування); Е - логічне (реляционное) програмування; F - функціональне програмування; G - паралельне програмування; Н - гібрид (суміш парадигм B + C + D + G); I - спеціалізований мову. Скорочення, що зустрічаються в табл. 8.1 і 8.2: MIT - Massachsetts Institute of Technology; PARC - Palo Alto Research Center; ETH - Swiss Federal Institute of Technology; SRC - Systems Research Center; ISE - Interactive Software Engeneering; ISO - International Standard Organisation; CIT - California Institute of Technology. Важливо розрізняти мову програмування і його реалізацію. Сама мова - це система запису, набір правил, що визначають синтаксис та семантику програми. Реалізація мови - це програма, яка перетворює запис високого рівня в послідовність машинних команд. Існують два способи реалізації мови: компіляція (рис. 8.1) і інтерпретація (рис. 8.2). При компіляції спеціальна робоча програма (компілятор) здійснює переклад робочої програми в еквівалентну на машинному коді і в подальшому її виконання спільно з даними. У методі інтерпретації спеціальна програма (інтерпретатор) встановлює відповідність між мовою і машинними кодами, застосовуючи команди до даних. В принципі будь-яку мову програмування може бути як інтерпретується, так і компільовані, але в більшості випадків є свій кращий спосіб реалізації. На жаль, в даний час не існує універсального компілятора, який міг би працювати з будь-яким існуючим мовою. Це пояснюється відсутністю єдиної семантичної бази. Хоча сучасні мови програмування схожі один на одного, ідентичність їх далеко не повна. На рис. 8.3 представлені області перетину і об'єднання мов програмування. Таким чином, існує загальна семантична зона, в яку входять конструкції, що належать всім мовам програмування (або більшості з них), і область об'єднання, що містить конструкції специфічні для даної мови. Тому створення універсального компілятора можливо двома шляхами: Мал. 8.1. Схема компіляції Мал. 8.2. Схема інтерпретації
Багато років йде суперечка про те, що таке програмування - наука, мистецтво чи виробничий процес. Треба визнати, що право на існування мають всі три визначення. Однак у зв'язку з появою інформаційних технологій на перший план виходить промисловий характер програмування, який відповідає традиційним стадіях життєвого циклу програмного продукту:
Поряд з цим напрямком розвивається так зване дослідне програмування. Наприклад, запропоноване Е. Раймондом самоорганизующееся, анархічний програмування, яка отримала назву "базар". Відмінними рисами його є відсутність чіткого плану, мінімальне управління проектом, велика кількість сторонніх територіально віддалених розробників, вільний обмін ідеями і кодами. Середовища програмування реалізують окремі завдання і операції інформаційних технологій. До їх числа відносяться: Мал. 8.3. Області перетину і об'єднання мов програмування
|
<< | ЗМІСТ | >> |
---|