■概要
本ソフトは数値計算とパズル的なプログラミングを行うために作った独自仕様のプログラミング言語で、Windows上で動作します。
言語処理系は非常にコンパクトで、数値は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.9(vts19a.zip)を公開しています。
名称  内容   ファイル
 超小型記号言語
  Ver1.9
処理系と、ディクショナリ、サンプルプログラム、取扱説明書、ソースプログラムなどを含んでいます。
システムディクショナリはVer1.6です。
 vts19a.zip
 サンプルプログラム
Ver2.0
超小型記号言語で記述した「関数z=f(x,y)をグラフ表示するプログラム」と、その曲面定義集です。
また、このプログラムのワード定義版(ユーザディクショナリに登録)も同梱してあります。
詳細は、超小型記号言語による数値計算とゲームをご覧ください。
 vts-prg20.zip

■変更来歴
処理系本体の来歴です。
年/月 バージョン  変更内容
 2018/01  1.0  新規作成
 2018/01  1.1  演算スタックのサイズを3段から6段に変更
 2018/06  1.2  文字コードによる1文字出力命令を追加、10進数出力命令を変更
2018/09  1.3  ワード(サブルーチン)機能、ディクショナリ機能を追加
 2018/09  1.4  数値を16ビットから32ビットに変更、ワード2文字から3文字に変更
 2019/01  1.5  データエリア(変数+配列)を「32ビット符号無し整数1025個」から「32ビット符号付き整数65536個」に変更
 2021/04  1.6  演算スタック、システムスタックのサイズを6段から65536段に変更、ユーザディクショナリ機能を追加
 2025/07  1.7  ワード3文字から16文字(可変)に変更、ダイレクトモードを追加
 2025/07  1.8  Ver1.7のバグ(ワード「:xxxx」を実行すると画面に「SERCH=xxxx」を出力)を修正、トレース機能を追加
 2025/08  1.9  スタック表示ワードを追加、スタック異常検出を追加、未定義ワード検出で実行停止に変更、トレース表示ワード数に上限を設定など

このソフトウェアに関するご意見・ご質問等をお待ちしています。
to@takami.com  (アドレスは半角で入力ください)

[トップページに戻る]

超小型記号言語