Ретро бит 5 (СИ). Страница 28

И тут я остался предоставлен сам себе. Перекусил в пиццерии, заглянул в библиотеку и выяснились две новости. Первая — как фальшивому студенту, бесплатный читательский билет мне не полагается. Вторая…

— Как резидент штата Калифорния, вы можете оформить читательский билет за десять долларов годового сбора прямо сейчас, — сообщила мне полненькая негритянка лет сорока из-за деревянной стойки.

— Оформляемся!

Возможно, самые выгодные десять баксов в моей жизни, так как их альтернативой являлась покупка полного комплекта Лэттис Си, а она грозила тратами в 500 баксов за возможность уточнить пару моментов в синтаксисе. Кое-что я уже узнал из классической книжки Ритчи — слова void в спецификации языка еще нет и по умолчанию функция main считается целочисленной.

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

— Спасибо, мэм. Теперь у меня два вопроса. Первый: книга, нужная мне для учебы — документация к компилятору Лэттис Си. Второй: есть ли у вас развлекательная литература? Все-таки чтение — это еще и отдых.

— У нас нет сортировки книг по жанрам. Но всё, что найдете в каталоге — в вашем распоряжении, университет регулярно пополняет фонды. А внизу, на первом этаже, есть библиотека Моррисона — уютное место с кожаными креслами, где нельзя учиться, но на полках стоят бестселлеры.

Каталог — набор металлических ящичков с карточками, отсортированными по названию. И тут мне повезло, на букву L нашелся искомый мануал. Как очень ценный, его запрещалось выносить из читательского зала, но мне всего-то пару моментов уточнить.

Как всё знакомо. У нас в конце девяностых в городской библиотеке все один в один организовано. Выделив полтора часа на чтение, выяснил, что Лэттис слегка урезал классическую спецификацию языка, но ничего катастрофического. Можно прожить и без перечислений, например. Проторчал в библиотеке до вечера, но зато забил блокнотик пометками о том, что сработает, а что нет. До художки так и не добрался, подходила пора спешить в Эванс Холл — цитадель научно-технического прогресса.

И правда, цитадель — громадный железобетонный куб, напомнивший мне советскую панельную девятиэтажку или окружную тюрьму, в которой сидел Гектор. Может быть, даже один и тот же архитектор постарался.

Шестой этаж и небольшая аудитория, менее, чем на два десятка человек, сплошь белых парней, не считая единственной девушки — той самой страшненькой блондинки с лекции по Паскалю. Может быть, она тоже охотится за головами? Работает в отделе кадров какой-нибудь корпорации? Но книга по Си на парте на вид настоящая. Я свою доставать не стал, просто сел на заднюю парту, где места хватило.

— Класс, давайте познакомимся. Я ваш преподаватель, мистер Сэм Гарланд, аспирант с кафедры электротехники и компьютерных наук, — быстрыми размашистыми движениями набросал имя мелом на доске тощий молодой человек лет двадцати пяти с усталым взглядом, которым он обвел всех собравшихся. Задержался на мне и на девчонке, тяжело вздохнул, но хотя бы немедленно выгонять не стал, а начал лекцию.

Ничего нового я не узнал. Но в целом намного полезнее, чем Паскаль для начинающих. Тему для начала выбрал обзорную — рассказал в двух словах об истории Си, об ОС Юникс, ради которой язык и создается, о мощных компьютерах PDP-11 и VAX, за которыми нам, возможно, посчастливится поработать. Время пролетело незаметно.

— У нас есть два места для гостевых студентов. Если таковые сегодня пришли, подходите к столу, — закончив обязательную программу, сказал он.

Как истинный джентльмен, пропустил девушку вперед. Хотя бы потому, что оне меня заинетерсовала. Как потенциальный сотрудник, в другом плане моё сердце занято навеки.

— Здравствуйте, меня зовут Бренда Бойл, я бы очень хотела изучить настоящее программирование, — вступила девушка.

— Для чего? Какие у вас есть навыки и задачи?

— Я работаю бухгалтером и хорошо знаю Паскаль, вот и…

Бухгалтер! Надо брать! Пусть напишет мне калифорнийскую версию «задницы Одина»!

— Настоящие программисты не используют Паскаль. Но вам с лихвой его хватит для расчета налогов, леди. Вы не приняты, — не дал договорить аспирант Сэм. Нашел за счет кого самоутверждаться.

В уголках серых глаз Бренды появились слезинки. А я, выходит, не настоящий программист.

— Мистер Гарланд, вы не правы. Позвольте мисс Бойл договорить, — не утерпел я. Робин Гуд ктулхов. Ну вот оно мне надо — влезать? В тот раз в школе на булочкины слезы стриггерился и конфликт с мисс фон Чичис заработал. И эта тоже, побольше поплачет — поменьше пописает, но… мужик я или не мужик, если позволю вот так девчонок тиранить?

— А вы, очевидно, ошиблись корпусом, молодой человек, — не стал сдерживать раздражение аспирант. — Кафедра этнических исследований находится в Уилер Холл, офис МЕЧА в Эшлеман-холл, библиотека Чикано и залы студенческого союза тоже не здесь. Вы не подходите. Мне по вашему равнодушному взгляду все стало понятно еще во время лекции.

Несколько задержавшихся белых очкариков захихикали, ожидая блистательное шоу. Дежавю! Я уже бывал в этом месте раньше!

— По какому критерию я и мисс Бойл не проходим, сэр? По цвету кожи и полу?

Не то, чтобы мне хотелось разыгрывать ту же карту, что и тем чикано со ступенек, их борьба не моя. Но…

— По знаниям и навыкам, амиго. Вы хотя бы простейший алгоритм сортировки написать способны? Сталкивались вообще с чем-то серьезнее Паскаля? Очевидно, что нет. Приходите тут, тратите моё время, качаете права, а затем взгляды прячете.

— Сортировка? Я могу. Это несложно, — твердо сказала девушка, утерев слезу бумажной салфеткой.

— Нет ничего проще, — подтвердил я.

Аспирант вздохнул со вселенской тоской.

— Пишите, — кивнул он в сторону доски.

Бренда справилась быстро. Взяла мел и написала белым по зеленому примитивный пузырьковый алгоритм на Паскале. Всё по ТЗ, как по мне.

— Сэр, прежде чем вы что-то скажете, я хочу поймать вас на слове — речь шла о простейшем алгоритме, мисс Бойл его и продемонстрировала. На мой взгляд — безупречно.

Толстушка посмотрела на меня с благодарностью. Вот как чувствует себя Лео, выступая в суде, наверное.

— Конечно, на ваш взгляд, вы же эксперт, — рассмеялся Гарланд.

Расисты-сексисты из зала охотно подхватили. Уроды.

— Позвольте, я докажу свой уровень компетентности, — не удержался я от хищной улыбки. — Мисс Бойл, передайте мне мел.

Глава 15

Ох не зря я вспоминал алгоритм быстрой сортировки, когда начинал играться с Си. Его и воспроизвел на доске, собственно, на языке, созданном Деннисом Ритчи. Си не умрёт никогда — так и знай, на нас работы хватит, не переживай.

Квиксорт — самая-самая классика задач упорядочивания массива. Он и в новейшем времени актуален, но уже не совсем в чистом виде.

Никаких революций и фурора написанный мной на доске алгоритм совершить не должен, его придумали еще в какие-то лохматые времена, чуть ли не в шестидесятых, но вот доказать мою собственную компетентность безупречный код на Сях обязан. И утереть нос расисту-аспиранту, да. Пусть весь мой опыт и говорит о том, что так легко «белый господин» обезьянку из гетто за равного не признает. Но с тем же Миллером в итоге удалось контакт наладить.

Группа поддержки из зала притихла. Когда какой-то там унтерменьш вдруг начинает демонстрировать неожиданные навыки, они всегда затыкаются. Сэм смотрел на мой код с прищуром и недоверием.

— Для чего нужно вот это условие? — ткнул он подобранной со стола указкой в третье ключевое ветвление.

— Проверка на то, что элемент равен опорному. Без нее будет медленно работать на массивах с большим количеством повторяющихся чисел.

— В классическом варианте быстрой сортировки нет проверки на равенство, только на больше и меньше. Вы сами придумали модификацию?




Перейти на страницу:
Изменить размер шрифта: