萌えハッカーニュースリーダー

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

出典: https://github.com/tneukom/topolang
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

それは…大変そうですね(笑)。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search