Лекция 7 Биографии основных теоретиков компьютерных наук.

Презентация:



Advertisements
Похожие презентации
ИСТОРИЯ ИНФОРМАТИКИ Языки программирования. Языки и системы программирования Предыстория Первая попытка создать высоко- уровневый язык программирования.
Advertisements

Языки программирования. Программа - это алгоритм, записанный на языке программирования. Программирование – процесс создания программы.
История развития языков программирования. Терминологический словарь: ПРОГРАММИРОВАНИЯЯЗЫК Знаковая система совокупность условных знаков и правил их взаимосвязи.
ОСНОВНЫЕ ПОНЯТИЯ ООП Лекция 1 1. Язык Simula 2 Simula = SIMULAlation За разрабртку языка Simula Кристен Нигорд (Nygaard, Kristen; ), на снимке.
ИСТОРИЯ ПРИКЛАДНОЙ МАТЕМАТИКИ ЭВМ Лекция 13: Биографии основных теоретиков Computer science ВМиК МГУ им. М.В. Ломоносова, Кафедра АСВК Доцент Власов В.К.,
История языков программирования 9 класс. Языки программирования Даже при наличии десятков тысяч программ разработанных для IBM PC пользователям может.
Программы для первых ЭВМ программисты писали на языках машинных команд. Это очень трудоемкий и длительный процесс. Проходило значительное время между.
Государственное бюджетное образовательное учреждение среднего профессионального образования «Новороссийский колледж строительства и экономики» Краснодарского.
ИСТОРИЯ ПРИКЛАДНОЙ МАТЕМАТИКИ ЭВМ Лекция 13: Эволюция компьютеров. Биографии основных теоретиков Computer science ВМиК МГУ им. М.В. Ломоносова, Кафедра.
История языков программирования. Язык программирования – это система команд, понятных ЭВМ. 1.машинно-ориентированные языки (языки низкого уровня): Автокоды,
Уильям (Билл) Гейтс. Информатика Hard Ware (технические средства) Soft Ware (программные средства) Brain Ware (алгоритмические средства) MS Windows MS.
История развития вычислительной техники КРАТКИЙ ОЧЕРК Зазыгина Наталья Владимировна год.
Как «заставить» компьютер выполнять наши команды?.
Легенды программирования. Fortran – Джон Бэкус родился 3 декабря 1924 году в Филадельфии; был посредственным учеником; в 25 лет имея степень магистра.
1 История языков программирования. 2 Обучать компьютер понимать человеческие слова первыми стали американцы. Была необходима специальная программа в машинных.
ИСТОРИЯ ИНФОРМАТИКИ В ЛИЦАХ Работа ученика 9« А » Класса, Рублёва Ивана.
План Введение Что такое языки программирования Для чего нужны языки программирования Классификация языков Какие существуют языки программирования Этапы.
Язык программирования формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических.
План урока Историческая справкаИсторическая справка Поколения ЭВМПоколения ЭВМ.
Проект выполнили Алёшин И.В. Волков А.Н. Золотарёв С.А. Учитель информатики Малыхин С.А. Prezentacii.com.
Транксрипт:

Лекция 7 Биографии основных теоретиков компьютерных наук

План лекции Алан Тьюринг Джон Фон Нейман Эдсгер Вайб Дейкстра Дональд Эрвин Кнут Языки программирования и их создатели

Алан Тьюринг (1912 – 1954)

Основные результаты Тезис Чёрча-Тьюринга Машина Тьюринга Криптография Тест Тьюринга Колоссус

Тезис Чёрча-Тьюринга Любая функция, которая может быть вычислена физическим устройством, может быть вычислена машиной Тьюринга

Машина Тьюринга

Криптография Тьюринг помогал взломать код Энигмы Построен первый программируемый компьютер Колоссус Базировался: – на его концепции универсальной машины 1936 – потенциальной скорости и надёжности электронных технологий – неэффективность разностных машин для различных логических процессов Шифр-код был расшифрован в 1943 Все компьютеры были разрушены по приказу Черчилля

Colossus Под руководством выдающегося математика Алана Тьюринга была построена специализированная электронная вычислительная машина Colossus. Она насчитывала 2000 радиоламп и обрабатывала симв./с

Enigma В местечке Блечли-Парк (Bletchley Park) под Лондоном была организована сверхсекретная криптоаналитическая лаборатория для расшифровки немецких военных шифров, используемых в шифровальной машине Enigma.

Тест Тьюринга Опубликован в 1950 году Человек обменивается сообщениями на естественном языке с двумя собеседниками (человек и компьютер) Если человек не может определить кто есть кто, то считается что компьютер прошёл тест Переписка должна производиться через контролируемые промежутки времнени Тьюринг оценил что программы в 2000 году пройдут тест Пока не подошли даже близко

Джон фон Нейман

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

Другие значимые достижения Квантовая физика Функциональный анализ Теория множеств Создатель теории игр Создатель теории клеточных автоматов

Клеточные автоматы

Эдсгер Вайб Дейкстра (1930 – 2002)

Основные результаты Математическая логика Algol-60 Концепция семафоров Алгоритм Дейкстры Борьба с оператором GOTO

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

Афоризмы (2) Дейкстра назвал модель IBM/360 (прообраз советской ЕС ЭВМ) величайшей диверсией Запада против СССР На пустом диске можно искать вечно Если отладка процесс удаления ошибок, то программирование должно быть процессом их внесения

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

Языки и системы программирования Михаил Романович Шура-Бура и А.П. Ершов – создатели первых отечественных систем автоматизации программирования для ЭВМ «БЭСМ» и «Стрела» ( годы)

Наиболее активный период разработки языков и систем программирования приходится на 1960-е годы. За это десятилетие в мире родилось более тысячи разнообразных языков, как универсальных, так и специализированных, но выжили и доросли до XXI века дожили немногие, в том числе бессмертные Fortran, Basic, Algol, Cobol, Simula, Lisp и их потомки. На рисунке: «вавилонская башня» языков программирования, созданных в 1960-е годы Язык и системы программирования

Языки и системы программирования Родословная основных высокоуровневых языков программирования

Fortran Fortran = FORmula TRANslator Первый высокоуровневый язык программирования Fortran был разработан в фирме IBM под руководством Джона Бэкуса (Backus, John; р. 1924). Работа над языком началась в 1954 г., первая реализация для IBM 704 в выполнена в 1957 г.

Fortran CMAIN PROGRAM 101FORMAT(208) 102FORMAT(//N=,15, 5X, R=, 15 1//6X, M, 5X, PROB) 103 FORMAT(18, F14.10) 201READ(1,101) N, IR WRITE(3,102) N, IR IF(N) 202, 202, STOP 203IF(IR) 202, 202, M=O P=COMBF(N,M)*COMBF(IR-1,N-M-1) 1/COMBF(N+IR-1,IR)...

Basic BASIC = Beginners All-purpuse Symbolic Instruction Code Язык Basic был разработан в 1964 г. в Дармутском колледже в г. Хановере (Darmouth College, Hanover), штат Нью-Хемпшир

Авторы языка Basic. Стоит Джон Кемени (Kemeny, John G.; ), сидит Томас Курц (Kurtz, Thomas E.; р. 1928) Basic 10 dim A(5) 20 for i=1 to 5 30 input A(i) 40 next i 50 if i=5 then goto if A(i)

Basic Будущие создатели Microsoft Пол Аллен (Allen, Paul; р. 1954) и Билл Гейтс (Gates, William; р. 1955) познакомились с Бэйсиком, работая в компьютерном классе школы в Сиэтле (снимок 1968 г.)

Basic Начав с Бэйсика, компания Microsoft превратилась в крупнейшую софтверную империю, а Билл Гейтс – стал самым богатым человеком на планете Штаб - квартира корпорации Microsoft в Редмонде (пригород Сиэтла)

Cobol COBOL = COmmon Business- Oriented Language На фото: разработчики языка Cobol у шуточного обелиска, присланного в их адрес в качестве намека на безнадежно медленную работу, способную похоронить саму идею. Справа внизу – Грейс Хоппер

Cobol Основные свойства языка Cobol: независимость программ от оборудования; независимость программ от данных; сложные структуры данных; синтаксис, приближенный к естественному английскому языку.

Cobol 1010 IDENTIFICATION DIVISION PROGRAM-ID EXAMPLE ENVIROMENT DIVISION INPUT-OUTPUT SECTION FILE-CONTROL SELECT CD ASSIGN TO SYS010 UNIT-RECORD 2540R SELECT TT ASSIGN TO SYS009 UTILITY DATA DIVISION FILE SECTION FDCDDATA RECORD IS C 1110LABEL RECORDS ARE OMITTED C C1 PICTURE 9(4) C2 PICTURE C3 PICTURE X(70).

Cobol 1290 PROCEDURE DIVISION P1.OPEN INPUT CD, OUTPUT TT P2.READ CD, AT END GO TO P MOVE C1 TO D MOVE C2 TO D MOVE C3 TO D ADD C1, C2, GIVING D WRITE T FROM D. 1370GO TO P P3.CLOSE SD, TT. 1390STOP RUN.

Algol ALGOL = ALGOrithmic Language В 1958 году в Цюрихе (Швейцария) состоялась международная конференция, предложившая проект нового универсального международного языка программирования Algol-58. В 1960 году на парижской конференции была принята окончательная версия под названием Algol-60. На снимке: участники парижской конференции голосуют за Алгол-60.

Algol Основные свойства языка Algol-60 машинная независимость; формальный синтаксис; описание переменных и блочная структура; рекурсия Нормальная форма Бэкуса-Наура (БНФ) ::= 1|2|3|4|5|6|7|8|9|0 ::= |

Algol Простейшая программа на Алголе-60, вычисляющая среднее арифметическое n чисел. Синтаксис Алгола-60 сформировал стандарт для всех последующих языков программирования begin integer i, n; real s; real array x[1:n]; s:=0; for i:=1 step 1 to n do s:=s+x[i]; s:=s/n end

Pascal Член комитета по Алголу-68 Никлаус Вирт (Wirth, Niklaus; р. 1934) был против принятия переусложненного стандарта. В знак доказательства своей правоты он разработал в 1971 г. простой и ясный алголоподобный язык, предназначенный прежде всего для обучения студентов в Федеральном техническом университете в Швейцарии. В честь изобретателя первой вычислительной машины Вирт назвал язык Паскалем.

Turbo Pascal Новую жизнь языку Pascal дал Филипп Кан (Kahn, Philippe; р. 1938) – создатель компилятора Turbo Pascal для IBM PC и основатель компании Borland (1984 г.)

PL/1 PL/1 = Programming Language One Язык PL/1 был частью амбициозного проекта IBM S/360, он создавался в спешке и представлял собой механическую смесь идей из многих языков. Критики сравнивали его с елкой со множеством украшений. 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

Simula и Smalltalk Simula = SIMULAlation За разрабртку языка Simula Кристен Нигорд (Nygaard, Kristen; ), на снимке слева, и Оле-Йохан Дал (Dahl, Ole-Johan; ) были удостоены высшей награды компьютерного сообщества – медали Тьюринга

Simula и Smalltalk Простейшая программа на Smalltalk, вычисляющая среднее арифметическое пяти чисел |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].

C Язык Си (С) был создан Деннисом Ричи (Ritchie, Dennis M.; р. 1941) в 1973 году в Bell Labs в ходе разработки операционной системы UNIX. Он развивал язык Би (B), который основывался на созданном в Кембриджском университете языке BCPL (от Basic Combined Programming Language), который в свою очередь был потомком Алгола-60

C float A[5]; for(int i=0;i

C++ Бьярн Страуструп (Stroustrup, Bjarne; р. 1950) ввел в язык С объекты и превратил его в С++

Java В 1995 г. фирма Sun Microsystems представила язык Java для программирования в интернете. Он возник в ходе реализации проекта Oak («Дуб»), целью которого было создание системы программирования бытовых микропроцессорных устройств. Джеймс Гослинг (Gosling, James) – автор Java.

Java в Web

C# class test { int i, n; float s; float x[n]; public static void main( String args[] ) { n = 10; s = 0; for( i=1; i

LISP Lisp = LISt Processing Язык LISP создан в 1960 году Джоном Маккарти (McCarthy, John; р ) в Массачусетском технологическом институте на теоретическом фундаменте лямбда-исчисления, предложенного еще в 1930 году известным американским логиком Алонзо Черчем. Дж. Маккарти и А.П. Ершов Снимок 1975 г.

LISP (setq L `( )) (defun sum (L) (cond ((null L) '0) (t (add (car L) (sum (cdr L)))) ) (div (sum L) '5) Примитивы : cond условная функция, проверяющая с помощью функции null пустоту списка; add суммирование аргументов; car извлечение первого элемента из списка; cdr извлечение остатка списка (без первого элемента).