Оригинал материала находится по адресу www.computerra.ru/hitech/novat/26521/
21.05.2003

Goto *#@&

Британец Томас Рэтбон (Thomas Rathbone) разработал «ругательный» язык программирования feckfeck, предназначенный специально для злостных матерщинников: его синтаксис построен исключительно на нецензурных выражениях.

К примеру, слово «fuck» (от которого, собственно, и образовано название языка) означает увеличение регистра-указателя на единицу, «cock» выводит в выходной поток один байт, адресуемый указателем, а «arse» выполняет функцию условного перехода. Для особо щепетильных пользователей предусмотрен режим цензуры, в котором операторы записываются и отображаются с использованием звездочек (f**k, c**k и т. п.). Занятно, что при всей простоте — а в feckfeck лишь восемь четырехсимвольных инструкций — матерного арсенала с лихвой хватает для написания разнообразных программ, от классической «Hello, World» до программы подсчета чисел Фибоначчи.

Автор нового языка признает, что feckfeck — лишь шутка, но при этом вполне работоспособная: он тьюринг-полный, интерпретатор написан на языке Java, а его исходные коды доступны с сайта www.chilliwilli.co.uk/ff. К сожалению, российского варианта feckfeck пока нет — а, надо полагать, в силу особенностей «великого и могучего» с его помощью можно было бы ваять куда более затейливые и сложные программы…

Похожий и по-своему уникальный язык программирования под названием Whitespace разработан британскими студентами Эдвином Бради и Крисом Моррисом (Edwin Brady, Chris Morris). В отличие от большинства прочих систем, Whitespace не игнорирует «невидимые» символы (пробел, табуляция и перевод каретки — символы с кодами 32, 9 и 10 в системе ASCII). Лучше того, весь синтаксис языка строится на использовании исключительно этой троицы — каждая команда записывается с помощью их комбинаций, а любой другой символ считается комментарием. Соответственно, программы выглядят весьма необычно, представляя собой на первый взгляд лишь пустые области экрана.

Whitespace примитивен, но умеет работать со стеком, целыми числами и текстом (все данные записываются в двоичном виде), содержит инструкции условного и безусловного переходов, вызова подпрограмм. Сам он реализован в виде свободно распространяемой (compsoc.dur.ac.uk/whitespace) виртуальной машины для Linux. Авторы сомневаются, что их детище сможет найти какое-то практическое применение, но оригинальность идеи с лихвой компенсирует этот недостаток.

P.S. Ни feckfeck, ни Whitespace не пережили нулевые годы, но племя эзотерических языков (ЭЯ), к которому они принадлежат, живёт и процветает. Каноническим примером ЭЯ (и прототипом для многих творческих переделок) служит язык Brainfuck: всё те же 8 инструкций и тьюринг-полнота, позволяющая решать с его помощью сколь угодно сложные задачи. Из той же серии и Malbolge с его троичной арифметикой и мутирующим кодом. Практическая ценность таких языков невелика: всерьёз их применяют разве что на состязаниях программистов. Однако помимо ценности практической есть ещё и эстетическая - и эзотерические языки ею несомненно обладают: смотрите на них как на виртуальные конструкции, возведённые из любви к искусству!


feckfeck,сделай_сам,программирование,Brainfuck,Malbolge,эзотерический_язык_программирования,творчество,искусство,цифра




Евгений Золотов, 1999-2018. Личный архив. Некоторые права защищены