Überblick über Tree Calculus
- Tree Calculus ist ein Turing-vollständiges System mit einfachen Operatoren und einer Semantik, die das Wesen der Berechnung erfasst.
- Funktionen lassen sich serialisieren und deserialisieren und in verschiedene Formate kompilieren.
- Es besitzt die Fähigkeit, Programmanalyse, Type Checking, Kompilierung und Optimierung innerhalb des Programms selbst durchzuführen.
Demokratisierung von Funktionen und Metatheorie
- Anhand eines Beispiels für eine Funktion zur String-Manipulation werden die Fähigkeiten von Tree Calculus erläutert.
- Type Checking kann einfach per Funktionsaufruf durchgeführt werden, und auch Optimierung ist möglich.
- Die Performance lässt sich überprüfen, indem die Anzahl der Auswertungsschritte und der Baumknoten vor und nach der Optimierung verglichen wird.
Vorteile der Intensionalität
- Es besitzt die Fähigkeit, Programme ohne Quotierung für die Programmanalyse zu reflektieren.
- Statische und dynamische Prüfungen können mit demselben Funktionsaufruf durchgeführt werden.
- Kompilierung und Deployment sind im Programm selbst möglich, was eine leistungsfähige REPL-Umgebung bietet.
Die Stärke von Tree Calculus
- Tree Calculus ist Turing-vollständig, und es gibt keine Unterscheidung zwischen Programmen und ihrer Kodierung.
- Datenkodierung und Algorithmen sind asymmetrisch optimiert.
- Allgemeine Funktionen zur Listenmanipulation werden als binäre Bäume mit Hunderten von Knoten dargestellt.
Knappheit
- Die abstrakte Syntax von Tree Calculus ist einfach, und Werte werden als unbeschriftete binäre Bäume dargestellt.
- Auch ohne Standards wie JSON oder UTF8 lassen sich verschiedene Konzepte schnell bootstrappen.
- Es eignet sich für Lehrzwecke und ermöglicht es, schrittweise Abstraktionen einzuführen und Modellierung vorzunehmen.
Portabilität
- Syntax und Semantik von Tree Calculus sind auf ein Minimum reduziert und nicht plattformgebunden.
- Für jede Plattform oder Programmiersprache lässt sich leicht ein Interpreter schreiben.
- Der volle Funktionsumfang von Tree Calculus kann überall gebootstrapped werden, wodurch es sich in heterogenen Systemen als Konfigurationssprache in Form von Code eignet.
1 Kommentare
Hacker-News-Kommentare
Tree Calculus ist ein sehr interessantes Konzept und hat viele Implikationen, die über diese Website hinausgehen. Schade ist allerdings, dass die Website den Schöpfer und Autor, Prof. Barry Jay, nicht erwähnt. Sein Buch ist auf GitHub verfügbar
Tree Calculus wirkt wie ein sehr cooles Konzept. Es braucht jedoch eine Erklärung, die leichter zu verstehen ist. Ich frage mich, ob es eine Version für Einsteiger gibt
Auf der Homepage werden die Formulierungen "Democratizing Functions" und "Democratizing Metatheory" verwendet. Ich bin mir nicht sicher, ob diese Wortwahl passend ist
Ich habe versucht, ein visuelles Diagramm zu erstellen, um die logischen Reduktionsregeln von Tree Calculus zu verstehen. Das könnte für Menschen hilfreich sein, die visuell denken
Ich frage mich, ob es Leute gibt, die dafür stimmen und so tun, als würden sie das verstehen
Ich würde gern wissen, was Tree Calculus von Lisp oder Forth unterscheidet. Das ist keine Kritik, sondern eine Frage zum besseren Verständnis
Die grundlegenden Konzepte von Tree Calculus werden anhand eines Python-Codebeispiels erklärt
Leaf,StemundForkwerden definiert, und die Logik wird mit der FunktionapplyimplementiertshowausgegebenEs wurde versucht, den Z-Kombinator von SKI in Tree Calculus zu konvertieren. Dabei wird ein Beispiel aus dem Lambda-Kalkül verwendet, um Bäume auszugeben
Es wird ein Ergebnis geteilt, das die Regeln von Tree Calculus als Pattern Matching auf binären Bäumen visualisiert
Es ist großartig, dass Johannes mit Tree Calculus experimentiert und Möglichkeiten explizit aufzeigt, die in seinem Buch auf GitHub nur implizit angedeutet wurden. Jetzt gibt es ein typisiertes Tree Calculus, und er hat einen Blog gestartet