Найти в Дзене
CourseKids

Самый сложный язык программирования

INTERCAL — эзотерический язык программирования, созданный в 1972 году студентами Доном Вудсом и Джеймсом Лайоном как пародия на существующие языки программирования.  Название INTERCAL (Compiler Language With No Pronounceable Acronym) означает «язык программирования с непроизносимой аббревиатурой».  Цель создания — сделать процесс написания кода максимально сложным и нелогичным. Этого добились за счёт необычного синтаксиса и блокировки выполнения одних команд другими. В итоге даже простейшие задачи с помощью INTERCAL выполнять чрезвычайно трудно.  Несмотря на всю экзотичность, INTERCAL является полным по Тьюрингу, то есть на нём можно выразить всё, что и на обычном языке программирования. INTERCAL — это действительно уникальный пример "антидизайна" в программировании, где создатели (Дон Вудс и Джеймс Лайон) намеренно нарушили все возможные принципы удобства и логики. Вот ещё несколько забавных особенностей этого языка: INTERCAL создавался как пародия на серьёзные языки вроде FORTRAN и
Оглавление
Самый сложный язык программирования
Самый сложный язык программирования

INTERCALэзотерический язык программирования, созданный в 1972 году студентами Доном Вудсом и Джеймсом Лайоном как пародия на существующие языки программирования. 

Название INTERCAL (Compiler Language With No Pronounceable Acronym) означает «язык программирования с непроизносимой аббревиатурой»

Цель создания — сделать процесс написания кода максимально сложным и нелогичным. Этого добились за счёт необычного синтаксиса и блокировки выполнения одних команд другими. В итоге даже простейшие задачи с помощью INTERCAL выполнять чрезвычайно трудно. 

-2

Особенности языка:

  • Модификатор PLEASE. Он не несёт никакой смысловой нагрузки, но должен встречаться в коде четыре или пять раз. Если использовать PLEASE меньше трёх раз, программа выдаст ошибку «Программист недостаточно вежлив», если больше пяти — «Программист слишком вежлив». 
  • Метод вывода строк — «лента Тьюринга». Массив чисел обрабатывается слева направо по одному символу за раз. 
  • Парадоксальные операторы. Например, COME FROM, FORGET и даже PLEASE ABSTAIN FROM CALCULATING («пожалуйста, воздержись от вычислений»). 
  • Специальные имена для символов. Например, кавычки " и знак равенства = называются соответственно «кроличьи уши» и «полрешётки» (имеется в виду половина знака #). 

Несмотря на всю экзотичность, INTERCAL является полным по Тьюрингу, то есть на нём можно выразить всё, что и на обычном языке программирования.

INTERCAL — это действительно уникальный пример "антидизайна" в программировании, где создатели (Дон Вудс и Джеймс Лайон) намеренно нарушили все возможные принципы удобства и логики. Вот ещё несколько забавных особенностей этого языка:

Странности INTERCAL

-3
  1. «ПОЖАЛУЙСТА» — обязательное ключевое слово
    Если в коде недостаточно вежливых PLEASE, компилятор мог отвергнуть программу за
    "недостаточную вежливость". Но если PLEASE было слишком много — он жаловался, что программа "слишком услужливая".
  2. Операторы COME FROM вместо GOTO
    Вместо привычного GOTO (переход к метке) в INTERCAL использовался COME FROM — как будто код
    "притягивал" выполнение из другого места.
  3. Нечитаемые операторы
    Например, чтобы сложить два числа, нужно было использовать $ (вычисляемое И) и ¢ (логическое И), а результат выдавался в
    "перемешанном" виде.
  4. Ошибка 774 — «Текстовый эффект испугал оператора»
    В документации языка упоминалась ошибка, которая якобы возникала, если программа
    "слишком пугала" человека, работающего за компьютером.
  5. Модификатор ABSTAIN
    Можно было
    "запретить" программе выполнять определённые строки кода, будто она их "стесняется".

Зачем это нужно?

-4

INTERCAL создавался как пародия на серьёзные языки вроде FORTRAN и COBOL, высмеивая их сложность и неочевидные решения. Но сегодня он стал культовым среди энтузиастов:

  • Его используют в соревнованиях по "обфусцированному коду".
  • На нём пишут демотивационные программы (например, "Hello, World!" занимает десятки строк).
  • Это пример того, что программирование — не только про эффективность, но и про креативность и юмор.

Философский вывод: даже в строгих технологиях есть место абсурду — главное, чтобы это было осознанно.

P.S. Хотите написать что-то на INTERCAL? Вот "Hello, World!":

Пример кода на языке INTERCAL
Пример кода на языке INTERCAL