реклама
Бургер менюБургер меню

Михаил Бобров – Запиханка из всего (страница 69)

18

– А что ваш робот сделал?

Стас помялся:

– Ничего, в общем.

– Так за что место дали?

– За уверенность! – и Стас подмигнул тут же расцветшей брюнетке. Вот что в ней такого? Решив спросить Ингу… Хотя, можно и Шарка. Не Змея же, еще в самом деле выяснять примется… Девочка плотнее прижала к себе розового плюшевого мишку. Эх, как жаль, что “Голубую сталь” дальше не снимают!

А взрослые действительно видят в ней ребенка. Важный дядя, и не нашел ничего лучше, чем спросить:

– Отгадай загадку. Сидит дед, во сто шуб одет. Кто его раздевает, слезы проливает.

Снежана хмыкнула. Мама Тереза поморщилась: хмыкание напомнило клубного доктора, как там его? Симпак? Стимпак? А, Сумрак! Вздохнула тихонько: сколько на ее памяти приходило молодых, горячих – столько и перегорело. Выпихнуть его на стажировку, пока не поздно?

Дочка же ответила:

– Бомж, тут и думать нечего.

– А-а… Почему бомж?

– Наверчено тряпок. И воняет!

– А раздевают-то его зачем?

Снежана кивнула на маму:

– Попал в больницу.

Кивнула на папу:

– Или его обыскивают.

Важный дядя заметно стушевался и вернулся к застольной беседе с такими же пингвинами: черный пиджак, белая грудка-рубашка из воротника.

Слева наклонился дядя Витя:

– Снежана, а как ты так быстро выучила английский?

Змей говорил: дядя Витя программист. Настоящий, из какой-то там крупной конторы. Программировал что-то серьезное. Черт знает что, но жутко серьезное. Так что ему Снежана ответила:

– Чего там учить? Они почти все слова из С++ взяли!

Дядя Витя, разумеется, слышал о программистах “Факела”: он с дочкой гостил у Змеева папы, друга еще по студенческой молодости. Но дядя Витя полагал кружок собранием обычных детишек, слабо понимающих разницу между кодом символа и скан-кодом клавиши. Не то, чтобы выпендреж девочки его сильно удивил – но глубоко внутри дяди Вити шевельнулось нечто… Нечто, позабытое давно и прочно. То ли радость, когда адреса банков sVGA, наконец, перестали наползать друг на дружку и спрайты на экране перестали разъезжаться пельменеподобно. То ли злость на идиотскую архитектуру 8080, то ли горечь сообщения, что Макинтоши отказались-таки от Alpha-процессоров… То ли шок от скорости рабочей станции Silicon Grafics под Iris – совершенно инопланетное изделие, особенно рядом со страшной в те годы девяносто пятой виндой…

– Так вы там изучаете С++?

Снежана помотала головой:

– Всего по чуть-чуть.

– Что-то конкретное делаете? Или так, учебные примеры?

Снежана вздохнула. Не получилась из нее маленькая девочка! Эх, говорил же Змей на балу: “Фарш невозможно провернуть назад”. Вспомнив свой ответ Змею, Снежана внезапно развеселилась. Программист, говорите? Сейчас изобразим:

– Лично я пишу компилятор.

Дядя Витя вздрогнул и сел прямо, но не сказал ни слова. Карие глаза у дяди Вити. И довольно широкие. Снежана улыбнулась:

– Компиляция понимается, как перевод входного потока символов в выходной поток – команды процессора. То есть, в машинный код. Более широкое определение компиляции – замена символов входного языка символами выходного языка, на основании набора правил такой замены. Но там сложно!

Дядя Витя глянул на дочь – та только что не обвивалась вокруг Стасика. Предложил:

– Отойдем?

Снежана подмигнула папе, мило улыбнулась маме. Выскользнула из-за стола. Дядя Витя смотрел на девочку с непонятным выражением лица. То ли удивлялся – то ли сожалел.

Отошли к дверям гостиной, где братья разметили место под елку, но саму елку пока что не поставили.

– И какие же… Сложности?

Девочка театрально вздохнула:

– Как найти нужный элемент в памяти? То есть, какова должна быть форма адресации, чтобы поиск заканчивался в разумный срок? И какой срок считать разумным? Структура хранения для быстрого поиска? Особенно, если средняя задача сто мегабайт чистых, не считая разметочной информации?

Папа, слушающий краем уха, вздрогнул и мало не уронил с вилки рыбку. Мама безнадежно развела руки: такая вот выросла. Не запихивать же обратно!

Снежана улыбнулась родителям еще милее, повернулась к собеседнику:

– Что делать, если команда или данные не найдены? Вы же знаете, основная ошибка виндовс – вылет за пределы отведенного сегмента. Кроме того, необходимо дать пользователю языка возможность включить и выключить кусок структуры данных на горячую. Иначе никакой сети, никакого распараллеливания.

Дядя Витя икнул. Дядя Витя мигнул. Дядя Витя поднял обе руки к галстуку и зачем-то подергал его вниз:

– И как… Вы решаете?

– Для начала, Шарк предложил переформулировать задачу. Чтобы проблемная область не сплошая масса данных, а некоторая упорядоченная иерархия объектов, типа BSP/PVS-структур в 3D-шутерах. Такие иерархии понятий символьные языки обрабатывают лучше. Ошибиться в связном дереве труднее, чем в сырой массе цифр.

– А что за символьные языки?

– Делим все данные на две группы. Символьные и числовые. Символом назовем последовательность знаков, представляющую что-то из моделируемого мира. Тогда число – символ, представляющий самого себя. Новые процессоры все числовые. Символьных сейчас нет. Шарк рассказывал, последние попытки делали финны, лисп-машины, еще при живом СССР. Соответственно, и языки сейчас ориентированы на числодробилку. Однако, поскольку множество символов включает в себя числа, как подмножество, то символьные процессоры, в теории, могут лучше работать с числами, чем числовые процессоры с символами. Соответственно, символьный язык – ассемблер для символьного процессора. Или эмулятора, это понятно.

– Хм… Некая логика есть. А что дальше?

– А дальше в машинной памяти создается одинаково древовидная структура объектов, ссылающихся друг на друга. Сегодня вовсе неважно, на каком исходном языке писали программу. На момент исполнения процессор видит в памяти одну и ту же древовидную структуру: поля данных, переплетенные взаимными ссылками. Так вот, – Снежана опять улыбнулась, – “class” в том вашем С++, с его свойствами, и будет примерным описанием символа, как некоего понятия предметной области. Следовательно, любая программа – компилятор. В смысле, переводчик с языка предметной области на язык процессора.

Судя по лицу дяди Вити, он понял.

Судя по лицам всех остальных, понял только дядя Витя.

– Э-э… – дядя Витя вежливо и коротко наклонил голову. – Благодарю. Мне… Нужно подумать.

Снова поправил галстук и отошел.

Подошел заметно встревоженный папа:

– Снежана, ты что творишь? Ты себя со стороны видела?

Девочка бросила взгляд на ноги, руки, живот: с одеждой все в порядке. Покрутилась, заглядывая за спину: ничем не измазано, нигде не расстегнуто.

– А что?

– У тебя голос изменился, – генерал-майор госбезопасности поежился. – Металлический голос. Взрослый. Ты же это все вещала с чужих слов, так?

Снежана независимо вскинула голову:

– А что такого-то? Ты же сам говорил, что научиться можно только на реальных примерах.

– Но зачем же вам такие сложности?

– А что мне, дурой оставаться? Сам же говоришь, будущее за программистами. Если роботы везде, кто-то же их должен программировать, нет?

Папа оглянулся на вернувшихся к столу гостей, успокоительно махнул рукой жене. Покосился на дочку:

– Но тебе же только тринадцать лет.

– Папа, а что ты знаешь про тринадцатилетних? Вот из нашего класса? Ты в курсе, что Ирка и Светка литрами жрут пиво в туалете – типа, уже взрослые? Что Танька и Ленка на полном серьезе обсуждают, кто из парней лучше трахается? А как Юлька говорила про своего будущего мужа: “Найду такого, чтобы зарплата четыреста, это средняя по стране. Матиз маленький стоит сорок тысяч, как раз по четыреста в месяц на десять примерно лет. Жить будем у меня, на обеды я ему буду что-нибудь отдавать. А потом и развестись недолго.” И ей вообще по… Пофиг, что это будет за мужик, чего сам он будет хотеть или не хотеть. Папа, даже я понимаю, что мужик такого не потерпит!

Папа вздохнул. Хорошо, что дочка ему доверяет. Но что в обычной школе так вот запросто…