Rambler's Top100
 
 
  04 июля 2009 года Я здесь впервые! Компьюлента
CIO
Терралаб
Бизнес-журнал
iBusiness
в поле зрения | terralab | своя игра | интерактив | блоги | readitorial | голубятня | наука и жизнь
Улыбка без кота
Автор: Евгений Золотов
Опубликовано 03 апреля 2003 года

Будучи поверхностно знакомым едва ли с десятком языков программирования, сложно утверждать наверняка, но всё же вряд ли будет большим преувеличением сказать: большинство компьютерных языков схожи в своём отношении к "невидимым" символам или, говоря иначе, символам, отображающимся в тексте программы в виде пустого места. Если быть совсем точным, то символом можно назвать лишь один их них - "пробел" (код 32 в кодировке ASCII). Два других именуются управляющими символами и отвечают за перемещение курсора в нужном направлении. Это табуляция, изображаемая несколькими пробелами (код 9), и перевод строки (код 10). Впрочем, как бы их ни называли, суть не меняется, и особого значения в языках программирования им не придаётся. В лучшем случае они разделяют команды (BASIC), в худшем не значат вообще ничего (C). Вот почему с таким недоверием было встречено пару дней назад сообщение о создании языка, который не только придаёт значение трём вышеозначенным символам, но и основывает на них свой синтаксис. Это язык Whitespace - замечательная первоапрельская шутка британских студентов, воплощённая в машинный код.

Для того чтобы лучше понять идею, положенную в основу Whitespace, отрешитесь на минутку от всего что вы знаете из программирования - ибо отличия нового языка разительны. Впрочем, что тут говорить, взгляните лучше на отрывок программы, написанной на нём самом:

---------------------





---------------------

То, что вы видите - не издевательство. Просто единственные символы, которые что-то значат для интерпретатора Whitespace, это те самые "невидимки": пробел, TAB и перевод строки. Естественно, такой язык существенно проще по функциональности, нежели языки традиционные, но всё же он умеет многое - работает с целыми числами и текстом, стеком, наделён метками, подпрограммами, условными и безусловными переходами, вводом/выводом. Любая команда записывается комбинацией из двух и более символов, а все параметры представляются в двоичной форме. К примеру, такая комбинация - "[пробел][ пробел][ пробел][TAB][перевод строки]" - означает команду записи на вершину стека числа "1", а "[пробел][перевод каретки][пробел]" передаёт на вывод текущее обрабатываемое значение. Использование "нормальных" символов (буквы, цифры и т.п.) разрешено, но на работу программ они никакого влияния не оказывают, поскольку воспринимаются виртуальной машиной Whitespace в качестве комментариев.

Как было сказано выше, Whitespace обрёл свою известность как первоапрельская шутка: сообщение, впервые привлекшее к проекту внимание сетевой общественности, было опубликовано в международный День дураков. Но язык этот действительно существует. Сам он написан на малоизвестном функциональном языке Haskell для операционной системы Linux, но силами энтузиастов за последние дни реализован также в версиях для Ruby и Perl, а также обзавёлся добрым десятком забавных примеров (включающих и классическую программку "Hello, world"). Зачем это всё нужно никто точно не знает. На замену обычным языкам программирования Whitespace явно не годится. Однако, он очень неплох для разного рода экспериментов в информатике и может быть найдёт себе поклонников среди скучающих любителей электронных диковинок.

ТАКЖЕ В РАЗДЕЛЕ
18 февраля 2004 года
Его Величество Баг 
17 февраля 2004 года
Жизнь за окном 
16 февраля 2004 года
Гигабайтом меньше 
13 февраля 2004 года
Делай порно 
12 февраля 2004 года
Великолепная Шестерка 
11 февраля 2004 года
Есть смысл 
 
Новости партнеров
Загружается, подождите...
Ну и как вам Firefox 3.5?






  
Результаты опросов

/  свежий номер

Обложка журнала
Редакционный блог журнала "Компьютерра".
Анонс свежего номера.


Архив номеров журнала

О проекте | Распространение | Подписка | Реклама на сайте | Рассылки сайта | КПК–версия | RSS-трансляция | Компьютерра на Twitter

© ООО «Компьютерра–Онлайн», 1997 — 2009.
При цитировании и использовании любых материалов ссылка на портал «Компьютерра–Онлайн» обязательна (для Интернет–изданий — www.computerra.ru)
Редакция сайта: site@computerra.ru
Техподдержка сайта: websupport@computerra.ru
Редакция журнала: inform@computerra.ru
Отдел рекламы: reklama@computerra.ru
Телефон: (495) 232–22–61, (495) 232–22–63
Работает на «Битрикс: Управление сайтом»
Почта защищена сервером «СПАМОРЕЗ»
комплексный интернет маркетинг - ТриЛан
Сайт работает на сервере DEPO Computers
Rambler's Top100