Top.Mail.Ru

Whitespace: программирование необычным синтаксисом

Язык программирования Whitespace продолжает серию наших статей об
эзотерических языках программирования. Это довольно интересный в своем роде
язык, который в своем синтаксисе содержит непечатаемые символы.
Он не имеет практической ценности, не породил фреймворков и диалектов, не
породил кучу стандартов. Все что есть на этот язык, так это документация самого
автора, где он разъяснил все что можно разъяснить по этому языку
программирования. Кстати, автором является Эдвин Брейди, который презентовал
Whitespace в 2003-м году.

Язык программирования Whitespace

Основой синтаксиса Whitespace являются все символы, которые игнорируют все
известные языки программирования. Поэтому в этом языке можно уследить «нотку
протеста», к тому, что не все символы воспринимаются популярными языками
программирования.
Как делятся символы? Все символы в первую очередь делятся на 2 большие группы:

  1. Видимые — это те символы, которые можно увидеть своими глазами, то есть
    — это буквы, числа, специальные символы.
  2. Невидимые — это те символы, которые не видно, то есть — это «пробел»,
    «табуляция» и «перенос строки».

Большинство известных нам языков используют в своем синтаксисе все «видимые»,
а «невидимые» просто игнорирует. Язык программирования Whitespace пошел
совсем по другому пути: он использует в своем синтаксисе только «невидимые»
символы, а все «видимые» игнорирует. «Видимые» символы он использует только в
качестве комментариев. И делать это надо очень аккуратно, чтобы не использовать
много пробелов подряд.
«Работать» с Whitespace можно в 16-битном редакторе, либо в IDE, которые
поддерживают визуальное обозначение символов, которые не видны.

Команды Whitespace

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

  • пробелf (ASCII 32);
  • табуляции (ASCII 9);
  • новой строчки (ASCII 10).

Все команды в основном длинного размера и включают в себя по несколько
«символов» языка, обычно это от 3-4 штук. При этом команды могут выполнять все
основные операции:

  • взаимодействовать со стеком;
  • выполнять арифметические действия;
  • работать с массивами;
  • управлять потоком разрабатываемой программы;
  • вводить или выводить нужные данные.

Примеры команд языка программирования Whitespace

Так как визуально презентовать синтаксис языка программирования Whitespace не
получится по понятным причинам, то команды будут описаны словами. Кстати, пр
работе с числами, Whitespace «понимает» только целые числа, представленные в
двоичной системе. При написании числа нужно обязательно указывать его знак, для
этого используется:

  • «табуляция», чтобы показать, что число будет отрицательное;
  • «пробел», чтобы показать, что число будет положительное.

Несколько примеров команд Whitespace:

  • «пробел»-«пробел»-«двоичное число» – команда, которая добавляет в стек число;
  • «пробел»-«перенос строки»-«пробел» – когда нужно дублирование числа в вершине стека;
  • «пробел»-«перенос строки»-«перенос строки» – когда нужно найти в стеке верхний элемент и удалить его;
  • «табуляция»-«пробел»-«пробел»-«пробел» – когда нужно сложить числа;
  • «табуляция»-«пробел»-«пробел»-«табуляция» – когда нужно выполнить вычитание;
  • «табуляция»-«пробел»-«пробел»-«перенос строки» – когда нужно умножить числа;
  • «табуляция»-«пробел»-«табуляция»-«пробел» – когда нужно разделить числа;
  • «перенос строки»-«перенос строки»-«перенос строки» – когда нужно остановить выполнение программы
  • и др.

Ниже приведем пример кода языка программирования Whitespace и напишем
привычное всем первое выражение любого разработчика «Hello,World!». Для
наглядности и удобства понимания, мы обозначили:

  • «пробел» буквой «П»;
  • «табуляцию» буквой «Т»;
  • «перенос строки», буквой «С».


Пример скрипта Whitespace:
П П П T П П T П П П С
T С
П П П П П T T П П T П T С
T С
П П П П П T T П T T П П С
T С
П П П П П T T П T T П П С
T С
П П П П П T T П T T T T С
T С
П П П П П T П T T П П С
T С
П П П П П T П П П П П С
T С
П П П П П T T T П T T T С
T С
П П П П П T T П T T T T С
T С
П П П П П T T T П П T П С
T С
П П П П П T T П T T П П С
T С
П П П П П T T П П T П П С
T С
П П П П П T П П П П T С
T С
П П С
С
С

Возможно вам будет интересно почитать статью “Адаптивный дизайн своими руками”

Заключение

Язык программирования Whitespace — это очень необычный синтаксис.
Практического применения у языка нет. А с другой стороны, гляньте на скрипт,
который выводит просто «Привет, Мир!» и представьте, каким должен быть скрипт,
если нужно будет создать программу посложнее?

Text.ru - 100.00%
Поделитесь с друзьями