Познакомьтесь с пробелами: самый непрактичный в мире язык программирования?

Раскрытие информации: Ваша поддержка помогает поддерживать работу сайта! Мы зарабатываем реферальную плату за некоторые услуги, которые мы рекомендуем на этой странице.


Whitespace – это эзотерический язык программирования, разработанный Эдвином Брэди и Крисом Моррисом в университете Дарема, Англия. В пробелах только пробелы, табуляции и переводы строк имеют значение, тогда как все другие непробельные символы игнорируются интерпретатором..

Если это звучит странно и непрактично, то да! На самом деле, это’суть всего пробела.

Краткая история

Брейди и Моррис получили идею создать пробел во время разговора в пабе в конце 2002 года. Поскольку большинство языков программирования игнорируют пробельные символы, разработчики посчитали это несправедливым по отношению к этим членам набора символов и решили создать пробел. Вероятно, следует отметить, что большинство языков программирования не разработаны в пабах, так что это еще один факт, который делает Whitespace уникальным.

Whitespace был выпущен 1 апреля 2003 года, поэтому поначалу он казался слишком сложным Первоапрельским’Шутка Однако дата релиза 1 апреля была чисто случайной. На самом деле, дата релиза оказалась довольно удобной, так как привлекла большое внимание на Slashdot, когда она была официально объявлена..

особенности

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

Теоретически, программист может написать роман вокруг своего кода Whitespace – код все еще будет работать, но большинство людей увидят только роман, а не основной код Whitespace.

Будучи эзотерическим языком программирования (esolang), Whitespace создан для проверки ограничений дизайна языка компьютерного программирования и не предназначен для использования в массовом программировании. Это просто доказательство концепции с очень ограниченным практическим применением, так как оно’с трудом используется в реальном мире.

Однако, как технический демонстратор, призванный доказать, что у вас действительно может быть рабочий язык программирования, основанный на пробелах, а не на символах, он определенно работает. К сожалению, пробелы разве’не предназначен для чего-то большего. Это была техническая демонстрация, а не язык программирования, предназначенный для практических приложений..

Синтаксис

Команды в Пробелах, как и весь код, состоят из последовательностей пробелов, табуляции и перевода строки. Например, tab-space-space-space выполняет арифметическое сложение двух верхних элементов в стеке. Код записывается в форме параметра модификатора инструкции (IMP), за которым следует операция. Whitespace имеет следующие IMP: “пространство” – манипулирование стеком, “Вкладка-пространство” – арифметика, “Вкладка-вкладка” – куча доступа, “перевод строки” – управление потоком, “закладками перевод строки” – ввод, вывод.

Данные представлены в двоичной форме, используя пробелы для 0 и табуляции для 1, после чего следует перевод строки, например space-space-space-tab-tab-space-linefeed – это двоичное число 000110, которое равно 6 в десятичном виде.

В следующем примере отсчитывается от 1 до 5 и выводятся числа от 1 до 5, где “S” представляет пространство, “T” – вкладка и “L” – перевод строки:

SSSTL LSSSTSSSSTTL SLS TLST SSSTSTSL TLSS SSSTL TSSS SLS SSSTTSL TSST LTSSTSSSTSTL LSSSTSSSTSTL SLL LLL

Выход из кода выше:

1 2 3 4 5

Как насчет написания Hello World в Whitespace? Ну, это потребует от вас кодирования почти каждой буквы, и вы’В итоге получилось около 950 экземпляров пробела, табуляции и перевода строки. Это’Это определенно не тот пример, который мы можем включить в наше введение в Whitespace, но если вы’Вы заинтересованы, и у вас слишком много свободного времени, вы можете проверить это здесь.

Пробельные ресурсы

Изучение Whitespace практически бесполезно, но если вам нравится концепция и вы хотите узнать о ней больше или попробовать несколько примеров, ознакомьтесь со следующими ресурсами:

  • Официальный веб-сайт Whitespace находится в автономном режиме, поэтому единственный вариант – проверить архивированное содержимое Wayback Machine с пояснениями, учебными пособиями и примерами языка программирования Whitespace в действии..
  • Вы можете попробовать несколько примеров, используя онлайн-компилятор Whiteelips IDE Whitelips, который загружает “Привет мир” пример по умолчанию. Вы будете удивлены тем, насколько длинным является пример, потому что в пробелах вы должны определять каждый символ один за другим, используя коды ASCII.

Вывод

В качестве языка программирования Whitespace настолько экзотичен, насколько это возможно, даже по стандартам эзотерического языка..

Пока это’люди не используют язык программирования для чего-то продуктивного, это’это умное умственное упражнение, и оно служит доказательством того, что вы можете превратить почти все в код, по крайней мере, в теории.

Как только вы попробуете это и выясните, как это работает, вы’более или менее сделано с Whitespace, так как вы действительно можете’Не используйте это для чего-то серьезного. Ну, по крайней мере, если у вас есть много времени, чтобы убить и ничего лучше.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map