Myš (programovací jazyk) - Mouse (programming language)
The Myšovací programovací jazyk je malý počítač programovací jazyk vyvinutý Dr. Peterem Grogonem na konci 70. a začátku 80. let.[1][2][3] Byl vyvinut jako rozšíření dřívějšího jazyka zvaného MUSYS, který se používal k ovládání digitálních a analogových zařízení v elektronickém hudebním studiu.
Myš byla původně zamýšlena jako malý a efektivní jazyk pro mikropočítače s omezenou pamětí. Je to interpretováno, zásobník -založený jazyk a použití Reverzní polská notace. Aby byla implementace tlumočníka co nejjednodušší, je myš navržena tak, aby byl program zpracováván jako proud znaků a interpretován po jednom znaku.
Prvky jazyka Myš se skládají ze sady (většinou) jednoznakových symbolů, z nichž každý plní určitou funkci (viz tabulka níže). Jelikož názvy proměnných jsou omezeny na jeden znak, existuje v myši pouze 26 možných proměnných (pojmenovaných A-Z). Celá čísla a znaky jsou jediné dostupné datové typy.
Navzdory těmto omezením obsahuje myš řadu relativně pokročilých funkcí, včetně:
- Podmíněné větvení
- Smyčky
- Ukazatele
- Makra (podprogramy (které mohou být rekurzivní))
- Pole
- Trasování kódu
Design jazyka Myš je ideální pro výuku designu jednoduchého tlumočníka. Hodně z knihy popisující myš[3] se věnuje popisu implementace dvou tlumočníků, jednoho v Z80 montážní jazyk, druhý v Pascal.
Detaily
Zde popsaným jazykem je novější verze myši, jak je popsáno v knize Mouse.[3] Tato verze je rozšířením jazyka popsaného v původním článku časopisu.[1]
Symboly
Následující tabulka popisuje každý ze symbolů používaných myší.[3] Zde X označuje číslo v horní části zásobníku a Y je další číslo v zásobníku.
Symbol | Akce |
---|---|
<space> | Žádná akce |
$ | Konec programu |
<number> | Zatlačte <číslo> do zásobníku |
+ | Přidat |
- | Odčítat |
* | Násobit |
/ | Celé dělení |
Zbytek | |
? | Zadejte celé číslo |
?' | Vstupní znak |
! | Tisk celé číslo |
!' | Tisknout znak |
' | Zatlačte postavu na hromádku |
" | Vytisknout řetězec |
<letter> | Získejte proměnnou adresu |
: | Uložit proměnnou |
. | Proměnná vyvolání |
< | Vrátit 1, pokud Y |
= | Vrátit 1, pokud Y = X; jinak vrátit 0 |
> | Vrátit 1, pokud Y> X; jinak vrátit 0 |
[ | Začátek podmíněného prohlášení |
] | Konec podmíněného prohlášení |
( | Začátek smyčky |
) | Konec smyčky |
^ | Exit loop (if false) |
# | Makro volání |
@ | Výstup z makra |
% | Makro parametr |
, | Konec skutečného parametru makra |
; | Konec seznamu parametrů makra |
{ | Zahájit trasování |
} | Ukončit stopu |
~ | Komentář |
Výrazy
Společné idiomy
Tyto výrazy se často vyskytují v programech Myš.
X: ~ uložit do proměnné XX. ~ vyvolat proměnnou XX. Y: ~ zkopírujte X do YN. 1 + N: ~ přírůstek N o 1P. Q. P: Q: ~ zaměnit hodnoty P a Q? A: ~ zadejte číslo a uložte do AP. ! ~ tisk proměnné P
Vstup
Myš může zadávat celá čísla nebo znaky. Když je znak zadán, automaticky se převede na jeho kód ASCII.
? X: ~ zadejte číslo a uložte do X? ' X: ~ zadejte znak a uložte jeho kód ASCII do X
Výstup
Myš může tisknout celá čísla, znaky nebo řetězcové konstanty, jak je znázorněno v těchto příkladech. Pokud se v řetězcové konstantě objeví vykřičník, vytiskne se nový řádek.
X. ! ~ vyvolat číslo X a vytisknout X ! ' ~ vyvolat ASCII kód X a tisknout znak „Hello“ ~ tisknout řetězec „Hello“ „řádek 1! řádek 2“ ~ tisknout řetězce „řádek 1“ a „řádek 2“ na dva řádky
Podmíněné
Podmíněné prohlášení má obecnou formu:
B [S] ~ ekvivalentní: pokud B, pak S
Tady B je výraz, který je vyhodnocen na 1 (true) nebo 0 (false), a S je sled příkazů.
Smyčky
Smyčky mohou mít jednu z několika forem. Nejběžnější jsou formy:
(B ^ S) ~ ekvivalent k: zatímco B do S (S B ^) ~ ekvivalent k: opakujte S dokud (ne B)
Zde opět B je logická hodnota (0 nebo 1) a S je sled příkazů.
Makro volání
Formát volání makra (podprogramu) lze ilustrovat na následujícím příkladu. Makro A v tomto příkladu přidá dva parametry, které mu byly předány z hlavního programu, a vrátí součet v horní části zásobníku.
# A, p1, p2; ~ volání hlavního programu na makro A ... $ A 1% 2% + @ ~ makro A (doplňte parametry p1 a p2)
Tady p1 a p2 jsou parametry předané do makra.
Ukázkové programy
Tento krátký program vytiskne „Hello world.“
„Ahoj světe.“ $
Tento program zobrazuje druhé mocniny celých čísel od 1 do 10.
1 N: ~ inicializace N na 1 (NN *! "" ~ Počáteční smyčka; tisk čtverců čísel N. 10 - 0 <^ ~ výstupní smyčka, pokud N> = 10 N. 1 + N :) $ ~ přírůstek N a opakovat smyčka
Poznámky
- ^ A b Grogono, Peter (červenec 1979). „Myš / jazyk pro mikropočítače“. BYTE. 198–220. Citováno 18. října 2013.
- ^ Lane, Tom; Grogono, Peter (červen 1980). „Komentář a oprava pro myš“. BYTE. Citováno 18. října 2013.
- ^ A b C d Grogono, Peter. Myš: Jazyk pro mikropočítače. 151 stránek. Petrocelli Books, Inc .: 1983. ISBN 0-89433-201-5.
externí odkazy
- Programovací jazyk myši
- Velké probuzení programovacího jazyka MOUSE
- Přátelé myši
- Myš, jazyk
- Myš: Počítačový programovací jazyk (zahrnuje zdrojový kód pro tlumočníky myši)
- Informace na sourceforge.net