Інтерпретувати DOGO
DOGO - менш відома мова програмування. Хоча оригінальний DOGO (мова жарту з публікації Usenet) ніколи не був реалізований, була створена мова, що нагадує його. Командами для мови є:
+===========+================================================================+
| Command | Description |
+===========+================================================================+
| SIT | If the value of the current memory cell is 0, jump to STAY. |
+-----------+----------------------------------------------------------------+
| STAY | If the value of the current memory cell is not 0, jump to SIT. |
+-----------+----------------------------------------------------------------+
| ROLL-OVER | Select the next operation from the operation list. |
+-----------+----------------------------------------------------------------+
| HEEL | Execute the currently selected operation. |
+-----------+----------------------------------------------------------------+
Операції:
+========+=======================================================+====+
| Number | Description | BF |
+========+=======================================================+====+
| 0 | Increment current memory cell. | + |
+--------+-------------------------------------------------------+----+
| 1 | Decrement current memory cell. | - |
+--------+-------------------------------------------------------+----+
| 2 | Move to next memory cell. | > |
+--------+-------------------------------------------------------+----+
| 3 | Move to previous memory cell. | < |
+--------+-------------------------------------------------------+----+
| 4 | Input a byte and store it in the current memory cell. | , |
+--------+-------------------------------------------------------+----+
| 5 | Output the current memory cell as ASCII. | . |
+--------+-------------------------------------------------------+----+
Приклади
Привіт Світ:
roll-over roll-over heel roll-over roll-over roll-over roll-over heel heel heel
heel heel heel heel heel heel sit roll-over roll-over roll-over heel roll-over
roll-over roll-over heel heel heel heel heel heel heel heel roll-over roll-over
heel roll-over roll-over roll-over roll-over roll-over heel roll-over roll-over
roll-over roll-over roll-over stay roll-over roll-over roll-over heel roll-over
roll-over heel roll-over roll-over roll-over heel roll-over roll-over roll-over
roll-over heel heel heel heel heel heel heel sit roll-over roll-over roll-over
heel roll-over roll-over roll-over heel heel heel heel roll-over roll-over heel
roll-over roll-over roll-over roll-over roll-over heel roll-over roll-over
roll-over roll-over roll-over stay roll-over roll-over roll-over heel roll-over
roll-over roll-over heel roll-over roll-over roll-over roll-over roll-over heel
roll-over heel heel heel heel heel heel heel roll-over roll-over roll-over
roll-over roll-over heel heel roll-over heel heel heel roll-over roll-over
roll-over roll-over roll-over heel roll-over roll-over roll-over heel heel heel
roll-over roll-over roll-over roll-over heel heel heel heel heel heel heel heel
sit roll-over roll-over roll-over heel roll-over roll-over roll-over heel heel
heel heel roll-over roll-over heel roll-over roll-over roll-over roll-over
roll-over heel roll-over roll-over roll-over roll-over roll-over stay roll-over
roll-over roll-over heel roll-over roll-over heel roll-over roll-over roll-over
heel heel heel roll-over roll-over roll-over roll-over heel heel heel heel heel
heel heel heel heel heel sit roll-over roll-over roll-over heel roll-over
roll-over roll-over heel heel heel heel heel heel heel heel heel roll-over
roll-over heel roll-over roll-over roll-over roll-over roll-over heel roll-over
roll-over roll-over roll-over roll-over stay roll-over roll-over roll-over heel
roll-over roll-over roll-over roll-over heel heel heel roll-over roll-over
roll-over roll-over heel roll-over roll-over roll-over roll-over heel heel heel
heel roll-over roll-over heel roll-over heel heel heel roll-over roll-over
roll-over roll-over roll-over heel roll-over roll-over heel heel heel heel heel
heel roll-over roll-over roll-over roll-over heel roll-over roll-over heel heel
heel heel heel heel heel heel roll-over roll-over roll-over roll-over heel
roll-over roll-over roll-over heel heel roll-over roll-over roll-over roll-over
heel roll-over roll-over roll-over roll-over roll-over heel
Правила
- Кожне подання повинно бути або повною програмою, або функцією. Якщо це функція, її потрібно запускати, лише додаючи виклик функції в нижній частині програми. Все інше (наприклад, заголовки в C) повинні бути включені.
- Якщо це можливо, надайте посилання на веб-сайт, де можна перевірити ваш код.
- Ваша програма не може нічого написати
STDERR
(або щось подібне). - Ви можете взяти інформацію
STDIN
(або найближчу альтернативу вашій мові) або як аргумент. - Стандартні лазівки заборонені.
Оцінка балів
Програми оцінюються відповідно до байтів . Набір символів за замовчуванням - UTF-8, якщо ви використовуєте інший, вкажіть.
Що вбік, це і є код-гольф, а найменший байт вважатиметься переможцем!
Подання
Щоб переконатися, що ваша відповідь відображається, будь ласка, почніть свою відповідь із заголовка, використовуючи наступний шаблон Markdown:
# Language Name, N bytes
де N
розмір вашого подання. Якщо ви покращите свій рахунок, ви можете зберегти старі бали у заголовку, прокресливши їх. Наприклад:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Якщо ви хочете включити у свій заголовок декілька чисел (наприклад, тому що ваш результат - це сума двох файлів або ви хочете окремо вказати штрафні санкції для перекладача), переконайтесь, що фактичний бал є останнім номером у заголовку:
# Perl, 43 + 2 (-p flag) = 45 bytes
Ви також можете зробити ім'я мови посиланням, яке потім з’явиться у фрагменті таблиць лідерів:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
Таблиця лідерів
Ось фрагмент стека для створення як звичайного табло, так і огляду переможців за мовою.
Оновлення:
Вибачте за те, що ви не дуже добре прояснили команди sit
та stay
команди. Вони, як сказав @ user6245072, як [
і ]
в BF.
Оновлення 2:
Щоб уточнити питання @ KennyLau:
- Операція за замовчуванням -
0
. - Пам'ять складається з 8-бітних комірок.
- Клітини загортають на перелив / перелив.
- Введення потрібно для роботи 4.
1
говорить "приріст наступної комірки", але відповідний код BF - це "поточна комірка декременту". Яка правильна поведінка?
sit lie-down roll-over play-dead heel