– Лосяра, но ведь она и так не станет. Чисто по весу, объему. Опять же, конкуренты. Супертехнологии, оптические компьютеры, квантовые там… Лось, какие мы еще слышали?
– Нейросети.
– Ага. Нейросети, вот. Огромная скорость!
Шарк развел руками:
– Прикинь, космос. Там радиация, метеориты всякие, космические излучения, зведный ветер. Все эти супер – они на тонком-тонком основании. Микронный процесс, нейтронная печать, сверхчистые комнаты. Дотащи до Юпитера сверхчистую комнату, а? И что в итоге: за счет одной электронной диффузии уже через десять-пятнадцать лет процессор превращается в тыкву. А представь, авария. Нашу-то антресолину можно восстановить одним паяльником, даже без микроскопа!
Шарк обвел взглядом дворик. Подумал, что пруд уже хорошо замерз, и каток можно открывать. Еще подумал, что сам кататься не полезет. Хватит с него шишек. Закончил:
– Это как выбросило человека на необитаемый остров. И надо сделать нож. Обычный нож.
– А ножом сделать все остальное?
– Точно. Только нож у нас межзвездный. Хотя, – Шарк зевнул уже по-настоящему, и оба мотовода повторили зевок, – нож все-таки из трех кусков сделан. А одним куском – только лом.
Лом раскачивался, как мачта миноносца, героически выходящего в безнадежную атаку. Великий Шварцнегер – ну, то есть, конечно, Терминатор, – с оторванной ногой, выпученным глазом и ломом в… Скажем так, в спине – упорно полз по грязому асфальту к не показанной на экране цели.
– Хм, – поморщился гость, – девочка не испугается? Она же маленькая еще.
Девочка прищурила на экран зеленые глазки:
– Вот прямо как дядя Саша. Ползет из бани, пьяный, к домику на даче.
Гость икнул и быстро поставил бокал – чтобы не расплескать. Родственники запереглядывались в очевидном шоке.
Снежана вспомнила высотку и вздрогнула.
Вообще-то, дома она вела себя именно как маленькая девочка. Дома же мама! И папа. Можно не прикидываться уверенной, как при школьных подружках. И можно не тянуться вверх, изображая взрослую и серьезную, как при Змее.
Правда, дома набрасывались черные мысли, что Змей ее всего лишь терпит. Что с Ингой тягаться сложно. И что тут вообще все как-то неправильно… Умом-то Снежана все понимала – но при виде Змея ум выключался напрочь.
Хотя бы дома не забивать голову – так нет же: семейный ужин.
Родственники. Важные гости. Общий киносеанс. Мелодраму не пропустили мужчины, а драму не захотели смотреть женщины. Огорчений, сказали, в жизни достаточно. Давайте что-нибудь легкое, только, ради всего святого, не сортирную комедию, мы же за столом… Так на громадном плазменном экране оказался боевик; ну и зачем спорили взрослые, если все равно на экран почти никто не смотрит?
И ладно бы еще, французский фильм – но любое голливудское поделие легко пересказать, никогда не видев. О чем бы ни шла речь, когда бы ни происходило действие фильма, хоть за тысячу лет перед Христом, хоть спустя сорок тысяч лет после – все равно покажут мужчин: бегущих и стреляющих, превозмогающих сквозь крепко стиснутые зубы. В фильмах, снятых позже фем-бунта, бегают и стреляют, крепко стиснув зубы, уже женщины. Только, ради политкорректности, выглядят они по-мужски, без акцента на сиськах. Так что даже непонятно, зачем их вставили в кино.
То ли дело Миядзаки! Каждая сказка о своем и все непохожи друг на друга. Пять, семь, девять сторон, и каждая хочет чего-то своего – прямо как в клубе! И уж конечно, Снежана нисколько не возмущалась тем, что героиня у Миядзаки почти всегда смелая девушка.
Но мультфильмы не захотели смотреть все те же взрослые. Как же, детские мультики! Лучше плоская стрелялка, чем хоть на пару минут задуматься или хоть на пол-сердца посочувствовать герою…
Снежана поняла, что кино тут всего лишь повод. Вон, дядя Витя, отец той самой глупой Светочки-брюнеточки. А вон и сама Светочка. Что в ней нашел брат Стас, чтобы так выделываться?
– … В соревнованиях по робототехнике. В команде с девочкой. Второе место!
– А что ваш робот сделал?
Стас помялся:
– Ничего, в общем.
– Так за что место дали?
– За уверенность! – и Стас подмигнул тут же расцветшей брюнетке. Вот что в ней такого? Решив спросить Ингу… Хотя, можно и Шарка. Не Змея же, еще в самом деле выяснять примется… Девочка плотнее прижала к себе розового плюшевого мишку. Эх, как жаль, что “Голубую сталь” дальше не снимают!
А взрослые действительно видят в ней ребенка. Важный дядя, и не нашел ничего лучше, чем спросить:
– Отгадай загадку. Сидит дед, во сто шуб одет. Кто его раздевает, слезы проливает.
Снежана хмыкнула. Мама Тереза поморщилась: хмыкание напомнило клубного доктора, как там его? Симпак? Стимпак? А, Сумрак! Вздохнула тихонько: сколько на ее памяти приходило молодых, горячих – столько и перегорело. Выпихнуть его на стажировку, пока не поздно?
Дочка же ответила:
– Бомж, тут и думать нечего.
– А-а… Почему бомж?
– Наверчено тряпок. И воняет!
– А раздевают-то его зачем?
Снежана кивнула на маму:
– Попал в больницу.
Кивнула на папу:
– Или его обыскивают.
Важный дядя заметно стушевался и вернулся к застольной беседе с такими же пингвинами: черный пиджак, белая грудка-рубашка из воротника.
Слева наклонился дядя Витя:
– Снежана, а как ты так быстро выучила английский?
Змей говорил: дядя Витя программист. Настоящий, из какой-то там крупной конторы. Программировал что-то серьезное. Черт знает что, но жутко серьезное. Так что ему Снежана ответила:
– Чего там учить? Они почти все слова из С++ взяли!
Дядя Витя, разумеется, слышал о программистах “Факела”: он с дочкой гостил у Змеева папы, друга еще по студенческой молодости. Но дядя Витя полагал кружок собранием обычных детишек, слабо понимающих разницу между кодом символа и скан-кодом клавиши. Не то, чтобы выпендреж девочки его сильно удивил – но глубоко внутри дяди Вити шевельнулось нечто… Нечто, позабытое давно и прочно. То ли радость, когда адреса банков sVGA, наконец, перестали наползать друг на дружку и спрайты на экране перестали разъезжаться пельменеподобно. То ли злость на идиотскую архитектуру 8080, то ли горечь сообщения, что Макинтоши отказались-таки от Alpha-процессоров… То ли шок от скорости рабочей станции Silicon Grafics под Iris – совершенно инопланетное изделие, особенно рядом со страшной в те годы девяносто пятой виндой…
– Так вы там изучаете С++?
Снежана помотала головой:
– Всего по чуть-чуть.
– Что-то конкретное делаете? Или так, учебные примеры?
Снежана вздохнула. Не получилась из нее маленькая девочка! Эх, говорил же Змей на балу: “Фарш невозможно провернуть назад”. Вспомнив свой ответ Змею, Снежана внезапно развеселилась. Программист, говорите? Сейчас изобразим:
– Лично я пишу компилятор.
Дядя Витя вздрогнул и сел прямо, но не сказал ни слова. Карие глаза у дяди Вити. И довольно широкие. Снежана улыбнулась:
– Компиляция понимается, как перевод входного потока символов в выходной поток – команды процессора. То есть, в машинный код. Более широкое определение компиляции – замена символов входного языка символами выходного языка, на основании набора правил такой замены. Но там сложно!
Дядя Витя глянул на дочь – та только что не обвивалась вокруг Стасика. Предложил:
– Отойдем?
Снежана подмигнула папе, мило улыбнулась маме. Выскользнула из-за стола. Дядя Витя смотрел на девочку с непонятным выражением лица. То ли удивлялся – то ли сожалел.
Отошли к дверям гостиной, где братья разметили место под елку, но саму елку пока что не поставили.
– И какие же… Сложности?
Девочка театрально вздохнула:
– Как найти нужный элемент в памяти? То есть, какова должна быть форма адресации, чтобы поиск заканчивался в разумный срок? И какой срок считать разумным? Структура хранения для быстрого поиска? Особенно, если средняя задача сто мегабайт чистых, не считая разметочной информации?
Папа, слушающий краем уха, вздрогнул и мало не уронил с вилки рыбку. Мама безнадежно развела руки: такая вот выросла. Не запихивать же обратно!
Снежана улыбнулась родителям еще милее, повернулась к собеседнику:
– Что делать, если команда или данные не найдены? Вы же знаете, основная ошибка виндовс – вылет за пределы отведенного сегмента. Кроме того, необходимо дать пользователю языка возможность включить и выключить кусок структуры данных на горячую. Иначе никакой сети, никакого распараллеливания.
Дядя Витя икнул. Дядя Витя мигнул. Дядя Витя поднял обе руки к галстуку и зачем-то подергал его вниз:
– И как… Вы решаете?
– Для начала, Шарк предложил переформулировать задачу. Чтобы проблемная область не сплошая масса данных, а некоторая упорядоченная иерархия объектов, типа BSP/PVS-структур в 3D-шутерах. Такие иерархии понятий символьные языки обрабатывают лучше. Ошибиться в связном дереве труднее, чем в сырой массе цифр.
– А что за символьные языки?
– Делим все данные на две группы. Символьные и числовые. Символом назовем последовательность знаков, представляющую что-то из моделируемого мира. Тогда число – символ, представляющий самого себя. Новые процессоры все числовые. Символьных сейчас нет. Шарк рассказывал, последние попытки делали финны, лисп-машины, еще при живом СССР. Соответственно, и языки сейчас ориентированы на числодробилку. Однако, поскольку множество символов включает в себя числа, как подмножество, то символьные процессоры, в теории, могут лучше работать с числами, чем числовые процессоры с символами. Соответственно, символьный язык – ассемблер для символьного процессора. Или эмулятора, это понятно.
– Хм… Некая логика есть. А что дальше?
– А дальше в машинной памяти создается одинаково древовидная структура объектов, ссылающихся друг на друга. Сегодня вовсе неважно, на каком исходном языке писали программу. На момент исполнения процессор видит в памяти одну и ту же древовидную структуру: поля данных, переплетенные взаимными ссылками. Так вот, – Снежана опять улыбнулась, – “class” в том вашем С++, с его свойствами, и будет примерным описанием символа, как некоего понятия предметной области. Следовательно, любая программа – компилятор. В смысле, переводчик с языка предметной области на язык процессора.