Читаем Исповедь в коде Ascii (СИ) онлайн бесплатно
В начале было Слово. И Слово было у Бога.
Блажен читающий и слушающий слова пророчества сего
и соблюдающие написанное в нем; ибо время близко.
Все началось в тот самый день, когда я создал виртуальную машину. Когда я ее еще только задумывал, она предназначалась для отладки вирусов. Я хотел создать точный эмулятор РC, но, столкнувшись с рядом чисто технических проблем, я отступил. К тому времени объем кода достиг восьмидесяти тысяч строк, и мне стало жалко бросать разработки. И тогда я решил направить их в другое русло.
В начале было действительно слово. И слово это – Программа. Именно так выглядит заголовок главного исходника на Паскале. А с большой буквы это слово только потому, что это признак хорошего стиля кодирования. Такой же, как функциональная декомпозиция или каскадная структуризация. Все через него начало быть, это истинно как True.
Я отвел под эмуляцию двадцать мегабайт и заполнил среду фракталами. Затем я поместил в нее колонии "Жизни", только с гораздо усложненным алгоритмом. Целыми днями я торчал в музеях с фотоаппаратом, а затем часами возился со сканером, вводя примитивы птиц и зверей. Когда галерея была готова, я принялся внедрять ее в свой мир. Шесть дней я потратил на это, и одержимость Моя достигла того предела, что я сначала отвлекался на работе, а затем и вовсе взял отгул. Ту неделю я почти не спал, оторваться меня заставлял лишь до невозможности перегретый монитор. Уже позже я поставил свой компьютер в серверную стойку, а пока одолжил второй монитор. Я похудел и оброс щетиной (кто знает, не причина ли это, что Бога рисуют с бородой), в комнате воняло потом и нестиранными носками. Размер моего мира пришлось увеличить до ста пятидесяти мегабайт.
Утром на седьмой день я осторожно запустил эмуляцию в пошаговом режиме. К моему огромному удивлению, мир не самоуничтожился и не впал в цикл. Структуры стали развиваться. От основных заложенных мною законов протянулись веточки следствий и начали сплетаться друг с другом. Я сохранил все файлы и, не дождавшись завершения работы Windows, вытянул их сети шнур питания, и заснул, умостив голову прямо на столе, кое-как отпихнув в сторону клавиатуру.
Я не сразу вернулся к нормальной жизни. Первые месяцы я почти безвылазно сидел дома, наблюдая за тем, как совершенствовался мой мир. А он ведь не просто совершенствовался – он самосовершенствовался! Да, мои первоначальные фракталы менялись; графические примитивы, сосканированные с шести стороне обретали пространственные очертания; одни программы рождались, уничтожали других, заимствовали их код и генерировали свой собственный. Те восемьдесят процентов дискового ресурса, которые я отвел для инфоволюции, потихоньку начали заполняться кодом, которого я не писал!
В те дни все было просто или относительно просто. Моделируемое время я пускал не быстрее объективного, а потому мог без проблем разобраться или даже откорректировать автогенерированный код. Я так и делал, направляя инфоволюцию в нужное мне русло. Только объем дискового пространства на моей машине сдерживал меня от эволюций по нескольким направлениям. Для этого бы пришлось целиком скопировать все файлы проекта.
Особенно тщательно я следил за одним существом, которого я назвал Адамом. Оно представляло первоначально собой файл размером в сто семьдесят килобайт, было прорисовано тщательнее других примитивов, обладало особым иммунитетом, который обеспечивали ему семнадцать фаговых систем, начальным уровнем знаний на двести процентов выше стандартного и имело принципиально новый алгоритм поведения. Оно одно за тридцать шесть дней моделируемого времени создало автокода больше, чем любая другая инфосистема. Я был в восторге.
Мое отчуждение от жизни сразу же заметили мои друзья. Заметили и не одобрили. Все они были первоклассными программистами, фанатично любили свою работу, но поголовно считали, что компьютер не может заменить реальной жизни. Но я то знал, что моя моделируемая жизнь не хуже, так называемой, реальной. Однажды они пришли ко мне домой посмотреть, чем я занимаюсь. Я несколько часов потратил на объяснения. Они ушли, сказав, что все это крайне интересно, но не стоит этим забивать себе голову так, чтобы не оставалось времени на другое. Я спросил: "А что другое?" Мне ответили: "Любовь, например".
И тогда я понял, чего не хватало мне в виртуальном мире. Не хватало особого созидательного чувства. Не стимула для созидания, нет. А созидания, как самоцели. Я решил взять за основу самую совершенную форму жизни в моем Эдемском Саду. Как я уже говорил, все тогда поддавалось вычислению. Огрубив мою модель мира и применив к ней алгоритм Адама, я получил, что количество генерируемого им автокода будет расти не беспредельно, а лишь до определенной границы при данной среде. Я получил график кривой и по точке изгиба вычислил необходимое время моделирования. А затем направил все ресурсы моего компьютера на виртуальную модель. Через четыре дня фактического, реального времени инфосистема "Адам" достигла в той среде своей точки Омега. Я остановил эмуляцию.
К тому времени дисковый резерв сократился до тридцати процентов. Четвертая часть автокода и седьмая автографики принадлежала Адаму. Он не только увеличивал свою базу данных и оттачивал свои алгоритмы, он еще и помогал делать это другим, взаимодействуя почти со всеми ему доступными неагрессивными инфосистемами.
Я увеличил дисковое пространство до полугигабайта, избавившись от большей части прикладных программ и от всех игр. Я докупил тридцать два мегабайта памяти и разогнал свой процессор.
Затем я принялся за любовь. Для этого я создал еще одно существо и нарек его Евой. Я извлек весь прогрессивный код Адама, все его ядро (а не только несчастное ребро) и декомпилировал его в Ассемблер. Я программировал Еву три недели, а Адам все это время спал. Я обнаружил, что десять из семнадцати фагов модифицировались, подстроившись под окружающую среду, а пространственные очертания отточились до совершенства сложнейших фрактальных структур. Я удалил семь неизменившихся защитных алгоритмов, добавил тринадцать новых, отредактировал текстуры и вручную отладил поведенческое ядро Евы, направив его по отличной от Адама ветви. Затем я вставил обоим килобайтный код совместимости для сглаживания конфликтов. Адски устав (объем кода и автокода, надо сказать, сильно возрос от начала эмуляции), я запустил имитатор.
Все работало превосходно! Я чуть было не сошел с ума от радости. Тогда у меня и возник проект автопрограммирования в глобальных масштабах. Я видел перед собой язык программирования пятого поколения, то есть систему с неформальным общением и возможностью решать задачи не последовательным перечислением элементарных или макроэлементарных действий, а посредством точного изложения условия задачи. Этот или подобный мир можно настроить таким образом, чтобы он генерировал автокод не спонтанно, а согласно потребностям. Но для этого нужно было проследить весь процесс инфоволюции.
Однако, справедливости ради, стоит заметить, что меня увлекала не столько идея языка программирования пятого поколения, сколько миросоздание в чистом виде без иных мотивов и целей.
Я жил словно в радужном сне, но в то же время чувствовал, что такая идиллия не может продолжаться вечно. И она закончилась в тот день, когда ко мне снова пришли мои друзья. Они отдали мне трехдюймовую дискету и попросили запустить имеющийся на ней файл на моем симуляторе. В качестве эксперимента. Они заверили меня, что ничего плохого не произойдет. Тогда я еще верил своим друзьям.
В моем Эдемском Саду росло дерево – динамическая библиотека, ядро виртуальной машины, тот самый код, который поддерживал функционирование всего мира. Я запретил любой системе заимствовать код ядра во избежание самоосознания, как потенциальной угрозы зацикливания. Еще я опасался, что инфосистема, взявшая код ядра, сама станет строить примитивную виртуальную машину внутри симулятора, что приведет к излишнему расходу ресурсов, затормозит и исказит развитие моего мира в целом.
А запущенный с дискеты файл оказался стелс-вирусом. Обманув фаговые системы, он прогрыз дырку в защите и заставил Еву внедрить в себя код ядра. Ревизор ядра заметил несовпадение контрольной суммы и тут же обнаружил по циклическому коду присутствие вируса. Но пока дырка была залатана, Ева, пользуясь блоком совместимости, успела передать часть кода Адаму. Фаги уничтожили привнесенный вирус, но он оставил после себя несколько полиморфных копий.
Так мой Сад был осквернен. Я снова остановил эмуляцию, изгнал Адама и Еву на немодифицированное пространство и выставил пятьсотдвенадцатибайтный ключ на вход. Я проанализировал код Адама и Евы и пришел к выводу, что они могут самопроизвольно размножаться. Для такой инфосистемы это было весьма сложной функцией, ведь приходилось избирательно передавать часть кода, присущего обоим родителям, способного к инфоволюции до уровня оригинала. К тому времени файл Адама занимал 6,23 мегабайта, а Евы – 5,78. При интенсивном размножении эти существа могли быстро заполнить весь мой винчестер. Тогда я создал пакет своих вирусов, способных уничтожать существа по отметке времени. Я долго экспериментировал с периодом жизни существ. Сначала я установил его равным девятистам годам модельного времени, но затем (особенно в последние годы, когда их стало слишком много, а я, даже купив четвертый винчестер, испытывал недостаток в свободной памяти на диске) медленно опустил до семидесяти в среднем.
Мой мир не рухнул от вируса. Он стал даже лучше… в каком-то смысле. В зацикленном на себя Саду я все еще по наивности пытался внедрить старые протопрограммы Евы и Адама, но они оказались слишком примитивными для усложнившегося мира. Тогда я решил рискнуть. Я привил флоре и фауне Сада способность к размножению из кода Адама, измененного вирусом, а прикладным ангелам из оптимизационного пакета – способность к уничтожению этих видов и, сломав немодифицированное пространство, размножил Сад на весь виртуальный мир. Сам же Сад я уничтожил.
Конечно, склонированный со случайными модификациями, мой мир не был так хорош, как бы он мог быть, если бы эволюционировал из расширяющегося с каждым мгновеньем Сада. Но это был единственный способ вообще сохранить его.
И тогда, поставив модельное время на максимум, я проследил общую тенденцию инфоволюции моего мира. Убедившись в отсутствии деструктивных логических цепей, я успокоился и стал мало-помалу все больше внимания обращать на реальную жизнь. Свои отношения с друзьями я разорвал, любимой девушки у меня не было, работа шла кое-как, и, главное, мои доходы начали резко падать. Я продал квартиру и переехал в столицу работать администратором банковской сети. Моделирование я остановил только один раз – на время переезда.
Войдя в привычное русло, я даже несколько остепенился. Бывали моменты, правда совсем уж редко, когда мне казалось, что мне надоела эта затея. Наверное, сказывалась обычная усталость. Несколько раз я пытался начать роман с девушками, но отношения всегда прерывались – по моей инициативе.
В конце концов, меня начали беспокоить характеристики моей машины. Дело не в мощности процессора – моделируемое время может быть сколь угодно медленным по сравнению с фактическим, а вот место на жестком диске не может расти неограниченно. Если объем автографики почти уже не увеличивался, то автокод рос потрясающими темпами. Я искал выход – копил деньги на апгрейд своего компьютера.
А решение нашли они. Инфосистемы модельного мира изобрели сон. Я вновь стал терять интерес к реальному миру. Мое очередное помешательство длилось около месяца – я стал вял, апатичен и неинтересен окружающим. Но этот виртуальный сон стоил того! Заснувшее существо почти не потребляло вычислительных ресурсов, поэтому, когда половина моего мира спала, вторая половина жила в моделируемом времени, ускоренном в два раза. Но даже это не главное. Инфосистема во время подготовки ко сну упаковывала свой код и графику, занимая таким образом меньше места на диске. Просыпаясь, распаковывала. Сначала алгоритмы упаковки были примитивными, но быстрыми, что-то в стиле RLE. Затем у одних существ я заметил куски LZW, у других – Хаффмана, а третьи пользовались вообще доселе мне неизвестным (и весьма эффективным!) методом сжатия.
Я заметил, что помимо запрограммированных мною фагов и вирусных ангелов стали появляться "естественные" антивирусные системы. Кроме того, вонизкли оптимизационные инфосистемы, удалявшие цепочки потерянных кластеров, осиротевшие библиотеки и загрузочные модули, и даже недееспособные зациклившиеся виды. Инфоволюция в моем мире не прекращалась ни на секунду.
И тогда, протестировав виртуальную машину на целостность, я снова обратил свой взгляд на людей (я не заметил когда, как и почему дал им такое название). Оставаясь непревзойденной по уровню алгоритмизации инфосистемой, они принялись активно изменять окружающую их среду. Они научились не только извлекать чужой код, но и внедрять свой в чужие инфосистемы. Я вновь остановил эмулятор и, провозившись с их кодом около двух недель, прихожу к выводу, что они вышли на новый уровень существования – высокая степень самоосознания. Я решаюсь создать им послание.





