Слайд 1Известные люди в области программирования
Алан Тьюринг
Джон Фон Нейман
Эдсгер Вайб Дейкстра
Дональд
Эрвин Кнут
ЯП и их создатели
Грейс Хоппер
Слайд 3Основные результаты
Тезис Чёрча-Тьюринга
Машина Тьюринга
Криптография
Тест Тьюринга
Колоссус
Слайд 4Тезис Чёрча-Тьюринга
Любая функция, которая может быть вычислена физическим устройством, может
быть вычислена машиной Тьюринга
Слайд 6Криптография
Тьюринг помогал взломать код Энигмы
Построен первый программируемый компьютер Колоссус
Базировался:
на его
концепции универсальной машины 1936
потенциальной скорости и надёжности электронных технологий
неэффективность разностных
машин для различных логических процессов
Шифр-код был расшифрован в 1943
Все компьютеры были разрушены по приказу Черчилля
Слайд 7Под руководством выдающегося математика Алана Тьюринга была построена специализированная электронная
вычислительная машина Colossus. Она насчитывала 2000 радиоламп и обрабатывала 25000
симв/с
Collosus
Слайд 8В Bletchley Park под Лондоном была организована сверхсекретная криптоаналитическая лаборатория
для расшифровки немецких военных шифров, используемых в шифровальной машине Enigma
Enigma
Слайд 9Тест Тьюринга
Опубликован в 1950 году
Человек обменивается сообщениями на естественном языке
с двумя собеседниками (человек и компьютер)
Если человек не может определить
кто есть кто, то считается что компьютер прошёл тест
Переписка должна производиться через контролируемые промежутки времнени
Тьюринг оценил что программы в 2000 году пройдут тест
Пока не подошли даже близко
Слайд 10Другие важные результаты
Проблема самоприменимости МТ
Универсальная МТ
Основатель направления ИИ
Слайд 11Первая работающая ЭВМ ENIAC (Electronic Numerical Integrator And Calculator) была
создана в 1945 г. в Пенсильванском университете. Длина 26 м,
высота 6 м, масса 30 т. 18 000 ламп, 1500 реле, потребляемая мощность 150 квт.
Первая ЭВМ ENIAC
Слайд 12ЭВМ ENIAC. Вид сзади
Первая ЭВМ ENIAC
Слайд 13Понятие «архитектура ЭВМ» связано с именем выдающегося математика XX столетия
Джона фон Неймана (Neumann, John von; 1903-1957)
Проект фон Неймана
и его вклад в архитектуру ЭВМ
Слайд 14Проект фон Неймана
и его вклад в архитектуру ЭВМ
Фрагменты статьи
фон Неймана (рус. перевод)
Слайд 15Проект фон Неймана
и его вклад в архитектуру ЭВМ
Основные черты
классической фон-неймановской архитектуры ЭВМ
Машина должна состоять из следующих основных
блоков: арифметического устройства, оперативной памяти, устройства управления, устройства ввода, устройства вывода, устройства внешней памяти;
Слайд 16Проект фон Неймана
и его вклад в архитектуру ЭВМ
2. Команды
программы должны храниться в оперативной памяти, откуда они последовательно выбираются
и исполняются арифметическим устройством, система команд должна иметь операции условной и безусловной передачи управления. Команды должны рассматриваться как обычные данные, т.е. программа должна иметь возможность модифицировать себя в процессе вычислений;
3. Команды и данные должны храниться и обрабатываться в двоичной системе счисления.
Слайд 17Морис Уилкс у машины EDSAC. 3000 ламп, ОЗУ 512 слов
Проект
фон Неймана
и его вклад в архитектуру ЭВМ
Из-за разногласий в
команде разработчиков реализация проекта фон Неймана в США затянулась.
Первая ЭВМ с хранимой программой EDSAC (Electronic Delay Storage Automatic Calculator) была построена в Англии в 1949 г. под руководством Мориса Уилкса (Wilkes, Maurice; р. 1913). Английские ученые опирались на собственный опыт разработки электронных вычислительных устройств во время Второй мировой войны.
Слайд 18Другие значимые достижения
Квантовая физика
Функциональный анализ
Теория множеств
Создатель теории игр
Создатель теории клеточных
автоматов
Слайд 19Эдсгер Вайб Дейкстра
(1930 – 2002)
Слайд 20Основные результаты
Математическая логика
Algol-60
Концепция семафоров
Алгоритм Дейкстра
Борьба с оператором GOTO
Слайд 26Афоризмы, автор Дейкстер
Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему
программированию. Как потенциальные программисты они подверглись необратимой умственной деградации.
Вопрос «умеет
ли компьютер думать» имеет не больше смысла, чем вопрос «умеет ли подводная лодка плавать».
Проекты, предлагающие программирование на естественном языке, гибельны по своей сути.
Дейкстра назвал модель IBM/360 (прообраз советской ЕС ЭВМ) — величайшей диверсией Запада против СССР.
На пустом диске можно искать вечно.
Если отладка — процесс удаления ошибок, то программирование должно быть процессом их внесения.
Слайд 27Классификация и эволюция программного обеспечения
Эволюция программного обеспечения. Подобно тому, как
в океане из плавающей мути откладываются геологические пласты, из специального
программного обеспечения с течением времени образуются слои общего ПО
Слайд 28Языки и системы программирования
Предыстория
Первая попытка создать высоко-уровневый язык программирования
принадлежит Конраду Цузе (конец 1940-х годов), разработавшему Plancalcul (планировщик вычислений).
«Plancalcul родился исключительно как результат теоретической работы, без всякой связи с тем, появится или нет в обозримом будущем машины, подходящие к программам на Plancalcul».
Фрагмент рукописи Цузе с шахматной программой на языке Plancalcul
Слайд 29Михаил Романович Шура-Бура и А.П. Ершов – создатели первых отечественных
систем автоматизации программирования для ЭВМ «БЭСМ» и «Стрела»
(1954-1956 годы)
Языки
и системы программирования
Предыстория
Слайд 30Языки и системы программирования
Наиболее активный период разработки языков и систем
программирования приходится на 1960-е годы. За это десятилетие в мире
родилось более тысячи разнообразных языков, как универсальных, так и специализированных, но выжили и доросли до XXI века дожили немногие, в том числе бессмертные Fotran, Basic, Algol, Cobol, Simula, Lisp и их потомки.
На рисунке: «вавилонская башня» языков программи-рования, созданных в 1960-е годы
Слайд 31Языки и системы программирования
Родословная основных высокоуровневых языков программирования
Слайд 32Языки и системы программирования
Бессмертный Fortran
Fortran = FORmula TRANslator
Первый высокоуровневый
язык программирования Fortran был разработан в фирме IBM под руководством
Джона Бэкуса (Backus, John; р. 1924).
Работа над языком началась в 1954 г., первая реализация для IBM 704 в выполнена в 1957 г.
Слайд 33Фрагмент программы на языке Fortran
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
Слайд 34Языки и системы программирования
Basic – язык для начинающих
BASIC = Beginners
All-purpuse Symbolic Instruction Code
Basic был разработан в 1964 г. в
Дармутском колледже в
г. Хановере (Darmouth College, Hanover), штат Нью-Хемпшир
Слайд 35Языки и системы программирования
Basic – язык для начинающих
Авторы языка Basic.
Стоит Джон Кемени
(Kemeny, John G.; 1926-1993),
сидит Томас Курц
(Kurtz, Thomas E.; р. 1928)
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
Простейшая программа на языке Basic
Слайд 36 Будущие создатели Microsoft Пол Аллен (Allen, Paul; р. 1954)
и Билл Гейтс (Gates, William; р. 1955) познакомились с Бэйсиком,
работая в компьютерном классе школы в Сиэтле (снимок 1968 г.)
Языки и системы программирования
Basic – язык для начинающих
Слайд 37Начав с Бэйсика, компания Microsoft превратилась в крупнейшую софтверную империю,
а Билл Гейтс –стал самым богатым человеком на планете
Языки и
системы программирования
Basic – язык для начинающих
Штаб - квартира корпорации Microsoft в Редмонде (пригород Сиэтла)
Слайд 38
Языки и системы программирования
Cobol – язык для бухгалтеров
COBOL =
COmmon Business-Oriented Language
На фото: разработчики языка Cobol у шуточного обелиска,
присланного в их адрес в качестве намека на безнадежно медленную работу, способную похоронить саму идею. Справа внизу – Грейс Хоппер
Слайд 39Основные свойства языка Cobol:
независимость программ от оборудования;
независимость программ
от данных;
сложные структуры данных;
синтаксис, приближенный к естественному
английскому языку.
Языки
и системы программирования
Cobol – язык для бухгалтеров
Слайд 40 Программа на Коболе
(начало)
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).
...
Языки и системы программирования
Cobol – язык для бухгалтеров
Слайд 41 Программа на Коболе (окончание)
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.
Языки и системы программирования
Cobol – язык для бухгалтеров
Слайд 42Языки и системы программирования
Algol и его влияние на языки программирования
ALGOL
= ALGOritmic Language
В 1958 году в Цюрихе (Швейцария) состоялась международная
конференция, предложившая проект нового универсального международного языка программирования Algol-58. В 1960 году на парижской конференции была принята окончательная версия под названием Algol-60. На снимке: участники парижской конференции голосуют за Алгол-60.
Слайд 43 Основные свойства языка Algol-60:
машинная независимость;
формальный синтаксис;
описание
переменных и блочная структура;
рекурсия
Нормальная форма Бэкуса-Наура (БНФ)
::= 1|2|3|4|5|6|7|8|9|0
знака>::= <цифра>| <цифра> <целое без знака>
Языки и системы программирования
Algol и его влияние на языки программирования
Слайд 44begin
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
Простейшая программа на Алголе-60, вычисляющая среднее
арифметическое n чисел.
Синтаксис Алгола-60 сформировал стандарт для всех последующих языков программирования
Языки и системы программирования
Algol и его влияние на языки программирования
Слайд 45В результате многолетней переработки Алгола-60 комитетом IFIP появился язык Алгол-68
(пересмотренное сообщение под ред. А. ван Вейнгаардена (A. van Wijngaarden)
и др. опубликовано в 1975)
Языки и системы программирования
Algol и его влияние на языки программирования
Слайд 46Языки и системы программирования
Pascal и его потомки
Член комитета по Алголу-68
Никлаус Вирт (Wirth, Niklaus; р. 1934) был против принятия переусложненного
стандарта.
В знак доказательства своей правоты он разработал в 1971 г. простой и ясный алголоподобный язык, предназначенный прежде всего для обучения студентов в Федеральном техническом университете в Швейцарии. В честь изобретателя первой вычислительной машины Вирт назвал язык Паскалем.
Слайд 47Программа на Паскале, вычисляющая среднее арифметическое n чисел
var
i, n:
integer;
s: float;
x: array[1..n] of real;
begin
s:=0;
for i:=1 to n do
s:=s+x[i];
s:=s/n
end.
Языки и системы программирования
Pascal и его потомки
Слайд 48Новую жизнь Pascal дал Филипп Кан (Kahn, Philippe; р. 1938)
– создатель компилятора Turbo Pascal для IBM PC и основатель
компании Borland (1984)
Языки и системы программирования
Pascal и его потомки
Слайд 49Среда разработки Delphi фирмы Borland объединила передовые достижения технологии программирования:
объектное расширение языка Pascal, визуально- событийное проектирование, модульное структурирование и
раздельная компиляция.
Языки и системы программирования
Pascal и его потомки
В отличие от учебного Паскаля, язык программирования Modula-2, предложенные Никлаусом Виртом, изначально предназначался для профессионального применения
Слайд 50Языки и системы программирования
Суперязык PL/1
EXAMPLE: PROCEDURE OPTIONS (MAIN);
ON ENDFILE
(SYSIN) GO TO ENDING;
P1: GET LIST (A, B, C);
D = B*B
— 4*A*C;
E = —B/(A+A);
IF D<0 THEN DO;
X1, X2 = E;
Y1 = SQRT(—D)/(A+A);
END;
ELSE DO;
R = SQRT(D)/(A+A);
…
Y1 = 0;
END;
Y2 = —Y1;
PUT LIST (X1, Y1, X2, Y2);
GO TO P1;
ENDING:;
END EXAMPLE;
PL/1 = Programming Language One был частью амбициозного проекта IBM S/360, он создавался в спешке и представлял собой механическую смесь идей из многих языков. Критики сравнивали его с елкой со множеством украшений.
Слайд 51Языки и системы программирования
Simula и Smalltalk – революция в программировании
Simula
= SIMULAlation
За разрабртку языка Simula Кристен Нигорд (Nygaard, Kristen; 1926-2002),
на снимке слева, и Оле-Йохан Дал (Dahl, Ole-Johan; 1931-2002) были удостоены высшей награды компьютерного сообщества – медали Тьюринга
Слайд 52|a|
a := Array new: 5.
1 to: 5 do: [:i |
a at: i put:
(Prompter prompt: ’Введите элемент массива’) asNumber].
a
:= a asSortedCollection.
a do: [:i | Transcript putAll: i printString].
Простейшая программа
на Smalltalk, вычисляющая среднее арифметическое пяти чисел
Алан Кей
Языки и системы программирования
Simula и Smalltalk – революция в программировании
Слайд 53Языки и системы программирования
С – язык для профессионалов
Язык Си (С)
был создан Деннисом Ричи (Ritchie, Dennis M.; р. 1941) в
1973 году в Bell Labs в ходе разработки операционной системы UNIX. Он развивал язык Би (B), который основывался на созданном в Кембриджском университете языке BCPL (от Basic Combined Programming Language), который в свою очередь был потомком Алгола-60
Слайд 54 Текст на языке С отличается лаконичностью
float A[5];
for(int i=0;i
i=0;
while(i
A[i]=A[i+1];
A[i+1]:=z;
i=0;
}
};
for(i=0;i<5;i++)printf("%f\n",A[i]);
Языки и системы программирования
С – язык для профессионалов
Слайд 55 Бьярн Страуструп (Stroustrup, Bjarne; р. 1950) ввел в язык
С объекты и превратил его в С++
Языки и системы программирования
С
– язык для профессионалов
Слайд 56Языки и системы программирования
Java – дитя интернета
В 1995 г. фирма
Sun Microsystems представила язык Java для программирования в интернете.
Он
возник в ходе реализации проекта Oak («Дуб»), целью которого было создание системы программирования бытовых микропроцессорных устройств.
Джеймс Гослинг (Gosling, James) – автор Java.
Слайд 57Java - технология
Языки и системы программирования
Java – дитя интернета
Слайд 58class test
{
int i, n;
float s;
float x[n];
public static void main( String args[] )
{
n
= 10;
s = 0;
for( i=1; i<=n; i++)
{
s = s + x[i-1];
s = s / n;
}
}
Язык Java основан на С++
Языки и системы программирования
Java – дитя интернета
В качестве альтернативы Java корпорация Microsoft предложила язык С# (Си-шарп)
Слайд 59Lisp = LISt Processing
Язык Lisp создан в 1960 году Джоном
Маккарти (McCarthy, John; р. 1927 ) в Массачусетском технологи-ческом институте
на теоретическом фундаменте лямбда-исчисления, пред-ложенного еще в 1930 году известным американским логиком Алонзо Черчем.
Языки и системы программирования
Долгожитель Lisp – инструмент функционального программирования
Дж. Маккарти и А.П. Ершов Снимок 1975 г.
Слайд 60Программа на Lisp имеет специфический вид из-за обилия скобок. За
это студенты прозвали его «Lots of Infuriating & Silly Parenthesis»
- «Множество раздражающих и глупых скобок»
(setq L `(8 5 13 11 10))
(defun sum (L)
(cond ((null L) '0)
(t (add (car L) (sum (cdr L))))
)
)
(div (sum L) '5)
Примитивы:
cond — условная функция, проверяющая с помощью функции null пустоту списка;
add — суммирование аргументов;
car — извлечение первого элемента из списка;
cdr — извлечение остатка списка (без первого элемента).
Языки и системы программирования
Долгожитель Lisp – инструмент функционального программирования
Слайд 61Языки и системы программирования
Prolog – несостоявшаяся мечта ЭВМ V поколения
Prolog = PROgramming for LOGic
Теоретические основы языка были разработаны Робертом
Ковальским (Kowalski, Robert) в Эдинбургском университете (Шотландия) в конце 1960-х годов
Первая практическая реализация языка осуществлена Аленом Кольмари (Colmerauer, Alain ) в Марсельском университете (Франция) в 1972 г.
Слайд 62Факты:
муж (петя), муж (ваня),
муж (коля), жен (таня), жен (маша),
мать (ваня,
таня), отец (ваня, петя),
отец (маша, ваня), отец (коля, ваня).
Правила вывода:
родитель
(X, Y) :— отец (X, Y)
родитель (X, Y) :— мать (X, Y)
дед (X, Y) :— родитель (X, Z), отец (Z, Y)
брат (X, Y) :— муж (Y), родитель (X, Z),
родитель (Y, Z), X<>Y
Примеры диалога:
GOAL> дед (коля, X) Кто дед Коли?
X = Петя
GOAL> брат (маша, X) Кто брат Маши?
X = Коля
Описание предметной области семейных отношений на языке Prolog
Языки и системы программирования
Prolog – несостоявшаяся мечта ЭВМ V поколения
Слайд 63Проект ЭВМ V поколения – японский вызов мировой компьютерной индустрии,
брошенный в начале 1980-х годов
Языки и системы программирования
Prolog –
несостоявшаяся мечта ЭВМ V поколения
Слайд 64В качестве основного языка ЭВМ V поколения предполагалось использовать Prolog
3.2. Языки и системы программирования
Prolog – несостоявшаяся мечта ЭВМ V
поколения
Слайд 65Языки и системы программирования
Рефал – русский Пролог
Рефал = PЕкурсивных Функций
АЛгоритмический
Теоретические основы языка были разработаны Валентином Турчиным в МФТИ в
конце 1966 году
Palindrom {
s.1 e.2 s.1 = ;
s.1 = True ;
= True;
e.1 = False ;
} // Проверка палиндромности числа
Слайд 66РЕФАЛ
$ENTRY Go
{
=
s.2) = s.1;
s.1 (s.2 s.3) =
(s.3
)>;
s.1 = ;
} // Ввод N и вычисление числа Фибоначчи с номером N
Слайд 67Языки и системы программирования
Logo – язык для самых маленьких
Язык Logo,
изобретен в 1967 г. в MIT математиком и педагогом Сеймуром
Пейпертом (Papert, Seymour; р. 1928).
Он в 1958-1963 годах работал в Женеве у знаменитого психолога Жана Пиаже (Piaget, Jean), где занимался детьми и природой их мышления.
Идейной основой Logo является язык Lisp
На фото: Сеймур Пейперт получает степень почетного доктора Софийского университета (1999 г.)
Слайд 68Программа на Logo управляет черепашкой, оставляющей видимый след. С помощью
зрительных образов интерпретируются все базовые структуры программирования
Процедура с параметром
это
дуга :шаг :число_шагов
повтори :число_шагов
[вперед :шаг направо 10]
Конец
это спираль :шаг
если :шаг < 1 [стоп]
дуга :шаг 18
спираль :шаг / 2
конец
Цикл
Рекурсия
Языки и системы программирования
Logo – язык для самых маленьких
Слайд 69Языки и системы программирования
Уроки истории
Основные парадигмы программирования:
• процедурное программирование (Fortran, Basic,
Cobol, Algol, Pascal, Ada, С, Logo, FoxPro);
• объектно-ориентированное программирование
(Simula, Smalltalk,
Object Pascal, C++, Java, C#);
• визуально-событийное программирование (Visual
Basic, Delphi, Visual C++, Visual Java, Visual FoxPro);
• функциональное программирование (Lisp, Рефал);
• логическое программирование (Prolog).
Слайд 70В 1996 г. в состав военно-морского флота США вошел ракетный
фрегат USS Hopper (DDG 70). Корабль был назван в память
вице-адмирала Грэйс Хоппер. Корабль получил свое имя не в честь прославленного морского волка, а в честь женщины. Программист Грэйс Хоппер была удостоена адмиральского звания, которое до нее имели всего несколько представительниц слабого пола. Ее называли Первой леди программирования, Великолепной Грэйс и бабушкой КОБОЛА. Правда, в полной форме вице-адмирала и, как говорят, с неизменной сигаретой «Лаки-Страйк» без фильтра она меньше всего была похожа на бабушку.
Г. Хоппер прожила долгую и на редкость необычную жизнь. Родилась она еще до появления компьютеров, это произошло в Нью-Йорке 9 декабря 1906 г. Вплоть до 1943 г. она вела обычную жизнь профессора математики, получив докторскую степень в Йельском университете. Она была замечательным преподавателем, и ей прочили большую педагогическую карьеру.
Слайд 71Для нее, как и для многих стоявших у истоков информационных
технологий, поворотным моментом стала Вторая мировая война. Разгром японцами военно-морской
базы Перл-Харбор вызвал подъем патриотизма у большинства американцев, он заставил 36-летнюю Грэйс вспомнить о том, что ее прадедушка Александр Рассел был вице-адмиралом. Она решила, что тоже должна служить во флоте. Первая попытка была неудачной, женщин тогда на военные корабли не брали. Когда же обнаружилась нехватка мужчин и женщин стали принимать во флот, Хоппер уже не подходила по возрасту и не имела необходимой физической подготовки. Но это ее не остановило.
В 1943 г. будущий адмирал поступила в офицерскую школу, а в 1944 г. закончила ее первой в своем выпуске. Появился младший лейтенант Грэйс Мюррэй Хоппер. Молодой офицер была направлена на службу в Бюро артиллерийских вычислительных проектов, находящееся в Гарвардском университете, для работы под началом Говарда Айкена, разработчика первых компьютеров семейства Mark.
Слайд 72Хоппер оказалась в числе первых программистов, использовавших компьютеры для военных
расчетов и первым программистом на флоте. В детстве Грэйс любила
механические игрушки и Mark I стал самой увлекательной игрушкой в ее жизни. В числе первых заданий: баллистические расчеты, составление артиллерийских таблиц для стрельбы. По результатам в 1946г. Хоппер опубликовала первую книгу по программированию «A Manual of Operations for the Automatic Sequence Controlled Calculator». Была освобождена от обязательных элементов морской службы и перешла в лабораторию при Вычислительном факультете Гарвардского университета, где работала над использованием компьютеров Mark II и Mark III в интересах ВМФ. В 1949 г. она перешла в корпорацию Eckert–Mauchly Computer Corporation, позднее известную как Sperry Rand, где принимала участие в создании первого коммерческого компьютера UNIVAC I. Этот компьютер был полностью построен на электронных лампах и был в двадцать раз производительнее, чем Mark III.
Слайд 73Будущий адмирал была одной из первых, кто задумался над тем,
как упростить процесс программирования. Первые компьютеры программировались непосредственно в машинных
кодах. Это занятие требовало абсолютного знания архитектуры компьютера и было узкопрофес-сиональным. Как сделать компьютер доступным более широкому кругу ученых? В поисках ответа на этот вопрос она пришла к идее создания компиляторов, переводящих символическую запись в машинный код. В результате в 1952 г. появился компилятор A-0 Compiler. Грэйс была повышена в звании до старшего лейтенанта и начала работу над языком, предназначенным для коммерческих расчетов. В 1955 г. появился первый код, имевший 20 команд, близких к описанию бизнес-задач. Программа, называвшаяся FLOW-MATIC стала моделью для COBOL. В 1966г. Грэйс было присвоено звание капитана третьего ранга, но в связи с достижением возрастного предела в канун 1967г. она была демобилизована из флота.
Слайд 74Однако не прошло и полугода, как флотское начальство раскаялось в
содеянном и снова пригласило ее на службу, указав: для Хоппер
не существует возрастных ограничений. Поставленная перед ней задача: создание на основе нескольких версий COBOL единого стандарта USA – Standard COBOL.
Звание капитана 1го ранга Г. Хоппер получила в 1973г., она заняла должность специального советника командующего флотом, которую сохранила за собой на все последующие годы службы. В 1985г. президентом Рональдом Рейганом Грэйс Хоппер было присвоено звание контр-адмирала. Она прослужила на флоте до 1986г., установив своего рода рекорд долголетия на службе, равный 43 годам. Но выйдя в отставку Хоппер не прекратила работу. Еще 6 лет, вплоть до своей кончины в 1992г., она трудилась в компании DEC.
За свою деятельность адмирал Грэйс Хоппер была удостоена множества почетных наград, среди которых, пожалуй, наиболее значительна Национальная медаль за развитие технологий, врученная президентом Джорджем Бушем в 1991г.
Слайд 75На одной из крупнейших в США военно-морских баз в Сан-Диего
действует центр по обработке данных, носящий имя Хоппер. Открыт мемориальный
музей, хранящий память о ней и находится коллекция высказываний, принадлежащих ей.
Вот отрывки из ее обращений к молодежи:
«В порту корабль находится в безопасности, но он создан не для этого. Выходите в море и творите новое».
«Наша задача снабжать людей информацией. Наш инструмент – компьютер. Но только человек может трансформировать информацию в знание и интеллектуальный багаж. Не стоит забывать, что сам компьютер не в состоянии задать ни единого вопроса».
Контр-адмирал Грэйс Хоппер была похоронена на Арлингтонском кладбище со всеми военными почестями.