Index: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Home > Dynamic programming language
In computer science, a dynamic programming language is a kind of programming language in which programs can change their structure as they run: functions may be introduced or removed, new classes of objects may be created, new modules may appear. As a side effect of this dynamism, most dynamic programming languages are dynamically typed, which static typing advocates consider a drawback (see also static typing). According to advocates of dynamic programming languages, however, the flexibility of dynamic languages offsets these drawbacks, and even provides advantages so considerable as to make this an essential feature.Generally programming consists of writing together bits of computer code known as functions which operate on data. These functions are physically represented by computer code at some location in memory. In most programming languages function calls in the source code are replaced with instructions to run the code at that physical location (the exact location being defined by the linker). One problem with this approach is that it does not allow for modification of the code once it is compiled. For instance, if a bug is found in the code, the only solution is to correct the original source code and recompile the application.
Dynamic languages rely on the addresses for functions being looked up at runtime, instead of being compiled into addesses at compile time. This allows the symbols to be modified to point to new functions, allowing the definitions to change. Many dynamic languages also look up data in the same fashion, allowing "static" objects such as classes to be modified.
This introduces a lookup during runtime however, as each function call requires the symbol to be looked up, and then the function pointer followed. For this reason dynamic languages often run slower than non-dynamic ones, another "kiss of death" during the 1990s. This delay can be dramtically reduced almost to zero in practice however, for instance, the Objective-C programming language used a pre-loaded cache and a small bit of assembler code in order to reduce this overhead to a single operation.
The degree of dynamism varies between languages. Objective-C was based on the GNU/GCC compiler and allowed dynamism of the function calls only (called categorization for unrelated reasons) by re-writing the method dispatch code. TOM is a development of Objective-C in nature, but using a more complex runtime it allows considerably more flexibility at the cost of performance. Most dynamic languages tend toward this end of the spectrum, allowing classes to be re-defined at runtime by collecting code from several modules. The copy-and-modify ( prototype based) languages such as Self, Prothon and NewtonScript tend to be fully dynamic as a matter of course.
Dynamic Languages include:
- DylanDylan is a dynamic programming language created by a group led by Apple Computer. It was originally intended for use with Apple's Newton computer, but their implementation did not reach sufficient maturity in time, and they instead developed NewtonScript
- HyperCardHyperCard is an application program and a simple programming environment produced by Apple Computer which runs only in Mac OS versions 9 or earlier. It most closely resembles a database application in concept, in that it stores information, but unlike tra
- LispLisp is a family of functional programming languages with a long history. Developed first as an abstract notation for recursive functions, it later became the favored language of artificial intelligence research during the field's heyday in the 1970s and
- PerlImage:Programming-republic-of-perl. gif|right|framed|Programming Republic of logo]] Perl also Practical Extraction and Report Language (a backronym, see below), is a programming language released by Larry Wall on December 18, 1987 that borrows features fr
- PHPFor the "PHP" Cold-war history project, see Parallel History Project. PHP (a recursive acronym for P HP: H ypertext P reprocessor") is a widely-used open-source programming language primarily for server-side applications and developing dynamic web content
- PythonPython is an interpreted, interactive programming language created by Guido van Rossum in 1990, originally as a scripting language for Amoeba OS capable of making system calls. Python is often compared to Tcl, Perl, Scheme, Java and Ruby. Python is develo
- RevolutionRevolution is a development environment/multimedia authoring software in the tradition of Hypercard. If you purchased the higher-grade versions, you can compile applications to more than one platform, with possibilities of applications running on Macintos
- Scheme
- Smalltalk
- SuperCard
C, C++, Java, and FORTRAN do not generally fit into this category, though it is often possible to build layers on top of a language.
Read more »