intercal



Предыдущая | Следующая

intercal [название, придуманное авторами для своего детища Compiler Language With No Pronounceable Acronym (компилятор с непроизносимым акронимом)], сущ. Язык программирования, придуманный Доном Вудс и Джеймсом Лайоном в 1972 году. Главным отличием от всех остальных языков программирования является абсолютная невыговариваемость его конструкций. Приводимая ниже выдержка из Руководства по INTERCAL поможет понять, какую цель ставили перед собой авторы.Давно известен и не нуждается в новых доказательствах тот факт, что работа человека оценивается тем выше, чем непонятней она выглядит со стороны. Например, если кто-то начнет утверждать, что простейший способ присвоить 32-битовой переменной значение 65536 выглядит в INTERCAL как DO   :1 <- #0$#256, то любой здравомыслящий программист скажет, что это бред собачий. Поскольку это действительно самый простой способ в INTERCAL, программист окажется дураком в глазах своего босса, который обязательно подслушас этот разговор (все боссы имеют обыкновение появляться неожиданно в самый неподходящий момент). На такую удочку не попадется программист, знакомый с языком INTERCAL, поэтому его шансы на повышение будут более высокими. На INTERCAL писали многие программисты в Принстоне (хорошо, пусть будет только несколько человек). Недавно язык был переработан в Си-INTERCAL, в USENET даже появилась телеконференция alt.lang.intercal, посвященная изучению основ и тонкостей этого языка, но это не прибавило ему популярности, и все нормальные хакеры по-прежнему держатся от него подальше.

В фильме «Говорящие с ветром» с Николосом Кейджем американские морские пехотинцы используют переводчиков с языка навахо для передачи секретных сообщений, потому что на этом языке можно только говорить – у него нет письменной формы. То же и с INTERCAL – правда, с точностью до наоборот.

Этот комичный язык – сплошная мистика. Он создавался как насмешка над небезызвестными FORTRAN и COBOL (да, язык достаточно древний). Руководство к языку содержало в себе раздел «Миндалина». Как пояснялось в ссылке к разделу, все мануалы содержат раздел «Приложения» (по-английски «аппендикс»), поэтому создатели приняли решение включить в свою документацию какую-нибудь другую удаляемую часть человеческого тела – скажем, миндалины.

В языке используются модификаторы типа «ПОЖАЛУЙСТА». Если в программе он используется не достаточно часто, она не принимается компилятором как «недостаточно вежливая». Если же наоборот он появляется слишком часто, компилятор отвергает её как «чересчур вежливую». Но самое печальное в этой истории то, что, несмотря на наличие оценки вежливости, эта особенность не была нигде документирована.

INTERCAL в соответствии с критерием Тьюринга достаточен для того, чтобы быть практически используемым языком программирования. Это значит, что в принципе язык работает, но если вам когда-нибудь придет в голову что-нибудь на нем написать, советую сразу обратиться к психиатру. Если окажется, что с рассудком у вас всё в порядке, приготовьтесь потратить на программирование кучу времени. Знаменитое решето Эратосфена, часто используемое в качестве «контрольной» задачи, было запущено на рабочей станции SPARCStation-1 фирмы SUN. Выполненная на языке C, эта программа завершилась менее чем за полсекунды. У программы на INTERCAL на получение результата ушло 17 часов.