This document is a book titled "VAX/VMS: Writing Real Programs in DCL" by Paul C. Anagnostopoulos, published by Digital Press in 1989. It is part of the "VAX Users Series."
The book serves as a comprehensive guide to developing robust and "real" applications using the Digital Command Language (DCL) on the VAX/VMS operating system. The author's primary motivation is to demonstrate DCL's capabilities as a full-fledged programming language, making it accessible and enjoyable for a wide audience, including those not traditionally considered programmers (e.g., secretaries, system managers).
Key areas covered in the book include:
- Fundamentals of DCL: An introduction to DCL's strengths and weaknesses, its application domains (e.g., environment extension, system management, file manipulation, software development), and a review of core VMS concepts like files, directories, logical names, user identification codes, and privileges.
- DCL Programming Basics: Detailed explanations of symbols, data types (integers, character strings, and simulating booleans), expressions, and fundamental flow-of-control commands (GOTO, IF, loops, CALL, GOSUB).
- Advanced DCL Features: A deep dive into the powerful "substitution" mechanism (apostrophe, implicit, ampersand substitution) and its nuances.
- Application Design & Structure: Guidance on structuring DCL applications, establishing a consistent DCL environment, implementing robust error handling and interrupt handling (
CTRL/Y), naming conventions, and building subroutine libraries.
- User Interaction: Techniques for obtaining and validating user input using INQUIRE and READ commands, editing input, and displaying formatted output.
- File and Data Management: Comprehensive coverage of sequential and indexed file operations (reading, writing, updating, deleting, file sharing), file protection (UIC-based and Access Control Lists), logical names (defining, using, and managing logical name tables), and data manipulation techniques (arithmetic, lists, keywords, dates, times, and record structures).
- System-Level Operations: Interactions with devices (allocation, initialization, mounting), managing processes (subprocesses, process information), and working with batch jobs (submitting, restartable jobs, preventing duplicates).
- Debugging: Strategies for debugging DCL procedures, including verification, temporary and permanent debugging output, and capturing procedure output.
The book is structured to build knowledge progressively, providing numerous examples often within the context of a fictional "Example DCL Application" (XDA). It also includes appendices covering hexadecimal notation, DEC character sets, and a complete listing of a sample subroutine library and application. It is intended for VMS users who have a basic understanding of the operating system.