<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Dynamische_Programmiersprache</id>
	<title>Dynamische Programmiersprache - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Dynamische_Programmiersprache"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Dynamische_Programmiersprache&amp;action=history"/>
	<updated>2026-05-25T06:34:15Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Dynamische_Programmiersprache&amp;diff=2264930&amp;oldid=prev</id>
		<title>imported&gt;InternetArchiveBot: InternetArchiveBot hat 1 Archivlink(s) ergänzt und 0 Link(s) als defekt/tot markiert.) #IABot (v2.0.9.5</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Dynamische_Programmiersprache&amp;diff=2264930&amp;oldid=prev"/>
		<updated>2024-11-30T05:56:00Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/index.php?title=Benutzer:InternetArchiveBot&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Benutzer:InternetArchiveBot (Seite nicht vorhanden)&quot;&gt;InternetArchiveBot&lt;/a&gt; hat 1 Archivlink(s) ergänzt und 0 Link(s) als defekt/tot markiert.) #IABot (v2.0.9.5&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{QS-Informatik|Knacknüsse=Ja}}&lt;br /&gt;
{{Dieser Artikel|behandelt eine Gruppe von Programmiersprachen. Zur Methode für die Reduktion der Laufzeit von Algorithmen siehe [[Dynamische Programmierung]].}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Dynamische Programmiersprachen&amp;#039;&amp;#039;&amp;#039; bezeichnet in der [[Softwaretechnik]] eine Klasse von [[Höhere Programmiersprache|höheren Programmiersprachen]], welche zur [[Laufzeit (Informatik)|Laufzeit]] Tätigkeiten ausführen, die andere Programmiersprachen nicht oder zur [[Übersetzungszeit]] ausführen.&amp;lt;ref&amp;gt;Sun: {{Webarchiv|text=&amp;#039;&amp;#039;Using JavaScript as a Real Programming Language&amp;#039;&amp;#039; |url=http://www.activemode.com/webroot/Workers%5CActiveTraining%5CProgramming/Javascript_AsProgrammingLanguage.pdf |wayback=20170810000815 }}. Darin: &amp;#039;&amp;#039;„The term dynamic programming language describes a class of programming languages that share a number of common runtime characteristics that are available in static languages only during compilation, if at all.“&amp;#039;&amp;#039;&amp;lt;/ref&amp;gt; Zu diesen Tätigkeiten gehört beispielsweise die Erweiterung des Programmes während der Laufzeit. Diese Tätigkeiten können auch bei anderen Programmiersprachen nachgebildet werden, bei dynamischen Programmiersprachen werden sie aber direkt von der Sprache unterstützt.&lt;br /&gt;
&lt;br /&gt;
== Grenzen der Definition dynamischer Programmiersprachen ==&lt;br /&gt;
Die Abgrenzung dynamischer Programmiersprachen zu anderen ist nicht exakt. Begriffe wie Übersetzungszeit und Laufzeit verschwimmen beispielsweise bei der Verwendung von [[Virtuelle Maschine|virtuellen Maschinen]] oder [[Just-in-time-Kompilierung]]. Weiterhin bieten viele Programmiersprachen die Möglichkeit auf die eine oder andere Weise [[Bytecode]] oder [[Maschinensprache]] zu manipulieren.&lt;br /&gt;
Andererseits sind dynamische Programmiersprachen meistens, aber nicht immer [[Dynamische Typisierung|dynamisch typisiert]].&lt;br /&gt;
&lt;br /&gt;
Generell gilt, dass die Zuordnung einer Programmiersprache zu den dynamischen Programmiersprachen weniger durch ihre Fähigkeit, dynamische Konzepte umzusetzen, begründet ist, sondern vielmehr auf Grund des einfachen Einsatz dynamischer Techniken in dieser Programmiersprache zustande kommt.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
Die folgenden Programmiersprachen werden üblicherweise als dynamische Programmiersprachen angesehen:&amp;lt;ref&amp;gt;Eclipse: &amp;#039;&amp;#039;[http://www.eclipse.org/dltk/ Dynamic Languages Toolkit]&amp;#039;&amp;#039;.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;ActiveState: {{Webarchiv|text=&amp;#039;&amp;#039;Solutions for Dynamic Language Support, Management, and Compliance&amp;#039;&amp;#039; |url=http://www.activestate.com/manage |wayback=20100612174426 }}.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[ActionScript]]&lt;br /&gt;
* [[BeanShell]]&amp;lt;ref&amp;gt;Spring Framework: &amp;#039;&amp;#039;{{Webarchiv|url=http://static.springsource.org/spring/docs/2.0.x/reference/dynamic-language.html |wayback=20130905155538 |text=Dynamic language support |archiv-bot=2024-11-30 05:56:00 InternetArchiveBot }}&amp;#039;&amp;#039;.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[Common Lisp]] und andere [[Lisp]]-Dialekte&lt;br /&gt;
* [[Groovy]]&amp;lt;ref&amp;gt;Groovy – {{Webarchiv|text=offizielle Webpräsenz |url=http://groovy.codehaus.org/ |wayback=20140302111159 }}.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[JavaScript]]&lt;br /&gt;
* [[Julia (Programmiersprache)]]&lt;br /&gt;
* [[Matlab]]&lt;br /&gt;
* [[Lua]]&lt;br /&gt;
* [[Objective-C]]&lt;br /&gt;
* [[Perl (Programmiersprache)|Perl]]&lt;br /&gt;
* [[PHP]]&lt;br /&gt;
* [[Python (Programmiersprache)|Python]]&lt;br /&gt;
* [[Ruby (Programmiersprache)|Ruby]]&lt;br /&gt;
* [[Smalltalk (Programmiersprache)|Smalltalk]]&lt;br /&gt;
* [[Tcl]]&lt;br /&gt;
* [[VBScript]]&lt;br /&gt;
&lt;br /&gt;
== Umsetzung dynamischer Konzepte ==&lt;br /&gt;
;Eval: Einige dynamische Programmiersprachen bieten eine &amp;#039;&amp;#039;eval&amp;#039;&amp;#039; Funktion. Diese Funktion (höherer Ordnung) übernimmt eine beliebige Funktion und gegebenenfalls geeignete aktuelle Parameter, wendet diese auf jene an und liefert das Berechnungsergebnis. Da &amp;#039;&amp;#039;eval&amp;#039;&amp;#039; somit alles Berechenbare berechnen kann, wird sie als universale Funktion bezeichnet.&lt;br /&gt;
&lt;br /&gt;
;Objektveränderungen zur Laufzeit: Typen oder Objektsysteme können in dynamischen Programmiersprachen zur Laufzeit verändert werden. Beispielsweise können neue Objekte basierend auf existierenden Objekten durch [[Mixin]]s erzeugt werden. Oder aber der Vererbungsbaum wird zur Laufzeit verändert.&lt;br /&gt;
&lt;br /&gt;
;Funktionale Programmierung: [[Funktionale Programmierung|Funktionale Konzepte]] werden häufig von dynamischen Programmiersprachen unterstützt. Beispielsweise gehören [[Closure (Funktion)|Closures]] meist zum Bestandteil dynamischer Programmiersprachen, während aber [[Continuation]]s oft nicht unterstützt werden.&lt;br /&gt;
&lt;br /&gt;
;Reflexion: [[Reflexion (Programmierung)|Reflexion]] (engl. &amp;#039;&amp;#039;reflection&amp;#039;&amp;#039;) und Introspektion (engl. &amp;#039;&amp;#039;introspection&amp;#039;&amp;#039;) wird üblicherweise von dynamischen Programmiersprachen unterstützt. Dabei wird beispielsweise in Lisps [[S-Expressions]] der Code wie eine Datenstruktur evaluiert und modifiziert.&lt;br /&gt;
&lt;br /&gt;
;Makros: Einige dynamische Programmiersprachen kombinieren Introspektion und Evals in [[Makro]]s. Dynamische Programmiersprachen ermöglichen durch Makros, den Prozess der Erstellung des abstrakten Syntaxbaumes innerhalb des Compilers zu beeinflussen und gestatten somit direkte [[Metaprogrammierung]]. Der wichtigste Vertreter ist Lisp.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.lesscode.de/initiative/dynamische-programmiersprachen/ Einführung zu Dynamischen Programmiersprachen auf lesscode.de], Initiative zur Förderung agiler Technologien&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Programmiersprachklasse]]&lt;/div&gt;</summary>
		<author><name>imported&gt;InternetArchiveBot</name></author>
	</entry>
</feed>