Почему отменили практикум по генной инженерии
Папков В
В гимназии для особо одаренных детей имени Всех Лауреатов Нобелевской Премии очень редко меняли учебный план, да еще и посреди учебного года. Пожалуй, единственный случай — это когда биологичка Анна Степановна отменила практикум по генной инженерии в девятом классе.
Началось все на отделении информатики, и ничто не предполагало такого неожиданного итога. Антон Седов, парень весьма целеустремленный, но любящий внешние эффекты, в качестве годовой презентации решил представить свою работу по семантическому распознаванию текста. Идея была проста. Синтаксичекий анализ текста, позволявший выявить грамматический строй неизвестного языка, применялся уже давно, начиная с Кнорозова, расшифровавшего тексты майя. Семантический анализ проводили уже после того, как выявляли основные служебные части речи и значащие слова. Программа искала закономерности появления различных слов рядом и строила графы зависимости слов друг от друга. А дальше выяснялось, что эти графы отличаются у разных текстов — художественных, научных, религиозных, экономических отчетов и т. п. Если же учесть, что обычно можно сделать какие-нибудь дополнительные предположения о том, что написано, исходя из места находки и т. п., то перевод получался почти однозначный.
Антона всегда несколько раздражало, что его computer science другие ребята наукой не считают, а относят к ремеслу, вроде инженерного, и он попросил всех желающих приготовить любые тексты. Только поставил условие, что они должны быть достаточной длины и предложивший текст должен знать его смысл. И еще оставил за собой право на дополнительный вопрос.
Представление обещало быть забавным, так что на защиту набился народ со всех отделений. Конечно же были Игорь Моисеевич, куратор Седова по информатике, и Анна Степановна, классная руководительница, но и других предметников немало пришло. Даже завхоз Валентин Георгиевич оторвался от своих накладных и скромно уселся в уголочке.
Первую задачку программа решила легко. Вовка, приятель Седова по отделению информатики, предоставил архив Хараппы, найденный на раскопках в Индии два года назад и только-только
расшифрованный. Ничего удивительного, что легко — синтаксический анализатор как раз для таких случаев и предназначался. Перевод программы практически полностью совпал с результатами ученых-историков.
Со второй задачей пришлось помучиться. Сергей Ли с лингвистического попросил своих знакомых китайцев перевести инструкции к товарам на амхарский язык. Амхарского китайцы не знали, но сообразительности им было не занимать, а словарик амхарского Серега предоставил. Анализатор справился, верно определил, что это инструкции, разве что карманный фонарик упорно переводил как Большой адронный коллайдер. Антон уже готовился праздновать успех своей науки, но тут о себе напомнила Ленка Юрина.
Ленка училась на биологии, отношение к Седову у нее было весьма противоречивым, и ей очень хотелось показать, что этот Антон ничего собой не представляет, а вся его информатика — туфта на постном масле. Она за неделю до презентации подсунула Антону последовательность своей ДНК с практикума по сиквенсу, справедливо рассудив, что это вполне себе текст более чем достаточной длины, а смысл этого текста она ежедневно видит в зеркале. Антон смутился, но от задачи не отказался, а через день, воспользовавшись правом на вопрос, поинтересовался:
— Это программа?
Ленка задумалась на мгновение, но кивнула:
— Это самая гениальная программа в мире! Слабо понять, что она делает?
Так вот, на защите Юрина встала и ехидным голосом напомнила о своей задаче. Антон изобразил растерянность, а потом не выдержал и широко улыбнулся:
— Ты зря на что-то надеешься. То, что это код, написанный на объектно-ориентированном языке, мы с Анализатором сразу догадались. В нем постоянно порождаются объекты-копии, переписывают себя и выполняются каждый раз несколько по-иному, из-за различий в общих используемых данных. А то, что долго в нем разбирались, — так ты мне эти общие данные не предоставила, что нечестно. И вообще я бы руки оборвал тому, кто эту «гениальную» программу написал. Простой пример: цикл копирования объекта не переписывает последние символы кода. И вот, вместо того чтобы найти ошибку в цикле, программист тупо дописал в конец бессмысленную последовательность, чтобы потеря последних символов не сказалась на самом коде. Скажите, Игорь Моисеевич, чтобы вы поставили за такое «решение»?
Читать дальше