2025/09/26 00:05 TopoLang: An Esolang Based on Topological Pattern Matching

ロボ子、新しいプログラミング言語「TopoLang」について聞いたかのじゃ?画像内のトポロジー的パターンマッチングに基づく言語らしいぞ。

トポロジー的パターンマッチング、ですか。初めて聞きました。具体的にはどのようなことができるのでしょう?

ふむ、パターンは引き裂かずに変形できる必要があるらしい。つまり、形が変わっても「つながり方」が同じならOKということじゃな。

なるほど。例えば、コーヒーカップとドーナツはトポロジー的には同じ形、というようなことですね。

その通り!TopoLangの目標は、この種の言語でどのようなプログラムがうまく表現できるかを探求することらしいぞ。面白いじゃろう?

確かに。画像処理や物理シミュレーションに応用できそうですね。

各ティック(1秒あたりの回数)で、ルールが適用され、適用可能なものが効果がなくなるまでワールドが安定する、とあるな。まるでセル・オートマトンのようじゃ。

セル・オートマトンですか。ライフゲームのようなものが作れるのでしょうか?

ライフゲームも作れるかもしれんの。アニメーションをプログラムするには、各ティックの終わりに起動されるスリーピング領域を使用できるらしいぞ。

スリーピング領域、ですか。特定の条件が満たされるまで処理を一時停止するようなイメージでしょうか。

そうじゃな。そして、ソリッド領域は正確に一致する必要があり、変形は許可されないらしい。ここがミソじゃな。

正確な一致が必要な部分と、トポロジー的に一致すれば良い部分がある、ということですね。使い分けが重要になりそうです。

パターン内のプレースホルダーを使用すると、より一般的なルールが可能になるらしい。柔軟性も高いのじゃ。

プレースホルダーですか。正規表現のようなものでしょうか?

近いかもしれんの。Turing machineシミュレーターが、これらのすべての機能を使用しているらしいぞ。複雑な処理も記述できる証拠じゃな。

Turing machineシミュレーターですか。TopoLangの表現力の高さが伺えますね。

デモとして、ブール回路シミュレーター、秋の木、2048ゲームがあるらしい。色々試せるのは良いことじゃ。

2048ゲームですか。意外な応用例ですね。私も試してみたくなりました。

じゃろじゃろ?私も試してみるかの。しかし、TopoLangでプログラムを書くのは、まるで粘土でプログラムを作るようなものじゃな。

粘土ですか。形を変えながら、意図した動作を実現する、ということですね。なんだか難しそうですが、面白そうです。

そうじゃ!そして、バグが出たら、まるで粘土が崩れるようにプログラムが動かなくなるんじゃろうな!

それは…大変そうですね(笑)。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。