# Et cetera. Декомпиляция

Алексей Притуляк

Декомпиляция моей миниатюрки "Et cetera".

Et cetera. Декомпиляция.


Выставлял автор на конкурсе журнала "Химия и Жизнь" (ХиЖ-2012) миниатюрку под названием "Et cetera". Сам текст этой зубодробительной миниатюры, в его неделимом единстве, можно лицезреть по адресу http://samlib.ru/p/prituljak_a_a/etcetera.shtml

Автор миниатюрки наехал там на другого автора, оставившего отзыв на эту писульку, и сказал, что текст был понят неправильно и обещал объяснить суть.

В общем, по истечении времени автору (мне, то бишь) напомнили об этом обещании. А я в свою очередь, как истинный графоман, обожающий исследование, анализ и комментирование собственных текстов, с радостью выполняю обещание.


Итак, прежде всего обратим внимание на форматирование текста. К сожалению, не все браузеры могут отобразить его правильно, но там, где могут, мы увидим чёрный экран с зелёного цвета надписями. В конце последней строки будет мигать курсор. То есть, оформительское решение текста призвано напомнить нам терминал или древнюю консольную шкурку какой-нибудь ОС. Можно было бы, конечно, изобразить всё это модерново и в соответствии с заявленной эпохой (см. ниже), но тогда: а) автор не художник и не профессиональный верстальщик; б) у читателя не сложилось бы никакой ассоциации, ибо консоль он мог видеть, а экран компьютера, каким он будет в 3573 году от р.х. - точно нет.

Далее.


08.07.3573 5:56 PM

L++ 8.03 interpreter

>> stderr


Первый элемент текста -- понятно, это отметка о текущей дате и времени. На дворе, как видим 3573 год.

Вторая строка будет сразу понятна любому, имеющему хоть какое-то отношение к программированию. Интерпретатор некоего языка программирования L++ сообщает нам о том, что он запущен и готов к исполнению программы. Версия интерпретатора -- 8.03 (сегодня, кстати, в момент, когда пишется эта разъясниловка, тоже -- 8.03 :)

В третей строке сообщается о том, что вывод сообщений об ошибках исполнения будет направлен в стандартный поток вывода сообщений об ошибках, сиречь -- на экран.

Итак, всё, что мы увидим ниже этих сообщений, будет являться результатом исполнения некой программы, запущенной на выполнение в интерпретаторе с языка L++. На чём и в какой среде работает этот интерпретатор, нам не ведомо. Это может быть и ПК будущего, и робот, и андроид, и вообще всё, что так или иначе может исполнять программы и обладать искусственным интеллектом -- хоть пылесос будущего.


Милый, для тебя ведь не станет неожиданностью, что я никогда не умела понимать тебя правильно. Да, я не научилась понимать тебя так, как тебе хотелось бы. Но ведь и ты никогда не понимал меня, правда? Никогда, никогда, никогда. Какое страшное слово! [...]

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

Не забываем, также, о том, что перед нами результат работы интерпретатора, а это значит, что, в отличие от работы компилятора, у пользователя имеется возможность интерфейса с работающей системой.


*** Warning. Self-control system message.

*** Emotional interruption: too many never.

*** Feeling of doom detected.

Работа программы прервана по ошибке. Поступило сообщение от системы самоконтроля (вероятно, некий модуль, встроенный в тело программы) о прерывании от эмоциональной сферы: 1. слишком много "никогда" 2. Детектировано чувство doom. Слово сие в английском языке значит и рок-судьбу, и смерть и приговор.


"if-then-else" - не моя конструкция; мне ближе "goto". Пусть оно и бывает порой безжалостно, зато всегда знаешь, чего от него ждать. А все эти if'ы - они так обманчивы, так зыбки и неопределённы... А мне хотелось определённости. Всего-то. Так мало. Ведь это же ничтожно мало, правда? Немножко определённости. Совсем чуть-чуть. Ровно столько, сколько не хватает обычно до [...]

Программа после прерывания продолжает исполняться. Здесь "if-then-else" (если... то... иначе...) и "goto" (перейти к исполнению) команды, стандартные, в том или ином виде, практически для любого современного языка программирования высокого уровня. То есть, как видим, наша женщина-андроид с чувством обречённости говорит о непонимании её кем-то (кем? Может быть, программистом, написавшим её?). И говорит как, в общем-то, обычная женщина, укоряющая любимого человека в том, что он, может быть, не слишком внимателен к её чувствам.


*** Warning. Self-control system message.

*** Emotional interruption: tears are not advisable.

Опять поступают предупреждения от системы самоконтроля. Прерывание от эмоциональной сферы: слёзы недопустимы.


Но тебе было недостаточно "else" и ты придумал новые штучки. Ты изобрёл "...", "wait until", "maybe" и "no case"; ты ввёл это непостижимое "et cetera"! Что стоит за этим кодом, я так и не сумела разгадать. Я могла только предполагать. Мне известно его начало, но разве можно идти по дороге, не будучи уверенным, что она приведет тебя туда, куда тебе хочется хотеться. Какой бесперспективный оператор! Вся беда в том, что ты не умеешь жить чувствами [...]


Здесь программа перечисляет нам всё те же более-менее типичные в ЯП операторы: else (иначе), wait until (ожидать (не)наступления какого-либо события) и операторы, отсутствующие в современных ЯП, но, вероятно, типичные для языков программирования искусственного интеллекта будущего -- троеточие, maybe (может быть), no case (выбора нет) и непостижимое et cetera (и так далее). Здесь восприятие текста может быть двояким: 1) программа говорит о непонимании операторов, код которых программист ещё не доработал до состояния стабильного их исполнения 2) женщина говорит о надоевших ей "может быть", "иначе", о молчании и всё той же неопределённости, скрывающейся за et cetera.

Здесь, кстати, мы видим первый, почти незаметный сбой в работе программы ("куда тебе хочется хотеться"). И, в последней фразе, убеждаемся, что речь идёт от лица женщины, толкующей "холодному" мужчине о чувствах.


*** Warning. Self-control system message.

*** Logical interruption: unknown predicate.

Опять предупреждение от ССК: прерывание поступило от сферы логики:) - "неизвестный предикат" :)

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


Я никогда не могла уразуметь, чего ты от меня хочешь и хочешь ли вообще чего-нибудь rhjvt.


Начиная с этого вывода, видно, что в программе наступил серьёзный сбой. Видимо, какой-то конфликт между заложенной программистом в "женские" мозги и несвойственной им логикой, и более привычными женщинам чувствами.

rhjvt -- это слово "кроме", набранное при включённом вводе латиницей. Призвано подчеркнуть наступающий в работе программы хаос.


Я была бессильна понять, о чём ты думаешь.


Разумеется. И настоящая живая женщина далеко не всегда может понять, о чём думает мужчина, как бы ей ни хотелось прочитать его мозги и душу. Что уж тут говорить о программе для андроида.


I have устала ждать. А ведь я всего лишь хотела знать only, зачем я тебе и зачем ли нибудь system cash {"да","нет"} вообщегда.


Программа всё более сходит с ума. Тема первичного мессиджа ещё пробивается через хаос байтов и битов в "да" и "нет", в "вообщегда" и жалобах.


Ьн тфьу шы Тщкьф.


Наоборот -- англоязычный текст, набранный при включенном вводе кириллицей: My name is Norma. Хорошее, с точки зрения мужчины, имя для женщины -- Norma.


{Гал. 5,22}


не знаю, откуда это выскочило. Вероятно, база знаний программы потихоньку превращается в кашу. Но выглядит, как отсылка к какому-то стиху из Библии: Галатам, 5, 22.


define x: of sense; feelings stack overflow прости Ты никогда не get(P) расстаться answer(...) навсегда et cetera et cetera et cetera answer(...)


define x: of sense -- определить некую переменную х, относящуюся к типу... Здесь, вместо принятых в современном программировании типов (int, bool и прочей чуши) использован тип sense (чувства). Неизвестно, введён ли этот тип программистом, или чёртова программа сама никак не может отделаться от женской привычки оперировать чувствами вместо логики. Далее сообщается, что стек чувств переполнен (стек -- это такая штука в системе, устройство и назначение которой здесь объяснять будет слишком долго и нудно). Далее -- практически полный бред, прерываемый остатками разрушенных "мыслей" ИИ.


Error #14.02 in idealwoman.lpp: unsolvable conflict in the function love(volatile P). Abnormal programm termination.


Сообщение об ошибке N14.02 (уж не 14-ое ли февраля?) в программе idealwoman.lpp. Название программы очевидно - "идеальная женщина":) Рискну предположить, что программист пытался сделать идеальную (с мужской точки зрения, конечно) женщину. Но разве женщина может быть другой? Она всё равно полюбит тебя и будет твердить тебе о чувствах, о том, что ты её не понимаешь, что ты невнимателен к ней, равнодушен, слишком то и недостаточно это, итдитп.

Кстати название программы можно понять и иначе, не "ideal woman", а "I deal woman" - не знаю, что там программист имел в виду:)

Суть ошибки: неразрешимый конфликт в функции love(volatile P). Название функции переводить не надо, я думаю. Аргументом функции передается нечто, относящееся к типу volatile, нечто заранее неопределённое, то есть переменной P может быть присвоено любое значение по усмотрению программиста.

Ну и наконец: Abnormal programm termination (неправильное завершение программы). Система не справилась с возникшими ошибками и принудительно завершила программу, чтобы весь этот мир не рухнул к чертям из-за очередной ошибки в женских мозгах :) (шутка).


Enter new value for P or press Cancel >> _


Введите новое значение для переменной P или нажмите "Отмена". Символ курсора, как символ ожидания ввода программиста.

Как мы помним, переманная P передаётся в функцию love(volatile P). Не значит ли это, что компьютер оказался заражённым хаотически создавшимся вирусом чувств или женской души? Или...

В общем, автор объяснил самое основные, а дальше уже дело читателя, как всё это понимать и трактовать.


А всё, о чём автор тут недоговорил или просто умолчал, пусть останется на его совести тяжким грузом:)


Спасибо за внимание.

Спасибо Ольге Афанасьевой (http://samlib.ru/a/afanasxewa_o_i/ ) за напоминание и высокую оценку этой басни.

Спасибо Сергею Лысенко (http://samlib.ru/l/lysenko_s_s/ ), в каком-то разговоре натолкнувшему меня на идею этой миниатюры.