Главная
Гостевая
Скачать
 
Компьютерный юмор
Холодный рестарт
Компьютерная библия
Доступ
Терминальное чтиво
Письмо отца Серафимия
Про хакера
Житие великой программерши
по нику Ада, и о том,
как она хатчила сайты

Теремок
Нодные войны (Баллада об AG)
Краткое руководство по языкам программирования
Вий98
 
Статьи

Первыми программистами были женщины

Halflife - это религия

Клайв Синклер и ZX-Spectrum

Хелп для пользователей DAS_Station BBS

Хелп для пользователей Experience Grey BBS

Оптимизация системы, или Как поднять производительность без разгона

Баннеры и реклама:
 
 
 
das-station bbs on air!

 

ИСТОРИЯ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
ПЕРВЫМИ ПРОГРАММИСТАМИ БЫЛИ ЖЕНЩИНЫ
Нет в пониманье глубины Без осознания истоков
Олеся Ягужинская
Посвящается всем женщинам,
внесшим вклад в развитие
компьютерного рынка России

Принципы построения современного компьютера были разработаны в 1822 году Чарльзом Бэббиджем в его проекте "Аналитической машины", который был реализован Говардом Эйкеном более 70 лет спустя. Однако у вычислительной техники есть и вторая составляющая - программное обеспечение, и здесь основные иде были сформулированы в 40-х годах XIX века Адой Лавлейс. Эта женщина, в честь которой получил свое название язык ADA, и считается первым в мире программистом. На практике базовые принципы программирования реализовала другая женщина - Грэйс Хоппер.

Ада Лавлейс и Аналитическая Машина

Ада Августа Байрон (1815 - 1852), в замужестве графиня Лавлейс (Ada Augusta Lovelace), была единственной законной дочерью поэта Джорджа Байрона. Ребенок с детства увлекался математикой. Астрономия, точнее, астрометрия, расчет положеий небесных тел - одно из наиболее популярных приложений математики XIX века - послужла толчком для зарождения интереса к программированию, которому Ада затем со страстью передавалась всю свою жизнь.

Двадцатые годы XIX века - как раз тот период, когда Чарльз Бэббидж вел разработки Разностной Машины (Differnce Engine), которая строилась на деньги Королевского астрономического общества. Машина предназначалась главным образом для расчетов астронавигационных таблиц, а возможности ее ограничивались операциями сложения. Впрочем, Бэббидж, передав свои материалы инженерам и через некоторое время полностью рассорившись с их главой Джозефом Клементом, охладел к Разностной Машине. Его основной целью стало более свершенное устройство - Аналитическая Машина (Analytical Engine). В отличии от Разностной Машины, следующий агрегат умел работать с логическими переменными и осуществлять условные переходы.
По своей архитектуре эта машина была механическим прототипом современного компьютера. Она состояла из двух частей: "мельницы" (процессора в современной терминологии), где выполнялись операции, и "амбара" (он же оперативная память), в котором хранились исходные данные и промежуточные результаты. По задумке Бэббиджа, "амбар" должен был содержать 1000 регистров, каждый из которых представлял собой 50-разрядное число. Внутреннее предстваление чисел было десятичным. Числа можно было передавать на "мельницу", обрабатывать там и возвращать в тот или иной регистр "амбара".
Управлять Машиной предлагалось с помощью перфокарт. Подобного термина тогда еще не существовало, однако прототип современной карты был хорошо известен и применялся с 1801 года в ткацком станке Жаккарда. Бэббидж предлагал использовать перфокарты как для управляющих инструкций, так и для указания адресов чисел в памяти ("амбаре"). Константы должны были заноситься в память вручную. Дополнительный набор перфокарт мог быть использован для задания начальных условий. Устройство ввода предусматривало тасование колоды перфокарт вперед-назад на определенное число позиций. Подобная маханика была необходима при выполнении условных переходов в программе.
Но вернемся к Аде. Наслышанная о создаваемой Разностной Машине, она с группой студентов посетила лабораторию Чарльза Бэббиджа. С этого визита Ада "заболела" компьютерами. Сам изобретатель отметил незаурядную девушку, которая не только понимала, как работает машина, но и была в состоянии по достоинству оценить переспективы ее развития.
После того, как итальянский инженер Л.Менабри составил подробный инструктаж по конструкции Аналитической Машины, Ада перевела его на английский язык. Она же нашла некоторые ошибки в рассуждениях Бэббижджа, проработала комментарии к тексту. В частности, использовать двоичное представление чисел в памяти предложила именно Ада.
Ей же принадлежит изобретение циклов и подпрограмм - Ада сообразила, что при использовании условных переходов можно будет использовать одну и ту же подборку перфокарт для повторяющихся последовательностей команд.
Проработке Аналитической Машины Ада уделяла очень много времени, называя это устройство "своим первенцем" (всего у Ады было трое детей). С мужем ей в этом отношении очень повезло - он ценил и поощрял ее занятия математикой.
Ада приложила немало усилий, чтобы воплотить изобретение Бэббиджа в реальном аппарате. Нехватка денег преследовала его постоянно. Астрономическое общество в свое время предоставило ему грант в 1,5 тысячи фунтов на построение Разностной Машины, но в действительности требовалась сумма раз в 50 большая. Не помогли ни дополнительные правительственные субсидии, ни стотысячное наследство. Аналитическая Машина требовала еще больших расходов. Чтобы раздобыть денег на закупку необходимых материалов (стали и латуни,потребность в которых измерялась тоннами), а также изготовление деталей, они решили сыграть на скачках. Методика игры была их собственной и основывалась на законах вероятности. Первое время казалось, что новая система работает. Но дело кончилось плохо, и, чтобы заплатить долги, были проданы фамильные драгоценности семейства Лавлейс.
Однако Аналитическая Машина была в XIX веке технологически невыполнима, и Ада Лавлейс умерла, так и не попробовав запустить свои программы.

 

ДЕЯНИЯ ГРЭЙС ХОППЕР

Грэйс Хоппер (Grace Hopper) родилась в 1906 году - на 91 год позже Ады. Ее карьера, хотя и нетипична для женщины, на первых порах не представляла ничего особенного - Вессарский колледж, степень доктора математики в Йельском университете в 28 лет, профессорская должность в Вассаре. Таланты умной девочки, казалось бы, раскрыылись, жизнь шла своим чередом, и ничто не предвещало бурных изменений.
Как и в случае с компанией Helwett Packard, для полной реализации потенциала Грэйспоторебоввалассь экстраоринарная ситуация. Ее создала Вторая мировая война. Грэйс, ужже тридцатисемилетняя дама-профессор, вступила в женскую добровольную организацию содействия ВМС США. Для того, чтобы кобразом изменить свою жизнь, человек должен иметь авантюрстическую жилку, и Грэйс обладала ей в полной мере. Однажды она так выразила свой основной жизненный принцип: "Если у вас возникла интересная идея, валяйте, делайте. Извиниться потом легче, чем заранее получить разрешение".

Mark-1 - воплощение Аналитической Машины

Итак, младший лейтенант Грэйс Хоппер была направлена в Гарвардский университет, где к тому времени был установлен компьютер Mark-1.
В создании Mark-1 приняли участие силы - ВМС США, заказавшие универсальную счетную машину для расчетов баллистических таблиц: фирма IBM, президент которой Томас Уотсон в патриотическом порыве финансировал военную разработку и предоставил производственные мощности для создания необходимых деталей; и математик Говард Эйкен. А в основу Mark-1 было положено оставленное Бэббиджем описание его Аналитической Машины.
Полученное "чудовище" достигало 17 м в длину и 2,5 м в высоту. Провода, которыми соединялись его 750 тыс. деталей имели суммарную длину более 800 км. Программа вводилась с перфоленты, а данные с перфокарт (не зря же, в конце концов, перфораторы составляли львиную долю продукции IBM). Компьютер имел электромеханическое реле и работал по тем временам очень быстро - 0,3 с у него уходило на сложение и вычитание двух чисел и 3 с на умножение.
Учитывая интерес Грэйс к двум смежным областям - геометрии и механике,- она была идеальным кандидатом на работу с компьютерами типа Mark-1, когда любой программист (такого термина тогда еще не существовало, а должность Грэйс называлась словом "кодировщик") одновременно блестяще разбирался в механическом содержимиом громоздкой машины. "Интеллектуальным" обслуживанием машины, помимо профессора и младшего лейтенанта Грэйс Хоппер, занимались математики-мичманы Роберт Кэмпбел и Ричард Блок.
Существует легенда, что Грэйс принадлежит термин debugging (для программы - отладка; а буквально - изничтожение насекомых). История такова: однажды Mark-1 сломался из-за того, что в одном из реле покончил жизнь самоубийством крохотный мотылек (bug). Останки бедняги были аккуратно извлечены. Тогда-то якобы Грэйс впервые и употребила термин debugging, имея в виду ту самую работу, которой в данный момент была занята группа программистов, - очистку компьютера от насекомых. На самом деле слово bug в английском языке имело двойное значение (и насекомое, и техническая неисправность) задолго до Грэйс, так что мы имеем дело с очередным апокрифом компьютерного общества.
Но если Аде Лавлейс принадлежит право интеллектуальной собственности на циклы, то Грэйс и ее коллеги в 1944 году использовали эти принципы на практике. С точки зрения Грэйс, подпрограмами были сравнительно универсальные последовательности команд, которые моно было об'единять в более крупные блоки. Свои подпрограммы программисты хранили в блокнотах и при необходимости переписывали их друг у друга. При этом им приходилось каждый раз заново рассчитывать адреса переменных. Учитиывая, что текст записывался в кодах, а складывать программисты, как правило, не умеют, можно себе представить, как часто при переписыании возникали ошибки. Да и читать программы, даже снабжженные комментариями, оказывалось достаточно сложно.

От кодов к языку.

Первая попытка облегчить участь программистов была сделана в 1948 году. Алан Тьюринг и Макс Нейман в Манчестере (Англия) вели работы по созданию компьютера, аналогичного американскому и, кстати, получившему то же название - Mark-1. Для него была создана так называемая система "сокращенного кодирования" - первый язык высокого уровня. Изначально задуманные 32 машинные команды - длинной пять байтов каждая - для удобства получали буквенные обозначения. Однако затем длина команд была увеличена до шести байтов, и в результате многие преимущества новой системы были сведены на нет: каждая команда обозначалась уже двумя символами, но для сокращения избыточности второй из них одновременно оказывался началом следующей команды. С помощью телетайпа производилось двоичное кодирование и создавалась перфолента.
Следующим шагом было "короткое кодирование". У Джона Мочли, работающего над созданием компьютера UNIVAC, возникла идея научить компьютер воспринимать алгебраические уравнения в их традиционном виде. Затем специальная программа-интерпретатор переводила уравнение на язык нулей и единиц. В полной мере реализовать этот замысел не удалось, потому что знаки математических действий по-прежнему приходилось заменять на их численные коды. Интерпретаторы стали первой попыткой сделать компьютер более дружественным, но интерпретирующая программа пожирала и без того скудные ресурсы памяти и замедляла выполнение программ. Да и целесообразность интерпретации введенной с перфокарт программы выглядит, вообще, говоря, сомнительно.
Вот этот "интерпретатор" и навел Грэйс Хоппер (которая работала в фирме Джона Мочли на мысль, что для общения человека с компьютером есть более приятный способ, чем кодирование. Однако нужно ли было такое "очеловечивание" компьютера? В какой-то момент Грэйс заметила, что программисты постепенно изолируют себя от остального человечества и начинают мыслить в тех же терминах, что и счетные машины. Толчком, как утверждают, послужили собственные проблемы Грэйс при подведении баланса ее банковского счета: по привычке она попыталась произвести сложение и вычитание в восьмеричной системе исчисления, и очень удивилась, когда ее итог не совпал с тем, что получилось у банка.
К 1952 году из "сокращенного кодирования" вырос первый компилятор - язык Autocod, созданный Алексом Гленном.
Хотя программисты, олберегая свое исключительное положение при вычислительной машине, всячески сопротивлялись распространению языков типа Autocod, фирмы-производители, пытавшиеся вывести компьютеры за пределы военных и униерситетских лабораторий, вкладывали в создание новых языков значительные средства.
Компания Raimington Rand, купившая права на UNIVAC, натолкнулась на нехватку "жрецов в блых халатах", свободно "чирикающих" на двоичном коде, поэотму процесс общения с машиной надо было облегчить и включить в поставку компьютера программное обеспечение. Возникла идея создания библиотеки подпрограмм, из которой программа-компоновщик (компилятор) выбирала бы необходимые блоки и автоматически устанавливала нужную адресацию. В 1951 г. Гhэйс Хоппер было поручено создать такую библиотеку. Несколько лет спустя, когда ею была реализована уже четвертая версия компилятора A (версия A-3), из маркетинговых соображений он был преименован в Math-Matic.
Пятидесятые годы были периодом активной разработки машинно-зависимых языков высокого уровня. В 1953 году вышли в свет два из них - Speedcoding фирмы IBM, который она разумно представила со своим новым компьютером IBM 701, и Vortex, созданный в Массачусетском институте. Vortex был первым языком, в котором символы вводилиь в их естественном виде. Он, однако, не был коммерческой разработкой и практически не распространился за пределы МТИ.
Основным признаком таких языков была краткость инструкций - пара символов либо цифровой код, так что по-прежнему для работы с машиной нужно было изучать "дельфиний" язык.
Использовать полноценные английские слова догадалась Грэйс Хоппер. Для того, чтобы облегчить компьютеру работу, в качестве базиса было принято, что все инструкции обладают значимыми превым и третьим символом. Остальные символы при анализе игнорировались. Грэйс, видя перспективность этого подхода к языкам программ, действовала на свой страх и риск. Когда в 1956 году компилятор B-0 был готов, ей оставалось извиниться за самоуправство и задним числом убедить начальника в перспективности нового подхода. Для пущей наглядности она преобразовала компилятор в трехязычный, заставив его понимать инструкции на английском, французском и немецком языках. Этим она полоило начало одному порочному направлению в программировании - переводу инструкций языка на программирования на национальные языки (забегая вперед, скажем, что впоследствии появились самые разнообразные версии языка Cobol - вплоть до китайской, где инструкции записывались с помощью иероглифов).
Как бы то ни было, после такой демонстрации цель - убедить начальство, что компьютер может понимать нормальные слова - была достигнута, и B-0, в миру Flow-Matic, был одобрен для коммерческой реализации.

Мама языка Cobol

К концу пятидесятых годов практически для каждой торговой марки, если не для серии, компьютера был создан свой язык высокого уровня. Компания Ramington Rand (к этому времени Sperry Rand) выпускала Flow-Matic; для IBM 704 уже существовал FORTRAN; ВВС США, в пику ВМС, на которые и работала Sperry Rand, создали AIMACO.
В 1959 году представители производителей компьютеров и научного мира провели совещание в Пенсильванском унивеститете (третьем оплоте информатики, после Гарварда и Массачусетса). На певестке дня стояло создание единого по синтаксису, гибкого, универсального языка для разработки бизнес-приложений. Однако если между собой не могли договориться даже отделения военного министерства, чего оставалось ждать от независимых производителей?
Грэйс Хоппер решила подтолкнуть их к заключению соглашения и нашла для такого языка заказчика - Министерство обороны США, с его "зоопарком компьютерной техники" (более 1000 компьютеров, полностью несовместимых между собой), крайне нуждалось в подобном средстве.
Министерство обороны организовало специальную конференцию - Conference on Data System Language (CODASYL), в которой участвовали IBM, Honeywell, General Electric, Sperry Rand и другие - в общем, все, кто расчитывал получить от Пентагона заказ на постаку компьютеров.
Группа программистов во главе с Грэйс достаточно бысто сформулировала основные положения языка COBOL (COmmon Business Oriental Language), основанного на Flow-Matic. Другие компании не пришли в восторг от идеи COBOL'a. IBM, имевшая в запасе FORTRAN и Commercial Translator, стремилась убедить аудиторию, что на создание нового языка нет времени. Honeywell пыталась сделать стандартом свое творение FACT. Но Грэйс не напрасно столько лет имела дело с ВМС США и знала, как убедить военное начальство...
Идея COBOL была проработана к осени 1959 года, а первые трансляторы от RCA и Sperry Rand поступили в продажжу к зиме.
Что можно еще сказать о Грэйс Хоппер? В 1966 году, шестидесяти лет, она ушла на пенсию из Вспомогательной службы ВМС США, однако не прошло и года, как была вновь призвана для работы по стандартизации языков программирования. Окончательная отставка Грэйс последовала в 1986 году. В то время она имела чин адмирала ВМС США и была самой старшей среди служащих офицеров.

 

  По материалам зарубежной печати Компьютерра

 

 


 

Разное
VipIP.ru - Система активной рекламы (САР)
Автор сайта das.
Кодировка сайта Windows - 1251. Состряпано на программе Dreamweaver 4.
Смотреть в полноэкранном режиме 1024х768.