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

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

.pdf
Скачиваний:
41
Добавлен:
11.05.2015
Размер:
5.78 Mб
Скачать
162
60-е годы: языкиисистемы
программирования, пакетныеОС

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

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

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

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

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

в1964 — Basic, Simula, PL/1, в1970 — Pascal иSmalltalk. Изобрете-

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

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

163

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

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

70-е годы:

70-егоды— времябезраздельногогосподствауни

фицированных машин из клона IBM 360/370.

диалоговые

Компьютеры по-прежнему были безумно

ОС и СУБД

дороги, ноих мощность и надежность резко воз-

 

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

— на их рабочих местах появились дисплеи, подключенные к центральной ЭВМ, расположенной в вычислительном центре фирмы.

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

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

164

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

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

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

80-е годы: настольныеППП, CASE-технологии

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

165

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

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

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

печения (CASE — Computer Aided Software Design). Их необхо-

димость возникла при создании информационных систем для крупных организаций, объединяющих сотни пользователей и оперирующих с тысячами объектов и экранных форм. Даже применение языков высокого уровня таких как Cobol, Pascal или C и средств СУБД не избавляет программиста от рутинной работы по проектированию связанных информационных таблиц и орга-

166

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

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

90-е годы:

Компьютерные сети начали разви

ваться исподволь с начала 70-х го

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

дов, ноименнов90-егодыскорость

и мультимедиа

их распространения превысила не-

 

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

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

измеряется миллиардами долларов, и это только начало. Развитие сетевых технологий потребовало разработки соот-

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

167

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

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

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

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

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

Замечание о промышленных стандартах

168

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

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

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

Проблема стандартизации на компьютерном рынке является принципиальной, сейчас самое время сказать о ней несколь rо слов. Только в далеком прошлом про-

граммы были абсолютно автономны и загружались в чистую память. Любая современная программа функционирует в среде других прграмм, обменивается с ними данными и передачами управления. Поэтому для каждой технологии существует множество условий, соглашений, рекомендаций, обеспечивающих такое взаимодействие. Некоторые наиболее важные соглашения оформлены юридически как международные и национальные стандарты. К ним относятся, например, стандарты ISO — International Standard Organization, ITU — International Telecommunication Union, ANSI — American National Standard Institute (США), государствен-

ные стандарты России и СНГ (ГОСТ) и др. Такими стандартами

169

закреплены международные кодировки символов, описания наиболее употребительных языков программирования, форматы и процедуры обмена данными в сетях и т. д. Другие рекомендации не носят обязательного характера, но действуют как промышленные стандарты de facto, то есть признаются производителями добровольно под страхом потерять свое место на рынке, если их продукция не будет вписываться в общепринятые нормы. Естественно, каждая фирма хочет, чтобы ее технические решения стали общепризнанными, тем самым она выигрывает время и отрывается от конкурентов. Однако навязать свои мнения рынку не так-то просто, это удается только монополистам, да и то не всегда (вспомним, как фирма IBM пошла против течения, предложив нестандартные решения в компьютерах PS/2, и что из этого вышло). Поэтому на современном компьютерном рынке идет непрекращающаяся война промышленных стандартов: возникают коалиции одних фирм против других, недавние противники превращаются в союзников и наоборот; акулы рынка за баснословные деньги скупают мелкие фирмы, предложившие перспективные решения.

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

170

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

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

Предыстория

Первая попытка осмыслить эту проблему была

 

предпринята гениальным Конрадом Цузе, когда

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

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

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

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

171

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

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

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

Бессмертный

Прародителем всех

 

Fortran

языков программиро-

 

ваания

вляется

 

 

 

Fortran — FORmula TRANslator. Судяпо

 

самому названию, он первоначально

 

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

 

чисто вычислительных задач. Язык был

 

разработан в фирме IBM по руковод-

 

ством Джона Бэкуса (Backus, John; р.

 

1924). Идеяпоявиласьв1954 году, апер-

 

ваяреализациякомпиляторадляIBM 704

 

выполнена в 1957 году. Компилятор по-

 

ставлялся бесплатно вместе с ЭВМ, это

 

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

Джон Бэкус

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