Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Введение в специальность

.pdf
Скачиваний:
41
Добавлен:
11.05.2015
Размер:
5.78 Mб
Скачать

Fortran

Fortran-IV

 

Fortran-77

 

 

 

Basic

Altair-Basic

 

Visual Basic

 

 

IMS

 

dBASE

FoxPro

Visual

 

 

 

FoxPro

 

 

 

 

 

 

Cobol

 

 

 

Cobol-85

 

 

 

 

 

 

 

 

 

SQL

 

 

 

 

Algol-68

 

Modula

 

Delphi

Algol-60

 

 

 

 

 

 

 

 

 

 

 

 

Pascal

 

Turbo Pascal

Object Pascal

 

 

PL/1

 

 

Ada

 

 

 

 

Smalltalk

 

 

 

 

Simula Simula-67

 

 

 

 

 

 

B

C

 

C++

Java

 

 

 

Visual C++

 

 

 

 

 

 

Lisp

 

 

 

 

 

 

 

 

Prolog

 

 

 

 

 

Logo

 

 

 

 

1960

 

1970

 

1980

1990

2000

172

Fortran

Visual Basic

Visual FoxPro

Cobol

SQL

Delphi

Pascal

Ada

Smalltalk

Simula

Java

Visual C++

Lisp

Prolog

Logo

Генеалогическое дерево языков программирования высокого уровня

Basic— язык дляначинающих

173

в научных кругах, занятых математическими расчетами. Впоследствииязык постоянно совершенствовался идополнялся. Втечение двух последующих лет появились версии Fortran-II и III, в 1962 г.

— популярная версия Fortran-IV, в 1977 г. — не менее известная

Fortran-77 и т. д.

Вот фрагмент простейшей программы на Фортране, дающий представление о его синтаксисе:

C MAIN PROGRAM

101FORMAT(208)

102FORMAT(//’N=’,15, 5X, ’R=’, 15

1//6X, ’M’, 5X, PROB) 103 FORMAT(18, F14.10)

201READ(1,101) N, IR WRITE(3,102) N, IR IF(N) 202, 202, 203

202STOP

203IF(IR) 202, 202, 204

204M=O P=COMBF(N,M)*COMBF(IR-1,N-M-1) 1/COMBF(N+IR-1,IR) ...

Бросаются в глаза фиксированный формат записи программы, отсутствиеописанийпеременных. цифровыеметкиоператоров, зато ссамогоначала вязык заложенысредства форматного ввода/вывода, затем появились комплексные числа и т. п. Эти качества помогли впоследствии Фортрану выстоять в схватке с Алголом. Компи- ляторысФортранаимеютсянавсехаппаратно-программныхплат- формах, это— любимыйязыкфизиковиинженеров. Задолгиегоды наязыкенакопленыбогатейшиебиблиотекинаучныхподпрограмм, которыепростоневозможнобыстропереписатьнаболеесовременные языки. Поэтому, несмотря на критику по поводу своей старомодности, Fortran благополучно входит в XXI век и слухи о его близкой кончине, похоже, весьма преувеличены.

Название этого всем известного языка истолковывается двояко. С одной стороны, оно является сокращением целой фра-

зы «Beginners All-purpuse Symbolic Instruction Code» — символи-

174

ческиймногоцелевойкоддляначинающих, сдругой— намекаетна некоторуюпростотуиначальность. Basic — прямойпотомокФортрана и тоже долгожитель в семье языков программирования.

Первый вариант языка был создан в 1964 году в Дармутском колледже (г. Ганновер, штатНью-Хэмпшир, США). Этонебольшое гуманитарноеучебноезаведениепрославилосьнавесьмиркакродина Бэйсика благодаря двум молодым талантливым преподавателямматематики: ДжонуКемени(Kemeny, John), венгерскомуэмигранту, который в свое время стажировался у фон Неймана в ЛосАламосе во время 0работы над атомной бомбой, и Томасу Курцу (Kurtz, Thomas), работавшему после войны ассистентом у Эйнштейна.

КеменииКурцпредложиливвестивпрограммувсехспециальностей курс программирования, но так как своего вычислительногоцентравколледженебыло, тоимприходилосьвестипрактическиезанятиявоченьнеудобномрежиме. Учащиесяписалисвоипрограммы на Фортране, на бумажках, преподаватели отвозили их на вычислительный центр (ближайший ВЦ располагался в 215 км в БостоневМассачусетскомтехнологическоминституте(МТИ), там ждалидень-два, покапрограммыотперфорируютнакартыипрогонят через машину IBM 704, а затем везли распечатки результатов назад.

Поездив туда-сюда, Кемени и Курц с огромной энергией стали добиваться организации собственного ВЦ. Им удалось уговорить Национальный научный фонд предоставить субсидию, а фирму General Electric — большую скидку наЭВМGE-225. Получив компьютеры, они приступили к реализации давно задуманной двухходовойидеи:

1)разработать простой язык — подмножество Фортрана, доступноеначинающимпрограммистам;

2)создать систему программирования на этом языке, которая позволилабы работатьнамашинеодновременнонесколькимпользователям в режиме диалога. Эту идею Кемени и Курц принесли из МТИ, где в это время проводились первые эксперименты по системамразделениявремени.

175

Программа на Бэйсике сохранила общий фортрановский вид с его цифровыми метками и записью каждого оператора на новой строке, однако Фортран пришлось основательно подправить для того, чтобыпрограммымогливыполнятьсяпошагововрежимеинтерпретации. В частности, был введен революционный оператор бесформатного ввода INPUT. Вот как выглядит на Бэйсике та же программа ввода, сортировки и печати пяти чисел:

10 dim A(5)

20 for i=1 to 5

30 input A(i)

40 next i

50 if i=5 then goto 140

60 if A(i)<=A(i+1) then goto 90

70 i=i+1

80 goto 130

90 z=A(i)

100 A(i)=A(i+1)

110 A(i+1)=z

120 i=1

130 goto 50

140 for i=1 to 5

150 print A(i)

160 next i

Работанадинтерпретаторомиуправляюшейпрограммойразделения времени началась с участием студентов летом 1963 года, а 1 мая 1964 года система заработала. В качестве терминалов к ней были подключены три телетайпа. к осени их число возросло до 20.

Простой и удобный Бэйсик во второй половине 60-х годов был реализованнанесколькихмоделяхмэйнфреймовимини-ЭВМ, благодаряэтомуязыкумногиетысячимолодыхлюдейбылиприобщены к программированию. Среди них оказались и два школьника из городаСиэтлнасеверо-западеСША, будущиемиллиардерыиотцы-

основателифирмыMicrosoft БиллГейтс(Gates, William (Bill); р. 1955)

и Пол Аллен (Allen, Paul; р. 1954). Увлекшись компьютерами, друзьяпожертвовали радинихкарьерой(ГейтсбылотчисленсюридическогофакультетаГарвардскогоуниверситета, кудапоступилучить-

176

 

ся по настоянию отца-юри-

 

ста, а Аллен был исключен

 

из Университета штата Ва-

 

шингтон) и решили посвя-

 

титьсебяпрофессионально-

 

му программированию.

 

Прочитаввначале1975 года

 

статью о компьютере

 

«Altair», они тут же позво-

 

нилиЭдвардуРобертсувго-

Пол Аллен и Билл Гейтс за теле-

родАльбукеркеипредложи-

тайпом в компьютерном классе

ли свои услуги по написа-

школы в Сиэтле (1968 г.)

ниютрансляторасБэйсика.

 

Поскольку своего компью-

 

тераунихнебыло, тоотла-

живатьпрограммуимпришлосьврежимеэмуляциикоманд «Altair» на мэйнфрейме. К маю транслятор был готов и, к удивлению авторов, сразу же заработал на «родной» машине.

Знания юриспреденции все-таки пригодились Гейтсу. СоставленныйимконтрактнаиспользованиеБэйсикавкомпьютерахAltair вошел впоследствии во все учебники по компьютерному праву. Он предусматривалотчисление500 долларовзакаждыйэкземплярпроданнойпрограммы. ТакродиласьфирмаMicrosoft. Первоевремяее штаб-квартирарасполагаласьвАльбукерке, рядомсфирмойMITS, а уж потом переехала в родной для Гейтса и Аллена город Сиэтл.

Предельная простота Бэйсика позволила встраивать его в постояннуюпамятьсамыхдешевыхмикрокомпьютеров, благодаряэто- мувсередине80-хгодовнанемработалимиллионыпользователей по всему миру. Оставаясь неизменно популярным, Бэйсик рос и развивался вместе с персональными компьютерами. В 1984 году, к 20-летиюрождения, КурциКеменивсодружествесАмериканским институтомстандартов(ANSI) разработалиновуюстандартнуюверсиюязыка(True Basic), апотомзаегоразвитие совсейосновательностью взялась разбогатевшая Microsoft, для которой он стал фирменнымязыкомисимволом успеха.

Cobol - язык для бухгалтеров и языки СУБД

177

Современный Бэйсик мало чем напоминает своего прародителя. Его иногда сравнивают с удавом, который проглатывает и переваривает все новые идеи в программировании. От Алгола и ПаскаляонперенялсовременныйгибкийсинтаксисотSmalltalk — объекты. Болеетого, восприняввизуальнуюCASE-оболочку, Бэйсиксам стал источником идей для визуальных систем программирования.

Вслед за Visual Basic появились Delphi, Visual FoxPro, Visual C++ и

др.

Долгое время технологические системы программирования на Бэйсике развивались только как интерпретаторы, и это ограничивалоегоприменениедлясерьезныхразработок, однаковпоследнее времяпоявилисьоптимизирующиекомпиляторы, предоставляющие полноценную среду программирования, практически не уступаю-

щуюDelphi илиVisual C.

Через два года после появления Фортрана, когда слегка утихли восторги по поводу трансляции формул, выяснилось, что этот язык, идеально подходящий для физиков,

малопригодендляэкономически, коммерческих, бухгалтерскихрасчетов. Тамнетдлинныхформул, затоестьсложныеструктурыданных, которыеязыкневоспринимает. Попыткикак-томодифициро- ватьФортранбылинеочень удачными, ктомужеонбылсобственностьюIBM, адругие фирмы опасались засилия «голоубогогиганта».

В 1959 году группа производителей и потребителей ЭВМ по инициативе неугомоннойГрейсХопперсталаискатьнезависимого спонсора, которыйбымогпрофинансироватьсосданиеновогостандартного языка, специально рассчитанного на задачи обработки экономическихданных. ОнанашлаподдержкувМинистерствеобороныСША, гдектомувремени ужеэксплуатировалось1046 ЭВМ, требующихобширногопрограммногообеспечения. Былаобразова-

на рабочая группа CODASYL — Conference on Data Systems Languages, котораяпоследолгихспоров ипроволочекпредложила проект языка Cobol — COmmon Business Oriented Language — Об-

щий язык, ориентированный на бизнес.

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

01

LABEL RECORDS ARE OMITTED.

1120

C.

PICTURE 9(4).

1130

02

C1

1140

02

C2

PICTURE 9.

1150

02

C3

PICTURE X(70).

...

PROCEDURE DIVISION.

1290

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

P3.

GO TO P2.

1380

CLOSE SD, TT.

1390

 

STOP RUN.

Наэтомпримерехорошовидныотмеченныевышеособенности языка: привязка к оборудованию в строках 1030 - 1070, описание двухуровневой структуры внешних записей в строках 1100 - 1150, многословныйразделпроцедур.

Кобол получил очень широкое распространение в США. Наряду с Фортраном он стал одним из «великих» языков, просуществовавшимуже40 летинедумающимсдаватьпозиции. Понекоторым оценкам, на нем до сих пор пишется не менее 50% коммерческих программ.

ВСоветскийСоюзКоболпопалвначале70-хгодов, вэпохуЕС ЭВМ ивсеобщей увлеченностиАСУ, однако большой популярности он не приобрел, повествовательные англоязычные тексты раздражалиотечественныхпрогрммистов. РусифицированныйКобол, разработанныйдляЭВММинск-32, такженепользовалсяуспехом, так как тексты из-за меньшей лаконичности русского языка получались совсем уж громоздкими. Программисты предпочитали работать на более компактном и универсальном PL/1, о котором мы будемговоритьниже.

Концепция СУБД, появившаяся к началу 70-х годов, не могла не повлиять на языки, предназначенные для экономических задач. Например, группа CODASYL продолжившая свою работу, в 1968 году опубликовала расширение Кобола для работы с базами данных. ФирмыпроизводителиСУБДтакжепредлагалиразличныеязыки манипулирования данными. Эти языки плохо стыковались друг с другом, потому что сами системы основывались на разных моделях данных. Однако, когда в конце 70-х годов стал преобладать ре-

180

ляционныйподход(чтоэтотакое, мыскажемпозже, когдаречьдойдет до истории СУБД), появилась возможность создать унифицированный язык реляционных баз данных. Таким языком стал SQL (Structured Query Language — структурированный язык запросов), разработанныйв1974 годувисследовательскомцентреIBM вСанХосе. В настоящее время SQL является общепризнанным стандартомязыкабазданных, онреализованвовсехпромышленныхСУБД различныхпроизводителей.

Algol

ЯзыкAlgol (ALGOritmic Language) родился

одновременно с Коболом, и причина его

и его влияние

появления та же — недовольство ученых

наязыки

ФортраномидиктатомIBM. Но, вотличие

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

от Фортрана и Кобола, родина Алгола —

Европа. В1958 годувЦюрихе(Швецария) открыласьмеждународная конференция с 8 участниками (в том числе присутствовал и автор Фортрана Джон Бэкус), на которой был предложен проект нового универсального международного языка программирования Первая версия называлась Algol-58, в течение двух последующих лет язык дорабатывался, в 1960 годубылаопубликован окончательная версия под

названиемAlgol-60. ПоявлениеАлголапроизвелореволюциювязыкахпрогрммирования. ВотличиеотФортрана и Кобола, создававшихся практиками, он разрабатывалсяученымииос-

новывалсянанадежномте-

Участники конференции по Алголу

оретическом фундаменте.

голосуют за принятие языка (1960 г.)

Основныеособенностиязы-

 

касводятсякследующему.

 

• Впервыеязыкбылстрогоформализован. Дляописаниясинтаксиса Джоном Бэкусом совместно с датским астрономом Питером Науромбылапредложенаформазаданиясинтаксическихправил

181

(БНФ— Бэкуса-НаураФорма), ставшаявпоследствииобщепризнаннымстандартомдлявсехязыковпрограммирования.

Был наведен порядок с типами данных и блочной структурой программ, появилисьобязательныеописанияданныхипроцедур вначалеблоков, разделителиоператоровввидеточкисзапятой. В целом текст программы пробрел современный вид.

В язык введена возможность рекурсии, что придало ему теоретическуюизящность.

В качестве примера приведем простейшую программу, вычисляющуюсреднееарифметическоемассивачисел:

begin

integer i, n; real s;

real array x[1:n]; s:=0;

for i:=1 step 1 to n do s:=s+x[i];

s:=s/n

end

Похоженасовременныеязыкипрограммирования, правда?

Америкаотнесласькновомуязыкупрохладно, тамцарствовала IBM сосвоимФортраном. ЗатовЕвропе, втомчислеСССР, Алгол был встречен с восторгом, появилось множество компиляторов, обобщенийирасширенийязыка. ВСоветскомСоюзесразу жепосле первых публикаций поАлголу-60 начались работыпосозданию компиляторов для наиболее распространенной и самой мощной в то время ЭВМ М-20. Поскольку эти работы имели очень большое значение для становления отечественных школ системного программирования, онихследуетрассказхатьподробнее.

К началу 60-х годов в стране имелось три коллектива программистов, способных решить непростую задачу написания компиляторасязыкавысокогоуровня. Первыйрасполагался народинемашины М-20 — в ИТМ и ВТАкадемии Наук и возглавлялся СвятославомСергеевичемЛавровым. Учитываяограниченныевозможно-

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]