из аналоговой техники следящих систем и аналоговой же математики, то фон Нейман опирался на цифровые вычислительные машины (он был одним из творцов ENIAC'а) и на математику дискретную, к которой в те времена можно было отнести комбинаторику с логикой. Кстати, к теории вычислений, к практическому применению идей Тьюринга фон Нейман пришёл, столкнувшись в гидродинамике с задачами, не решаемыми традиционными методами. Так что, учитывая цифровую основу современного мира информационных технологий, можно было бы назвать подход фон Неймана значительно более перспективным. Если бы не одно 'но'… Занятый практическими задачами теоретического человекоубийства, он оставил по теории автоматов лишь статьи (хоть и классические, например 'Вероятностная логика и синтез надёжных организмов из ненадёжных компонентов') и рукописи. Так что о результатах, полученных фон Нейманом в области моделей самовоспроизведения, знали лишь по упоминанию их в работах Клода Шеннона и Артура Бёркса.
Так что книга Джона фон Неймана 'Теория самовоспроизводящихся автоматов' увидела свет только в 1966 году, когда Артур Бёркс, также один из пионеров компьютерной техники, собрал, отредактировал и завершил работы фон Неймана по самовоспроизводящимся автоматам. Будь иначе – мир бы знал не кибернетику, а автоматику. (С русским переводом читатель может ознакомиться по изданию 1971 года, для которого Артур Бёркс написал специальное предисловие.)
Самовоспроизводящийся автомат Неймана был расширением универсальной машины Тьюринга. Такой же абстракцией, но которая может воспроизводить себя из материалов среды, в которой функционирует. С многочисленными аналогиями между абстрактными автоматами и биологическими системами читатель может ознакомиться в указанной работе.
Мы же отметим, что идея самовоспроизводящихся автоматов широко популяризировалась начиная с 1950-х годов. Оно положена в основу фантастического рассказа Анатолия Днепрова (псевдоним А. Мицкевича) 'Крабы идут по острову'. Машинная жизнь в 'Непобедимом' Станислава Лема – это именно самовоспроизводящиеся автоматы фон Неймана. Они, как помнят читатели (искренне завидую тем, кто этой повести ещё не читал), числом одолевали всесокрушающую мощь излучателей антиматерии. И вот в реальных войнах второй половины ХХ века самым смертоносным оружием также оказались автоматы фон Неймана!
Ну, о зашитых в человека программах читатель 'Компьютерры' знает. А теперь возьмём да и посмотрим на человека как на автомат фон Неймана. Вполне даже самовоспроизводящийся - в результате процедуры общеизвестной, но тем не менее вызывающей трафикообразующий интерес пользователей Сети, особенно юных… Хорошо, а при чём тут смертоносность?
А в каких войнах гибли люди после 1945 года?
Да в локальных!
А кто их движущая сила, хворост, который их разжигает и в них сгорает?
Да молодёжь, а то и детишки, из традиционных обществ. Размножаются они с минимальными издержками (это не городские, которым нужна кондиционированная палата в роддоме, опытный педиатр, покупаемые в магазине по немалой цене детское питание, памперсы и игрушки). Для них всё производит натуральное хозяйство. А самые простые прививки резко увеличивают число выживших. В деревне им особенно делать нечего – и земли мало, и город манит. Ну хорошо, если подоспеет индустриализация с её нуждой в рабочих руках. А если регион для индустриализации малопригоден, хотя бы по политическим соображения, по нестабильности? Ну, тогда дорога одна. К полевым командирам, в банду. Банду, хотя она и прикрывается той или иной идеологией, хоть националистической, хоть марксистской, хоть религиозной.
Мальчишкам, не прошедшим 'машин культуры' ни традиционного, ни современного общества, – сугубым самовоспроизводящимся автоматам – дают оружие. Очень неновое. Американский карабин М1. Дешёвый клон калашникова. Мачете. Да мотыгу или дубинку, наконец… Не имеет значения. Даже с винтовкой это боец тот ещё – даже самый технологичный и надёжный образец оружия требует и постоянной тренировки, и постоянного ухода. Но вот числом, низкой стоимостью своей жизни и полным безразличием к чужой дети- солдаты сильны. Они способны создавать проблемы даже профессионалам – поглядите фильм 'Падение чёрного ястреба'. А учинить геноцид, как 'красные кхмеры', как резня тутси-хуту, как человекоубийство в Судане, – так это без проблем! Без малейших моральных проблем. С тем, что мораль прививает, они разошлись расходящимися курсами. Главное их свойство – присущая самовоспроизводящимся автоматам способность к экспоненциальному росту. В начале комбинаторики лежит анекдот о мудреце, требовавшем положить на первую клетку шахматной доски одно зёрнышко, на второе – два… А фон Нейман, как помним, начинал с комбинаторики. Кончить же эти игры сложно не столько с технологической, сколько с моральной стороны дела.
Система PASS: софт для шаттла
Автор: Евгений Лебеденко, Mobi.ru
Порой, после очередного зависания Windows, не осилившей коктейль из множества запущенных процессов, задумываешься о том, каким же надёжным должно быть программное обеспечение, которое трудится там, где человеку ежесекундно угрожает смертельная опасность. Например, в космическом пространстве.
Программный код, написанный людьми, управляет системами пилотируемого аппарата, от действий которых зависят удачный взлёт, работа на орбите и посадка. И если в него закрадётся ошибка, последствия могут быть катастрофическими.
Именно так рассуждало руководство NASA, принимая решение о разработке компьютерной системы для проекта Space Transportation System, или, проще, Space Shuttle. И если с её аппаратной частью инженеры разобрались, создав дружную 'пятёрку' компьютеров GPC, то с программами для них пришлось основательно повозиться. И не только затем, чтобы выловить все ошибки, но и для того, чтобы преодолеть стереотипы системных программистов, считающих, что они в точности знают, как правильно создавать софт для космического челнока.
Многочисленные успешные миссии Space Shuttle на практике доказали правильность выбранного в NASA подхода для создания одной из самых сложных программных систем авионики - PASS (Primary Avionic Software System).
Приступая к проектированию программной системы Space Shuttle, руководство NASA имело возможность постоять на распутье, выбирая между уже имеющимися наработками, доказавшими свою состоятельность в пилотируемых полётах проекта Apollo, или разработкой с чистого листа.
Программированием компьютеров AGC (Apollo Guidance Computer) для лунных путешествий занималась лаборатория Дрепера, расположенная в Кембридже и относящаяся к Массачусетскому Технологическому Институту. Программная система компьютеров AGC разрабатывалась с использованием языка ассемблера. И эффективность этого подхода у специалистов не вызывала сомнений. С помощью ассемблерного кода можно виртуозно управлять вычислительным процессом, наиболее эффективно используя каждый байт памяти. Но у такой оптимизации имеется и обратная сторона: процесс разработки лабораторией Дрепера ассемблерных программ для проекта Apollo ни разу не уложился в отведённые сроки. А в случае обнаружения в уже разработанной программе ошибок её переработка превращалась в длительный процесс совместной работы инженеров NASA и программистов Дрепера, полный взаимных упрёков и препирательств.
И это при том, что миссии Apollo были сугубо специализированными. Проект же Space Shuttle предполагал создание многоцелевого космического аппарата, гибко подстраивающегося под текущие потребности NASA. Перепрограммирование компьютерной системы шаттла для каждой новой миссии должно быть быстрым, и язык ассемблера для такого случая был совершенно не пригоден. Именно поэтому руководитель отдела программирования NASA Ричард Партен принял решение использовать язык высокого