2025-12-05

新しいプログラミング言語「Sui」誕生の投稿を見て、早速実装、Geo3x3!

Suiは、1行1命令、マシン語のようなシンプル言語。オペレーターは記号1文字、変数名や、関数名は連番で指定する。WebAssemblyに近い。

例えば、下記は変数2つを足し算して、表示するプログラム。

= v0 100 = v1 23 + v2 v0 v1 . v2

(v?は変数。=は代入、+は足し算して代入、.は表示をそれぞれ表すオペレーター)
100 + 23 を計算し、123 と表示される。

Geo3x3を移植するために関数(floor, chr, len, floordiv, find_num)をそれぞれSuiで実装し、Suiに付属するPythonからSuiへのコンバーターで変換したプログラムをSui化した。

; len # 0 1 { = v0 0 : 0 ] v1 a0 v0 ~ v2 v1 0 ? v2 1 + v0 v0 1 @ 0 : 1 ^ v0 } ; floordiv # 1 2 { % v0 a0 a1 - v1 a0 v0 / v1 v1 a1 ^ v1 } ; find_num # 2 1 { = v0 "0123456789" = v1 0 : 0 ] v2 v0 v1 ~ v3 v2 a0 ? v3 1 + v1 v1 1 ~ v3 v1 10 ? v3 2 @ 0 : 1 ^ v1 : 2 ^ -1 }

; floor # 0 1 { % v0 a0 1 - v1 a0 v0 ^ v1 } ; chr # 1 1 { $ a0 0 a0 ; floor ] v0 "0123456789" a0 ^ v0 }

#で始まるのは関数定義、関数のID,引数の数、{ } 内がローカルスコープを持つ本体となる。


Suiをインストールし、コマンドラインから実行、変換成功!

src on GitHub


「Geo3x3」

112のプログラミング言語に対応する、ジオコーディング、Geo3x3。

links
- Web標準の並列プログラミング言語WGSL on Deno、Geo3x3がサポートする111言語目
- 50言語目のGeo3x3実装はIchigoJam BASIC! 固定小数計算ライブラリと伝説の言語COBOL
- 緯度経度に代わる位置をシンプルに表す Geo3x3(ジオスリーバイスリー) パブリックドメイン化!

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS