COW (limbaj de programare)
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
- COW - Programare pentru bovine , pe bigzaphod.org (arhivat din original la 3 aprilie 2013) .