]]> ]]>

CLC-INTERCAL

Реализация языка программирования INTERCAL

CLC-INTERCAL — поддерживаемая реализация INTERCAL. Она предоставляет программисту два инструмента — компилятор командной строки sick и визуальный калькулятор intercalc.

CLC-INTERCAL добавляет в язык несколько расширений и альтернативный способ ввода-вывода, основанный на кодах Бадо.

Примеры:

Hello, World!:

Пример для версий CLC-INTERCAL 1.-94.-2

CLC-INTERCAL использует механизм текстового ввода-вывода, основанный на кодах Бадо. Это 5-битная кодировка, в которой код каждого символа состоит из двух частей — сдвиг и собственно код. Сдвиг может принимать значения от 1 до 4, переключения между сдвигами делается специальными кодами 31 (из 1|2 в 2 или 3|4 в 1) и 27 (из 1|2 в 3 или из 3|4 в 4). Таким образом, выводящийся массив интерпретируется как последовательность кодов символов и переключателей сдвига. Массив обычно длиннее, чем сообщение, из-за переключателей сдвига.

В этом примере, сообщение начинается с H, код Бадо “1 0x14”. Изначально сдвиг равен 1, его менять не нужно, поэтому первый элемент массива — код символа 20. Следующий символ — e, код Бадо “2 0x01”, приходится переключаться на сдвиг 2 (код 31) и только потом печатать символ (код 1), и т.д.

Следует отметить, что CLC-INTERCAL не слишком беспокоится о вежливости программиста: этот пример работает с гораздо меньшим количеством PLEASE, чем потребовал бы C-INTERCAL.

DO ,1 <- #18

DO ,1 SUB #1 <- #20
DO ,1 SUB #2 <- #31
DO ,1 SUB #3 <- #1
DO ,1 SUB #4 <- #19
DO ,1 SUB #5 <- #19
DO ,1 SUB #6 <- #24
DO ,1 SUB #7 <- #27
DO ,1 SUB #8 <- #12
DO ,1 SUB #9 <- #4
DO ,1 SUB #10 <- #31
DO ,1 SUB #11 <- #18
DO ,1 SUB #12 <- #31
DO ,1 SUB #13 <- #24
DO ,1 SUB #14 <- #10
DO ,1 SUB #15 <- #19
DO ,1 SUB #16 <- #9
DO ,1 SUB #17 <- #27
DO ,1 SUB #18 <- #13

PLEASE READ OUT ,1
PLEASE GIVE UP

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам