■概要
本ソフトは数値計算とパズル的なプログラミングを行うために作った独自仕様のプログラミング言語です。
言語処理系は非常に単純で、数値は32ビット符号付整数のみ、エラーチェックは皆無に近く、文法的に誤っていてもインタプリタは実行を継続します。
文法はFORTHと類似していて、逆ポーランド記法、ディクショナリの考えを取り入れています。
記号言語というその名の通り、1文字の記号が命令として動作します。

例えば、記号( ! )はスタックから2つのデータをPULLして、これを「書込データ」と「書込アドレス」と見なしてメモリにデータを書き込む命令です。次のプログラム
#123 #2 !
は、123と2をスタックにPUSHした後、スタックから2つのデータをPULLして、123を2番地のメモリに書き込みます。
なお、超小型記号言語では文字A~Zを数値0~25と同等に扱うため、Cは2を意味し
#123 C !
と書いても同じ動作を行います。あたかも変数Cに123を代入しているように見えます。これが超小型記号言語における変数への代入の仕組みです。
同様に、記号( @ )を使うと
C @
で変数C(実際は2番地)を読み出すことができます。

■サンプルプログラム(pai.vts)
円と正方形の面積比から、円周率を求めるサンプルプログラムです。
実行後、数秒で"PAI=31416"を出力します。
#0 P! ←変数Pに0を代入
#0 X!
[a

#1 Y!
[b
X@ X@ * Y@ Y@ * + #10000 > c]
←条件分岐(X*X+Y*Y>10000なら、ラベルcへ)
P@ #1 + P!
←変数Pに1を加算
[c ←ラベルc
Y@ #1 + Y!
Y@ #101 < b]
X@ #1+ X!
X@ #100 < a]
"PAI=" P@ #4 * .
←変数Pの4倍(=円周率)を出力

■ダウンロード
現在、Version1.5(vts15b.zip)を公開しています。
ソフトウェア・文書名  公開日 内容   ダウンロード
 超小型記号言語
  Ver1.5
20/05/30 超小型記号言語のインタプリタ、ディクショナリ、サンプルプログラム、取扱説明書、ソースプログラムを含んでいます。
(vts15a.zipからvts15b.zipへの変更内容は、ドキュメントの改訂のみです)
 vts15b.zip
(185KB)
 サンプルプログラム
Ver1.0
19/01/02  超小型記号言語で記述した3Dグラフィクスプログラムと、その曲面定義集です。
超小型記号言語 Ver1.5以上で動作します。
 vts-prg1.zip
(1.1KB)

■来歴(*1)
年月日 バージョン  変更内容
 18/01/02  1.0  新規作成
 18/01/13  1.1  演算スタックのサイズを3段から6段に変更
 18/06/23  1.2  文字コードによる1文字出力命令を追加、10進数出力命令を変更
 18/09/17  1.3  ワード(サブルーチン)機能、ディクショナリ機能を追加
 18/09/23  1.4  数値を16ビットから32ビットに変更、ワード2文字から3文字に変更
 19/01/02  1.5  データエリア(変数+配列)を「32ビット符号無し整数1025個」から「32ビット符号付き整数65536個」に変更
(*1)実行ファイルの来歴
このソフトウェアに関するご意見・ご質問等をお待ちしています。
to@takami.com  (アドレスは半角で入力ください)

[トップページに戻る]

超小型記号言語