LISP: Was meint man speziell damit, dass sich die Sprache selber programmieren lässt?
-
Tach,
überall heisst es, dass LISP eine selbst-programmierende Sprache ist.
Außerdem hör ich, dass sich das LISP programm zur laufzeit ändern kann. (?!?!?!)Kann das jemand genauer erläutern und aufzeigen, was es kann im gegensatz zu anderen modernen programmier/scriptsprachen (ruby,python,C/C++, C#, java, etc etc)
Eventuell ein einfaches & kurzes code beispiel.
Mich fasziniert irgendwie die Idee, dass ein Programm sich selber verändern kann.
-
Genaue Beispiele kann ich dir nicht geben, aber das wichtigste ist, dass ein Lisp-Programm selbst eine Liste ist. Der Lisp-Interpreter ist letztlich nur eine Implementierung der Funktion eval, die eine Liste (das Programm) entgegennimmt und auswertet (funktionale Programmierung halt). Und weil das Programm eine Liste ist, kannst du es selbstverständlich auch mit den normalen Listenoperationen verändern und somit zur Laufzeit neue Programme basteln.
Keine Gewähr, ich bin leider nicht so lispfirm wie ich es gerne wäre
-
Sich selbst ändernden Code konnte man schon damals auf dem C64 mittels Assembler machen.
Nichts besonderes...
-
-
Wichtig in dem Zusammenhang ist vor allem das Macrofeature (nicht zu verwechseln mit Cpreprozessor Macros oä!)
http://www.gigamonkeys.com/book/macros-standard-control-constructs.html (und die weiteren Kapitel)
http://letoverlambda.com/