Whitespace

Whitespace з підсвіткою в редакторі Vim

Whitespace (англ. Пробіл) — езотерична мова програмування, створена Едвіном Бреді та Крісом Моррісом з Даремського університету, які також відомі як розробники мов програмування Kaya та Idris. Випущена 1 квітня 2003 року. Особливість мови полягає в тому, що на відміну від інших мов, які переважно ігнорують пробіли та табуляції, інтерпретатор Whitespace сприймає лише ці символи, та ігнорує усі інші. Таким чином, інтерпретатор приймає лише три конструкції: пробіли, табуляції, та перехід на новий рядок. Цікаво, що за рахунок такої особливості, текст програми, написаної на Whitespace, можна приховати у вихідному коді іншої програми.

Синтаксис

Програма, написана мовою Whitespace, складається з послідовності пробілів (двійковий 0) і табуляцій (двійкова 1). Між собою команди розділяються символом переходу на новий рядок. Решту символами інтерпретатор нехтує.

Приклад коду

Нижче наведено приклад простої програми на Whitespace, яка виводить на екран "Hello, World!", де кожен Пробіл, Табуляція або символ переходу на новий рядок позначається через "S", "T", чи "L" відповідно (очевидно, що інтерпретатор ці символи знехтує):

S S S T	S S T	S S S L
T	L
S S S S S T	T	S S T	S T	L
T	L
S S S S S T	T	S T	T	S S L
T	L
S S S S S T	T	S T	T	S S L
T	L
S S S S S T	T	S T	T	T	T	L
T	L
S S S S S T	S T	T	S S L
T	L
S S S S S T	S S S S S L
T	L
S S S S S T	T	T	S T	T	T	L
T	L
S S S S S T	T	S T	T	T	T	L
T	L
S S S S S T	T	T	S S T	S L
T	L
S S S S S T	T	S T	T	S S L
T	L
S S S S S T	T	S S T	S S L
T	L
S S S S S T	S S S S T	L
T	L
S S L
L
L

Зверніть увагу, що вихідний код Whitespace може по-різному відображатися в деяких браузерах, де символ табуляції не є фіксованим, а залежить від його розташування в тексті. Також символ табуляції, в залежності від використовуваного ПЗ, може виражатись через відповідну кількість пробілів.

Див. також

Посилання

  • Домашня сторінка
  • esco — універсальний інтерпретатор езотеричних мов програмування [Архівовано 24 червня 2014 у Wayback Machine.]
  • асемблер/дизасемблер/інтерпретатор написаний на Ruby
  • п
  • о
  • р
Низькорівневі
Високорівневі
Загального
призначення
Серверні
Запитів до баз
даних[суперечливо 1]
Розмітки та векторної
графіки[суперечливо 1]
Синхронні[en]
  • Lustre[en]
Символьних та
чисельних обчислень
Квантових обчислень
Логічні
  • Mercury[en]
  • Prolog
Академічні
Езотеричні
  1. а б Немає загальноприйнятого рішення, чи вважати усі ці мови саме мовами програмування


Мова програмування Це незавершена стаття про мови програмування.
Ви можете допомогти проєкту, виправивши або дописавши її.