               
      Software       Product      Description  E      ________________________________________________________________   E      PRODUCT NAME:  VAX C, Version 3.2                   SPD 25.38.17         DESCRIPTION  B      VAX C is an extended implementation of the C programming lan-A      guage originally developed at Bell[TM] Laboratories. The VAX A      C compiler runs under the VMS Operating System and generates -      optimized and position-independent code.   @      As a native-mode VAX language, VAX C is integrated into theA      VAX common language environment. All VAX system services are @      thus available to programs written in VAX C. VAX C supports@      VAX Record Management Services (RMS), including sequential,C      relative, and indexed file organizations and associated access @      methods, in addition to the stream file-access conventional@      among most C implementations. VAX C programs can invoke, as7      functions, modules written in other VAX languages.   ?      VAX C provides assistance in decomposing loops. Decomposed D      loops run in parallel in multiple processes, reducing the totalA      elapsed time required to run the program. This capability is @      most useful on multiple processor machines, such as the VAX
      8800.  B      VAX C supports the lint-like features of the Source Code Ana-A      lyzer component of VAX Language-Sensitive Editor/Source Code ?      Analyzer (SPD 26.59.xx). The combination of using function A      prototypes and the Source Code Analyzer component allows the A      programmer to check for consistent function usage throughout C      a program environment. VAX C also generates complete debug and B      traceback records for use with the VAX Symbolic Debugger. TheE      Debugger allows the C programmer to set breakpoints, examine and   E                                   DIGITAL               December 1990   E                                                           AE-M878S-TE          E      VAX C, Version 3.2                                  SPD 25.38.17       C      modify the contents of user variables, and selectively halt or        continue program execution.    
      Features   E      o  Compiler-assisted decomposition of for loops to run in paral- !         lel in multiple processes   ?      o  Function prototypes for declaring and checking function           argument count and types  7      o  Structured programming control flow constructs:   3         -  if...else construct for simple selection   D         -  switch statement for multi-choice selection with an arbi-*            trary number of case statements  @         -  while, do, and for statements for iterative execution  %      o  Flow modification statements:            -  break           -  continue            -  goto   D      o  Data types for numeric, nonnumeric, and systems programming:  @         -  Byte, word, and longword signed and unsigned integers  ?         -  Integer constants in decimal, octal, and hexadecimal             radices           -  Void data type   3         -  Single-character variables and constants   @         -  Single, double-precision and G_Floating point numbers  D         -  Pointer variables containing the addresses of other vari-            ables  &                                      2         E      VAX C, Version 3.2                                  SPD 25.38.17       D         -  Data aggregates including arrays, structures, and unions,            referencing allowed  !      o  Storage allocation using:   @         -  Auto, static, register, and extern storage allocation             classes for variables  ?         -  Keywords (globalref, globaldef, and globalvalue) for -            sharing data among program modules   E         -  Keywords (readonly, noshare, and psect name specification) <            for control of data attributes and data placement  B         -  Keywords (const and volatile) for specifying attributes2            for storage in which objects are placed  C         -  Keyword (_align) for specifying the alignment boundaries             of data objects  @      o  Large set of concise arithmetic, relational, and logical         operators   ,      o  Preprocessor control statements for:           -  File inclusion   "         -  Identifier substitution  "         -  Conditional compilation  .         -  Pragmas to control compiler options  =         -  Pragmas to support compiler-assisted decomposition   )      o  Separate compilation capabilities   ;      o  Compiler generated listing file including optional:            -  In-line machine code   5         -  Expanded preprocessor substitution listing   !         -  Storage allocation map   )         -  Cross referencing of variables   !         -  Compilation statistics   &                                      3         E      VAX C, Version 3.2                                  SPD 25.38.17       $         -  Loop decomposition report  =      o  Access to VAX machine instructions from C source code   >      o  Integration into the VAX Common Languages Environment:  E         -  Generation of complete debug and traceback records for VAX $            Symbolic Debugger support  A         -  Facility for interfacing with the VAX calling standard   E         -  Access to the VAX Common Run-Time Library for general pur- C            pose routines and support of multi-language environments   A         -  Access to the data management facilities of VAX Record C            Management Services (RMS) via direct calls to the Common             Run-Time Library   D         -  Access to data structures declared using the VAX CDD/Plus  B         -  Interface to VAX DEC/Shell as an alternate command lineC            interpreter under which the VAX C compiler and user pro-             grams may be run   @         -  Support for VAX Language-Sensitive Editor/Source CodeA            Analyzer to provide error diagnostics to the Language- B            Sensitive Editor component, cross reference informationB            for the Source Code Analyzer component, and support for@            low-level program design, including the processing ofC            pseudocode and the extraction of design information from             comments   B      o  Extensive global and local optimizations of generated code<         for increased performance and reduced size under VMS  ;      o  Interface to the curses screen manipulation package   /      Compatibility with Other C Implementations   &                                      4         E      VAX C, Version 3.2                                  SPD 25.38.17       B      VAX C represents a more current definition and implementationC      of the language than is described in the initial guiding docu- D      ment for C, The C Programming Language[1]. However, some incom-B      patibilities among implementations do exist. In general, manyB      programs written in C for other compilers can be successfully      recompiled under VAX C.  @      The C language has been closely associated with the UNIX[R]A      Operating System, which itself is largely written in C. Over B      150 UNIX-specific routines have been included in the run-timeA      library available with the VAX C compiler. Routines selected B      for inclusion in this library are primarily those for which aC      reasonable emulation is possible under VMS. Inherent architec- D      tural differences between UNIX and VMS necessarily preclude theA      likelihood of every C program written for a UNIX environment B      compiling and executing unaltered. Programs exploiting highlyB      machine-dependent or UNIX-specific features will require some      conversion effort.   (      Run-Time Package for C Applications  E      The VAX C Run-Time Package is distributed with the VMS Operating C      System. The VAX C Run-Time Package provides shareable routines B      to perform input/output, character and string handling, math-@      ematical computations, memory allocations, and emulation ofA      selected UNIX features. Also supported are the 4.3BSD socket >      routines for interprocess communication across a network.        HARDWARE REQUIREMENTS  D      VAX, MicroVAX, VAXstation, or VAXserver configuration as speci-9      fied in the System Support Addendum (SSA 25.38.17-x)               ___________________  B    [1] Brian Kernighan and Dennis M. Ritchie, Prentice-Hall, 1978.  &                                      5         E      VAX C, Version 3.2                                  SPD 25.38.17             SOFTWARE REQUIREMENTS  ;      For Systems Using Terminals (No DECwindows Interface):         VMS Operating System   "      For Workstations Running VWS:        VMS Operating System       VMS Workstation Software   )      For Workstations Running DECwindows:   B      VMS Operating System (and necessary components of VMS DECwin-
      dows)  E      VAX C supports a DECwindows compiler interface for compile qual- B      ifier selection on workstations. This interface is accessible      from FileView.   E      Refer to the System Support Addendum (SSA 25.38.17-x) for avail- C      ability and required versions of prerequisite software and for 8      information regarding components of VMS DECwindows.        ORDERING INFORMATION   #      Software Licenses: QL-015A*-**        Software Media: QA-015A*-**(      Software Documentation: QA-015AA-GZ+      Software Product Services: QT-015A*-**   D      *  Denotes variant fields. For additional information on avail-D         able licenses, services, and media, refer to the appropriate         price book.           &                                      6         E      VAX C, Version 3.2                                  SPD 25.38.17             SOFTWARE LICENSING   A      This software is furnished under the licensing provisions of C      Digital Equipment Corporation's Standard Terms and Conditions. C      For more information about Digital's licensing terms and poli- -      cies, contact your local Digital office.   (      LICENSE MANAGEMENT FACILITY SUPPORT  D      This layered product supports the VMS License Management Facil-	      ity.   C      License units for this product are allocated on a CPU-capacity       basis.   C      For more information on the License Management Facility, refer B      to the VMS Operating System Software Product Description (SPDC      25.01.xx) or the License Management Facility manual of the VMS (      Operating System documentation set.  C      For more information about Digital's licensing terms and poli- -      cies, contact your local Digital office.         SOFTWARE PRODUCT SERVICES  A      A variety of service options are available from Digital. For 9      more information, contact your local Digital office.         SOFTWARE WARRANTY  C      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.  E      [R]  UNIX is a registered trademark of UNIX System Laboratories,            Inc.      &                                      7         E      VAX C, Version 3.2                                  SPD 25.38.17         :      [TM] Bell is a trademark of Bell Telephone Companies.  C      [TM] X11 is a trademark of Massachusetts Institute of Technol-            ogy.  B      [TM] The DIGITAL Logo, CI, DECwindows, MicroVAX, ULTRIX, VAX,E           VAX C, VAX CDD/Plus, VAX RMS, VAXcluster, VAXft, VAXserver, A           VAXstation, and VMS are trademarks of Digital Equipment            Corporation.                                                          &                                      8