Hello, World! в Befunge
Первая часть примера (до пробела) размещает в стеке нужные значения. 25* помещает в стек значение 10 (ASCII-код перевода строки), затем " переводит программу в строковый режим: каждый следующий символ (до вторых кавычек) добавляет в стек свой ASCII-код.
Вторая часть примера — цикл, выводящий на печать все значения в стеке, начиная с самых верхних. > возвращает указатель инструкций к движению вправо (после конца одной итерации). : копирует верхний элемент стека (т.е. текущий символ), из-за моста # выполняется только при движении вправо. , выводит верхний элемент стека (выполняется только при движении влево). _ пропускает указатель инструкций к @ (концу программы), если верхний элемент стека — 0, и отражает его влево в противном случае. Последовательность действий в одной итерации следующая:
- скопировать верхний элемент стека,
- проверить, равен ли он 0; если равен, выйти из цикла (при этом в любом случае копия элемента удаляется из стека),
- напечатать верхний элемент стека.
25*"!dlroW ,olleH" >:#,_@
Комментарии
]]>blog comments powered by Disqus
]]>