Dynamic programming language

from Wikipedia, the free encyclopedia
QS IT
This article was due to content flaws on the quality assurance side of the computer science editorial added. This is done in order to bring the quality of the articles from the subject area of ​​computer science to an acceptable level. Help to eliminate the shortcomings in this article and take part in the discussion !  ( + )

Dynamic programming referred to in the software engineering a class of high-level languages , which the runtime perform activities, not the other programming languages or compile-time run. These activities include, for example, expanding the program during the runtime. These activities can also be simulated in other programming languages, but in dynamic programming languages ​​they are directly supported by the language.

Limits to the definition of dynamic programming languages

The demarcation of dynamic programming languages ​​from others is not exact. Terms such as compilation time and runtime are blurred when using virtual machines or just-in-time compilation , for example . Furthermore, many programming languages ​​offer the possibility of manipulating bytecode or machine language in one way or another . On the other hand, dynamic programming languages ​​are mostly, but not always, dynamically typed .

In general, the assignment of a programming language to the dynamic programming languages ​​is less based on its ability to implement dynamic concepts, but rather on the basis of the simple use of dynamic techniques in this programming language.

Examples

The following programming languages ​​are commonly considered dynamic programming languages:

Implementation of dynamic concepts

Eval
Some dynamic programming languages ​​offer an eval function. This function executes code that is passed to it in a string.
Object changes at runtime
Types or object systems can be changed in dynamic programming languages ​​at runtime. For example, new objects can be created using mixins based on existing objects . Or the inheritance tree is changed at runtime.
Functional programming
Functional concepts are often supported by dynamic programming languages. For example, closures are usually part of dynamic programming languages, while continuations are often not supported.
reflection
Reflection (engl. Reflection ) and introspection (engl. Introspection ) is usually supported by dynamic programming languages. For example, in Lisp's S-Expressions, the code is evaluated and modified like a data structure.
Macros
Some dynamic programming languages ​​combine introspection and evals in macros . In dynamic programming languages, macros make it possible to access information from the compiler and enable "full" access to the program's runtime environment, with which, for example, code optimizations, syntax changes or similar elements of metaprogramming can be implemented.

Web links

Individual evidence

  1. Sun: Using JavaScript as a Real Programming Language ( Memento of the original from August 10, 2017 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. . Therein: "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."  @1@ 2Template: Webachiv / IABot / www.activemode.com
  2. ^ Eclipse: Dynamic Languages ​​Toolkit .
  3. ActiveState: Solutions for Dynamic Language Support, Management, and Compliance ( Memento of the original from June 12, 2010 in the Internet Archive ) Info: The archive link was automatically inserted and not yet checked. Please check the original and archive link according to the instructions and then remove this notice. .  @1@ 2Template: Webachiv / IABot / www.activestate.com
  4. Spring Framework: Dynamic language support .
  5. Groovy - official website ( memento of the original from March 2, 2014 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. . @1@ 2Template: Webachiv / IABot / groovy.codehaus.org