HeartForth Язык На Основе Эмодзи


Это было придумано ко дню святого Валентина, но еще не слишком поздно для следующего года! У него также есть некоторые интересные технические проблемы, которые делают языки, ориентированные на стек, привлекательными.

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

Так, например, программа:

: факториал 0 swap begin dup 1 – dup 1 = until begin * over 0 = until swap drop ;

5 факториал .

становится:

Вы получаете идею только из одного примера. 

Заявленными “преимуществами” являются: 

Чрезвычайно компактный. Многие сложные программы помещаются в твиттере.

Четкое визуальное разделение между программой и данными. Нет необходимости выделять синтаксис.

Агностик пробелов.

Полностью интернационализирован. Большинство языков программирования предвзято относятся к носителям английского языка. Только не Хартфорт!

Языки на основе стека, такие как Forth, идеально подходят для такого рода замены символов, потому что у них простой синтаксис-ничего, кроме операторов и операндов. Таким образом, вам не нужно изобретать сложные пары символов, как в случае, если…тогда…в противном случае вы можете просто сопоставить операторов с эмодзи. 

Это также делает проблему токенизации, обычно первую стадию на любом языке, тривиальной – нет сопоставления строк для подбора ключевых слов, таких как dup или swap или… Вы просто сканируете Юникод. Это немного похоже на старую клавиатуру Sinclair Spectrum, где каждая клавиша создает байт маркера для рассматриваемого ключевого слова. 

Так есть ли в этом какая-то реальная польза?

Вероятно, нет, но Forth или любой другой язык, ориентированный на стек,-это то, о чем стоит узнать. 

Если вы воспользуетесь этим проектом с открытым исходным кодом в следующий день Святого Валентина, у меня есть один небольшой совет. Старайтесь избегать оператора дампа!

Это не только неэффективно, но и, вероятно, посылает неправильное сообщение!


Добавить комментарий