В цикле статей «Предыстория искусственного интеллекта» кратко описана история развития научных дисциплин, которые внесли свой вклад в область искусственного интеллекта в виде конкретных идей, воззрений и методов.
Вычислительная техника (период с 1940 года по настоящее время).
Для успешного создания искусственного интеллекта требуется, во-первых, интеллект и, во-вторых, артефакт. Наиболее предпочтительным артефактом в этой области всегда был компьютер. Современный цифровой электронный компьютер был изобретен независимо и почти одновременно учеными трех стран, участвующих во Второй мировой войне. Первым операционным компьютером было электромеханическое устройство «Heath Robinson», созданное в 1940 году группой Алана Тьюринга для единственной цели – расшифровки сообщений, передаваемых немецкими войсками. В 1943 году та же группа разработала мощный компьютер общего назначения, получивший название «Colossus», в конструкции которого применялись электронные лампы. Первым операционным программируемым компьютером был компьютер Z-3, изобретенный Конрадом Цузе в Германии в 1941 году. Цузе изобрел также числа с плавающей точкой и создал первый язык программирования высокого уровня, «Plankalkul». Первый электронный компьютер, ABC, был собран Джоном Атанасовым и его студентом Клиффордом Берри в период с 1940 по 1942 год в университете штата Айова. Исследования Атанасова почти не получили поддержки или признания; как оказалось, наибольшее влияние на развитие современных компьютеров оказал компьютер ENIAC, разработанный в составе секретного военного проекта в Пенсильванском университете группой специалистов, в состав которой входили Джон Мочли и Джон Экерт.
За прошедшее с тех пор полстолетие появилось несколько поколений компьютерного аппаратного обеспечения, причем каждое из них характеризовалось увеличением скорости и производительности, а также снижением цены. Производительность компьютеров, созданных на основе кремниевых микросхем, удваивается примерно через каждые 18 месяцев, и такая скорость роста наблюдается уже в течение двух десятилетий. После достижения пределов этого роста потребуется молекулярная инженерия или какая-то другая, новая технология.
Безусловно, вычислительные устройства существовали и до появления электронного компьютера. Первым программируемым устройством был ткацкий станок, изобретенный в 1805 году Жозефом Марией Жаккардом (1752—1834), в котором использовались перфокарты для хранения инструкций по плетению узоров ткани. В середине XIX столетия Чарльз Бэббидж (1792—1871) разработал две машины, но ни одну из них не успел закончить. Его «разностная машина» предназначалась для вычисления математических таблиц, используемых в инженерных и научных проектах. В дальнейшем эта машина была построена и ее работа продемонстрирована в 1991 году в лондонском Музее науки. Другой замысел Бэббиджа, проект «аналитической машины», был гораздо более амбициозным: в этой машине предусмотрено использование адресуемой памяти, хранимых программ и условных переходов, и она была первым артефактом, способным выполнять универсальные вычисления. Коллега Бэббиджа Ада Лавлейс, дочь поэта Лорда Байрона, была, возможно, первым в мире программистом. В ее честь назван язык программирования Ada. Она писала программы для незаконченной аналитической машины и даже размышляла над тем, что эта машина сможет играть в шахматы или сочинять музыку.
Искусственный интеллект во многом обязан также тем направлениям компьютерных наук, которые касаются программного обеспечения, поскольку именно в рамках этих направлений создаются операционные системы, языки программирования и инструментальные средства, необходимые для написания современных программ. Но эта область научной деятельности является также одной из тех, где искусственный интеллект в полной мере возмещает свой долг: работы в области искусственного интеллекта стали источником многих идей, которые затем были воплощены в основных направлениях развития компьютерных наук, включая разделение времени, интерактивные интерпретаторы, персональные компьютеры с оконными интерфейсами и поддержкой позиционирующих устройств, применение среды ускоренной обработки, создание типов данных в виде связных списков, автоматическое управление памятью и ключевые концепции символического, функционального, динамического и объектно-ориентированного программирования.