Software Product Description ________________________________________________________________ PRODUCT NAME: VAX Pascal, Version 4.2 SPD 25.11.30 DESCRIPTION VAX Pascal is an implementation of the Pascal[*] language that accepts programs compatible with either level of the ISO spec- ification for Programming languages-Pascal [ISO 7185-1983(E)] as well as ANSI/IEEE 770X3.97-1983 (December, 1983). VAX Pascal also meets the Federal Information Processing Standard Publica- tion (FIPS-109) requirements by accepting programs conforming to the ANSI standard. VAX Pascal also accepts many features from the Extended Pascal standard (ANSI/IEEE 770X3.160-1989 and ISO 10206). The compiler has been validated for both levels of the ISO unex- tended Pascal standard and for conforming to FIPS-109. Contain- ing extensions to the standards, VAX Pascal generates optimized, sharable code that takes full advantage of the VAX hardware floating point and character instruction sets and the virtual memory capabilities of the VMS Operating System. The language contains control statements, data types, and predeclared proce- dures and functions. Major Pascal Language Elements o INTEGER, REAL, CHAR, BOOLEAN, enumerated, and subrange data types o ARRAY, RECORD, SET, and FILE structured data types o Schemata type denoting families of types ___________________ [*] K. Jensen and N. Wirth, Pascal User Manual and Report, 2nd. ed., Spring-Verlag, New York 1974. DIGITAL December 1990 AE-LX89E-TE VAX Pascal, Version 4.2 SPD 25.11.30 o STRING schema denoting variable-length character strings up to 65,535 characters o FOR, REPEAT, and WHILE repetitive control statements o CASE, IF-THEN, and IF-THEN-ELSE conditional statements o BEGIN...END compound statement o GOTO statement o User-defined procedures and functions that can return struc- tured types (other than file types) o GET, PUT, READ, WRITE, READLN, and WRITELN input and output procedures o Concatenation operator and set of predefined character string functions including INDEX, LENGTH, and SUBSTR o Standard set of functions, procedures, and operators o Module initialization and finalization o Binding of file variables to external entities o Initial state specification o Enhanced structured value constructors o Implementation characteristics (MAXCHAR, MINREAL, MAXREAL, EPSREAL) o OTHERWISE clause and case ranges for CASE statement and variant records o Date and Time functions and procedures o Short Circuit Boolean Operators (AND_THEN and OR_ELSE) o Non-Decimal representation of numbers o Exponentiation operator (**) VAX Pascal Extensions 2 VAX Pascal, Version 4.2 SPD 25.11.30 o DOUBLE (D_floating or G_floating) and QUADRUPLE data types that support the VAX extended range and extended precision floating point architectural features: - 64-bit D_floating data type, with an 8-bit exponent and 56-bit mantissa, which provides a range of 0.29*10**-38 to 1.7*10**38 and a precision of 16 decimal digits - 64-bit G_floating data type, with an 11-bit exponent and 53-bit mantissa, which provides a range of 0.56*10**-308 to 0.09*10**308 and a precision of 15 decimal digits - 128-bit H_floating data type, with a 15-bit exponent and a 113-bit mantissa, which provides a range of 0.84*10**-4932 to 0.59*10**4932 and a precision of 33 decimal digits o VARYING data type denoting variable-length character strings up to 65,535 characters o Concatenation operator and set of predefined character string functions including INDEX, LENGTH, and SUBSTR o Language elements providing sequential and random access to VAX RMS relative files and sequential and keyed access to VAX RMS multikey indexed files o Optional attributes specification on constants, variables, types, type identifiers, routines, routine parameters, schema discriminants, and compilation units o MODULE capability for combining procedures, functions, and other declarations for compilation separate from the main program o ENVIRONMENT and INHERIT attributes to control separate and independent compilation o UNSIGNED and SINGLE predefined types o VALUE initialization section and optional value initializa- tion in declaration section program level o Exponentiation operator (**) 3 VAX Pascal, Version 4.2 SPD 25.11.30 o OTHERWISE clause for CASE statement o Binary, hexadecimal, and octal constants o External procedure and function declarations o Nonpositional passing of parameters o Default values for parameters o Ability for functions to return structured types (other than file types) As a native-mode VAX language, VAX Pascal is integrated into the VAX Common Language Environment. This integration provides VAX Pascal users with: o Support for VAX interlanguage calling standard. o Access to all VMS system services. o Access to the facilities of the VAX Symbolic Debugger. o Callable interfaces to the VAX Common Run-time Library. o Callable interfaces to VAX utilities, for example SORT, and to optional products, for example VAX DATATRIEVE. o VAX CDD/Plus Support. o 31-character identifiers that can include dollar sign ($) and underscore (_). o Support for the VAX Language Sensitive Editor/Source Code An- alyzer to provide error diagnostics to VAX Language-Sensitive Editor component, cross reference information for Source Code Analyzer component, and support for low-level program design, including the processing of pseudocode and the extraction of design information from comments. Options available to VAX Pascal users at compile time include: o Run-time checks for array, character string, and subrange bounds 4 VAX Pascal, Version 4.2 SPD 25.11.30 o Run-time checks for arithmetic overflow, valid case selector values, and null pointer variables o Run-time checks for invalid declarations and illegal GOTO usage o Generation of information for use by the VAX Symbolic Debug- ger and the run-time error traceback mechanism o Creation of an environment file facilitating separate compi- lation o Cross-reference listing o Creating in the listing file a representation of the object code generated by the compiler o Printing of information-level messages, flagging uses VAX Pascal extensions to the ISO and ANSI standards SOURCE CODE INFORMATION The following source code modules are provided on all available distribution media for this product: KITINSTAL.COM, LIBDEF.PAS, MTHDEF.PAS, PASCAL$IVP.PAS, PASCAL.CLD, PASCAL.HLP, PASDEF.PAS, PASSTATUS.PAS, SIGDEF.PAS, VUE$COMPILE.COM, BACK.PAS, DTK_MODULES.DAT, FRONT.PAS, LIB_MODULES.DAT, MTH_MODULES.DAT, NCS_MODULES.DAT, OTS_MODULES.DAT, PASCAL$D_FLOAT.PAS, PASCAL$G_FLOAT.PAS, PASCAL$DTK_ROUTINES.PAS, PASCAL$LIB_ROUTINES.PAS, PASCAL$MTH_ROUTINES.PAS, PASCAL$NCS_ROUTINES.PAS, PASCAL$OTS_ROUTINES.PAS, PASCAL$PPL_ROUTINES.PAS, PASCAL$SMG_ROUTINES.PAS, PASCAL$SOR_ROUTINES.PAS, 5 VAX Pascal, Version 4.2 SPD 25.11.30 PASCAL$STR_ROUTINES.PAS, PASSTR$IVP.PAS, PPL_MODULES.DAT, RMSUSR.PAS, SDLPASCAL.EXE, SMG_MODULES.DAT, SOR_MODULES.DAT, STARLET.PAS, STARLET_MODULES.DAT, STR_MODULES.DAT, CONSTRUCTOR_1.PAS, FUNCTION_CALLS.PAS, HANDLER.PAS, HELLOWORLD.PAS, IMPLEMENTATION_MODULE.PAS, INITIAL_STATE_1.PAS, INITIAL_STATE_2.PAS, INTERFACE_MODULE.PAS, LIB$FIND_FILE.PAS, MAIN_PROGRAM.PAS, RFA_READ.PAS, SCHEMA_PARAMETERS.PAS, SMG_EXAMPLE.PAS, SYS$ASCTIM_AND_GETTIM.PAS, SYS$CHECK_ACCESS.PAS, SYS$DCLEXH.PAS, SYS$DEVICE_SCAN.PAS, SYS$FAO.PAS, SYS$GETDVI.PAS, SYS$GETJPI.PAS, SYS$GETQUI.PAS, SYS$GETSYI.PAS, SYS$GETUAI.PAS, SYS$PROCESS_SCAN.PAS, SYS$PUTMSG.PAS, SYS$SNDJBC.PAS, SYS$TRNLNM.PAS, USE_XABDAT.PAS The source code modules are provided in order to install and describe the product. Modules include sample test program, help file, example files, and system definition inclusion files. This source code is provided on an "AS IS" basis without any warranty of any kind either express or implied. HARDWARE REQUIREMENTS VAX, MicroVAX, VAXstation, or VAXserver configuration as speci- fied in the System Support Addendum (SSA 25.11.30-x). 6 VAX Pascal, Version 4.2 SPD 25.11.30 SOFTWARE REQUIREMENTS o VMS Operating System VAX Pascal supports a DECwindows compiler interface for com- pile qualifier selection on workstations. This interface is accessible from FileView. Refer to the System Support Addendum (SSA 25.11.30-x) for avail- ability and required versions of prerequisite/optional software and for information regarding components of VMS DECwindows. ORDERING INFORMATION Software Licenses: QL-126A*-** Software Media: QA-126A*-** Software Documentation: QA-126AA-GZ Software Product Services: QT-126A*-** * Denotes variant fields. For additional information on avail- able licenses, services, and media, refer to the appropriate price book. SOFTWARE LICENSING This software is furnished under the licensing provisions of Digital Equipment Corporation's Standard Terms and Conditions. For more information about Digital's licensing terms and poli- cies, contact your local Digital office. LICENSE MANAGEMENT FACILITY SUPPORT This layered product supports the VMS License Management Facil- ity. License units for this product are allocated on a CPU-capacity basis. 7 VAX Pascal, Version 4.2 SPD 25.11.30 For more information on the License Management Facility, refer to the VMS Operating System Software Product Description (SPD 25.01.xx) or the License Management Facility manual of the VMS Operating System documentation set. For more information on Digital's licensing terms and policies, contact your local Digital office. SOFTWARE PRODUCT SERVICES A variety of service options are available from Digital. For more information, contact your local Digital office. SOFTWARE WARRANTY Warranty for this software product is provided by Digital with the purchase of a license for the product as defined in the Software Warranty Addendum of this SPD. [TM] The DIGITAL Logo, CDD/Plus, CI, DATATRIEVE, DECwindows, Mi- croVAX, RMS, VAX, VAXft, VAX Pascal, VAXcluster, VAXserver, VAXstation, and VMS are trademarks of Digital Equipment Corporation. 8