www.wikidata.de-de.nina.az
DCL die DIGITAL Command Language ist die Standard Kommandosprache des Betriebssystems OpenVMS welches ursprunglich von der Firma Digital Equipment Corporation kurz DEC entwickelt wurde Aktuell wird OpenVMS von VMS Software Inc weiterentwickelt und vertrieben Der erste Einsatz war unter dem Betriebssystem RSX 11 TerminalsitzungMit DCL lassen sich am Kommando Prompt Aktionen ausfuhren etwa zur Dateibe und verarbeitung ahnlich wie unter MS DOS oder zur Systemadministration aber auch komplexe Kommandoprozeduren erstellen die interaktiv oder im Batchbetrieb laufen konnen vgl Shellskripte unter Unix Inhaltsverzeichnis 1 Eigenschaften von DCL 2 Spezialitaten von DCL 2 1 Foreign Commands 2 2 Logical Names 3 Erstellen von Kommandoprozeduren 3 1 LOGIN COM 3 2 Zeilenkennung 3 3 Indirekte Referenzierung von Variablen 3 4 Lexikalische Funktionen 4 Literatur 5 WeblinksEigenschaften von DCL BearbeitenDCL erlaubt die Erstellung von komplexen Kommandoprozeduren und ist somit durchaus fur die Programmierung geeignet jedoch sind DCL als Kommandosprache auch Grenzen gesetzt Im Vergleich zu konventionellen Programmiersprachen weist DCL Vor und Nachteile auf Die folgenden Punkte zahlen fur DCL DCL ist auf jedem OpenVMS System verfugbar DCL Kommandoprozeduren konnen schnell entwickelt werden Der Programmierer muss keine Editieren Kompilieren Linken Testen Zyklen durchlaufen da DCL eine interpretierte Sprache ist DCL Prozeduren konnen bei Bedarf schnell angepasst verandert oder erweitert werden DCL Prozeduren konnen OpenVMS Werkzeuge engl utilities und andere Software Produkte auf einfache Weise nutzen Einige komplexe Aspekte der Programmierung fur OpenVMS werden durch DCL signifikant vereinfacht wie z B die Behandlung von Fehlern und Interrupts soweit die Verarbeitung verhaltnismassig unkompliziert bleibt Weniger erfahrene Programmierer konnen DCL Prozeduren benutzen um einzelne Blocke einer umfassenderen Programmierung separat zu erstellen Die folgenden Punkte zahlen zu den Grenzen von DCL Eine DCL Prozedur wird langsamer abgearbeitet als ein konventionelles kompiliertes Programm da eine DCL Kommandoprozedur durch einen Interpreter ausgefuhrt wird Dies kommt speziell zum Tragen wenn die DCL Prozedur sehr rechenintensive Kommandos z B sehr viele arithmetische Operationen durchfuhrt Es kommt weniger zum Tragen wenn die Prozedur z B hauptsachlich Dateioperationen durchfuhrt DCL fehlen einige wichtige arithmetische Funktionen wie z B die Unterstutzung von Gleitkommazahlen Fahigkeiten und Moglichkeiten zur Strukturierung von Daten die wichtig fur viele Software Algorithmen sind sind so gut wie nicht existent in DCL DCL lasst einige Konstrukte moderner Programmierung vermissen wie etwa WHILE oder FOR Schleifen Diese mussen in DCL manuell nachgebildet werden Nur einfache Benutzerschnittstellen konnen in DCL realisiert werden DCL hat keine Unterstutzung fur Fenstertechniken oder andere graphische Darstellungen Ein Programm kann von einer DCL Prozedur nur aufgerufen werden wenn es eine Kommandoschnittstelle engl command interface bereitstellt d h Codebibliotheken konnen von DCL aus nicht direkt genutzt werden Die Flexibilitat von DCL kann es als schwierig gestalten eine Prozedur zu erstellen die es einem weniger privilegierten Benutzer gestattet ausgewahlte Funktionen zu benutzen zu denen der Benutzer nicht direkt autorisiert ist engl captive command procedures Zum Beispiel akzeptiert das INQUIRE Kommando nicht nur Eingaben sondern kann auch zur Ausfuhrung von lexikalischen Funktionen engl lexical functions benutzt werden Als DCL in den 1970ern konzipiert wurde konnte die weitere Entwicklung und Nutzung fur die Erstellung komplexer Aufgaben nicht unbedingt vorhergesehen werden so dass DCL in einigen Punkten nicht so strukturiert wie andere modernere Programmiersprachen erscheinen mag Spezialitaten von DCL BearbeitenDCL weist einige Besonderheiten im Vergleich zu anderen Kommandosprachen auf Foreign Commands Bearbeiten In DCL ist es moglich und ublich sogenannte Fremdkommandos engl foreign commands zu definieren Uber diesen Mechanismus konnen Benutzer z B in ihrer Loginprozedur eigene Kommandos oder abgewandelte Standardkommandos definieren foo sys sysexe foo exe Nach dieser Definition wird das neue Kommando FOO das Programm namens FOO EXE aufrufen Hierbei konnen optional auch Parameter an das Programm mit ubergeben werden ST SHOW TIME Hier wird das neue Kommando ST definiert welches anschliessend eine Kurzfassung des Kommandos zum Anzeigen der Zeit ist del ete delete confirm log Hier wird das Standardkommando DELETE als foreign command so erweitert dass standardmassig die Optionen zum Nachfragen und Protokollieren mit angegeben sind Der Stern bei der Definition regelt ab welcher Position das Kommando auch in abgekurzter Form benutzt werden darf Logical Names Bearbeiten Ein logischer Name engl logical name ist eine benannte Entitat die kreiert und der ein Wert zugewiesen werden kann Dieser Name oder auch kurz Logical genannt steht dann anschliessend fur diesen Wert in einem Kontext wie etwa einer Dateispezifikation Innerhalb dieses Kontexts ersetzt OpenVMS automatisch den logischen Namen durch seinen Wert Ein logischer Name ahnelt einem Symbol allerdings unterscheiden sich die beiden Konzepte in wichtigen Punkten Logische Namen werden in entsprechenden Tabellen engl logical name tables gespeichert Diese Tabellen konnen auf verschiedenen Ebenen verfugbar gemacht werden einem einzelnen Prozess einer Familie von Prozessen oder allen Prozessen im System Daher konnen logische Namen im Gegensatz zu Symbolen von mehreren Prozessen d h prozessubergreifend genutzt werden In einem VMS Cluster konnen logische Namen sogar uber Rechnergrenzen hinweg existieren Erstellen von Kommandoprozeduren BearbeitenDas Erstellen von Kommandoprozeduren in DCL erfolgt mittels eines Texteditors der direkt vom DCL Prompt aus aufgerufen werden kann Die Dateiextension fur eine DCL Datei lautet com diese Extension unter OpenVMS ist nicht zu verwechseln mit der gleichlautenden Extension unter DOS Windows die eine andere Bedeutung hat LOGIN COM Bearbeiten Ublicherweise wird eine spezielle Prozedur nach dem Login eines Benutzer automatisch ausgefuhrt Diese Prozedur tragt in der Regel den Namen LOGIN COM dies kann pro Benutzer vom Systemadministrator ggf auch mit abweichendem Namen festgelegt werden In dieser DCL Prozedur konnen entweder vom Benutzer selbst oder vom Systemadministrator wichtige Eigenschaften und Kommandos definiert werden die fur die Sitzung des Benutzers wichtig sind Zeilenkennung Bearbeiten Skripte bzw Kommandoprozeduren in DCL ahneln Skripten in anderen Sprachen jedoch mit einigen Ausnahmen Alle DCL Kommandos in einer Kommandoprozedur mussen mit einem Zeichen beginnen Andere Zeilen werden als Eingabe fur ein Kommando gewertet Selbst Zeilen die mit THEN oder ELSE beginnen erfordern das Zeichen Das folgende Beispiel demonstriert die Verwendung des TYPE Kommandos um einen Abschnitt auf dem Bildschirm darzustellen TYPE SYS INPUT Dies ist ein Beispiel fur das TYPE Kommando in DCL EXIT Indirekte Referenzierung von Variablen Bearbeiten Es ist durchaus moglich in DCL Arrays nachzubilden Die einzelnen Elemente eines Arrays werden durch ubersetzte Symbole referenziert Diese Technik erlaubt es dem Programmierer Datenstrukturen in dynamischer Grosse zu erstellen die ggf die Daten selbst als Index benutzen i 1 variable i blau i 2 variable i gruen j 1 farbe variable j regenbogen farbe rot farbe variable i regenbogen farbe gelb In diesem Beispiel ist der Variablen regenbogenblau der Wert rot zugewiesen der Variablen regenbogengruen der Wert gelb Lexikalische Funktionen Bearbeiten Mittels lexikalischer Funktionen engl lexical functions ist es DCL moglich Systeminformationen zu erhalten etwa uber den eigenen Prozess oder uber ein Device dt Gerat und erweiterte Stringmanipulationen durchfuhren Alle lexikalischen Funktionen beginnen mit f write sys output f user Dieses Beispiel wird uber die lexikalische Funktion f user den Namen des aktuell angemeldeten Benutzers an der Konsole ausgeben Literatur BearbeitenPaul C Anagnostopoulos Steve Hoffman Writing Real Programs in DCL Second Edition 1998 Digital Press ISBN 1 55558 191 9Weblinks BearbeitenHP OpenVMS DCL Dictionary Link fehlerhaft HP OpenVMS DCL Dictionary Ersatzlink OpenVMS org s DCL archive Link fehlerhaft OpenVMS org s DCL archive ErsatzlinkArchive of DEC Professional Digital Age magazine s DCL columns XML based new orientation for DCL and OpenVMS interface Abgerufen von https de wikipedia org w index php title Digital Command Language amp oldid 226365929