ІНСТРУМЕНТАЛЬНА БАЗА ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ

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

Програмні засоби інформаційних технологій

Програмні засоби інформаційних технологій можна розділити на дві великі групи: базові і прикладні.

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

  • • операційні системи (ОС);
  • • мови програмування;
  • • програмні середовища;
  • • системи управління базами даних (СКБД).

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

ОС призначені для управління ресурсами ЕОМ і процесами, що використовують ці ресурси. В даний час існують дві основні лінії розвитку ОС: Windows і Unix. Генеалогічні лінії даних ОС розвивалися наступним чином:

  • 1. СР / М → QDOS → 86-DOS → MS-DOS → Windows;
  • 2. Multics → UNIX → Minix → Linux.

У свою чергу кожен елемент лінії має свій розвиток, наприклад, 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

Мова програмування

рік

створення

вид

фірма

стандарт

Фортран (FORTRAN)

1 954

А

IBM

ISO 1539.1997

Лісп (LISP)

1 958

F

MIT

-

Алгол-60 (Algol 60)

1960

А

1FIP

-

Кобол (COBOL)

1960

А

COLASYL

Commitete

ISO 1989: 1 985

Симула (Sumula)

1962

В

-

- *

Бейсік (BASIC)

1963

А

Darmouth

College

ISO 10279: одна тисячі дев'ятсот дев'яносто один

ПЛ / 1 (PL / 1)

+1964

А

IBM

ISO 6160: 1 979

Алгол-68 (Algol 68)

1 968

А

IF1P

Паскаль (Pascal)

1970

З

ETH

ISO 7185: 1990

Форт (FORTH)

1970

А *

Mohasco

Industrie

ISO 15145: 19) 7

Сі (С)

тисячі дев'ятсот сімдесят два

З *

AT & T Bell Labs

ISO 9899: +1999

Smalltalk

тисячі дев'ятсот сімдесят два

В

Xerox PARC

Пролог (Prolog)

1 973

Е

Univ. of Aix-Marseille

ISO 13211: 1995

Ала (Ada)

1980

Н *

Cil Hon ewe11

ISO 8652: 1 995

Сі ++

+1984

Н *

AT & T Bell Labs

ISO 14882: 1 998

Java

1995

Н

Sun Labs

-

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

Таблиця 8.2

Мова програмування

рік

створення

вид

фірма

стандарт

АПЛ (APL)

1 957

I

Harvard Univ

ISO 8485: один тисячу дев'ятсот вісімдесят дев'ять

Снобол (Shobol)

1962

I

AT & T Bell Labs

-

Сетл (SETL)

1969

I

IBM

-

Паралельний Паскаль Concurrent Pascal

1 974

G

CIT

-

CLU

1 974

D

MIT

-

Schema

+1975

F

M1T

-

Mesa

1976

D *

Xerox PARC

-

Icon

1 977

I

AT & T Bell Labs

-

Молула-2 (Modula-2)

1979

D *

ETH

ISO 10514: 1996

Оккам (Occam)

тисяча дев'ятсот вісімдесят дві

G *

Inmos

-

Cedar

1983

H *

Xerox PARC

-

Common Lisp

+1984

F

MIT

-

Objective C

+1984

H *

Productivity

Products

-

Ейфель (Eiffel)

1986

D *

ISE

-

Оберон (Obcron)

тисяча дев'ятсот вісімдесят-вісім

D *

ETH

-

Модула-3 (ModuIa-3)

тисяча дев'ятсот вісімдесят-вісім

H *

DEC SRC

-

Оберон 2 (Obcron-2))

тисяча дев'ятсот дев'яносто-один

D *

ETH

-

Limbo

1996

D *

Bell Labs (Lucent)

-

Component Pascal

1 997

D *

Microsystems

-

C #

2000

H *

-

* Див. тайл. 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. Схема інтерпретації

  • 1. Використання загальних конструкцій (область перетину), виключення специфічних конструкцій мов (область об'єднання). Це призведе до "збіднення" всіх мов програмування.
  • 2. Використання всіх наявних конструкцій (область об'єднання + область перетину). Такий підхід призведе до значного розширення семантичної бази і використання додаткових ресурсів.

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

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

Поряд з цим напрямком розвивається так зване дослідне програмування. Наприклад, запропоноване Е. Раймондом самоорганизующееся, анархічний програмування, яка отримала назву "базар". Відмінними рисами його є відсутність чіткого плану, мінімальне управління проектом, велика кількість сторонніх територіально віддалених розробників, вільний обмін ідеями і кодами.

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

Області перетину і об'єднання мов програмування

Мал. 8.3. Області перетину і об'єднання мов програмування

  • 1. Текстові процесори: Microsoft Word, Лексикон, Lotus Word Perfect, Corel Word Pro, Sun Star Office Writer та ін .;
  • 2. Електронні таблиці: Microsoft Excel, Corel Quattro Pro, Lotus 1-2-3, Sun Star Office Calc і ін .;
  • 3. Особисті інформаційні системи: Microsoft Outlook, Lotus Organizer, Lotus Notes, Sun Star Office Schedule і ін .;
  • 4. Програми презентаційної графіки: Microsoft Power Point, Lotus Freelance Graphics, Corel Presentations, Sun Star Office Impress і ін .;
  • 5. Програми перегляду: Microsoft Internet Explorer, Netscape Navigator, Opera і ін .;
  • 6. Редактори WEB-сторінок: Microsoft Front Page, Netscape Composer, Macromedia Free Hand та ін .;
  • 7. Поштові клієнти: Microsoft Outlook, Microsoft Outlook Express, Netscape Messenger, The Bat та ін .;
  • 8. Редактори растрової графіки: Adobe Photoshop, Corel Photo-Paint та ін .;
  • 9. Редактори векторної графіки: Corel Draw, Adobe Illustrator та ін .;
  • 10. Настільні видавничі системи: Adobe Page Maker, Quark Xpress, Corel Ventura, Microsoft Publisher і ін .;
  • 11. Засоби розробки: Borland Delphi, Microsoft Visual Basic, Borland C ++ Builder, Microsoft Visual C ++ та ін.
 
< Попер   ЗМІСТ   Наст >