dynamic adaptive routing

Automatic rerouting of traffic based on analysis of current network conditions. This does not include routing decisions based on predefined information.

Last updated: 1995-01-30

Dynamic Address Translation


(DAT) Conversion of a virtual address into a physical address, as performed by a memory management unit and an operating system which supports virtual memory.

Last updated: 1995-01-30

Dynamically Linked Library


(DLL) A library which is linked to application programs when they are loaded or run rather than as the final phase of compilation. This means that the same block of library code can be shared between several tasks rather than each task containing copies of the routines it uses. The executable is compiled with a library of "stubs" which allow link errors to be detected at compile-time. Then, at run time, either the system loader or the task's entry code must arrange for library calls to be patched with the addresses of the real shared library routines, possibly via a jump table.

The alternative is to make library calls part of the operating system kernel and enter them via some kind of trap instruction. This is generally less efficient than an ordinary subroutine call.

It is important to ensure that the version of a dynamically linked library is compatible with what the executable expects.

Examples of operating systems using dynamic linking are SunOS (.so - shared object files), Microsoft Windows (.dll) and RISC OS on the Acorn Archimedes (relocatable modules).

Last updated: 1995-12-12

dynamically scoped

dynamic scope

dynamically typed

dynamic typing

dynamic analysis


Evaluation of a program based on its execution. Dynamic analysis relies on executing a piece of software with selected test data.

Last updated: 1996-05-13

dynamic binding

The property of object-oriented programming languages where the code executed to perform a given operation is determined at run time from the class of the operand(s) (the receiver of the message). There may be several different classes of objects which can receive a given message. An expression may denote an object which may have more than one possible class and that class can only be determined at run time. New classes may be created that can receive a particular message, without changing (or recompiling) the code which sends the message. An class may be created that can receive any set of existing messages.

C++ implements dynamic binding using "virtual member functions".

One important reason for having dynamic binding is that it provides a mechanism for selecting between alternatives which is arguably more robust than explicit selection by conditionals or pattern matching. When a new subclass is added, or an existing subclass changes, the necessary modifications are localised: you don't have incomplete conditionals and broken patterns scattered all over the program.

See overloading.

dynamic database management system


(dynamic DBMS) A database with "value-based" relationships where typically the relationship is specified at retrieval time and the locations of related records are discovered during retrieval. Both Independent Logical File (ILF) databases and relational databases are value-based.

The opposite is a static database management system.

Last updated: 1998-10-07

Dynamic Data Exchange


(DDE, originally Dynamic Data Linking, DDL) A Microsoft Windows 3 hotlink protocol that allows application programs to communicate using a client-server model. Whenever the server (or "publisher") modifies part of a document which is being shared via DDE, one or more clients ("subscribers") are informed and include the modification in the copy of the data on which they are working.

Last updated: 1997-06-05

Dynamic Data Linking

Dynamic Data Exchange

dynamic DBMS

dynamic database management system

Dynamic Drive Overlay

<storage, software>

(DDO) Software to allow a system BIOS that does not support Logical Block Addressing to access drives larger than 528 MB.

The alternatives are to update the system BIOS or install an EIDE controller card with a suitable on-board BIOS.


Last updated: 2001-03-18

Dynamic Execution


A combination of techniques - multiple branch prediction, data flow analysis and speculative execution. Intel implemented Dynamic Execution in the P6 after analysing the execution of billions of lines of code.

Last updated: 1995-05-05

Dynamic Host Configuration Protocol


(DHCP) A protocol that provides a means to dynamically allocate IP addresses to computers on a local area network. The system administrator assigns a range of IP addresses to DHCP and each client computer on the LAN has its TCP/IP software configured to request an IP address from the DHCP server. The request and grant process uses a lease concept with a controllable time period.

DHCP is defined in RFC 2131.

Microsoft introduced DHCP on their NT server with version 3.5 in late 1994.


Last updated: 1998-11-22

Dynamic HTML

<language, web>

(DHTML) The addition of JavaScript to HTML to allow web pages to change and interact with the user without having to communicate with the server. JavaScript allows the behaviour of the page to be controlled by code that is downloaded with the HTML. It does this by manipulating the Document Object Model (DOM).

The term DHTML is often also taken to include the use of "style" information to give finer control of HTML layout. The style information can be supplied as Cascading Style Sheets (CSS) or as "style" attributes (which can be manipulated by JavaScript). Layers are often also used with DHTML.

Both the JavaScript and style data can be included in the HTML file or in a separate file referred to from the HTML. Some web browsers allow other languages (e.g. VBScript or Perl) to be used instead of JavaScript but this is less common.

DHTML can be viewed in Internet Explorer 4+, Firefox and Netscape Communicator 4+ but, as usual, Microsoft disagree on how DHTML should be implemented. The Document Object Model Group of the World Wide Web Consortium is developing standards for DHTML.


Last updated: 2005-10-17

DYnamic LANguage


(Dylan) A simple object-oriented Lisp dialect, most closely resembling CLOS and Scheme, developed by Advanced Technology Group East at Apple Computer.

Thomas is a Dylan compiler implemented in Scheme.

See also Marlais.

["Dylan(TM) an Object-Oriented Dynamic Language", Apple Computer, Eastern Research and Technology, April 1992].

Last updated: 1995-04-19

dynamic link


A pointer from an activation record to the activation record for the scope from which the current scope was called at run time. This is used in a statically scoped language to restore the environment pointer on exit from a scope. To access a non-local variable in a dynamically scoped language, dynamic links are followed until a binding for the given variable name is found.

Last updated: 1995-03-07

dynamic link library

Dynamically Linked Library

Dynamic Object-Oriented Requirements System

<programming, tool, product>

(DOORS) A tool from Quality Systems & Software Ltd. for handling all kinds of requirements (in fact, any information at all) as modules containing trees of text objects, qualified by an arbitrary number of user-defined attributes, and cross-linked by directional links.

dynamic RAM

dynamic random-access memory

dynamic random-access memory


(DRAM) A type of semiconductor memory in which the information is stored in capacitors on a MOS integrated circuit. Typically each bit is stored as an amount of electrical charge in a storage cell consisting of a capacitor and a transistor. Due to leakage the capacitor discharges gradually and the memory cell loses the information. Therefore, to preserve the information, the memory has to be refreshed periodically. Despite this inconvenience, the DRAM is a very popular memory technology because of its high density and consequent low price.

The first commercially available DRAM chip was the Intel 1103, introduced in 1970.

Early DRAM chips, containing up to a 16k x 1 (16384 locations of one bit each), needed 3 supply voltages (+5V, -5V and +12V). Beginning with the 64 kilobit chips, charge pumps were included on-chip to create the necessary supply voltages out of a single +5V supply. This was necessary to fit the device into a 16-pin DIL package, which was the preferred package at the time, and also made them easier to use.

To reduce the pin count, thereby helping miniaturisation, DRAMs generally had a single data line which meant that a computer with an N bit wide data bus needed a "bank" of (at least) N DRAM chips. In a bank, the address and control signals of all chips were common and the data line of each chip was connected to one of the data bus lines.

Beginning with the 256 kilobit DRAM, a tendency toward surface mount packaging arose and DRAMs with more than one data line appeared (e.g. 64k x 4), reducing the number of chips per bank. This trend has continued and DRAM chips with up to 36 data lines are available today. Furthermore, together with surface mount packages, memory manufacturers began to offer memory modules, where a bank of memory chips was preassembled on a little printed circuit board (SIP = Single Inline Pin Module, SIMM = Single Inline Memory Module, DIMM = Dual Inline Memory Module). Today, this is the preferred way to buy memory for workstations and personal computers.

DRAM bit cells are arranged on a chip in a grid of rows and columns where the number of rows and columns are usually a power of two. Often, but not always, the number of rows and columns is the same. A one megabit device would then have 1024 x 1024 memory cells. A single memory cell can be selected by a 10-bit row address and a 10-bit column address.

To access a memory cell, one entire row of cells is selected and its contents are transferred into an on-chip buffer. This discharges the storage capacitors in the bit cells. The desired bits are then read or written in the buffer. The (possibly altered) information is finally written back into the selected row, thereby refreshing all bits (recharging the capacitors) in the row.

To prevent data loss, all bit cells in the memory need to be refreshed periodically. This can be done by reading all rows in regular intervals. Most DRAMs since 1970 have been specified such that one of the rows needs to be refreshed at least every 15.625 microseconds. For a device with 1024 rows, a complete refresh of all rows would then take up to 16 ms; in other words, each cell is guaranteed to hold the data for 16 ms without refresh. Devices with more rows have accordingly longer retention times.

Many varieties of DRAM exist today. They differ in the way they are interfaced to the system - the structure of the memory cell itself is essentially the same.

"Traditional" DRAMs have multiplexed address lines and separate data inputs and outputs. There are three control signals: RAS\ (row address strobe), CAS\ (column address strobe), and WE\ (write enable) (the backslash indicates an active low signal). Memory access procedes as follows: 1. The control signals initially all being inactive (high), a memory cycle is started with the row address applied to the address inputs and a falling edge of RAS\ . This latches the row address and "opens" the row, transferring the data in the row to the buffer. The row address can then be removed from the address inputs since it is latched on-chip. 2. With RAS\ still active, the column address is applied to the address pins and CAS\ is made active as well. This selects the desired bit or bits in the row which subsequently appear at the data output(s). By additionally activating WE\ the data applied to the data inputs can be written into the selected location in the buffer. 3. Deactivating CAS\ disables the data input and output again. 4. Deactivating RAS\ causes the data in the buffer to be written back into the memory array.

Certain timing rules must be obeyed to guarantee reliable operation. 1. RAS\ must remain inactivate for a while before the next memory cycle is started to provide sufficient time for the storage capacitors to charge (Precharge Time). 2. It takes some time from the falling edge of the RAS\ or CAS\ signals until the data appears at the data output. This is specified as the Row Access Time and the Column Access Time. Current DRAM's have Row Access Times of 50-100 ns and Column Access Times of 15-40 ns. Speed grades usually refer to the former, more important figure.

Note that the Memory Cycle Time, which is the minimum time from the beginning of one access to the beginning of the next, is longer than the Row Access Time (because of the Precharge Time).

Multiplexing the address pins saves pins on the chip, but usually requires additional logic in the system to properly generate the address and control signals, not to mention further logic for refresh. Therefore, DRAM chips are usually preferred when (because of the required memory size) the additional cost for the control logic is outweighed by the lower price.

Based on these principles, chip designers have developed many varieties to improve performance or ease system integration of DRAMs:

PSRAMs (Pseudo Static Random Access Memory) are essentially DRAMs with a built-in address multiplexor and refresh controller. This saves some system logic and makes the device look like a normal SRAM. This has been popular as a lower cost alternative for SRAM in embedded systems. It is not a complete SRAM substitute because it is sometimes busy when doing self-refresh, which can be tedious.

Nibble Mode DRAM can supply four successive bits on one data line by clocking the CAS\ line.

Page Mode DRAM is a standard DRAM where any number of accesses to the currently open row can be made while the RAS signal is kept active.

Static Column DRAM is similar to Page Mode DRAM, but to access different bits in the open row, only the column address needs to be changed while the CAS\ signal stays active. The row buffer essentially behaves like SRAM.

Extended Data Out DRAM (EDO DRAM) can continue to output data from one address while setting up a new address, for use in pipelined systems.

DRAM used for Video RAM (VRAM) has an additional long shift register that can be loaded from the row buffer. The shift register can be regarded as a second interface to the memory that can be operated in parallel to the normal interface. This is especially useful in frame buffers for CRT displays. These frame buffers generate a serial data stream that is sent to the CRT to modulate the electron beam. By using the shift register in the VRAM to generate this stream, the memory is available to the computer through the normal interface most of the time for updating the display data, thereby speeding up display data manipulations.

SDRAM (Synchronous DRAM) adds a separate clock signal to the control signals. It allows more complex state machines on the chip and high speed "burst" accesses that clock a series of successive bits out (similar to the nibble mode).

CDRAM (Cached DRAM) adds a separate static RAM array used for caching. It essentially combines main memory and cache memory in a single chip. The cache memory controller needs to be added externally.

RDRAM (Rambus DRAM) changes the system interface of DRAM completely. A byte-wide bus is used for address, data and command transfers. The bus operates at very high speed: 500 million transfers per second. The chip operates synchronously with a 250MHz clock. Data is transferred at both rising and falling edges of the clock. A system with signals at such frequencies must be very carefully designed, and the signals on the Rambus Channel use nonstandard signal levels, making it incompatible with standard system logic. These disadvantages are compensated by a very fast data transfer, especially for burst accesses to a block of successive locations.

A number of different refresh modes can be included in some of the above device varieties:

RAS\ only refresh: a row is refreshed by an ordinary read access without asserting CAS\. The data output remains disabled.

CAS\ before RAS\ refresh: the device has a built-in counter for the refresh row address. By activating CAS\ before activating RAS\, this counter is selected to supply the row address instead of the address inputs.

Self-Refresh: The device is able to generate refresh cycles internally. No external control signal transitions other than those for bringing the device into self-refresh mode are needed to maintain data integrity.

Last updated: 1996-07-11

dynamic routing


(Or "adaptive routing") Routing that adjusts automatically to network topology or traffic changes.

Last updated: 1997-05-08

DYnamics ANAlyzer


(DYANA) An early language specialised for vibrational and other dynamic physical systems.

[Sammet 1969, p. 628].

Last updated: 1997-07-20

dynamic scope


In a dynamically scoped language, e.g. most versions of Lisp, an identifier can be referred to, not only in the block where it is declared, but also in any function or procedure called from within that block, even if the called procedure is declared outside the block.

This can be implemented as a simple stack of (identifier, value) pairs, accessed by searching down from the top of stack for the most recent instance of a given identifier.

The opposite is lexical scope. A common implementation of dynamic scope is shallow binding.

Last updated: 1996-07-11

dynamic scoping

dynamic scope

Dynamic Systems Development Method


(DSDM) An independent software development framework.

DSDM.org Home.

[What is it?]

Last updated: 2002-02-14

dynamic translation


A virtual machine implementation approach, used to speed up execution of byte-code programs. To execute a program unit such as a method or a function, the virtual machine compiles its bytecodes into (hardware) machine code. The translated code is also placed in a cache, so that next time that unit's machine code can be executed immediately, without repeating the translation.

This technique was pioneered by the commercial Smalltalk implementation currently known as VisualWorks, in the early 1980s. Currently it is also used by some implementations of the Java Virtual Machine under the name JIT (Just In Time compilation).

[Peter L. Deutsch and Alan Schiffman. "Efficient Implementation of the Smalltalk-80 System", 11th Annual Symposium on Principles of Programming Languages, Jan 1984, pp. 297-302].

Last updated: 2002-04-15

dynamic typing


Enforcement of type rules at run time as opposed to compile time. Dynamic typing catches more errors as run-time exceptions than static typing.

Tcl, Perl, PHP, Python and Visual Basic are examples of dynamically typed languages. A dynamically typed language may have strong typing or weak typing.

Last updated: 2004-07-20

Nearby terms:

Dylperldynamic adaptive routingDynamic Address Translation

Try this search on Wikipedia, OneLook, Google