This document is the BLISS-32 User Manual (Order Number AA-H322E-TE), May 1987, for the BLISS-32 compiler running under VMS Version 4.2 or higher, with BLISS-32 Version 4.3 software. It serves as a user's guide and a complement to the BLISS Language Guide.
The manual provides comprehensive information on:
- Operating Procedures: How to compile BLISS modules using the DCL command, command-line syntax, file specifications (input, output,
REQUIRE, LIBRARY), and a detailed explanation of various command-line qualifiers (e.g., /CHECK for semantic checking, /CROSS-REFERENCE for listing, /OPTIMIZE for code optimization, /MACHINE_CODE_LIST for object listing format, /SOURCE_LIST for source listing format, /TERMINAL for terminal output).
- Compiler Output: Describes terminal output (error messages, statistics), various types of output listings (source, object, cross-reference), and compilation summaries. It also details the format and content of preface strings, object code fields (assembler, symbolic, binary, commentary), and cross-reference entries.
- Linking, Executing, and Debugging: Covers the process of linking BLISS-32 programs using the VMS Linker, executing them, and debugging using the VMS Debugger, including BLISS-specific expression syntax, special characters, structure and field references, scope of names, and source-line debugging.
- Machine-Specific Functions: Defines numerous VAX machine-specific (built-in) functions for specialized operations, categorized by their purpose (e.g., processor register, arithmetic, character string, queue, bit operations), detailing their parameters and results.
- Programming Considerations: Discusses practical aspects of writing BLISS programs, including the differences and efficiencies of
LIBRARY versus REQUIRE files, common BLISS coding errors (e.g., missing dots, handling valued/nonvalued routines, macro issues), and notes on linker error messages and position-independent code generation.
- Transportability Guidelines: Provides extensive guidance on writing BLISS programs that can be transported across different architectures (VAX, PDP-11, DECsystem-10/20), emphasizing strategies like isolation, simplicity, and the use of tools such as predeclared literals, conditional compilation macros, and module switches (
LANGUAGE switch) to manage architectural dependencies in data allocation, addressing, and character handling.
- Compiler Overview and Optimization: Explains the conceptual phases of the BLISS compiler (Lexical and Syntactic Analysis, Flow Analysis, Heuristics, Temporary Name Binding, Code Generation, Code Stream Optimization, Output File Production) and how various compiler switches (e.g.,
CODE, OPTIMIZE, OPTLEVEL, SAFE, ZIP) affect these phases and the resulting code.
- Tools, Libraries, and System Interfaces: Describes various programming productivity tools and system interfaces available for BLISS-32, such as the VAX Source Code Analyzer (SCA), Tutorial Terminal Input/Output Package (TUTIO), VMS System Services, and Record Management Services (RMS).
- Code Examples and Appendices: Includes complete BLISS-32 code examples and several appendices summarizing command syntax, formatting rules, a module template, implementation limits, and a comprehensive list of error messages.
The manual highlights technical changes in Version 4.3, such as the addition of /ANALYSIS_DATA and the obsolescence of /MASTER_CROSS-REFERENCE in favor of the VAX Source Code Analyzer (SCA).