Результаты Вадим отправлял Савойскому. Игорь Всеволодович молча принимал работу и так же молча отправлял Вадиму новое задание. Не ругал, и это радовало, но и не хвалил, и это действовало на нервы. Но Вадим держался.
Старание никогда не бывает бесполезным. Постепенно работа стала понятной и привычной, и у него появилось свободное время. Скоро Вадим заметил, что Полиглот не настолько эффективен, как следует ожидать. Иногда комплекс замирал, запинался, вообще действовал странно. Ошибок не было, свою задачу Полиглот выполнял, но не так быстро. Задания копились, Савойский недовольно вздыхал, почему-то при этом поглядывая на Вадима. Вины за собой Вадим не видел, да и Игорь Всеволодович молчал, обходился без претензий.
Было в поведении Полиглота нечто странное, знакомое Вадиму по опыту прошлой работы. Как ни дико это звучало, что-то подобное Вадим уже встречал. Он прошерстил исходные тексты, и глаз ни за что не зацепился. Но проблема никуда не делась, и Вадим решился.
— Я хочу увидеть сырой текст Полиглота, — заявил он Савойскому при встрече. — Исходный, из Пузыря.
— Зачем? — спросил Савойский.
— Пропущу его через Полиглот, — объяснил Вадим.
— Но зачем? — удивился Игорь Всеволодович. — Мы давно уже вычистили все ошибки и отладили логику. Ты хочешь сделать это заново? Что ты хочешь добиться?
— Не знаю, — развёл руками Вадим. — Что-то. Должно быть что-то, чего я не вижу. Такое чувство, что…
Он не договорил, не нашёл слов.
— Хорошо, — сказал Савойский. — Если это тебе поможет… Иди, работай, я сброшу файл в твою папку на сервере.
Вернувшись к себе, Вадим подсунул Полиглоту полученные (Ого? Ничего себе объёмчик!) данные и заварил кофе. Сервер мерно журчал, пережёвывая мегабайты, бегунок прогресса на экране неторопливо полз к правому краю, а Вадим размышлял: ради чего он, собственно, это затеял? Не доверять Савойскому он не мог, перевод, безусловно, сделали безукоризненно. Что же можно углядеть в сыром, непричёсанном тексте?
Колонки заиграли «Марш Черномора» — Полиглот рапортовал о выполненной работе. Вадим загрузил в него новую порцию данных, а сам открыл файл с результатами.
Глаза скользили по строчкам. Всё то же самое, что и в эталонных листингах Полиглота. Кое-где поправлены имена переменных, кое-где добавлены обращения к функциям. В общем, ничего особенного, обычная косметическая правка. Что ещё? Савойский поудалял длинные комментарии, те, что посчитал ненужными. Неудивительно, исходный текст ими изобиловал, неведомый программист из Пузыря пояснял, казалось, любое своё действие, самое тривиальное. Зачем эта лишняя работа? Ведь всё требует времени…
А вот тут… Вадим замер, не поверив глазам. Осторожно отмотал текст назад, вчитался в комментарии заново. Нет, всё так и есть, и он не сошёл с ума! Почему-то бросило в пот, и заболели виски. Вадим осторожно выбрался из-за рабочего стола, достал из холодильника бутылку пива, откупорил.
Руки работали сами, без участия головы, потому что в голове звенела пустота. Мыслей не было, лишь одна вилась, не позволяя ухватить себя за хвост: неужели то, что он видит — на самом деле? Или Савойский решил подшутить, проверить нового — ну, относительно нового — сотрудника на психологическую устойчивость?
За окном, за низеньким заборчиком тренировались бегуньи. Становились на колодки, раз за разом стартовали, пробегали с десяток метров и возвращались к пузатому тренеру в синем тренировочном костюме. Тот что-то объяснял, сопровождаю свои слова размашистой жестикуляцией, и снова отправлял подопечных к стартовым колодкам.
Девицы были чудо как хороши в своих трико, который подчёркивали и выгодно оттеняли каждую выпуклость. Было в биографии Вадима короткое время, когда и он ходил в зал тягать железо, так что мог сравнить, и надо сказать, что легкоатлетические девушки были ничуть не хуже фитнес-девиц, а даже и лучше. Красивее, естественнее. В зал фитнеса записываются для того, чтобы построить фигуру, накачать ягодицы и прочее, прочее, а в беге и вообще любом спорте фигура — не главное, там работают на результат, и фигура получается сама собой, и она правильная, природная.
Пока Вадим рассматривал красивых девушек, шок рассосался, зато остались вопросы. Он распечатал пару страниц из листинга Полиглота, забросил в рот мятный леденец, — всё-таки пива выпил, — и отправился к Савойскому.
1. Парсер — программа синтаксического анализа, разбивающая входной текст на лексемы, то есть отдельные лексические единицы, например числа, знаки операций, математических или иных функций, а также служебные слова. Парсер обязательно присутствует в любом компиляторе или комплексе автоматического перевода. Здесь компилятор — программа для перевода текста на алгоритмическом языке высокого уровня, на котором пишет программу человек, в вид, понятный компьютеру.
2. Формальные грамматики — раздел математики, оперирующий абстрактными языками. Определяет правила, по которым строятся слова и выражения конкретного языка, а также позволяющие узнать, принадлежит ли некоторое слово этому языку.
3. Исходник — программа, записанная на некотором языке программирования. Результат работы человека-программиста. Специальная программа-компилятор переводит исходный текст в объектный код, то есть в такой вид, который понятен компьютеру. Остаётся один шаг до получения исполняемой программы, его выполняет редактор связей — программа, соединяющая куски объектного кода вместе и заменяющая относительные (абстрактные) адреса на абсолютные.
4. Дизассемблинг — обратный перевод из машинного, объектного кода в вид, с которым может работать человек. Результат представляет собой программу на языке нижнего уровня — ассемблере. Он отличается несложным синтаксисом и наличием большого числа относительно простых команд.
Глава 18
— Что это значит? — спросил его Савойский, когда Вадим положил перед ним свежую распечатку.
— Эта программа… — Вадим запнулся, подбирая слова. — Это моя программа, это я писал для «Горизонта»! Так, без комментариев, сходу и не поймёшь, а с комментариями… Это мои комментарии! Это я их писал. Я тогда сильно старался, как же, первая самостоятельная работа, вот и мусорил словами, чтобы ничего не забыть. А вдруг спросят: «А это что, парень? А что ты имел в виду?» А я и отвечу: это и вот это, и какие ещё вопросы?
Когда Вадим закончил свою тираду, Савойский, прищурившись, посмотрел сначала на него, а потом на висевшие на стене часы.
— Обед, — сказал он. — Пойдём-ка, просто Вадим, покушаем. Ты не против перекусить в компании начальника?
Есть Вадим не хотел, не привык в это время, но Савойский так произнёс слово «просто», так выделил его интонацией, что Вадим молча кивнул.
— Вот и славно, — кивнул Савойский. — Вот и двинулись.
Против ожиданий, Игорь Всеволодович повёл Вадима не в столовую, а в сторону лифтов. Пока поднимались, Савойский позвонил Трепникову.
— Перекусить не желаешь? — вместо приветствия спросил он. — Тогда мы ждём. Кто мы? Я и ещё один человек. Ага, именно.
Хитро улыбнувшись Вадиму, Савойский подтолкнут его к открывшимся дверям лифта:
— Тут, понимаешь, такой разговор пойдёт, особенный, его в столовой вести нельзя.
— Я уж было подумал, что Трепников в общей столовой… — начал Вадим.
— Нет, — прервал его Савойский. — Никита парень хороший и от коллектива не отрывается. Но то, о чём мы будем говорить, не для всехних ушей. Понял?
— Ага, — ответил Вадим, решительно ничего пока не понимая.
Помещение, куда Савойский привёл Вадима, мало чем отличалось от общей столовой. Те же мягкие стулья, те же столы, застеленный скатертями в цветочек, тот же сенсорный экран с меню.
Только было оно куда меньше, и стояли в нём всего два столика, а вдоль стены располагался длинный кожаный диван. Когда Вадим подошёл к экрану, он понял, что различий куда больше…