Seite 2 von 2

Verfasst: Sonntag 1. Juni 2008, 08:45
von sma
Leonidas hat geschrieben:Jemand hat auch behauptet das man sich für jedes Problem in Lisp eine eigene Sprache schreibt (DSL) und mit dieser dann das Problem löst :)
Was ich für im Gegensatz zu lunar auch den richtigen Ansatz halte. Extrem ist in dieser Hinsicht Forth, wo man sich ja wirklich solange Worte, mit denen man den Satz baut, der das Problem löst, aus einfacheren Worten zusammenbaut, bis man abstrakt genug ist, auch die Lösung in einem Satz auszudrücken. Man vergleiche auch Guy Steeles legendären OOPSLA-Vortrag, Growing a Language.

Man geht in jeder Programmiersprache so vor, doch viele Programmiersprachen erlauben es nur, neue Funktionen (oder Operationen) selbst zu definieren, nicht jedoch auch neue Kontrollstrukturen. Hier sind Forth oder aber eben auch Lisp-Dialekte anders. Eigene Kontrollstrukturen (allgemein "special forms") sind dank Makro-Programmierung ebenfalls möglich. CommonLisp geht mit seinem Objektsystem sogar so weit, dass auch andere eigene Objektsysteme dank Metaobjekt-Programmierung möglich sind.

Stefan