www.digitalmars.com Home | DMDScript | Search
Last update Sat Mar 17 00:08:09 2007
DMDScript

Overview
Extending
DMDScript in D license
Change Log
DMDScript in C++
DMDScript in C++ License
tech support
Archives
Acknowledgements

Examples

Sieve
Mortgage Calculator

DMDScript

What is DMDScript?

DMDScript is Digital Mars' implementation of the ECMA 262 scripting language. Netscape's implementation is called JavaScript, Microsoft's implementation is called JScript. DMDScript is much faster than other implementations, which you can verify with the included benchmark.

DMDScript is implemented in the D Programming Language. (A C++ implementation is also available.)

Note: DMDScript is not the D Programming Language, nor is it Java.

Here is the FAQ for ECMAScript.

Key Benefits of DMDScript in D

  • Implementation of ECMA 262 with JScript extensions.
  • More than twice as fast as JScript, as measured by included benchmark.
  • Ideal for ECMAscript enabling browsers, email clients, and any application that needs a scripting language.
  • Source code is available under the GPL license.
  • Licenses are available for those who wish to use DMDScript in commercial products.

Installing DMDScript

Download DMDScript.

Standalone Console Version of DMDScript

ds with no arguments will compile and run the dscript file test.ds. With an argument, it will compile & run that file:
ds sieve
will compile and run sieve.ds. The .ds is the default extension.

The console version has some additional builtin functions available:

getenv(string)
Get and return value of environment variable string.
print(string)
Print string to stdout.
println(string)
Print string to stdout followed by a newline.
readln()
Read and return an input line from stdin, not including the newline.

Differences Between DMDScript (Digital Mars), Jscript (Microsoft) and Javascript (Netscape)

goto Statement

DMDScript implements the goto label; statement, like in C. goto is not part of the ECMA 262 v3 standard.

assert() Function

DMDScript implements the assert() function property of the Global Object. assert() throws a RuntimeError exception. If there is an argument to assert(), that argument is converted to a Boolean and a RuntimeError exception is thrown if the argument is false.

__proto__ Property

Javascript supports the __proto__ property. Neither ECMA nor Jscript nor DMDScript supports it.

Conditional Compilation

JScript's conditional compilation statements are not supported by DMDScript, Javascript, nor ECMA.