18 великих изобретений в мире компьютеров и программирования 1. Первый компьютер: «Машина различи / программирование :: длиннопост :: познавательное :: компьютер :: История

История компьютер программирование познавательное длиннопост песочница 

18 великих изобретений в мире компьютеров и программирования

История,компьютер,программирование,познавательное,длиннопост,песочница


1. Первый компьютер: «Машина различий» (1821 г.)


Предшественник Аналитической машины. «Машина различий» была первой попыткой создания механического компьютера. Разработкой проекта занимался ученый Чарльз Бэббидж. Заручившись поддержкой британского правительства, он начал работать над устройством. Но из-за высокой себестоимости, финансирование было остановлено и компьютер так и не построили.

История,компьютер,программирование,познавательное,длиннопост,песочница


2. Первый компьютер общего назначения: «Аналитическая машина» (1834 г.)


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

История,компьютер,программирование,познавательное,длиннопост,песочница


3. Первая Компьютерная программа: алгоритм для вычислений числа Бернулли (1841 — 1842 г.)


Математик Ада Лавлейс начала переводить отчеты своего итальянского коллеги — математика Луиджи Менабреа. Для этого она использовала все ту же аналитическую машину Бэббиджа в 1841. Во время перевода женщина заинтересовалась компьютером и оставила примечания. Одно из них – нота G, содержало алгоритм для вычисления числа Бернулли (последовательность рациональных чисел В1, В 2, В3) аналитической машиной, которая, как полагают эксперты, была самой первой компьютерной программой.
История,компьютер,программирование,познавательное,длиннопост,песочница


4. Первый работающий компьютер: Z3 Конрада Цузе (1941г.)


Немецкий изобретатель Конрад Цузе стал первым, кому удалось создать работающий компьютер Z3. На основе своих первых двух моделей Z1 и Z2 ученый собрал полноценный электромагнитный программирующий компьютер, созданный на базе электронных реле. Z3 имел двоичную систему исчисления, числа с плавающей запятой, арифметическое устройство с двумя 22-разрядными регистрами, управление через 8 канальные ленты. 

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

Оригинал машины Z3 был разрушен во время бомбежки Берлина в 1943 году. 

История,компьютер,программирование,познавательное,длиннопост,песочница


5. Первая электронно-вычислительная машина: Компьютер Атанасова-Берри (Atanasoff-Berry Computer, ABC, 1942 г.)



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

История,компьютер,программирование,познавательное,длиннопост,песочница


6. Первая программируемая электронно-вычислительная машина: «Колосс» (1943 г.)


Компьютер «Колосс» — секретная разработка времен второй мировой войны. Он был создан Томми Флауэрсом совместно с отделением Макса Ньюмана, с целью предоставления помощи британцам в расшифровке перехваченных нацистских сообщений. Они были зашифрованы шифром Лоренца. Действия были запрограммированы электронными выключателями и штепселями. «Колосс» давал время на расшифровку сообщений от нескольких часов до недель. С помощью компьютера было расшифровано немало фашистских шифровок.

История,компьютер,программирование,познавательное,длиннопост,песочница


7. Первая программируемая электронно-вычислительная машина общего назначения: ENIAC (1946 г.)


ENIAC (Электронный числовой интегратор и вычислитель) — первый электронный цифровой компьютер общего назначения с возможностью перепрограммирования для решения широкого спектра задач. Финансируемый американской армией, ENIAC был разработан Электротехнической школой Мура в университете Пенсильвании. Его создавала команда ученых во главе с Джоном Преспером Экертом и Джоном Уильямом Мокли. ENIAC достигал в ширину 150 футов и мог быть запрограммирован на выполнение сложных операций. Вычисления производились в десятичной системе, компьютер оперировал числами максимальной длиной в 20 разрядов.

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

История,компьютер,программирование,познавательное,длиннопост,песочница


8. Первый трекбол (1946/1952 г.)


Трекбол — указательное устройство ввода информации об относительном перемещении для компьютера. По сути, аналог современной компьютерной мыши. По одной из версий он был разработан Ральфом Бенджамином, когда тот работал над системой мониторинга для низколетающего самолета. Изобретение, которое он описал, включало в себя шар для управления координатами X-Y курсора на экране. Дизайн был запатентован в 1947 году, но не выпускался, потому что проект находился под грифом «секретно».

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


9. Первый компьютер совместного хранения данных и программ в памяти: SSEM (1948 г.)


Манчестерская малая экспериментальная машина (англ. Manchester Small-Scale Experimental Machine, SSEM) — первый электронный компьютер, построенный по принципу совместного хранения данных и программ в памяти. Создатели — Фредерик Уильямс, Том Килберн и Джефф Тутилл были членами Манчестерского университета. Машина задумывалась, как экспериментальный аппарат для изучения свойств компьютерной памяти на ЭЛТ («трубки Уильямса»). Программы были введены в двухчастную форму, используя 32 выключателя, на продукции CRT.

Кстати, успешные испытания SSEM стали началом создания полноценного компьютера на трубках Уильямса — «Манчестерского Марка I».

История,компьютер,программирование,познавательное,длиннопост,песочница


10. Первый высокоуровневый язык программирования: Планкалкюль (Plankalkül, 1948 г.)


Этот язык был использован Конрадом Цузе (разработчиком первого работающего компьютера Z3). Хотя Цузе и начал создавать Plankalkül еще с 1943 года, впервые он был применен в 1948 году, когда ученый опубликовал работу на тему программирования. Правда данный язык программирования не привлек особого внимания. Первый компилятор для Планкалкюль (для современных компьютеров) был создан лишь в 2000 году профессором Свободного университета Берлина — Йоахимом Хоманом. 
Di« Punkte sind benachbart
V * V л |V - vu L A |v - v|$ V о	1	о 1	o1
К	oo	11
L S
R л .17,История,компьютер,программирование,познавательное,длиннопост,песочница


11. Первый ассемблер: «Начальные команды» на EDSAC (1949 г.)


Ассемблер — транслятор исходного текста программы, который преобразовывает мнемонику (низкого уровня) в числовое представление (машинный код).

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

Order bit pattern	Loc	Order
00101	0	0000000000	0	0	TOS
10101	0	0000000010	0	1	H2S
00101	0	0000000000	0	2	TOS
00011	0	0000000110	0	3	E6S
00000	0	0000000001	0	4: PIS	
00000	0	0000000101	0	5	P5S
00101	0	0000000000	0	6	TOS
01000	0	0000000000	0	7	IOS
11100	0	0000000000	0	8	AOS
00100	0


12. Первый персональный компьютер: «Simon» (1950 г.)


Simon стал первым доступным компьютером. Он разработан Эдмундом Беркли, а построен инженером-механиком Уильямом Портером и выпускниками Колумбийского университета Робертом Дженсоном и Робертом Валлом. Simon имел систему команд и мог выполнять девять операций, в том числе два действия арифметики — сложение и вычитание, а также сравнение и выбор аргументов. Числа и команды считывались с перфоленты, а результат высвечивался на индикаторной панели. На вход могли подаваться числа в диапазоне от 1 до 255 в бинарной нотации, набитые на перфоленту.
/У 15 14.01,История,компьютер,программирование,познавательное,длиннопост,песочница

13. Первый компилятор: A-0 для UNIVAC 1 (1952 г.)


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

В 1952 г. у Купер появился готовый к работе компилятор. Ее высказывание по этому поводу:

В это не могли поверить. У меня был работающий компилятор и никто им не пользовался. Ведь мне говорили, что компьютер может выполнять только арифметические операции.
История,компьютер,программирование,познавательное,длиннопост,песочница


14. Первый автокод: Автокод Гленни (1952 г.)


Автокод — название группы языков программирования высокого уровня, который использует компилятор. Первый автокод был создан для серии компьютеров в университетах Манчестера, Кембриджа и Лондона. Автокод был создан одним из манчестерских сотрудников Тьюринга — Аликом Глени (собственно в его честь и назван).

c@VA t§IC xQhC y@RC INTEGERS +5 -*c -*t
+t	TESTA Z
-t
ENTRY Z SUBROUTINE 6 ->z
+tt ->y ->x +tx -*y ->x +Z+CX CLOSE WRITE
z@NC
# Put 5 into c
# Load argument from lower accumulator to variable t
# Put |t| into lower accumulator
# Run square root subroutine on lower accumulator
# value and


15. Первая компьютерная мышь (1964 г.)


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

История,компьютер,программирование,познавательное,длиннопост,песочница


16. Первый коммерческий компьютер: Programma 101 (1965 г.)


Персональный компьютер Programma 101, также известный как Perottina, был первым в мире коммерческим ПК. Он выполнял следующие действия: дополнение, вычитание, умножение, деление, высчитывал квадратный корень, абсолютную величину и часть. Компьютер был оценен в $3,200 и несмотря на дороговизну, неплохо продавался (около 44,000 единиц). Изобрел Programma 101 итальянский инженер Пьер Джорджио Перотто. 

История,компьютер,программирование,познавательное,длиннопост,песочница


17. Первый сенсорный экран (1965 г.)


На фото ниже — первый сенсорный экран (хоть он и мало чем похож на современные модели). Это панель с сенсорным экраном без чувствительности давления (в равной степени на любые касания экрана) с единственной точкой для контакта. В дальнейшем концепт использовался воздушными диспетчерами в Великобритании вплоть до 90-х годов.

История,компьютер,программирование,познавательное,длиннопост,песочница


18. Первый объектно-ориентированный язык программирования: Simula (1967 г.)


Simula — это язык программирования общего назначения, разработанный сотрудниками Норвежского Вычислительного Центра (г. Осло) Кристеном Нюгордом и Оле-Йоханом Далем для моделирования сложных систем. Учения Чарльза Ричарда Хоара про конструкции класса, языков программирования с объектами, классами и подклассами привели к созданию SIMULA 67.

Simula 67 явилась также первым языком с встроенной поддержкой основных механизмов объектно-ориентированного программирования. 

Небольшой пример кода:

Begin
Class Glyph;
Virtual: Procedure print 13 Procedure print;
Begin
End;
Glyph Class Char (c);
Character c;
3egin
Procedure print;
OutChar(c);
End;
Glyph Class Line (elements);
Ref (Glyph) Array elements;
Begin
Procedure print;
3egin
Integer i;
For i:= 1 Step 1 Until Upper3ound

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

Подробнее










Di« Punkte sind benachbart V * V л |V - vu L A |v - v|$ V о 1 о 1 o1 К oo 11 L S R л .17
Order bit pattern Loc Order 00101 0 0000000000 0 0 TOS 10101 0 0000000010 0 1 H2S 00101 0 0000000000 0 2 TOS 00011 0 0000000110 0 3 E6S 00000 0 0000000001 0 4: PIS 00000 0 0000000101 0 5 P5S 00101 0 0000000000 0 6 TOS 01000 0 0000000000 0 7 IOS 11100 0 0000000000 0 8 AOS 00100 0 0000010000 0 9 R16S 00101 0 0000000000 1 10 TOL Meaning m [0] =A; ABC=0 R=m[2] m[0]=A; ABC=0 goto 6 data 2 data 10 m 0]=A; ABC=0 m 0]=rdch() A+=m[0] ABC»=6 w [0] =AB ; ABC=0 Comment Put 10« 11 in R Jump to main loop The constant 2 The constant 10 Start of the main loop Get operation code Put it in A Shift and store it so that it becomes the senior 5 bits of m [0] m [1] is now zero
/У 15 14.01

c@VA t§IC xQhC y@RC INTEGERS +5 -*c -*t +t TESTA Z -t ENTRY Z SUBROUTINE 6 ->z +tt ->y ->x +tx -*y ->x +Z+CX CLOSE WRITE z@NC # Put 5 into c # Load argument from lower accumulator to variable t # Put |t| into lower accumulator # Run square root subroutine on lower accumulator # value and put the result into z # Calculate tA3 and put it into x 1 # Put z + (c * x) into lower accumulator and return



Begin Class Glyph; Virtual: Procedure print 13 Procedure print; Begin End; Glyph Class Char (c); Character c; 3egin Procedure print; OutChar(c); End; Glyph Class Line (elements); Ref (Glyph) Array elements; Begin Procedure print; 3egin Integer i; For i:= 1 Step 1 Until Upper3ound (elements, 1) Do elements (i).print; OutImage; End; End; Ref (Glyph) rg; Ref (Glyph) Array rgs (1 : 4); ! Main program; rgs (1):- New Char ('A'); rgs (2):- New Char ('b'); rgs (3):- New Char ('b'); rgs (4):- New Char ('a'); rg:- New Line (rg3); rg.print; End;
История,компьютер,программирование,познавательное,длиннопост,песочница
Еще на тему
Развернуть
Интересненько
реактор познавательный в теги
kogorkus kogorkus 03.12.201517:30 ответить ссылка 1.1
Достаточно однобоко.
Orvus Orvus 03.12.201521:55 ответить ссылка 2.4
Ты автор или просто с гиктаймс спиздил?
shotnik shotnik 03.12.201521:56 ответить ссылка -0.7
18 великих изобретений в мире компьютеров и программирования - и всё для того, чтобы получить лёгкий доступ к порнухе и показывать всем фотки своей еды.
А также watson-в (как пример, не особо копал ai тему), обработки туевой кучи научных данных (и для ряда современных задач мы упираемся как раз в то, что нынеших вычислительныхмощностей и близко не хватает).

Но вспомним мы о порнухе и фотках еды, да :-)
Я вас умоляю, человечество всегда поступало так со всеми разработками в сфере информации, телевидение сейчас используется для трансляции дерьмовеньких передач и полит пропаганды, телефоны используются бабами для пустой болтовни еще с незапамятных времен, не удивительно, что интернет теперь поисковик сисек и котиков, а смартфон - фотограф для еды и дакфейсов.
ЭВМ "Сетунь" на троичной логике, в некотором смысле предвестник квантовых компьютеров.
в некотором смысле это чушь. квантовые компы и троичная/двоичная логика никак не связаны.
Два экстремума и неопределённость посередине/суперпозиция (NULL, NaN, итд).
"Два экстремума"
Только вот экстремум - это минимум/максимум функции. А сравнивают для него - не цифры, а числа, что несколько иное.
Если речь о цифрах - какое отношение к квантовым эффектам имеет то, что число 4_10 будет записано в одной системе как 100_2, а в другой как 10_3?

"неопределённость посередине"
Нет неопределенности. Есть 3 цифры, а в другой системе - 2. Не более того.

"NULL"
Который реализуется как 0 (есть в обоих системах), семантически - не число, а указатель (именно в таком виде, чаще всего - значит что объекта нет) и по хорошему - стоило бы сделать его не кастующимся к числу автоматом (и тем более - не #define NULL 0)

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

"суперпозиция"
Дай угадаю - ты о суперпозиции состояний? Теперь скажи в чём сходство с троичной логикой и почему подобное невозможно в двоичной?
Воу, слишком много претендующих на серьёзность замечаний для сайта весёлых картинок. Я просто говорю, что вижу практическое применение "третьего значения" именно в понимании неопределённости или невалидного значения, и нахожу некоторые параллели с квантовой суперпозицией, где значение может быть любым из допустимых/всеми одновременно.
NULL, я имел в виду скорее из SQL, чем из C, который ну никак не связан с арифметическим нулём (BTW, NULL в C не обязательно равен 0, а nullptr в C++ вообще не число, и арифметически операции над ним невозможны в принципе, и про то, как устроен NaN на FPU я тоже знаю).
ты делаешь это неправильно. почитай зачем вообще нужны троичные машины. одна из причин увеличенная плотность записи информации.
Щито поделать, у меня двоичное квадратно-гнездовое мышление.
практическое применение "третьего значения" именно в понимании неопределённости или невалидного значения
Но зачем? Тогда мы ведь сводим арифметику к двоичной и, фактически, лишаемся имеющихся преимуществ. При этом, думаю, обрабатывать это будет нефига не проще, чем (например) отдельный флаг ошибки.
NULL в C не обязательно равен 0
Кстати да, фейлю :-)
И да, один хрен не понимаю, чем флаг "хозяин, мне не удалось это посчитать" схож с квантовыми явлениями (один хрен - система в одном, непротиворечивом состоянии, хоть и в невалидном состоянии - ни разу не похоже же).
Вопрос - какая связь между квантовыми компьютерами (кеп сообщает, что они используют квантовые явления) и троичной логикой?

дай-ка я угадаю : никакой?
Блядь, ну не машина различий, а разностный вычислитель. Ну или двигатель.
emaster emaster 03.12.201522:13 ответить ссылка 0.5
difference engine, короче :)
И не "дополнение", а сложение.
Alkoz Alkoz 04.12.201500:25 ответить ссылка 0.0
8.Трекбол - аналог современной компьютерной мыши.
Если только пост писался в конце девяностых - начале двутысячных, ибо колесиковые мыше уже давно не современные.
vvasili vvasili 03.12.201523:38 ответить ссылка -1.0
Словосочетание "функциональный аналог" знакомо?
Давай дальше!
А самое главное что нет никакого упоминания про псевдо гения Джобса)
Спасибо!
pkap pkap 08.12.201500:06 ответить ссылка 0.0
Пожалуйста!
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
MEMORY ADORESS
EXCHANGE
oiSTweuTOR
INSTRUCTION
WER
CONTROL
COUNT DOW«
PROGRAM aooress
подробнее»

сестра компьютеры наука код языки программирования

MEMORY ADORESS EXCHANGE oiSTweuTOR INSTRUCTION WER CONTROL COUNT DOW« PROGRAM aooress
Если бы языки программирования были оружием
С++ — это нунчаки, мощные и впечатляющие, когда находятся 8 руках у мастера, задумываешься о том, что неплохо бы использовать что-нибудь другое.
Go — это кастомно сделаный из 'if err != nil" пистолет-стартер, и после каждого выстрела надо убедиться в то
подробнее»

компьютер программирование языки программирования Смешные комиксы,веб-комиксы с юмором и их переводы

Если бы языки программирования были оружием С++ — это нунчаки, мощные и впечатляющие, когда находятся 8 руках у мастера, задумываешься о том, что неплохо бы использовать что-нибудь другое. Go — это кастомно сделаный из 'if err != nil" пистолет-стартер, и после каждого выстрела надо убедиться в то
КОГДА ПЫТАЕШЬСЯ ВЫУЧИТЬ ЛЮБОЙ ЯЗЫК ПРОГРАММИРОВАНИЯ
НА СТО ПРОЦЕНТОВ
подробнее»

Смешные комиксы,веб-комиксы с юмором и их переводы программирование компьютер

КОГДА ПЫТАЕШЬСЯ ВЫУЧИТЬ ЛЮБОЙ ЯЗЫК ПРОГРАММИРОВАНИЯ НА СТО ПРОЦЕНТОВ
Difference of programming languages
Pascal/Delphi:	writeln(	'Hello,	world!');
cout << "Hello World!"; C++:	return	0;
BASIC:	PRINT	"Hello,	world!"
Python:	print(”Hello,	world!")
Ruby:	puts	"Hello,	world!"
Brainfuck:
(=<':9876Z4321UT.-Q+*)M'&%$H"!~}| Bzy?=|{z]KwZY44Eq0/{mlk**hKs_dG5
[m_BA{? -
подробнее»

geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор программирование it Смешные комиксы,веб-комиксы с юмором и их переводы Мемы,Мемосы, мемасы, мемосики, мемесы юмор,юмор в картинках компьютеры песочница

Difference of programming languages Pascal/Delphi: writeln( 'Hello, world!'); cout << "Hello World!"; C++: return 0; BASIC: PRINT "Hello, world!" Python: print(”Hello, world!") Ruby: puts "Hello, world!" Brainfuck: (=<':9876Z4321UT.-Q+*)M'&%$H"!~}| Bzy?=|{z]KwZY44Eq0/{mlk**hKs_dG5 [m_BA{? -