Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Dynamische Programmiersprache

Dynamische Programmiersprachen bezeichnet in der Softwaretechnik eine Klasse von höheren Programmiersprachen, welche zur Laufzeit Tätigkeiten ausführen, …

Inhalt4 Abschnitte
  1. 1. Grundidee dynamischer Programmiersprachen
  2. 2. Typische Vertreter
  3. 3. Dynamische Funktionen und Objektänderungen
  4. 4. Funktionale Konzepte, Reflexion und Makros

Grundidee dynamischer Programmiersprachen

Dynamische Programmiersprachen sind in der Softwaretechnik höhere Programmiersprachen, die zur Laufzeit Tätigkeiten ausführen können, welche andere Sprachen nicht oder bereits zur Übersetzungszeit ausführen. Ein Beispiel ist, ein Programm während seiner Ausführung zu erweitern. Vergleichbare Tätigkeiten lassen sich in anderen Sprachen zwar nachbilden, dynamische Programmiersprachen unterstützen sie jedoch unmittelbar.

Die Abgrenzung ist nicht exakt: Bei virtuellen Maschinen oder Just-in-time-Kompilierung verschwimmen Übersetzungszeit und Laufzeit. Viele Sprachen erlauben außerdem auf verschiedene Weise die Manipulation von Bytecode oder Maschinensprache. Dynamische Sprachen sind meist, aber nicht immer, dynamisch typisiert. Entscheidend für die Zuordnung ist vor allem, wie einfach dynamische Techniken in einer Sprache eingesetzt werden können.

Typische Vertreter

Üblicherweise als dynamische Programmiersprachen gelten unter anderem ActionScript, BeanShell, Common Lisp und andere Lisp-Dialekte, Groovy, JavaScript, Julia, Matlab, Lua, Objective-C, Perl, PHP, Python, Ruby, Smalltalk, Tcl und VBScript.

Dynamische Funktionen und Objektänderungen

Einige dynamische Programmiersprachen bieten eine eval-Funktion. Diese Funktion höherer Ordnung übernimmt eine beliebige Funktion und gegebenenfalls geeignete aktuelle Parameter, wendet die Funktion darauf an und liefert das Berechnungsergebnis. Weil eval damit alles Berechenbare berechnen kann, wird sie als universale Funktion bezeichnet.

Typen oder Objektsysteme können zur Laufzeit verändert werden. So können etwa durch Mixins neue Objekte auf Grundlage bereits existierender Objekte entstehen. Auch der Vererbungsbaum kann während der Laufzeit verändert werden.

Funktionale Konzepte, Reflexion und Makros

Dynamische Programmiersprachen unterstützen häufig funktionale Konzepte. Closures gehören meist zu ihren Bestandteilen; Continuations werden dagegen oft nicht unterstützt.

Reflexion und Introspektion werden üblicherweise unterstützt. Damit kann ein Programm seinen eigenen Code oder seine Strukturen untersuchen und verändern. In Lisp werden zum Beispiel S-Expressions, also Darstellungen von Code als Datenstrukturen, evaluiert und modifiziert.

Einige dynamische Programmiersprachen verbinden Introspektion und eval in Makros. Makros können den Prozess beeinflussen, in dem der Compiler den abstrakten Syntaxbaum erstellt. Dadurch ermöglichen sie direkte Metaprogrammierung. Lisp ist hierfür der wichtigste Vertreter.

Weiterlesen

Dynamische Programmierung Dynamische Programmierung ist eine Methode zum algorithmischen Lösen eines Optimierungsproblems durch Aufteilung in Teilprobleme und systematische … Softwaretechnik ... Agile Softwareentwicklung. Die Softwaretechnik umfasst den gesamten Prozess von der Identifizierung des Bedarfs bis hin zur Inbetriebnahme einer konkreten … Höhere Programmiersprache Eine höhere Programmiersprache ist eine Programmiersprache zur Abfassung eines Computerprogramms, die in Abstraktion und Komplexität von der Ebene der … Laufzeit (Informatik) Der Begriff Laufzeit (englisch runtime) beschreibt in der Informatik einerseits die Zeitdauer, die ein Programm, ausgeführt durch einen Rechner, … Bytecode Bytecode ist in der Informatik die Bezeichnung für eine Sammlung von Befehlen, also die Maschinensprache für eine virtuelle Maschine. Maschinensprache Mit einem Assembler: Assemblersprachen formulieren die Prozessorbefehle des Maschinencodes als Mnemonics in einer einfachen Syntax. Dieser Quelltext wird … Julia (Programmiersprache) Julia ist eine höhere Programmiersprache, die vor allem für numerisches und wissenschaftliches Rechnen entwickelt wurde und auch als … Python (Programmiersprache) Python ([ˈpʰaɪθn̩], [ ˈpʰaɪθɑn], auf Deutsch auch [ ˈpʰyːtɔn]) ist eine universell nutzbare, üblicherweise interpretierte, höhere Programmiersprache. Funktionale Programmierung Funktionale Programmierung ist ein Programmierparadigma, in dem Funktionen nicht nur definiert und angewendet werden können, sondern auch wie Daten … Metaprogrammierung Metaprogrammierung ist in der Informatik die Erstellung von Computerprogrammen ("Metaprogramme"), die Computerprogramme erzeugen. Das Ziel dabei ist es, …