Ich habe nur begrenzte Kenntnisse in Lisp (versuche in meiner Freizeit ein bisschen zu lernen), aber soweit ich Lisp-Makros verstehe, können neue Sprachkonstrukte und Syntax eingeführt werden, indem sie in Lisp selbst beschrieben werden. Dies bedeutet, dass ein neues Konstrukt als Bibliothek hinzugefügt werden kann, ohne den Lisp-Compiler / -Interpreter zu ändern.
Dieser Ansatz unterscheidet sich stark von dem anderer Programmiersprachen. Wenn ich beispielsweise Pascal mit einer neuen Art von Schleife oder einer bestimmten Redewendung erweitern wollte, müsste ich die Syntax und Semantik der Sprache erweitern und dann diese neue Funktion im Compiler implementieren.
Gibt es andere Programmiersprachen außerhalb der Lisp-Familie (außer Common Lisp, Scheme, Clojure (?), Racket (?) Usw.), die eine ähnliche Möglichkeit bieten, die Sprache innerhalb der Sprache selbst zu erweitern?
BEARBEITEN
Vermeiden Sie bitte längere Diskussionen und geben Sie Ihre Antworten genau an. Anstelle einer langen Liste von Programmiersprachen, die auf die eine oder andere Weise erweitert werden können, möchte ich aus konzeptioneller Sicht verstehen, was für Lisp-Makros als Erweiterungsmechanismus spezifisch ist und welche Nicht-Lisp-Programmiersprachen ein Konzept bieten das ist nah an ihnen.