Wikipedista:Kolarp/DCL jako programovací jazyk
Digital Command Language lze používat jako programovací jazyk, který disponuje proměnných několika typů s rozlišováním lokálních a globálních proměnných, umožňuje emulovat pole a asociativní pole, umí vyhodnocovat aritmetické výrazy, má operátory a funkce pro práci s řetězci, disponuje jednoduchými řídícími konstrukcemi (podmíněný příkaz, GOTO, procedury/funkce s parametry), umožňuje číst a vytvářet textové soubory.
Symboly jako proměnné
editovatRoli proměnných plní v DCL symboly. Jméno symbolu může oficiálně obsahovat velká písmena anglické abecedy, číslice, znaky podtržítko _
a dolar $
; nesmí začínat číslicí. Malá písmena se automaticky převádějí na velká. Neoficiálně se ve jménu symbolu mohou vyskytovat některé další znaky, jako složené závorky {
, }
, svislá čára |
, ampersand &
, zpětné lomítko \
, zpětný apostrof `
, vlnovka ~
. Jméno symbolu nemůže obsahovat mezeru; pro vytváření víceslovných jmen symbolů lze místo mezer používat znaky podtržítko. Operační systém používá místo mezery znak dolar – uživatel by neměl vytvářet jména obsahující znak dolar, aby nedošlo ke konfliktu se jmény používanými systémem.
Symboly se nijak nedeklarují, pro nastavení hodnoty symbolu se používá přiřazení:
jmeno = výraz
Výraz může být číselný a obsahovat číselné konstanty, operátory +
, -
, *
, a /
, jména symbolů (která se při vyhodnocování nahradí jejich hodnotami) a lexikální funkce; nebo řetězcový, který může obsahovat řetězcové konstanty uzavřené v uvozovkách, operátory +
a -
, jména symbolů a lexikální funkce. Pro přiřazení řetězce do symbolu lze použít také přiřazení s :=
:
jmeno := řetězec
Lokální a globální symboly
editovatPomocí jednoduchého rovnítka se vytvářejí lokální symboly; globální symboly se vytvářejí pomocí dvojitého rovnítka:
jmeno == výraz
případně
jmeno :== řetězec
Lokální symboly zanikají při opuštění příkazové procedury (*.COM skriptu) nebo procedury definované pomocí SUBROUTINE
a volané pomocí CALL
, ve vnořených voláních příkazových procedur jsou však dostupné. Pokud existuje lokální i globální symbol téhož jména, je globální symbol lokálním překryt.
Použití hvězdičky pro umožnění zkracování jména symbolu
editovatSpeciální význam ve jméně symbolu má znak hvězdička – umožňuje zkracování jména – znaky za hvězdičkou se nemusí uvádět:
DNES*NI_DATUM = "5.12.2022"
WRITE SYS$OUTPUT DNE
%DCL-W-UNDSYM, undefined symbol - check validity and spelling
\DNE\
WRITE SYS$OUTPUT DNES
5.12.2022
WRITE SYS$OUTPUT DNESN
5.12.2022
WRITE SYS$OUTPUT DNESNI
5.12.2022
WRITE SYS$OUTPUT DNESNI_
5.12.2022
WRITE SYS$OUTPUT DNESNI_D
5.12.2022
WRITE SYS$OUTPUT DNESNI_DATUM
5.12.2022
WRITE SYS$OUTPUT DNESNI_DATUMY
%DCL-W-UNDSYM, undefined symbol - check validity and spelling
\DNESNI_DATUMY\
Symboly jako příkazové aliasy
editovatSymboly také slouží jako příkazové aliasy – pokud se v příkazovém řádku na místě, kde může být jméno příkazu, objeví jméno symbolu, bude nahrazeno hodnotou symbolu. Například dlouhý příkaz WRITE SYS$OUTPUT
, který se používá pro výpis na obrazovku se často nahrazuje příkazem SAY
definovaným takto (uživatelé unixových systémů by příkaz pravděpodobně pojmenovali echo):
SAY = "WRITE SYS$OUTPUT"