DIGITAL Command Language

DIGITAL Command Language
DIGITAL Command Language
Paradigm(s) imperative
Designed by Digital Equipment Corporation
Developer Digital Equipment Corporation
Influenced Windows PowerShell
OS RSX-11, OpenVMS

DCL, the DIGITAL Command Language, is the standard command language adopted by most of the operating systems that were sold by the former Digital Equipment Corporation (which has since been acquired by Compaq which itself was acquired by Hewlett-Packard). It had its roots in the IAS, TOPS-20, and RT-11 operating systems and was implemented as a standard across most of Digital's operating systems, notably RSX-11, but took its most powerful form in the OpenVMS operating system.

Written when the Fortran programming language was in heavy use, DCL is a scripting language supporting several datatypes, including strings, integers, bit arrays, arrays and booleans, but not floating point numbers. Access to OpenVMS system services (kernel API) is through lexical functions, which perform the same as their compiled language counterparts and allow scripts to get information on system state. DCL includes IF-THEN-ELSE, access to all the RMS file types including stream, indexed, and sequential, but unfortunately lacks a DO-WHILE or other looping construct, requiring users to make do with IF and GOTO-label statements instead.

For the OpenVMS implementation, the command line parser is a runtime library (CLI$) that can be compiled into user applications and therefore gives a consistent command line interface for both operating system supplied commands and user written commands. The command line must start with a verb and is then followed by arguments and/or position independent qualifiers (switches in Unix terminology), which can occur anywhere on the command line, or position dependent qualifiers which affect the parameter they appear after. Most qualifiers are position independent; that is, they can appear anywhere in the command line. Only the first most significant part of the verb and qualifier name is required. An example operating system command may look like:

   set audit/alarm/enable=(authorization, breakin=all)
   show device/files $1$DGA1424:

The second show command could also be typed as

   sho dev $1$DGA1424:/fil

(While DCL documentation usually shows all DCL commands in uppercase, DCL commands are case-insensitive and may be typed in upper-, lower-, or mixed-case.)

Some implementations (such as OpenVMS) used a minimum uniqueness scheme in allowing commands to be shorted while others (such as RSX-11) allowed commands to be abbreviated to a minimum of three characters.

Unlike other systems which use paths for locating commands, DCL requires commands to be defined explicitly, either via CLD (Command Language Definition) definitions or a foreign symbol. Most OpenVMS-native commands are defined via CLD files; these are compiled by the CDU (Command Definition Utility) and added to a DCL 'table' -- SYS$LIBRARY:DCLTABLES.EXE by default, although processes are free to use their own tables -- and can then be invoked by the user. For example, defining a command FOO that accepts the option "/BAR" and is implemented by the image SYS$SYSEXE:FOO.EXE could be done with a CLD file similar to:

DEFINE VERB FOO
   IMAGE "SYS$SYSEXE:FOO.EXE"
   QUALIFIER BAR

The user can then type "FOO", or "FOO/BAR", and the FOO program will be invoked. The command definition language supports many types of options, for example dates and file specifications, and allows a qualifier to change the image invoked -- for example "CREATE", to create a file, vs. "CREATE/DIRECTORY" to create a directory.

The other (simpler, but less flexible) method to define commands is via foreign commands. This is more akin to the Unix method of invoking programs. By giving the command:

foo :== $sys$sysexe:foo.exe

the command 'FOO' will invoke FOO.EXE, and supply any additional arguments literally to the program, for example, "foo -v". This method is generally used for programs ported from Unix and other non-native systems; for C programs using argc and argv command syntax.

Versions of OpenVMS DCL starting with V6.2 support the DCL$PATH logical name for establishing Unix-style command paths. This mechanism is known as an Automatic Foreign Command. DCL$PATH allows a list of directories to be specified, and these directories are then searched for DCL command procedures (command.COM) and then for executable images (command.EXE) with filenames that match the command that was input by the user. Like traditional foreign commands, automatic foreign commands also allow Unix-style command input.

Contents

Scripting

DCL scripts look much like any other scripting language, with some exceptions. All DCL verbs in a script are preceded with a $ symbol; other lines are considered to be input to the previous command. For example, to use the TYPE command to print a paragraph onto the screen, one might use a script similar to:

$ TYPE SYS$INPUT:
This is an example of using the TYPE verb
in the DCL language.
$ EXIT

Indirect variable referencing

It is possible to build arrays in DCL that are referenced through translated symbols. This allows the programmer to build arbitrarily sized data structures using the data itself as an indexing function.

 $ i = 1
 $ variable'i' = "blue"
 $ i = 2 
 $ variable'i' = "green"
 $ j = 1
 $ color = variable'j'
 $ rainbow'color' = "red"
 $ color = variable'i'
 $ rainbow'color' = "yellow"

In this example the variable rainbowblue is assigned the value "red", and rainbowgreen is assigned the value "yellow".

See also

  • Comparison of computer shells

Literature

  • Paul C. Anagnostopoulos, Steve Hoffman: Writing Real Programs in DCL, Second Edition, 1998, Digital Press. ISBN 1555581919

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • DIGITAL Command Language — DCL, die DIGITAL Command Language, ist die Standard Kommandosprache des Betriebssystems OpenVMS, welches ursprünglich von der Firma Digital Equipment Corporation (kurz DEC) entwickelt wurde. Aktuell wird OpenVMS von Hewlett Packard (kurz HP)… …   Deutsch Wikipedia

  • Digital Command Language — DCL, die DIGITAL Command Language, ist die Standard Kommandosprache des Betriebssystems OpenVMS, welches ursprünglich von der Firma Digital Equipment Corporation (kurz DEC) entwickelt wurde. Aktuell wird OpenVMS von Hewlett Packard (kurz HP)… …   Deutsch Wikipedia

  • DEC Command Language — DCL, die DIGITAL Command Language, ist die Standard Kommandosprache des Betriebssystems OpenVMS, welches ursprünglich von der Firma Digital Equipment Corporation (kurz DEC) entwickelt wurde. Aktuell wird OpenVMS von Hewlett Packard (kurz HP)… …   Deutsch Wikipedia

  • Tool Command Language — Pour les articles homonymes, voir Tcl. Tcl Apparu en …   Wikipédia en Français

  • Digital Equipment Corporation — Industry Computer manufacturing Fate Assets were sold to various companies. What remained was sold to Compaq. Successor …   Wikipedia

  • Digital terrestrial television in the United Kingdom — encompasses over 100 television, radio and interactive services broadcast via the UK s terrestrial television network and receivable with a standard television aerial. The majority of services, including those from the existing five analogue… …   Wikipedia

  • language, philosophy of — Philosophical study of the nature and use of natural languages and the relations between language, language users, and the world. It encompasses the philosophical study of linguistic meaning (see semantics), the philosophical study of language… …   Universalium

  • Hayes command set — The Hayes command set is a specific command language originally developed for the Hayes Smartmodem 300 baud modem in 1981. The command set consists of a series of short text strings which combine together to produce complete commands for… …   Wikipedia

  • D (programming language) — For other programming languages named D, see D (disambiguation)#Computing. D programming language Paradigm(s) multi paradigm: imperative, object oriented, functional, meta Appeared in 1999 (1999) Designed by …   Wikipedia

  • FOCAL (programming language) — FOCAL, (abbreviation of FOrmula CALculator), is an interpreted programming language resembling JOSS.Largely the creation of Richard Merrill, FOCAL was initially written for and had its largest impact on the Digital Equipment Corporation s (DEC s) …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”