Ретро Бит. Акт 5 - Сева Сотх
Книгу Ретро Бит. Акт 5 - Сева Сотх читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!
Шрифт:
Интервал:
Закладка:
– Это было бы неспортивно. Не все тут изучали машинный язык PDP-11. Но это возможный выход. При использовании ассемблера вы бы получили порядка 1.2 секунды.
И как? Что-то такое на краю сознания зудело. Основные потери времени здесь не в копировании байтов памяти, а на самом цикле. А как быстрее? Убрать накладные расходы на обслуживание цикла можно через goto! Но чувствую, меня за его применение расстреляют на месте без суда и следствия.
“Не использовать метки и переходы по ним” – одна из первых заповедей программиста. Я бы сам всех собак на джуна спустил, примени он настолько грязное решение. Хотя в данном случае оно смотрелось бы не так и плохо.
Если goto – это выход, то надо, чтобы работало как с ним, но без него. Закрыл глаза и погрузился в недра воспоминаний. Решение продолжало напрашиваться, но никак не рождалось.
А стоит ли мне вообще напрягаться? Ну не совершу я невозможное. И что? С занятий меня не выгонят, двойку не поставят. Уважение не вычтут. Подозреваю, что в учебный план это занятие вписано специально, чтобы избавить нас от иллюзий о всемогущем Си. Но выпендриться-то хочется! Грешен – немного тщеславен и люблю купаться в лучах обожания коллег. Нравится мне, когда вокруг кодеры паникуют, и тут я весь такой из себя Д'Артаньян и решаю проблему парой строк кода.
– Да это невозможно! – воскликнул парень позади меня.
– Профессор Гарланд, а можете вы показать своё решение? – обратился еще один.
“Профессором” у пендехостанцев принято называть любого, кто ведет занятие, даже если это всего-то аспирант, мало отличающийся по статусу от студента.
Да что же они все так орут! Еще и дышат громко! И сердцами стучат. Или это у меня самого тахикардия началась?
Время занятия шло, я мысленно готовился к провалу, а решение все не вспоминалось. Чтобы успокоиться надел наушники, нажал на кнопку плеера и снова прикрыл глаза. Заиграли мексиканские трубы и меня окутал волшебный баритон Джонни Кэша.
Я провалился в огненное кольцо и буду падать, падать, падать… Гори, гори, гори...
Провалился! Ай, карамба! Вспомнил! Переход по веткам конструкции выбора switch-case компилятор Си преобразовывает в машинный код, аналогичный goto. Но за использование кейза никто предателем заветов дедушек Кнута и Вирта меня не назовёт. Спасибо вам, мистер Кэш. Ваша музыка здорово прочищает мозги. Я на ваш концерт схожу, чтобы свой респект высказать.
В приступе кодерского вдохновения я положил руки на клавиатуру и родил выносящий мозг нормальному человеку код. Уродца с циклом while, вложенным в switch и начинающемся в первом ветвлении, а заканчивающимся после последнего. Восемь веток, немного копипаста и готово. Я восхитителен.
Точнее, не я. Вспомнил, что это придумал инженер Лукасфильма, будущей студии Пиксар. Нам в политехе приводили его код, как пример странного случая, когда все считают, что программа вообще не скомпилируется, а она исполняется и очень быстро. Тот парень – настоящий гений. А я всего лишь плагиатор, вовремя вспомнивший чужое решение.
– Это не будет работать. Компилятор выкинет тебе ошибку, – сказал мне подглядевший через плечо аспирант Гарланд.
Точь-в-точь мои мысли, когда доцент написал на доске странную конструкцию с огромным количеством фигурных скобочек, за которыми попробуй уследи. Эх… где там моя IDE c подсветкой. На мощном университетском серваке отлично крутилась бы. Моник, правда, монохромный, с зеленым люминофором.
– Спорим, что заработает, профессор? – я еще раз окинул код взглядом и не нашел в нашем с пиксаровцем уродце явного изъяна. Мы просто сокращаем накладные расходы на цикл… ну, не в восемь раз, но очень сильно. Можно и еще несколько ветвлений добавить, добить до 10 или 16. Больше, скорее всего, лишено смысла.
– Заключать пари со студентами непрофессионально.
– На шоколадку, сэр. Это мелочь.
Уместнее было бы на пиво, по-“одмински”. Но от одной мысли всего передернуло и в ногу кольнуло. Психосоматика – она такая.
– Ладно, купишь мне сникерс, если так того хочешь, – в неформальной манере согласился Сэм. – Я лично обещаю, что выкуплю половину сладостей из вендингового автомата для того, чей код уложится в полторы секунды.
Слева и с тыла послышались смешки. Сидящий позади студент наверняка имел возможность подглядеть мне в монитор и увидеть психоделическую конструкцию из переплетения кейза и вайла, как будто бы операторы страстной любовью занялись.
Не бережет он свой кошелек. И не верит в то, что кто-то из студентов добьется результата.
Переходим в командный режим vi, :wq – сохранить файл и выйти. Запускаем компиляцию, супермощный компьютер справился с преобразованием программы в машинные коды непривычно быстро – всего за две-три секунды. Офигеть, хочу! Где такие продают? Мой 5150 провозился бы секунд 20, и то благодаря старине Корвусу. С дискетами совсем печальная картина прогнозируется.
Не слишком ли я самоуверен? Что, если компилятор Си из 1982-го обрабатывает кейзы как-то по-другому? Я даже не помню, в каком году пиксаровец придумал свой хак. Где-то в середине восьмидесятых, кажется. Но это не точно.
Скомпилилось, уже хорошо. Теперь запускаем. На секунду с небольшим я дыхание затаил. И… 1.35. У меня вскоре от шоколадок что-нибудь слипнется! А ну и ладно, одногруппников угощу. Они высокомерные задницы, но отношения налаживать надо, кое-кого я и нанял бы.
– Как? – спросил сосед сзади.
– Очень изобретательно, мистер Колон, – похвалил Сэм Гарланд. – По-своему изящно, – лихорадочная работа мысли прямо читалась в том, как по лбу молодого препода складки гуляли. – Я объясню всем желающим смысл решения после занятия, у вас есть еще пять минут, чтобы добиться успеха.
Глава 19
– Мистер Колон, раз вы уже достигли цели, подойдите, мне есть что вам сказать по поводу статьи о вашем алгоритме сортировки.
Сэм утянул меня за дверь, но как и ожидалось, говорить начал не о джулайсорте.
– Объясните ваш код. Кратко, если возможно. Он просто не должен работать, а вместо этого приблизился к ассемблерному по производительности.
– Всё дело в goto…
Не стал самоутверждаться и утаивать знания. Это ведь мой будущий соавтор научной статьи. Коллега-ученый. Ну и у него достаточно крепкие хуэвосы, чтобы переобуться и начать относить к цветному каналье и даже к женщине, как к
Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.
Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.
- 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
- 2. Просьба отказаться от оскорблений, угроз и запугиваний.
- 3. Просьба отказаться от нецензурной лексики.
- 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.
Надеемся на Ваше понимание и благоразумие. С уважением, администратор knigkindom.ru.
Оставить комментарий
-
Magda18 июнь 00:44
Прелестно! Иронично, занимательно, очень смешно! ...
Развод по-драконьи - Ольга Олеговна Пашнина
-
Гость Любовь17 июнь 11:07
Прочитала залпом,интересный сюжет, захватывает с первых фраз.Чтение произведения доставило мне огромное удовольствие...
(Не)нужная жена дракона на вес золота - Татьяна Бэк
-
Гость Ольга16 июнь 22:43
Легкий детектив Натальи Андреевой. Знакомый герой. Домбай!...
Пин-код на приворот - Наталья Вячеславовна Андреева
