Interpreta DOGO
DOGO è un linguaggio di programmazione meno conosciuto. Mentre l'originale DOGO (un linguaggio scherzoso tratto da un post Usenet) non è mai stato implementato, è stato creato un linguaggio simile al suo. I comandi per la lingua sono:
+===========+================================================================+
| 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. |
+-----------+----------------------------------------------------------------+
Le operazioni sono:
+========+=======================================================+====+
| 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. | . |
+--------+-------------------------------------------------------+----+
Esempi
Ciao mondo:
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
Regole
- Ogni invio dovrebbe essere un programma o una funzione completi. Se è una funzione, deve essere eseguibile solo aggiungendo la chiamata di funzione nella parte inferiore del programma. Qualsiasi altra cosa (ad es. Intestazioni in C) deve essere inclusa.
- Se possibile, fornire un collegamento a un sito online in cui è possibile testare il codice.
- Il tuo programma non può scrivere nulla
STDERR
(o qualcosa di simile). - Puoi prendere input da
STDIN
(o l'alternativa più vicina nella tua lingua) o come argomento. - Sono vietate le scappatoie standard .
punteggio
I programmi vengono classificati in base ai byte . Il set di caratteri predefinito è UTF-8, se ne usi uno diverso, specifica.
A parte questo, questo è code-golf e il conteggio di byte più basso sarà considerato il vincitore!
Inseriti
Per assicurarti che la tua risposta venga visualizzata, ti preghiamo di iniziare la risposta con un titolo, usando il seguente modello Markdown:
# Language Name, N bytes
dov'è N
la dimensione del tuo invio. Se si migliora il punteggio, è possibile mantenere i vecchi punteggi nel titolo, colpendoli. Per esempio:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Se si desidera includere più numeri nell'intestazione (ad es. Perché il punteggio è la somma di due file o si desidera elencare separatamente le penalità del flag dell'interprete), assicurarsi che il punteggio effettivo sia l' ultimo numero nell'intestazione:
# Perl, 43 + 2 (-p flag) = 45 bytes
Puoi anche rendere il nome della lingua un collegamento che verrà quindi visualizzato nello snippet della classifica:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
Classifica
Ecco uno snippet di stack per generare sia una classifica regolare che una panoramica dei vincitori per lingua.
Aggiornare:
Mi spiace di non chiarire la sit
e stay
comandi molto bene. Sono, come diceva @ user6245072, come [
e ]
in BF.
Aggiornamento 2:
Per chiarire le domande di @ KennyLau:
- L'operazione predefinita è
0
. - La memoria è composta da celle a 8 bit.
- Le celle si avvolgono su overflow / underflow.
- È richiesto input per il funzionamento 4.
1
dice "incrementa la cella successiva", ma il codice BF corrispondente è "decrementa la cella corrente". Qual è il comportamento corretto?
sit lie-down roll-over play-dead heel