Tree Calculus の概要
- Tree Calculus は、計算の本質を捉えるシンプルな演算子と意味論を持つチューリング完全なシステムである。
- 関数のシリアライズとデシリアライズが可能で、さまざまな形式にコンパイルできる。
- プログラム解析、型チェック、コンパイル、最適化などをプログラム内で実行できる能力を持つ。
関数とメタ理論の民主化
- 文字列操作関数の例を通じて Tree Calculus の機能を説明している。
- 型チェックは関数呼び出しとして簡単に実行でき、最適化も可能である。
- 最適化前後の評価ステップ数とツリーノード数を比較することで性能を確認できる。
Intensionality の利点
- プログラム解析のための引用なしに、プログラムを反映できる能力を持つ。
- 静的チェックと動的チェックを同じ関数呼び出しで実行できる。
- プログラム自体からコンパイルと配布が可能で、強力な REPL 環境を提供する。
Tree Calculus の強力さ
- Tree Calculus はチューリング完全であり、プログラムとそのエンコーディングの区別がない。
- データエンコーディングとアルゴリズムが非対称に最適化されている。
- 一般的なリスト操作関数は、数百個のノードを持つ二分木として表現される。
簡潔さ
- Tree Calculus の抽象構文は単純で、値はラベルのない二分木として表現される。
- JSON、UTF8 などの標準を使わなくても、さまざまな概念を迅速にブートストラップできる。
- 教育用途に適しており、段階的に抽象化を導入してモデリングできる。
移植性
- Tree Calculus の構文と意味論は最小限に抑えられており、プラットフォームに依存しない。
- どのプラットフォームやプログラミング言語でもインタプリタを容易に書ける。
- Tree Calculus の全機能をどこでもブートストラップできるため、異種システムにおけるコードとしての設定言語に適している。
1件のコメント
Hacker Newsのコメント
Tree Calculusは非常に興味深く、このウェブサイト以外にも多くの含意がある。ただ、このウェブサイトが考案者であり著者でもあるProf. Barry Jayに触れていないのは残念。彼の本はGitHubで確認できる
Tree Calculusはとてもすばらしい概念に見える。ただ、もっと理解しやすい説明が必要だ。初心者向けのバージョンがあるのか気になる
ホームページでは「Democratizing Functions」と「Democratizing Metatheory」という文句を使っている。この語の使い方が適切なのか疑問に感じる
Tree Calculusの論理的な縮約規則を理解するために、視覚的に表現した図を作ってみた。視覚的に考える人には役立つかもしれない
この内容を理解しているふりをしながら投票している人がいるのか気になる
Tree CalculusがLispやForthとどう違うのか説明してくれる人がいるとありがたい。批判ではなく理解のための質問だ
Pythonコードの例を通じてTree Calculusの基本概念を説明している
Leaf、Stem、Forkのような基本構造を定義し、apply関数でロジックを実装するshow関数で結果を出力するZコンビネータをSKIからTree Calculusへ変換しようと試みている。ラムダ計算の例を使って木を出力する
Tree Calculusの規則を二分木のパターンマッチングとして可視化した結果を共有する
JohannesがTree Calculusを実験し、GitHub上の自分の本で暗示的にしか触れていなかった可能性を明示的に示しているのはとてもよい。いまや型付きTree Calculusができ、ブログを始めている