За пятьдесят лет развития многие поколения программистов создали гигантский объем программного обеспечения (ПО) - rita.netnado.ru o_O
Главная
Поиск по ключевым словам:
Похожие работы
Название работы Кол-во страниц Размер
Руководство по использованию программного обеспечения Notebook 1 104.41kb.
Центр развития творчества детей и юношества научное общество учащихся 1 250.58kb.
1. Этапы развития вычислительной техники и программного обеспечения 8 1074.26kb.
Чикагские ученые создали миногу на колесах и с электронным глазом 1 195.09kb.
13. Текстовая информация и текстовый редактор. (5 кл) 13 Понятие... 1 145.54kb.
Директор школы Цихотских Р. Т 1 27.41kb.
Календарно-тематическое планирование учебного материала по курсу 1 55.28kb.
Задача укрепления здоровья детей является необходимым условием их... 1 90.08kb.
Решение. Пусть скорость автобуса в обычном режиме х км/ч t, ч 1 18.25kb.
«Моя будущая профессия – учитель» 1 39.5kb.
Программа разработана в соответствии законом РФ «Об образовании» 2 597.67kb.
Урока географии в 6 классе Тема: Географическая долгота. Географические... 1 26.53kb.
Публичный отчет о деятельности моу кассельская сош 2 737.71kb.
За пятьдесят лет развития многие поколения программистов создали гигантский объем - страница №1/4




Программное

обеспечение компьютеров

3.1. Классификация и эволюция про-

граммного обеспечения
За пятьдесят лет развития многие поколения программистов создали гигантский объем программного обеспечения (ПО). Хотя он создавался стихийно, под влиянием преходящих обстоятельств, в процессе его формирования существуют определенные законо-

мерности. Чтобы их выяснить, нам понадобится некоторая класси-

фикация программного обеспечения (см. схему).

Классификация программного обеспечения
Прежде всего, все программное обеспечение можно разделить на общее и специальное. Общее ПО рассчитано на самый широкий круг пользователей и используется почти на каждом компьютере. Специальное ПО разрабатывается для решения конкретной задачи, оно как правило уникально. В качестве примера укажем на разно- образные бухгалтерские и банковские системы, которые часто раз- рабатываются под заказ, хотя есть и исключения.

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






100%

100%



Специальное программное обеспечение

Компьютерные сети

Мультимедиа

Н а с т о л ь н ы е П П П

C A S E - т е х н о л о г и и




СУБД

Диалоговые ОС



П а к е т н ы е О С

Я з ы к и и с и с т е м ы п р о г р а м м и р о в а н и я


Автокоды и ассемблеры

Библиотеки прикладных программ

1950 1960 1970 1980 1990 2000

Эволюция общего программного обеспечения

базами данных (СУБД), электронные таблицы, некоторые другие

широко распространенные программы.

Граница раздела между упомянутыми классами весьма услов- на и в процессе эволюции постоянно передвигается в пользу об- щего ПО. На заре компьютерной эры (первая коммерческая ЭВМ UNIVAC появилась, как мы знаем, в 1951 году), когда машины были программно несовместимы и каждая задача была уникальна, 100% программного обеспечения было специальным. Этот факт наглядно представлен на схеме, где по оси абсцисс отложено время, а по оси ординат показана относительная доля каждого класса ПО. В даль- нейшем, по мере освоения типовых классов задач и унификации вычислительных систем, все большее число программ стало пере- ходить в разряд общего (системного или прикладного) ПО. К концу


XX века 90 - 95% всего ПО можно считать общим, а, следовательно,

и общедоступным.

Общее программное обеспечение — это ценнейший интеллек- туальный ресурс, накопленный человечеством за последние полве- ка. В его разработку вложены миллионы человеко-лет труда несколь- ких поколений программистов, потрачены многие миллиарды дол- ларов.

В нашем случае вся «геологическая» история общего ПО длилась всего 50 лет. Мы условно разделим ее на 5 эпох по 10 лет каждая. Каждая эпоха оставила свой слой в общем ПО, который на- глядно показан на рисунке и который мы кратко прокомментируем.


50-е годы: библиотеки стандартных программ

и ассемблеры
Первые вычислительные машины во- обще не имели никакого общего программного обеспечения. Программы для решения конкретных задач писались с нуля, в машинных двоичных ко дах (для сокращения записи использовалась восьмеричная или шестнадцатеричная система, но


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

На каждом этапе возникали ошибки, поэтому отладить программу даже в тысячу команд было уже очень трудно.

Первоочередной задачей программистов на данном этапе было создание библиотек, которые обеспечивали бы вызов стандартных программ из внешней памяти и автоматически подключали их к главной программе. Идея использования подпрограмм была реали- зована Грейс Хоппер еще до появления ЭВМ, на электромеханичес-

кой MARK-1, а в дальнейшем она стала общепринятой. Из-за про- граммной несовместимости у каждой ЭВМ были свои уникальные библиотеки. Например, для отечественной машины М-20 Михаил Романович Шура-Бура с коллегами разработали прекрасную по тем временам интерпретирующую систему ИС-2 с богатейшей коллекцией стандартных программ, охватывающей все области вычислительной математики. Создание библиотек резко повысило производительность труда программистов, так как появмлась возможность опереться на труд предшественников и не программировать каждую новую задачу с нуля.

Вторая проблема была связана с мнемоническим кодированием

и автоматическим распределением памяти. Впервые она была ре- шена в Кембридже в Великобритании на ЭВМ EDSAC (1949 г.). Вместо того, чтобы записывать коды операций двоичными цифра- ми программист писал текст программы на символическом языке, пользуясь мнемоническими обозначениями операций и условными адресами, а специальная программа (руководитель проекта Морис Уилкс назвал ее собирающей системой — по английски assembly system) автоматически преобразовывала мнемонические коды в по- нятные машине двоичные, и распределяла память для выполнения программы. Идея оказалась столь продуктивной, что все последую- щие поколения программистов на всех ЭВМ отказались от абсо- лютного кодирования. Языки программирования низкого уровня, в которых коды операций заменены мнемоническими обозначения- ми, стали называться языками ассемблера или автокодами (мнемо- кодами), а преобразующие программы — ассемблерами.

В 50-е годы ЭВМ были еще экзотической редкостью, они ис- пользовались в основном в элитных академических учреждениях и военных системах. Программисты также исчислялись единицами и работать им приходилось в очень стесненных условиях. Приходи- лось постоянно изворачиваться, экономить каждую ячейку памяти

и каждый машинный такт, потому что возможности тех компьюте- ров были более чем скромными. У машины Урал-1, например, ОЗУ имело всего 1024 слова при быстродействии 100 оп./с. Зато каждая отлаженная, тем более стандартная, программа была своего рода шедевром.






60-е годы:

языки и системы программирования, пакетные ОС

В 60-е годы объем производства ЭВМ резко возрос, появились разнообразные машины второго поколения, они выш- ли из узких стен научных и военных учреждений, начали использоваться в



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

Систематическая работа над созданием высокоуровневых язы-

ков программирования и соответствующих компиляторов началась

в конце 50-х годов и бурно развивалась все последующее десятиле-

тие. В 1957 году в был создан Fortran, в 1960 — Cobol, Algol и Lisp,

в 1964 — Basic, Simula, PL/1, в 1970 — Pascal и Smalltalk. Изобрете- ние новых языков превратилось в модное занятие, к концу 60-х го- дов их чило перевалило уже за тысячу. Практически все основные концепции — процедурное, логическое, объектно-ориентирован- ное программирование были предложены в это бурное десятиле- тие. В последующие годы прогресс в автоматизации программиро- вания шел не в сторону создания новых языков, а, наоборот, по пути естественного отбора. Языки программирования рождались и умирали, но только некоторые из них — наиболее стойкие и жизне- способные — дожили до конца XX века и стали стандартными в международном сообществе программистов. Судьбу этих избран- ных языков мы обстоятельно обсудим.


Другое достижение 60-х годов — создание пакетных операци- онных систем. ЭВМ в это время были очень дорогими и громоздки- ми, они размещались в специально построенных вычислительных центрах, куда программисты приносили свои задачи в виде колод перфокарт. Операторы сбивались с ног, пропуская эти колоды че-

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

Разработка надежных и эффективных операционных систем и систем автоматизации программирования оказалась чрезвычайно трудоемким делом. Никогда прежде в гражданской сфере не реали- зовывались такие крупные программные проекты. Разработка об- щесистемного ПО в 60-е годы была поставлена на промышленную основу, лидером здесь оказалась IBM, имевшая опыт масштабных военных разработок, сумевшая сконцентрировать громадный потен- циал научных исследований и вложившая в это дело сотни милли- онов долларов. Создав OS/360 и систему программирования PL/1, компания стала флагманом новой зарождающейся отрасли немате- риального производства — индустрии программного обеспечения.


70-е годы: диалоговые ОС и СУБД
70-е годы — время безраздельного господства уни фицированных машин из клона IBM 360/370. Компьютеры по - прежнему были бе зумно дороги, но их мощность и надежность резко воз-


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

— на их рабочих местах появились дисплеи, подключенные к цен-

тральной ЭВМ, расположенной в вычислительном центре фирмы.

Для организации вычислительного процесса в этих условиях понадобились операционные системы нового типа, позволяющие организовать диалог большого числа пользователей в режиме раз- деления времени. Родина таких систем — Массачусетский техно- логический институт (МТИ), где, начиная с середины 60-х годов, проводились экспериментальные работы, но крупные промышлен- ные диалоговые ОС разрабатывалисть фирмами — производителя- ми аппаратуры.

Создание крупных информационных систем поставило перед раз-

работчиками общего ПО проблему хранения больших массивов


данных и организации их обработки множеством независимых про- грамм. Так возникла концепция систем управления базами данных (СУБД). Разработка эффективных СУБД оказалась задачей не мен- не трудоемкой, чем проектирование ОС, первая промышленная СУБД IMS для IBM 360/370 была создана корпорацией IBM в 1969-

1970 годах в рамках проекта полета человека на Луну «Аполлон» и потребовала очень больших капиталовложений.

Использование СУБД произвело настоящую революцию в индус- трии обработки данных. Многие заказные кустарные программы, осуществляющие стандартные операции над данными, оказались ненужными, они были вытеснены надежными промышленными продуктами.Это — характерный пример того, как специальное ПО становится общим.

Мы посвятим истории и современному состоянию рынка СУБД отдельный параграф, сейчас же остановимся на одном важном свой- стве крупномасштабного общего ПО — его инерционности. Вопре- ки бытующему мнению о том, что все в компьютерном мире меня- ется очень быстро, это далеко не так. Фирмы, вложившие в базовое ПО миллиарды долларов, не могут ежегодно менять номенклатуру продукции. К этому добавляется то обстоятельство, что на фунда- менте общего ПО покоится колоссальная пирамида специального программного обеспечения, переделать которое под новые стандар- ты немыслимо. Инвестиции должны окупаться, и это обстоятельство объясняет удивительно долгую жизнь общего ПО — по 10-15 лет и более. Более того, для защиты инвестиций ведущие фирмы стараются делать свои основные программные продукты относительно независимыми от аппаратных платформ. Это позволяет программам, постоянно обновляясь и мо- дифицируясь, пережить не одно поколение компьютеров.


80-е годы: настольные ППП, CASE-технологии
В конце 70-х — начале 80-х годов про изошла, как мы знаем, микропроцессор ная революция и на рынок хлынули мил лионы персональных компьютеров. Из

дорогостоящего производственного оборудования компьютер пре- вратился в бытовой прибор, доступный всем и каждому. Компь- ютерный джинн был выпущен из бутылки и принялся осваивать все новые и новые области применения. Наступил золотой век софтверного бизнеса, мгновенно возникли тысячи фирм и фир- мочек, выбросивших на рынок необъятное море пакетов при- кладных программ для деловых применений и развлечений. Они

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

На невероятно расширившемся рынке программного обес- печения возникла ожесточенная конкуренция. Как это бывает с товарами ширпотреба, коммерческий успех того или иного про- дукта часто обуславливается не техническими параметрами, а широкой рекламой, продуманной маркетинговой политикой. Показательна в этом отношении судьба фирмы Microsoft ее ак- тивная, даже агрессивная маркетинговая стратегия привела к тому, что продукция Microsoft стала фактическим стандартом на рынке офисного ПО, а операционная система Windows сумела победить более прогрессивную по своим идеям систему OS/2 фирмы IBM.

Повальное увлечение домашними компьютерами и потреби- тельским софтом как-то отодвинуло в тень работы по совершен- ствованию серьезного общего программного обеспечения. По- видимому, самым большим успехом в этом направлении в 80-е годы можно считать разработу CASE-технологий, то есть техно- логий автоматизированного проектирования программного обес- печения (CASE — Computer Aided Software Design). Их необхо- димость возникла при создании информационных систем для крупных организаций, объединяющих сотни пользователей и оперирующих с тысячами объектов и экранных форм. Даже при- менение языков высокого уровня таких как Cobol, Pascal или C

и средств СУБД не избавляет программиста от рутинной работы по проектированию связанных информационных таблиц и орга-

низации диалога. Автоматизированные технологии позволяют отказаться от большинства механической работы. На специаль- ных языках сверхвысокого уровня, символьных или графичес- ких (они часто называются языками четвертого поколения 4GL

— 4th Generation Language), описывается содержательная поста новка задачи, а система сама, пользуясь встроенными в нее стан- дартными правилами проектирования, генерирует код на обыч- ном языке программирования. Программисту остается подпра- вить текст, если он его почему-то не устраивает, пропустить че- рез компилятор и получить готовую программу.




90-е годы: компьютерные сети и мультимедиа
Компьютерные сети начали разви ваться исподволь с начала 70-х го дов, но именно в 90-е годы скорость их распространения превысила не-

который критический порог. Произошло то, что специалисты предсказывали давно: вычислительная техника и техника связи, слившись воедино как две половинки атомного заряда, привели

к подлинному информационнму взрыву. Миллионы компьюте- ров, разбросанных по всему свету, оказались связанными все- мирной паутиной Интернета. Гигантские объемы научной, куль- турной и всякой другой информации сделались доступными лю- бому рядовому пользователю, оказались, по меткому выражению Билла Гейтса «на кончиках пальцев».

Появление «сети сетей» — Интернета — вызвало рождение целой отрасли нематериального производства — сетевого биз- неса. Тысячи фирм делают деньги «из воздуха», занимаясь пре- доставлением доступа в Интернет (Internet providing) и предос- тавляя различные услуги по организации электронной почты, публикации и поиску информации в сети, размещению рекла- мы, электронной торговле и т. д. Годовой оборот таких гигантов сетевой индустрии как America On Line (AOL), Yahoo, Amazon измеряется миллиардами долларов, и это только начало.

Развитие сетевых технологий потребовало разработки соот-

ветствующего слоя общего программного обеспечения. Историю

и современное состояние компьютерных сетей, а также их про- граммного обеспечения мы будем рассматривать далее, а сей- час несколько слов скажем еще об одном важном достижении, которое в 90-х годах перешло из разряда экспериментальных в общедоступные. Речь идет о мультимедиа-технологиях. Букваль- ный перевод слова multimedia — «многие среды». Имеются в виду типы объектов, с которыми имеет дело компьютер. В пре- жние времена вариантов было немного: стандартный компьютер вводил, обрабатывал и выводил только строки символов или не- подвижные картинки, на большее не хватало ни мощности про- цессора, ни объема памяти, ни возможностей устройств вввода- вывода. Однако в последние годы эти характеристики достигли такого состояния, что появилась возможность существенно рас- ширить класс обрабатываемых объектов.

Прежде всего компьютер перестал быть глухонемым, прими- тивные пищалки уступили место современным звуковым кар- там, которые представляют собой, по-существу, специализиро- ванные компьютеры с собственными микропроцессорами, пред- назначенными для обработки звуковых сигналов. Разработка таких устройств потребовала глубоких теоретических исследо- вания в области акустики и физиологии слухового восприятия,

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

Еще большие успехи были достигнуты в части обработки движущихся изображений. Проблема здесь в том, что простое воспроизведение каждого кадра «по точкам» порождает такой объем данных, с которым даже современные процессоры не мо- гут справиться в режиме реального времени. Лишь в середине

90-х годов совместными усилиями математиков, программистов

и инженеров — разработчиков видеокарт были созданы методы сжатия и представления изображений, позволившие уменьшить объем вычислений в тысячи раз и сделать видео доступным сред- нему персональному компьютеру. Тотчас же на прилавки мага-
зинов хлынул поток видеоигр, других развлекательных и обучаю- щих программ, которые в полной мере использовали новые воз- можности компьютера.

Новый импульс развитию мультимедиа дал Интернет. В ми- ровой паутине образовалось множество узлов с архивами музы- кальных произведений, видеороликов. Появились технологии по- токового аудио, когда радиостанции переводят свои передачи в цифровую форму и посылают через сеть всем желающим. Люби- тели экзотики могут воспользоваться услугами «живого видео»:

в самых живописных местах планеты установлены видеокамеры, которые непрерывно передают в Сеть пейзаж с видом на гору Фуд- зияма, панораму Елисейских полей в Париже или внутренний вид аквариума с плавающими рыбками. В результате многие люди стали покупать домашние компьютеры совсем не для вычисле- ний, а для доступа к различным мультимедийным информацион- ным ресурсам. Объективно происходит процесс слияния элект- ронных средств массовой информации — радио и телевидения

— с мировой компьютерной сетью в единую информационную супермагистраль. Думается, это произойдет совсем скоро — в первые десятилетия нового XXI века.


3.2. Языки и системы программирования
В этом параграфе мы более подробно познакомимся с историей создания и основными концепциями наиболее известных высоко- уровневых языков программирования.
Предыстория Первая попытка осмыслить эту проблему была предпринята гениальным Конрадом Цузе, когда

он, работая в одиночку в разрушенной послевоенной Германии, при- думал язык Plancalcul. Не рассчитывая увидеть свой язык реализо- ванным, Цузе писал: «Plancalcul родился исключительно как резуль- тат теоретической работы, без всякой связи с тем, появится или нет

в обозримом будущем машины, подходящие к программам на Plancalcul». Тем не менее Цузе написал множество фрагментов про- грамм на языке, причем не только вычислительных, но и чисто ло- гических, включая программу игры в шахматы. К сожалению, это достижение немецкого ученого, как и другие его работы, остались незамеченными и невостребованными. Только в 1972 году работа Цузе с описанием языка была издана целиком. Эта публикация зас- тавила специалистов задуматься над тем, какое влияние мог бы ока- зать Plancalcul на развитие язы-


ков програмирования, будь он широко известен раньше.

Исключительно важную роль в становлении теории программирования на ранней ее стадии сыграл патриарх отечественной кибернетики А.А.Ляпунов.Он предложил формальную запись програм- мы в виде операторной схемы и прочитал в 1952/53 учебном



году в стенах МГУ первый в

СССР курс программирова-

М.Р.Шура-Бура и А.П.Ершов

ния. На основе операторной схемы М.Р.Шура-Бура и ученик Ляпу- нова А.П. Ершов в 1954-56 годах создали первые компиляторы (они назывались тогда программирующими программами) для ЭВМ БЭСМ и «Стрела».

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

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


Бессмертный

Fortran

Прародителем вс ех языков программиро- ваания вляет ся



Fortran — FORmula TRANslator. Судя по самому названию, он первоначально предназначался для программировании чисто вычислительных задач. Язык был разработан в фирме IBM по руковод- ством Джона Бэкуса (Backus, John; р.

1924). Идея появилась в 1954 году, а пер- вая реализация компилятора для IBM 704 выполнена в 1957 году. Компилятор по- ставлялся бесплатно вместе с ЭВМ, это



обусловило его выcокую популярность Джон Бэкус


Fortran
Cobol
Fortran-IV
Basic
Fortran-77
Altair-Basic
IMS dBASE FoxPro
Cobol-85


Visual Basic
Visual

FoxPro

Fortran
Visual Basic
Visual FoxPro
Cobol

Algol-60


Algol-68

PL/1


Pascal


Smalltalk

SQL


Ada

Modula
Turbo Pascal Object Pascal

Delphi
SQL
Delphi
Pascal
Ada


Lisp

Simula Simula-67



B C C++


Prolog

Java
Visual C++

Smalltalk

Simula
Java
Visual C++
Lisp
Prolog

Logo

1960 1970 1980 1990 2000
Logo


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



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

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

Fortran-77 и т. д.

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

101 FORMAT(208)

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

1//6X, ’M’, 5X, PROB)

103 FORMAT(18, F14.10)

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

202 STOP

203 IF(IR) 202, 202, 204

204 M=O

P=COMBF(N,M)*COMBF(IR-1,N-M-1)



1/COMBF(N+IR-1,IR) ...
Бросаются в глаза фиксированный формат записи программы,

отсутствие описаний переменных. цифровые метки операторов, зато

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


Basic— язык

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


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

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

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

Кемени и Курц предложили ввести в программу всех специаль-

ностей курс программирования, но так как своего вычислительно-

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

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

1) разработать простой язык — подмножество Фортрана, дос-

тупное начинающим программистам;

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




Программа на Бэйсике сохранила общий фортрановский вид с его цифровыми метками и записью каждого оператора на новой строке, однако Фортран пришлось основательно подправить для того, чтобы программы могли выполняться пошагово в режиме ин- терпретации. В частности, был введен революционный оператор бесформатного ввода 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). Увлекшись компьютерами, дру- зья пожертвовали ради них карьерой (Гейтс был отчислен с юриди- ческого факультета Гарвардского университета, куда поступил учить-




Пол Аллен и Билл Гейтс за теле- тайпом в компьютерном классе школы в Сиэтле (1968 г.)

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

ста, а Аллен был исключен из Университета штата Ва- шингтон) и решили посвя- тить себя профессионально- му программированию . Прочитав в начале 1975 года с т атью о компьютере

«Altair», они тут же позво- нили Эдварду Робертсу в го- род Альбукерке и предложи- ли свои услуги по написа- нию транслятора с Бэйсика. Поскольку своего компью- тера у них не было, то отла-


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

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

а уж потом переехала в родной для Гейтса и Аллена город Сиэтл.

Предельная простота Бэйсика позволила встраивать его в по- стоянную память самых дешевых микрокомпьютеров, благодаря это- му в середине 80-х годов на нем работали миллионы пользователей по всему миру. Оставаясь неизменно популярным, Бэйсик рос и развивался вместе с персональными компьютерами. В 1984 году, к

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



Современный Бэйсик мало чем напоминает своего прародите- ля. Его иногда сравнивают с удавом, который проглатывает и пере- варивает все новые идеи в программировании. От Алгола и Паска- ля он перенял современный гибкий синтаксис от 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 — Об- щий язык, ориентированный на бизнес.




В отличие от вычислительных задач, в которых главное — алго-

ритм, а простейшие неструктурированные данные просто вводятся

и выводятся, в экономических задачах данные имеют приоритет. Они могут иметь очень сложную структуру и хранятся в виде фай- лов на внешних устройствах сами по себе, независимо от программ обработки. Поэтому в Коболе появился способ описания иерархи- ческих структур данных, который затем перекочевал во все после- дующие универсальные языки программирования. Кроме того, про- грамма на исходном языке может быть настроена на любое оборудо- вание и на любую структуру внешних данных, для чего а тексте имеются специальные разделы. Сам алгоритм обработки, распола- гающийся в разделе процедур (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.


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-х годов стал преобладать ре-




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




следующая страница >>