ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.12.2020

Просмотров: 1067

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

177

Современный

 

Бэйсик

 

мало

 

чем

 

напоминает

 

своего

 

прародите

-

ля

Его

 

иногда

 

сравнивают

 

с

 

удавом

который

 

проглатывает

 

и

 

пере

-

варивает

 

все

 

новые

 

идеи

 

в

 

программировании

От

 

Алгола

 

и

 

Паска

-

ля

 

он

 

перенял

 

современный

 

гибкий

 

синтаксис

 

от

 Smalltalk  —  

объек

-

ты

Более

 

того

восприняв

 

визуальную

 CASE-

оболочку

Бэйсик

 

сам

стал

 

источником

 

идей

 

для

 

визуальных

 

систем

 

программирования

.

Вслед

 

за

 Visual Basic 

появились

 Delphi, Visual FoxPro, Visual C++ 

и

др

.

Долгое

 

время

 

технологические

 

системы

 

программирования

 

на

Бэйсике

 

развивались

 

только

 

как

 

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

и

 

это

 

ограничи

-

вало

 

его

 

применение

 

для

 

серьезных

 

разработок

однако

 

в

 

последнее

время

 

появились

 

оптимизирующие

 

компиляторы

предоставляющие

полноценную

 

среду

 

программирования

практически

 

не

 

уступаю

-

щую

 Delphi 

или

 Visual C.

Cobol - 

язык

для

 

бухгалтеров

и

 

языки

 

СУБД

Через

 

два

 

года

 

после

 

появления

 

Фортрана

,

когда

 

слегка

 

утихли

 

восторги

 

по

 

поводу

трансляции

 

формул

выяснилось

что

 

этот

язык

идеально

 

подходящий

 

для

 

физиков

,

мало

 

пригоден

 

для

 

экономически

коммерческих

бухгалтерских

 

рас

-

четов

Там

 

нет

 

длинных

 

формул

зато

 

есть

 

сложные

 

структуры

 

дан

-

ных

которые

 

язык

 

не

 

воспринимает

Попытки

 

как

-

то

 

модифициро

-

вать

 

Фортран

 

были

 

не

 

очень

 

удачными

к

 

тому

 

же

 

он

 

был

 

собствен

-

ностью

 IBM, 

а

 

другие

 

фирмы

 

опасались

 

засилия

 «

голоубого

 

гиган

-

та

».

В

 1959 

году

 

группа

 

производителей

 

и

 

потребителей

 

ЭВМ

 

по

инициативе

 

неугомонной

 

Грейс

 

Хоппер

 

стала

 

искать

 

независимого

спонсора

который

 

бы

 

мог

 

профинансировать

 

сосдание

 

нового

 

стан

-

дартного

 

языка

специально

 

рассчитанного

 

на

  

задачи

 

обработки

экономических

 

данных

Она

 

нашла

 

поддержку

 

в

 

Министерстве

 

обо

-

роны

 

США

где

 

к

 

тому

 

времени

 

уже

 

эксплуатировалось

 1046 

ЭВМ

,

требующих

 

обширного

 

программного

 

обеспечения

Была

 

образова

-

на

 

рабочая

 

группа

 CODASYL — Conference on Data Systems

Languages, 

которая

 

после

 

долгих

 

споров

  

и

 

проволочек

 

предложила

проект

 

языка

 Cobol — COmmon Business Oriented Language — 

Об

-

щий

 

язык

ориентированный

 

на

 

бизнес

.


background image

178

В

 

отличие

 

от

 

вычислительных

 

задач

в

 

которых

 

главное

 — 

алго

-

ритм

а

 

простейшие

 

неструктурированные

 

данные

 

просто

 

вводятся

и

 

выводятся

в

 

экономических

 

задачах

 

данные

 

имеют

 

приоритет

.

Они

 

могут

 

иметь

 

очень

 

сложную

 

структуру

 

и

 

хранятся

 

в

 

виде

 

фай

-

лов

 

на

 

внешних

 

устройствах

 

сами

 

по

 

себе

независимо

 

от

 

программ

обработки

Поэтому

 

в

 

Коболе

 

появился

 

способ

 

описания

 

иерархи

-

ческих

 

структур

 

данных

который

 

затем

 

перекочевал

 

во

 

все

 

после

-

дующие

 

универсальные

 

языки

 

программирования

Кроме

 

того

про

-

грамма

 

на

 

исходном

 

языке

 

может

 

быть

 

настроена

 

на

 

любое

 

оборудо

-

вание

 

и

 

на

 

любую

 

структуру

 

внешних

 

данных

для

 

чего

 

а

 

тексте

имеются

 

специальные

 

разделы

Сам

 

алгоритм

 

обработки

распола

-

гающийся

 

в

 

разделе

 

процедур

 (procedure division), 

бывает

как

 

пра

-

вило

очень

 

простым

Авторы

 

Кобола

 

посчитали

что

 

программы

 

на

нем

 

будут

 

писать

 

рядовые

 

бухгалтеры

для

 

которых

 

сокращения

 

и

формулы

 

могут

 

показаться

 

слишком

 

сложными

поэтому

 

сделали

язык

 

максимально

 

приближенным

 

к

 

обычному

 

английскому

даже

знаки

 

операций

 

заменили

 

на

 

слова

вместо

 «+» 

пишут

 

оператор

ADD, 

а

 

вместо

 

знака

 

присваивания

  «=»  

оператор

 GIVING (

полу

-

чая

). 

В

 

результате

 

язык

 

стал

 

хотя

 

и

 

понятным

 

англоязычному

 

пользо

-

вателю

но

 

слишком

 

многословным

.

Вот

 

как

 

выглядит

 

фрагмент

 

программы

 

на

 

Коболе

:

1010 

IDENTIFICATION DIVISION.

1020 PROGRAM-ID “EXAMPLE”.
1030 

ENVIROMENT DIVISION.

1040 INPUT-OUTPUT SECTION.
1050 FILE-CONTROL.
1060   SELECT CD ASSIGN TO “SYS010” UNIT-RECORD 2540R.
1070   SELECT TT ASSIGN TO “SYS009” UTILITY 2400.
1080 

DATA DIVISION.

1090 FILE SECTION.
1100 FD

CD

DATA RECORD IS C

1110

LABEL RECORDS ARE OMITTED.

1120 01

C.

1130   02   C1  PICTURE 9(4).
1140   02   C2  PICTURE 9.
1150   02   C3  PICTURE X(70).
...
1290 

PROCEDURE DIVISION.


background image

179

1300 P1.

OPEN INPUT CD, OUTPUT TT.

1310 P2.

READ CD, AT END GO TO P3.

1320

MOVE C1 TO D1.

1330

MONE C2 TO D2.

1340

MOVE C3 TO D3.

1350

ADD C1, C2, GIVING D4.

1360

WRITE T FROM D.

1370

GO TO P2.

1380 P3.

CLOSE SD, TT.

1390

STOP RUN.

На

 

этом

 

примере

 

хорошо

 

видны

 

отмеченные

 

выше

 

особенности

языка

привязка

 

к

 

оборудованию

 

в

 

строках

 1030 - 1070, 

описание

двухуровневой

 

структуры

 

внешних

 

записей

 

в

 

строках

 1100 - 1150,

многословный

 

раздел

 

процедур

.

Кобол

 

получил

 

очень

 

широкое

 

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

 

в

 

США

Наря

-

ду

 

с

 

Фортраном

 

он

 

стал

 

одним

 

из

 «

великих

» 

языков

просущество

-

вавшим

 

уже

 40 

лет

 

и

 

не

 

думающим

 

сдавать

 

позиции

По

 

некоторым

оценкам

на

 

нем

 

до

 

сих

 

пор

 

пишется

 

не

 

менее

 50% 

коммерческих

программ

.

В

 

Советский

 

Союз

 

Кобол

 

попал

 

в

 

начале

 70-

х

 

годов

в

 

эпоху

 

ЕС

ЭВМ

 

и

 

всеобщей

 

увлеченности

 

АСУ

однако

 

большой

 

популярнос

-

ти

 

он

 

не

 

приобрел

повествовательные

 

англоязычные

 

тексты

 

раз

-

дражали

 

отечественных

 

прогрммистов

Русифицированный

 

Кобол

,

разработанный

 

для

 

ЭВМ

 

Минск

-32, 

также

 

не

 

пользовался

 

успехом

,

так

 

как

 

тексты

 

из

-

за

 

меньшей

 

лаконичности

  

русского

 

языка

 

полу

-

чались

 

совсем

 

уж

 

громоздкими

.  

Программисты

 

предпочитали

 

ра

-

ботать

 

на

 

более

 

компактном

 

и

 

универсальном

 PL/1, 

о

 

котором

 

мы

будем

 

говорить

 

ниже

.

Концепция

 

СУБД

появившаяся

 

к

 

началу

 70-

х

 

годов

не

 

могла

не

 

повлиять

 

на

 

языки

предназначенные

 

для

 

экономических

 

задач

.

Например

группа

 CODASYL 

продолжившая

 

свою

 

работу

в

 1968

году

 

опубликовала

 

расширение

 

Кобола

 

для

 

работы

 

с

 

базами

 

дан

-

ных

Фирмы

производители

 

СУБД

 

также

 

предлагали

 

различные

 

язы

-

ки

 

манипулирования

 

данными

Эти

 

языки

 

плохо

 

стыковались

 

друг

с

 

другом

потому

 

что

 

сами

 

системы

 

основывались

 

на

 

разных

 

моде

-

лях

 

данных

Однако

когда

 

в

 

конце

 70-

х

 

годов

 

стал

 

преобладать

 

ре

-


background image

180

ляционный

 

подход

 (

что

 

это

 

такое

мы

 

скажем

 

позже

когда

 

речь

 

дой

-

дет

 

до

 

истории

 

СУБД

), 

появилась

 

возможность

 

создать

 

унифици

-

рованный

 

язык

 

реляционных

 

баз

 

данных

Таким

 

языком

 

стал

 SQL

(Structured Query Language — 

структурированный

 

язык

 

запросов

),

разработанный

 

в

 1974 

году

 

в

 

исследовательском

 

центре

 IBM  

в

 

Сан

-

Хосе

В

 

настоящее

 

время

 SQL 

является

 

общепризнанным

 

стандар

-

том

 

языка

 

баз

 

данных

он

 

реализован

 

во

 

всех

 

промышленных

 

СУБД

различных

 

производителей

.

Algol

и

 

его

 

влияние

на

 

языки

программировния

Язык

 Algol (ALGOritmic Language) 

родился

одновременно

 

с

 

Коболом

и

 

причина

 

его

 

появления

  

та

 

же

 — 

недовольство

 

ученых

Фортраном

 

и

 

диктатом

 IBM. 

Но

в

 

отличие

от

 

Фортрана

 

и

 

Кобола

родина

 

Алгола

  —

Европа

В

 1958 

году

 

в

 

Цюрихе

 (

Швецария

открылась

 

международ

-

ная

 

конференция

 

с

 8 

участниками

  (

в

 

том

 

числе

 

присутствовал

 

и

автор

 

Фортрана

 

Джон

 

Бэкус

), 

на

 

которой

 

был

 

предложен

 

проект

нового

 

универсального

 

международного

 

языка

 

программирования

Первая

 

версия

 

называлась

 Algol-58, 

в

 

течение

 

двух

 

последующих

лет

 

язык

 

дорабатывался

в

1960 

году

 

была

 

опубликован

окончательная

 

версия

 

под

названием

 Algol-60. 

Появле

-

ние

 

Алгола

 

произвело

 

рево

-

люцию

 

в

 

языках

 

прогрмми

-

рования

В

 

отличие

 

от

 

Фор

-

трана

 

и

 

Кобола

создавав

-

шихся

 

практиками

он

 

раз

-

рабатывался

 

учеными

 

и

 

ос

-

новывался

 

на

 

надежном

 

те

-

оретическом

 

фундаменте

.

Основные

 

особенности

 

язы

-

ка

 

сводятся

 

к

 

следующему

.

Впервые

 

язык

 

был

 

строго

 

формализован

Для

 

описания

 

синтаксиса

Джоном

 

Бэкусом

 

совместно

 

с

 

датским

 

астрономом

 

Питером

Науром

 

была

 

предложена

 

форма

 

задания

 

синтаксических

 

правил

Участники

 

конференции

 

по

 

Алголу

голосуют

 

за

 

принятие

 

языка

 (1960 

г

.)


background image

181

(

БНФ

 — 

Бэкуса

-

Наура

 

Форма

), 

ставшая

 

впоследствии

 

общеприз

-

нанным

 

стандартом

 

для

 

всех

 

языков

 

программирования

.

Был

 

наведен

 

порядок

 

с

 

типами

 

данных

 

и

 

блочной

 

структурой

программ

появились

 

обязательные

 

описания

 

данных

 

и

 

процедур

в

 

начале

 

блоков

разделители

 

операторов

 

в

 

виде

 

точки

 

с

 

запятой

.

В

 

целом

 

текст

 

программы

 

пробрел

 

современный

 

вид

.

В

 

язык

 

введена

 

возможность

 

рекурсии

что

 

придало

 

ему

теоретическую

 

изящность

.

В

 

качестве

 

примера

 

приведем

 

простейшую

 

программу

вычис

-

ляющую

 

среднее

 

арифметическое

 

массива

 

чисел

:

begin

integer 

i, n;

real 

s;

real array 

x[1:n];

s:=0;

for 

i:=1 

step 

to 

do

  s:=s+x[i];
s:=s/n

end

Похоже

 

на

 

современные

 

языки

 

программирования

правда

?

Америка

 

отнеслась

 

к

 

новому

 

языку

 

прохладно

там

 

царствовала

IBM 

со

 

своим

 

Фортраном

Зато

 

в

 

Европе

в

 

том

 

числе

 

СССР

,  

Алгол

был

 

встречен

 

с

 

восторгом

появилось

 

множество

 

компиляторов

,

обобщений

 

и

 

расширений

 

языка

В

 

Советском

 

Союзе

 

сразу

 

же

 

пос

-

ле

 

первых

 

публикаций

 

по

 

Алголу

-60 

начались

 

работы

 

по

 

созданию

компиляторов

 

для

 

наиболее

 

распространенной

 

и

 

самой

 

мощной

 

в

то

 

время

 

ЭВМ

 

М

-20. 

Поскольку

 

эти

 

работы

 

имели

 

очень

 

большое

значение

 

для

 

становления

 

отечественных

  

школ

 

системного

 

про

-

граммирования

о

 

них

 

следует

 

рассказхать

 

подробнее

.

К

 

началу

 60-

х

 

годов

 

в

 

стране

 

имелось

 

три

 

коллектива

 

програм

-

мистов

способных

 

решить

 

непростую

 

задачу

 

написания

 

компиля

-

тора

 

с

 

языка

 

высокого

 

уровня

.  

Первый

 

располагался

 

на

 

родине

 

ма

-

шины

 

М

-20 — 

в

 

ИТМ

 

и

 

ВТ

 

Академии

 

Наук

 

и

 

возглавлялся

 

Святос

-

лавом

 

Сергеевичем

 

Лавровым

Учитывая

 

ограниченные

 

возможно

-