– Это которые состоят из множества алгоритмов, которые вызываются из других алгоритмов, – с явной угрозой в голосе проговорила Феола. – То есть ты связываешься с ним и даешь силу, вызывая единственный алгоритм, а уж он вызывает остальные из самого себя. Таким образом, человеку не надо заботиться о последовательности выполнения действий.
– Гм… – я с опаской покосился на сестру. – Верно. Вот этот кристалл. Он построен как раз по такой схеме. На тех же пяти действиях. Когда ты его коснешься мыслью он зажжет свечу, поднимет кубик, обмотает его проволокой, подожжет от свечи и опустит чашу с водой, которая в этот момент закипит, а потом вся это конструкция будет водружена на вращающийся мячик.
– А смысл?
– Обычная демонстрация. Это все я делал для эксперимента. Надо же на чем–то экспериментировать? Вот я и выбрал первое, что в голову пришло.
– Ну так в чем же твоя схема заключается?
– О–о–о! Схема, как все гениальное, проста.
– Не скромничай, не скромничай. Чего уж там.
– Ну ладно–ладно. Короче, когда я стал делать свой кристалл, то просто растерялся. Я не знал, чего хочу получить. Обычно я как делаю? Пишу конечный результат. Думаю над некоей последовательностью действий, которая должна привести к нему. А потом каждому действию строю алгоритм в кристалле и связываю их в программу в нужной последовательности. При этом, сама понимаешь, алгоритмов может быть миллионы и выполняться они могут одновременно.
– Если энергии у человека хватит выполнять эти миллионы алгоритмов одновременно.
– Э–э–э… ну да. Это и есть узкое место кристаллов. Поэтому и приходится следить, чтобы одновременно не выполнялось больше сотни. Конечно, тут еще зависит от сложности, но… В общем, не думаю, что тебе интересны такие тонкости.
– Не интересны, – подтвердила Феола.
– Так вот. Я написал результат. Потом понял, что это не все. Ведь нужно не только получить доступ к пространству, грубо говоря. Надо еще совершать определенные действия. Причем вариантов этих действий я насчитал порядка пяти тысяч, а потом считать бросил. Раз преодолевать барьер, то это полет в корабле. Значит, надо закладывать функцию локации и навигации. Причем в зависимости от результатов, действия опять могут меняться. То есть, оказалось, что мне требовался не выращенный кристалл, а кристалл, который менял бы свою программу в зависимости от меняющихся условий. Ну тут, думал я, просто. Есть человек. Есть простейшие алгоритмы. Есть набор программ на основные случаи. Ну а если возникнет нужда, человек сам произведет необходимые действия из существующих простых алгоритмов.
– Для этого надо быть таким гением, как ты, олух царя небесного.
– Ну… проблема даже не в этом, – поморщился я. – Когда число алгоритмов в моем кристалле перевалило первую тысячу, я еще надеялся, что в Солнечной найдется кто–то, кто запомнит их все. Когда же их стало порядка пяти тысяч…
– Биокомпьютер.
– Верно. Ему это все по зубам. Но видишь ли… как ты думаешь, почему возрастало число алгоритмов? Да потому что всегда оказывалось, что я чего–то не учел и не заметил. Ты вообще, представляешь себе эти пять тысяч простейших действий? И какова вероятность, что я сделал все возможные? Что чего–то не пропустил? И вот в самый ответственный момент обнаруживается, что мой кристалл чего–то не умеет? Но это, на самом деле не проблема. Выращивается новый кристалл и уже человек действует через него. А вот с программами гораздо хуже. Ну не учел чего–то и вот я, зная свой кристалл досконально, выстраиваю новые связи между алгоритмами и добиваюсь нужного результата. И что дальше? Писать спецификацию, чтобы все, кто будет работать с моим кристаллом, вместо элементарного вызова нужной программы проделывали все мои действия согласно спецификации?