Истории компьютерных наук. Часть 0

Давно собирался.

У меня есть искреннее убеждение, что если хочешь заниматься чем-то серьёзно то тебе необходимо знать историю того чем ты хочешь заниматься.

На самом деле это не блажь, а вполне себе обоснованное утверждение. Знание истории предмета предотвращает "изобретение велосипеда" и ошибки, которые до тебя уже делали. И, благодаря тому что историей заморачивались далеко не все, ошибки делали не один раз:)

Второй аргумент - если знаешь последовательность появления того или иного "прорыва" у тебя в голове всё правильно выстраивается. Понимаешь что из чего следует и почему.

Ну и третий аргумент - это интересно:)

В силу того, что "многабукафф" отталкивает, буду стараться писать небольшие посты. То есть будет цикл постов. В первом (этом) постараюсь пробежать по верхам, а в следующих постах подробней рассказывать об определённых событиях.

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

И да, на негатив мне насрать, на плюсы с минусами тоже. Если есть что сказать - говорите. Полемика приветствуется.

Ну, поехали...

Информатика - Наука, изучающая структуру, общие свойства и методы передачи информации, в том числе связанной с применением ЭВМ.

Тяга к вычислениям была у людей давно. Первыми инструментами для вычислений были кучки камешков, в Древней Греции и Риме были абаки (счётные досочки). Счёты, короче.

С развитием астрономии, мореплавания и военной инженерии инструменты, соответственно, тоже усложнялись, но истоки информатики не сводятся только к бухгалтерии, астрономии и баллистике. Информатика - дитя логики, математики и человеческого воображения. Думаю, справедливо будет отметить Аристотеля, заложившего понятие "о высказываниях, которые могут включать переменные, представляющие свойства. Такое высказывание может быть истинным при любых значениях переменных, может быть истинным только иногда или вообще никогда." Этот логический анализ имеет прямое отношение к информатике. Джорж Буль хотел актуализировать Аристотеля, выразить правила человеческого мышления в математической форме. Но это уже было совсем "недавно" и к Булю мы ещё вернёмся.

Забавно, но в конце XIX века часто встречались споры о том можно ли считать информатику наукой или нет. То есть, можно ли считать наукой науку об искусственном, имеющую лишь косвенное отношение к природе. Эти споры затихли только когда уже в XX веке алгоритмы были включены в программу математики. То есть когда увязали логику, развивавшуюся до этого абсолютно не касаясь вычислений, с математикой.

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

В одной из своих статей Тюринг, которого тоже очень хотелось бы отметить, упомянул об одном важном техническом приёме - устройстве хранения данных, в котором автомат мог хранить программы для других автоматов. Эту же идею реализовали Эккерт и Мочли в своей машине ENIAC. Сделали они это по чисто практическим соображениям, а не под влиянием теоретических работ Тюринга. Хранение программы в памяти на электровакуумных лампах ускоряло работу машины и упрощало изменение программы.

Когда Джон фон Нейман в 1945 вошёл в группу по проектированию машины EDVAC (вместе с Эккертом и Мочли), пришедшей на смену ENIAC, он взял на себя труд по составлению пояснительной записки, и с тех пор конструкция машины с хранимой программой известна как "архитектура фон Неймана" (не вполне заслуженно). Та же идея примерно в то же время была использована в Манчестерской малой экспериментальной машине Baby, а чуть позже в проекте ACE Тюринга. Видимо идея хранимой программы из тех, что приходит в голову сразу нескольким людям когда приходит время.

В то время когда компьютеры ещё только зарождались телефонизация шла полным ходом. Было несколько способов соединить коммутаторы проводами, получив один и тот же функциональный результат и инженеры освоили искусство минимизации используемого оборудования. Клод Шеннон, занимавшийся этой проблемой, понял, что законы мышления Буля, о которых он узнал на курсе философии, являются так же законами построения электрических схем. Если перевести схему на язык булевой логики, то полученную логическую формулу можно будет упростить, а потом вернуться обратно к языку схем, получив более экономичную конструкцию. Мало того, что булеву логику можно использовать для упрощения сложных выражений, так она ещё и упрощает восстановление истинного значения ослабленного сигнала. В 1950 Хэмминг предложил общий метод включения дополнительных битов в двоичные данные, так чтобы ошибки в процессе передачи данных можно было обнаруживать и при определённых условиях исправлять.

Думаю пока хватит. Опять простыня получается. Хотелось коротко по всему пройтись, а я сейчас только на половине своих набросков.

В общем, до следующих встреч!

Про железо

1.2K поста2.3K подписчиков

Добавить пост

Правила сообщества

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


2. Пользователь не должен переходить по ссылкам на сторонние ресурсы чтобы дочитать публикацию.


3. Допускаются ссылки на сторонние ресурсы, если эти ресурсы представляют какую-либо ценность (например, это справочные материалы). То есть – ссылки только по делу, если без них не обойтись.


Давайте уважать друг друга. Оскорбления, мат, переход на личное – порицаются. Здоровая критика и обсуждения – приветствуются.