COW (limbaj de programare)

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

COW este un limbaj de programare ezoteric , creat la începutul anului 2003 de Alex van Oostenrijk și Martijn van Beek . Acesta folosește un set de unsprezece instrucțiuni, format din literele M și O. Instrucțiunile lingvistice sunt sensibile la majuscule .

Structura limbajului

Limbajul este structurat ca mașina Turing ( echivalentul Turing ): oferă un vector de numere întregi și instrucțiuni pentru a muta și modifica valorile conținute. De asemenea, oferă un registru temporar care poate conține un număr întreg.

Ca o condiție inițială, vom avea un indicator care indică prima celulă: poziția 0 și un număr potențial infinit de celule. În interiorul fiecărei celule este conținută inițial valoarea 0.

Instrucțiuni

Instrucțiunile de limbă sunt unsprezece, fiecare constă din trei caractere și sunt:

Cod Instrucțiuni Sens
0 moo Această comandă este legată de comanda MOO. Când această instrucțiune este întâlnită în timpul executării normale, interpretul caută comanda MOO fără a executa instrucțiunile pe care le întâlnește și execută instrucțiunea după MOO găsit. (Vezi MOO)
1 moO Măriți indicatorul
2 mOo Micșorați indicatorul
3 mOO Execută instrucțiunea cu un cod de instrucțiuni egal cu conținutul celulei curente. Dacă celula conține valoarea 3, aceasta este invalidă, deoarece ar rula într-o buclă infinită.
4 Moo Dacă valoarea actuală a celulei este 0, atunci citește un singur caracter ASCII de pe tastatură (mai precis intrare standard) și îl salvează în celula curentă. Dacă, pe de altă parte, celula nu conține 0, atunci imprimă caracterul ASCII corespunzător pe ecran (ieșire standard).
5 MoO Măriți valoarea celulei cu 1
6 MOo Reduceți valoarea celulei cu 1

(instrucțiunile 5 și 6 au fost anterior inversate, consultați pagina creatorului COW)

7 MOO Dacă conținutul celulei este 0, atunci revine la apelul efectuat cu comanda moo. Dacă, pe de altă parte, valoarea celulei nu este 0, atunci continuă cu următoarea instrucțiune.
8 OOO Setați valoarea celulei la 0
9 MMM Dacă nu există nicio valoare în registru, atunci copiați valoarea curentă a celulei în ea. Dacă există în schimb o valoare, lipiți acea valoare în celula curentă și ștergeți registrul.
10 OOM Imprimați pe ecran (mai precis în ieșirea standard) valoarea celulei ca număr întreg
11 oom Citește un număr întreg de la tastatură (mai precis din intrarea standard) și îl salvează în celula curentă

Exemple

MoO moO MoO mOo MOO OOM MMM moO moO MMM mOo mOo moO MMM mOo MmM mom moO MOO MOo mOo MoO moO moo mOo mOo moo

linkuri externe