Пробелы, табы и ничего больше: как работает язык программирования Whitespace

от admin

Это так называемый эзотерический язык программирования

В Whitespace — одном из самых странных языков программирования — код состоит только из пробелов, табуляций и переводов строки. Все остальные символы игнорируются и используются только как комментарии.

Это позволяет вставлять работающий код Whitespace в пробелы любого другого кода — и таким образом делать полиглоты: один и тот же файл может одновременно быть, например, Python-скриптом и Whitespace-программой.

Как это работает

Whitespace — это стековый императивный язык. Он умеет:

  • класть числа в стек,
  • выполнять арифметику (сложение, вычитание, деление),
  • обращаться к куче (heap),
  • работать с вводом-выводом,
  • прыгать по меткам и вызывать подпрограммы.

Каждая команда кодируется последовательностью из пробелов (S), табов (T) и переводов строки (L). Например, последовательность T S S (таб, пробел, пробел) складывает два числа из стека.

7 курсов, с которых реально стартуют в IT в 2025tproger.ru

Числа кодируются в двоичном формате: S — это 0, T — 1, а знак задаётся первым символом: S — плюс, T — минус. Например, число 75 в Whitespace выглядит так:

			S T S S T S T T L  		

Кто его придумал

Язык придумали Эдвин Брейди и Крис Моррис в 2002 году — те самые, кто позже создали языки Idris и Kaya. Презентовали Whitespace 1 апреля. И многие решили, что это шутка. Которая, по всей видимости, вышла из-под контроля.

Читать также:
Вышел Godot 4.4: что нового в набирающем популярность игровом движке?

Идея использовать только пробельные символы появилась ещё раньше: в 1997 году Бьёрн Страуструп, автор C++, предложил это также в шутку — как абсурдную эволюцию C++.

«Hello, world!» на Whitespace

Вот как выглядит программа, которая выводит Hello, world!:

			S S S T S S T S S S L T L S S ...  		

В этой записи S — пробел, T — табуляция, L — перевод строки. Для людей такая программа полностью невидима: она выглядит как пустой файл, но её можно запустить через интерпретатор.

Зачем всё это

Whitespace — язык из категории эзотерических.

Его не используют в продакшене — он создан для развлечения, экспериментов и изучения того, где границы читаемого и исполнимого кода.

Кроме того, это отличный способ спрятать код в самом неожиданном месте.

Похожие статьи