マウス(MOUSEと表記されることもある)プログラミング言語は、1970年代後半から1980年代前半にかけてピーター・グロゴノ博士によって開発された小さなコンピュータプログラミング言語です。 [ 1 ] [2] [3]これは、電子音楽スタジオでデジタルおよびアナログデバイスを制御するために使用されていたMUSYSと呼ばれる以前の言語の拡張として開発されました。
Mouse は、もともとメモリが限られたマイクロコンピュータ向けの小型で効率的な言語として設計されました。これはインタープリタ型のスタックベースの言語で、逆ポーランド記法を使用します。インタープリタをできるだけ簡単に実装できるようにするために、Mouse は、プログラムが文字のストリームとして処理され、一度に 1 文字ずつ解釈されるように設計されています。
Mouse 言語の要素は、一連の (ほとんどが) 1 文字のシンボルで構成され、各シンボルは特定の機能を実行します (下の表を参照)。変数名は 1 文字に制限されているため、Mouse で使用できる変数は 26 個のみです (A ~ Z で命名)。使用できるデータ型は整数と文字のみです。
これらの制限にもかかわらず、マウスには次のような比較的高度な機能が多数含まれています。
- 条件分岐
- ループ
- ポインタ
- マクロ(サブルーチン(再帰的になる場合もある))
- 配列
- コードトレース
Mouse言語の設計は、単純なインタープリタの設計を教えるのに最適です。Mouse [3]を説明する本の大部分は、 Z80 アセンブリ言語とPascalの2つのインタープリタの実装の説明に費やされています。
詳細
ここで説明する言語は、Mouseの本で説明されているMouseの後のバージョンです。[3]このバージョンは、元の雑誌記事で説明されている言語の拡張版です。[1]
シンボル
次の表は、マウスで使用される各シンボルについて説明しています。[3] ここで、Xはスタックの一番上の数字を指し、Yはスタックの次の数字を指します。
表現
よく使われる慣用句
これらの表現は、マウス プログラムで頻繁に表示されます。
X: ~ 変数Xに格納する X. ~ 変数Xを思い出す X. Y: ~ XをYにコピーする N. 1 + N: ~ Nを1増やす PQ P: Q: ~ PとQの値を入れ替える ? A: ~ 数字を入力してAに保存する P. ! ~ 変数Pを印刷
入力
マウスは整数または文字を入力できます。文字が入力されると、自動的に ASCII コードに変換されます。
? X: ~ 数値を入力してXに格納する ?' X: ~ 文字を入力し、そのASCIIコードをXに格納します
出力
マウスは、次の例に示すように、整数、文字、または文字列定数を印刷します。文字列定数に感嘆符がある場合は、新しい行が印刷されます。
X. ! ~ 番号Xを思い出して印刷します X. !' ~ ASCIIコードXを呼び出して文字を印刷する "Hello" ~ 文字列 "Hello" を印刷します "Line 1!Line 2" ~ 文字列 "Line 1" と "Line 2" を 2 行に出力します
条件文
条件文の一般的な形式は次のとおりです。
B [ S ] ~ 次と同等: BならばS
ここで、B は1 (真) または 0 (偽) に評価される式であり、S はステートメントのシーケンスです。
ループ
ループにはいくつかの形式があります。最も一般的な形式は次のとおりです。
(B ^ S) ~ 次と同等: while B do S (SB ^) ~ 次と同等: (B でなくなるまで) S を繰り返す
ここでも、B はブール値 (0 または 1) であり、S はステートメントのシーケンスです。
マクロ呼び出し
マクロ (サブルーチン) 呼び出しの形式は、次の例で説明できます。この例のマクロ A は、メイン プログラムから渡された 2 つのパラメーターを加算し、その合計をスタックの一番上に返します。
#A,p1,p2; ~ メインプログラムでマクロAを呼び出す ... $A 1% 2% + @ ~ マクロA (パラメータp1とp2を追加)
ここで、p1とp2 はマクロに渡されるパラメーターです。
サンプルプログラム
この短いプログラムは「Hello world」を出力します。
"こんにちは世界。" $
このプログラムは、1 から 10 までの整数の平方を表示します。
1 N: ~ Nを1に初期化する ( NN * ! " " ~ ループ開始; 数の平方を出力 N. 10 - 0 < ^ ~ N >= 10 の場合はループを終了 N. 1 + N:) $ ~ Nを増分してループを繰り返す
注記
- ^ ab Grogono, Peter (1979年7月). mii/n197/mode/2up 「Mouse / A Language for Microcomputers」. BYTE . pp. 198–220 . 2013年10月18日閲覧。
{{cite news}}:値を確認する|url=(ヘルプ) - ^ レーン、トム、グロゴノ、ピーター (1980 年 6 月)。「マウスに関するコメントと訂正」。BYTE。2013年10月 18 日閲覧。
- ^ abcd Grogono, Peter. Mouse: A Language for Microcomputers . 151 ページ. Petrocelli Books, Inc.: 1983. ISBN 0-89433-201-5 .
外部リンク
- マウスプログラミング言語
- MOUSEプログラミング言語の大復活
- ネズミの友達
- マウス、言語
- マウス: コンピュータ プログラミング言語 (マウス インタープリタのソース コードを含む)
- sourceforge.net の情報
