 






          Software
          Product
          Description

          ________________________________________________________________

          PRODUCT NAME:  VAX Language-Sensitive Editor/Source Code Ana-
          lyzer,                                              SPD 26.59.11
                         Version 3.1

          1  DESCRIPTION

          The VAX Language-Sensitive Editor/Source Code Analyzer is an
          integrated environment that provides software professionals with
          editing, cross-reference, and static analysis capabilitites. It
          is a multi-language, multi-module, and multi-window tool that is
          useful for program design, development, and maintenance.

          The two main components of this product are the Language-
          Sensitive Editor and the Source Code Analyzer. The Language-
          Sensitive Editor component provides the following capabilities:
          source code templates, the ability to do low level program de-
          sign by embedding pseudocode in source code, the ability to view
          source code at various levels of detail by replacing a sequence
          of source lines with a single overview line, and access to on-
          line language-specific help. Together, this support enables new
          and experienced programmers to develop programs faster through
          VAX language-specific construct completion and error detection
          and correction facilities.

          The Source Code Analyzer component aids developers in under-
          standing the complexities of software systems. Since it allows a
          developer to analyze an entire system as opposed to individual
          modules, and helps the developer understand unfamiliar systems,
          the Source Code Analyzer component is extremely useful during
          the implementation and maintenance phases of a project. The
          Source Code Analyzer component provides source code navigation,
          cross-reference, and static analysis for compile-time source
          code information generated by supported VAX languages. Addition-
          ally, the Analyzer provides design cross-reference, analysis,

                                       DIGITAL              September 1990

                                                               AE-DY90L-TE

 


          VAX Language-Sensitive Editor/Source Code Analyzer, SPD 26.59.11



          and reports for pseudocode and specialized comment processing
          information generated by supported VAX languages.

          The Language-Sensitive Editor component supports the DECwindows
          software environment, and provides either a DECwindows or a
          character cell terminal interface. All the Source Code Analyzer
          commands are available from within an editing session.

          The VAX Language-Sensitive Editor/Source Code Analyzer is in-
          cluded in the VAXset Software Engineering Tools Package (SPD
          27.07.xx). This package provides simplified ordering and mainte-
          nance of various tools. See SPD 27.07.xx for more information on
          VAXset.

          The VAX Language-Sensitive Editor/Source Code Analyzer works in
          concert with supported VAX languages and the VAX Symbolic Debug-
          ger to provide a highly interactive, on-line environment that
          facilitates the EDIT-COMPILE-DEBUG-NAVIGATE-ANALYZE portion of
          the program development cycle. Within a single editing session,
          users can write, edit, compile, review compile-time errors,
          correct errors, navigate through, and analyze their source code.

          The Language-Sensitive Editor component can be invoked directly
          from the VAX Symbolic Debugger to correct source code errors
          found during a debugging session.

          Users can customize the environment by tailoring and expanding
          upon the features and structures provided by the Language-
          Sensitive Editor component. User-defined environments can be
          saved for future use.

          "Language-Sensitive" Features

          Source Code Templates for Supported VAX Languages

          For each supported VAX language, the Language-Sensitive Editor
          component provides a set of source code templates. These tem-
          plates are formatted language constructs that provide keywords,
          punctuation, and placeholders. Templates are inserted into the

                                          2

 


          VAX Language-Sensitive Editor/Source Code Analyzer, SPD 26.59.11



          editing buffer by successive expansions of tokens and placehold-
          ers. Placeholders represent positions in the source code where
          the user must provide additional program text or choose from
          indicated syntactic options. Tokens are keywords, or function
          names, that the user can type into the editing buffer and expand
          into templates for corresponding source constructs.

































                                          3

 


          VAX Language-Sensitive Editor/Source Code Analyzer, SPD 26.59.11



          Support for Pseudocode Entry

          The Language-Sensitive Editor component supports the use of
          pseudocode for low level program design. Users can mix free
          text with programming language syntax by enclosing the text
          in pseudocode delimiters. Programs in this design state may
          be processed by supporting compilers to produce .ANA files
          for the Source Code Analyzer component. Users can also convert
          pseudocode entries into program comments.

          Support for Viewing Code at Various Levels

          The Language-Sensitive Editor component also includes a code
          elision feature which is a facility for viewing source code
          at various levels of detail. A sequence of source lines may be
          hidden and replaced by a single overview line using the COLLAPSE
          command. The overview line consists of text taken from the
          first hidden source line. This text is enclosed in pseudocode
          delimiters. The EXPAND command restores the lines hidden by a
          COLLAPSE command. The FOCUS command allows users to collapse
          the entire buffer except for the nested groups that contain the
          current line.

          VAX language-specific on-line help for placeholders and key
          language concepts is accessible from the Editor.

          Support For Vector Software Development

          The Language-Sensitive Editor component supports vector software
          development. When used in conjunction with the VAX FORTRAN
          High-Performance Option, the Editor will report source code
          dependencies in vectorizable arrays and suggest where to add
          ASSERT statements to the VAX FORTRAN source code to minimize
          source code dependencies.

          Source Code Analysis Capabilities



                                          4

 


          VAX Language-Sensitive Editor/Source Code Analyzer, SPD 26.59.11



          The Source Code Analyzer component's query capability allows
          the user to search and display specific source code symbol, file
          and module information based on certain attributes and their
          relationships.

          The Source Code Analyzer component can help answer some commonly
          asked source code questions such as:

          -  Where is a particular global variable declared, initialized,
             modified, or referenced?

          -  In which modules are there references to a particular symbol
             name?

          -  Are my calling arguments consistent?

          -  Where is a certain routine called?

          VAX Language Interfaces

          The Language-Sensitive Editor component interfaces to supported
          VAX languages (refer to List 1 for supported VAX languages) to
          provide the capability for on-line, interactive program editing,
          compilation, compile time error reporting, and compile time
          error correction within a single editing session. Supported
          VAX languages provide a /DIAGNOSTICS qualifier that instructs
          the compiler to generate a file of compile-time diagnostic
          information. This file is used by the Editor in compilation
          error review mode.

          The Source Code Analyzer component interfaces to supported VAX
          languages (refer to List 1 for supported VAX languages) for
          source code navigation, cross- reference, and static analysis.
          Supported VAX languages provide an /ANALYSIS qualifier that in-
          structs the compiler to generate a file of compile-time source
          code information. This file is used by the Source Code Analyzer
          component for source code cross-reference, navigation and analy-
          sis. In addition, supported VAX languages (see List 4) provide a
          /DESIGN qualifier that instructs the compiler to generate pseu-
          docode information. This information is used by the Source Code

                                          5

 


          VAX Language-Sensitive Editor/Source Code Analyzer, SPD 26.59.11



          Analyzer component to provide design cross reference, analysis,
          and reports.

          User Diagnostic File Interface

          The Language-Sensitive Editor component has an ASCII format
          diagnostic file interface to be used with compilers and tools
          other than those supplied by Digital. The file is used to com-
          municate diagnostic messages to the Language-Sensitive Editor
          component and allows the user to display the diagnostic messages
          in the REVIEW buffer and issue a GOTO SOURCE command to display
          the corresponding source in another window.

          The ASCII format of this file provides an easy to use Digital
          Command Language (DCL) style interface.

          Features include:

          o  COMPILE command to perform compilations without leaving the
             Editor, and, optionally, to review compilation errors upon
             compile completion. The user may specify DCL qualifiers such
             as /DEBUG and /LIBRARY when invoking the compiler from the
             Language-Sensitive Editor component. The compilation may be
             performed in a BATCH job.















                                          6

 


          VAX Language-Sensitive Editor/Source Code Analyzer, SPD 26.59.11



          o  REVIEW mode to review compilation errors upon compile com-
             pletion. The Language-Sensitive Editor component displays
             the compilation errors in one window, with the corresponding
             source code displayed in a second window. For easy error cor-
             rection, there is GOTO SOURCE command to position the cursor
             at the point in the source code where the compiler detected
             the error.

          VAX DEC/CMS (Code Management System) Interface

          The Language-Sensitive Editor component provides an interface
          to the VAX DEC/CMS (Code Management System) [SPD 25.52.xx] to
          simplify program development and source file management. All VAX
          DEC/CMS functions are available from within the Editor.

          VAX DEC/CMS can be utilized to store program source files. These
          files can be moved from the CMS library, placed in the cur-
          rent editing buffer, modified, and returned to the CMS library
          without leaving the Editor.

          VAX Symbolic Debugger Interface

          The Language-Sensitive Editor component can be invoked from the
          VAX Symbolic Debugger providing the ability to make source code
          corrections as they are found during a debugging session.

          Features include:

          o  User notification if the file, invoked by the Editor, is a
             different version than that displayed in the VAX Symbolic
             Debugger

          o  Ability to specify the file and line number from which to
             start the editing session with the default being the current
             source displayed in the VAX Symbolic Debugger

          o  User choice of terminating activity directly from the editing
             session or returning to the debugging session

          User Interface

                                          7

 


          VAX Language-Sensitive Editor/Source Code Analyzer, SPD 26.59.11



          The Language-Sensitive Editor component offers an easy-to-use,
          flexible user interface designed to meet varying user needs.

          Features include:

          o  Default KED/EDT keypad layout

          o  Alternate VAXTPU EVE keypad layout

          o  Multiple windows, multiple buffers

          o  Choice of editing mode: OVERSTRIKE or INSERT

          o  Ability to bind any command (user-defined or those supplied
             by the Language-Sensitive Editor component), or sequence of
             keystrokes (a "learn" sequence) to a key.

          o  On-line HELP facility for the Language-Sensitive Editor
             component

          o  Interface to VAX DEC/CMS. The Editor can use VAX DEC/CMS
             protocol to access files stored in the current CMS library.

          o  Source File Management features include defining a searchlist
             for locating source files and marking source directories as
             read-only to prevent accidental modifications.

          Language-Sensitive Editor User-Tailorable Features

          Language-Sensitive Editor component users can tailor the editing
          environment to address unique programming needs. These user-
          defined environments can be saved for future editing sessions.

          Users can provide a definition of a language, memo header, or
          other textual templates for the Editor. To address specific
          coding conventions, users can add to or change the definitions
          supplied for the supported languages.

          VAXTPU (Text Processing Utility)

                                          8

 


          VAX Language-Sensitive Editor/Source Code Analyzer, SPD 26.59.11



          For more unique editing requirements, the Language-Sensitive
          Editor component provides commands to access VAXTPU, a text
          processing utility which is part of the VMS Operating System.
          VAXTPU has an easy-to-use, high-level procedural language which
          allows users to write functions incremental to those provided
          by the Language-Sensitive Editor component. The VAXTPU language
          provides for looping and conditionals to allow users to perform
          more powerful editing tasks.

          VAXTPU Language statements include:

          o  The assignment statement

          o  Procedural statements (PROCEDURE - ENDPROCEDURE)

          o  Looping statements (LOOP - ENDLOOP)

          o  Conditional statements (IF - THEN - ELSE - ENDIF)

          o  Case statements (CASE - ENDCASE)

          o  Error statements (ON_ERROR - ENDON_ERROR)

          Language-Sensitive Editor Component Commands

          Users control the editing environment and tap the Language-
          Sensitive Editor component's knowledge of VAX languages with
          a rich set of commands. Commands used most often can be easily
          bound to keys to enable quick and efficient programming. All
          commands are available through "command mode".









                                          9

 


          VAX Language-Sensitive Editor/Source Code Analyzer, SPD 26.59.11



          Command features include:

          o  EXPAND/UNEXPAND, ERASE/UNERASE PLACEHOLDER, commands for
             language construct completion

          o  CHANGE WINDOW_MODE, NEXT/PREVIOUS WINDOW, SET SCREEN, SHIFT,
             REFRESH ONE WINDOW, TWO WINDOWS, OTHER WINDOW, SPLIT WIN-
             DOW, ENLARGE WINDOW, SHRINK WINDOW, DELETE WINDOW screen
             manipulation commands

          o  COMPILE command to invoke the appropriate VAX language com-
             piler

          o  REVIEW, END REVIEW, NEXT ERROR, PREVIOUS ERROR, GOTO SOURCE
             commands for compile-time error review and correction

          o  DEFINE/DELETE [LANGUAGE, TOKEN, PLACEHOLDER, ALIAS, COMMAND,
             KEY, PACKAGE, PARAMETER, ROUTINE, ADJUSTMENT, KEYWORD, TAG],
             EXTRACT, MODIFY LANGUAGE, SET MODE commands for tailoring the
             user environment

          o  SAVE ENVIRONMENT command for writing user-defined language
             environment to a file for future editing session use

          o  SAVE SECTION command for writing user-defined editing envi-
             ronment to a file for future editing session use

          o  DO command to execute an Editor command (or string of com-
             mands) or VAXTPU program statements

          o  CALL command for calling a VAXTPU procedure

          o  SPAWN and ATTACH commands for suspending the editing session
             to switch to a subprocess running the DCL command interpreter

          o  GOTO command to position the cursor at the indicated option
             (options include BOTTOM, TOP, BUFFER, FILE, MARK, PAGE, LINE,
             WORD, CHARACTER, PLACEHOLDER, SCREEN) as well as CANCEL MARK,
             CHANGE DIRECTION commands for cursor positioning

          o  SEARCH command for locating specified characters or strings
             (includes wildcard option)

                                         10

 


          VAX Language-Sensitive Editor/Source Code Analyzer, SPD 26.59.11



          o  SUBSTITUTE command for replacing the text of one string with
             another

          o  SHOW command to display characteristics and settings of
             several options (including ALIAS, BUFFER, COMMAND, DIRECTORY,
             KEY, LANGUAGE, MARK, MODE, PACKAGE, PARAMETER, PLACEHOLDER,
             ROUTINE, SCREEN, SEARCH, SOURCE_DIREC-
             TORY, TOKEN, VERSION, ADJUSTMENT, KEYWORD, TAG)

          o  Text manipulation commands include CANCEL SELECT_MARK, CAP-
             ITALIZE WORD, CHANGE [CASE, DIRECTION, INDENTATION, TEXT_
             ENTRY_MODE], CUT, ENTER [LINE, SPACE, SPECIAL, TAB, TEXT],
             ERASE [CHARACTER, LINE, PLACEHOLDER, WORD], FILL, LOWERCASE
             WORD, PASTE, SET [FORWARD, INSERT, OVERSTRIKE, REVERSE, SE-
             LECT_MARK, WRAP, LEFT_MARGIN, RIGHT_MARGIN], SUBSTITUTE, TAB,
             UNERASE SELECTION, UNEXPAND, UNTAB, UPPERCASE WORD.

          o  Pseudocode manipulation commands include ENTER [PSEUDOCODE,
             COMMENT], UNDO ENTER COMMENT.

          o  Commands to manipulate overviews include VIEW SOURCE, FOCUS,
             COLLAPSE, EXPAND.

          o  CHANGE INDENTATION, ENTER TAB, SET INDENTATION, SET TAB_
             INCREMENT, TAB, UNTAB commands for source code indentation
             control

          o  DELETE BUFFER, SET [MODIFY, NOMODIFY, DIRECTORY, OUTPUT_FILE,
             SOURCE_DIRECTORY, OVERVIEW, NOOVERVIEW], WRITE, RESERVE,
             UNRESERVE, REPLACE, CLOSE, READ, INCLUDE commands for ma-
             nipulation of files, editing buffers, and interfacing to VAX
             DEC/CMS

          o  CHECK LANGUAGE command which finds likely errors in user
             created language definitions.

          o  FILL and ALIGN commands for source code comment formatting

          o  All VAX DEC/CMS commands

          Source Code Analyzer Commands

          Query Capabilities

                                         11

 


          VAX Language-Sensitive Editor/Source Code Analyzer, SPD 26.59.11



          FIND command provides interactive cross-reference of symbol and
          source file information. It provides the following capabilities:





































                                         12

 


          VAX Language-Sensitive Editor/Source Code Analyzer, SPD 26.59.11



          o  Locate symbols and occurrences of symbols.

          o  Limit the query to a specified set of names or partial names
             where wildcards are permitted.

          o  Limit the query based on symbol selection attributes.

          o  Limit the query based on occurrence selection attributes.

          o  Limit the query based on domain selection attributes.

          o  Locate symbols and occurrences based on various relationships
             to other symbols or occurrences.

          INSPECT command provides interactive cross-module checking of
          routines and common blocks for consistency. It provides the
          following capabilities:

          o  Consistency of types

          o  Check for unused, incorrectly used and implicitly declared
             variables

          o  Tailor the extent to which INSPECT checks for errors.

          REPORT command provides customizable generation of REPORTS,
          including the generation of Section 4 of the DOD-STD-2167A
          Software Design Document.

          Library Management

          o  CREATE LIBRARY command initializes a Source Code Analyzer
             library.

          o  LOAD command loads the compiler-generated information into a
             Source Code Analyzer library.

          o  SET LIBRARY command selects the libraries to be used during
             the current analyzer session. The library may be on a remote
             node.

          o  SHOW LIBRARY command displays the directory specification of
             the current active library.

                                         13

 


          VAX Language-Sensitive Editor/Source Code Analyzer, SPD 26.59.11



          o  REORGANIZE command optimizes the size and organization of the
             library.

          o  VERIFY command checks the integrity of the data in a library.

          o  SHOW MODULE command displays current module information
             including module name, identifier, and compilation date.

          o  DELETE MODULE command deletes specified module of source data
             from library.

          Query Navigation (when used with the Language-Sensitive Editor
          component)

          The user can navigate through source code information and di-
          rectly edit the source code.

          NEXT and PREVIOUS commands move to the appropriate option dis-
          played in the query buffer as follows:

          o  SYMBOL specifies a symbol or file associated with the current
             name.

          o  OCCURRENCE specifies an occurrence of the current item asso-
             ciated with the current name.

          GOTO SOURCE command displays the source code that corresponds to
          the current symbol occurrence.

          GOTO DECLARATION command displays the source code that corre-
          sponds to the declaration of the specified symbol.

          Query Management

          Allows the user to maintain all previously entered queries, to
          reuse them, or to use them in new queries.

          o  NEXT, PREVIOUS and GOTO QUERY commands allow users to select
             different queries.

          o  SHOW QUERY command displays information on all queries in the
             current session.

                                         14

 


          VAX Language-Sensitive Editor/Source Code Analyzer, SPD 26.59.11



          o  Delete query command deletes the specified query.

          Generating Design Reports

          In addition to getting information directly from Source Code An-
          alyzer component queries, users can produce a variety of reports
          based on their design in the Source Code Analyzer component
          database.

          Typically, reports cover all or a designated part of the user's
          Source Code Analyzer component database and present information
          in a structured, organized way. The REPORT command allows users
          to generate a report type provided by the Source Code Analyzer
          component or to create a customized report.

          The following reports are provided by the Source Code Analyzer
          component:

          o  HELP - A VMS Help file generated from the user's design or
             code.

          o  PACKAGE - An LSE package definition.

          o  INTERNALS - A general report that formats a user's entire
             design in an organized manner.

          o  2167A_DESIGN - A report that produces a document that meets
             the Section 4 requirements of the U.S. Defense Department's
             DOD-STD-2167A Software Design Document.

          Note: Both the Language-Sensitive Editor and Source Code Ana-
          lyzer components of the VAX Language Sensitive Editor/Source
          Code Analyzer V3.1 must be on the user's system to generate
          reports.





                                         15

 


          VAX Language-Sensitive Editor/Source Code Analyzer, SPD 26.59.11



          Source Code Analyzer Callable Interface

          A set of routines allows the user to use the Source Code Ana-
          lyzer component from within independent application programs.

          Although full Source Code Analyzer component functionality is
          provided by its integration with the Language-Sensitive Editor
          component, including the editing of the corresponding source
          code, most Source Code Analyzer component features are available
          directly from the DCL command level interface.

          HARDWARE REQUIREMENTS

          VAX, MicroVAX, VAXstation or VAXserver configuration as speci-
          fied in the System Support Addendum (SSA 26.59.11-x).

          SOFTWARE REQUIREMENTS*

          For systems using terminals: (No DECwindows interface)

          o  VMS Operating System

          For workstations running VWS:

          o  VMS Operating System

          o  VMS Workstation Software

          For workstations running DECwindows:

          o  VMS Operating System (and necessary components of VMS DECwin-
             dows)

          Note: For full use of the Language-Sensitive Editor component
          features described in this SPD, at least one of the VAX lan-
          guages in List 1 or List 2 is required. For full use of the
          Source Code Analyzer component features described in this SPD,
          at least one of the VAX languages in List 1, or VAX SCAN from
          List 2, and the Language-Sensitive Editor component are re-
          quired. (The Language-Sensitive Editor component is not required
          to initially install the Source Code Analyzer component.)

                                         16

 


          VAX Language-Sensitive Editor/Source Code Analyzer, SPD 26.59.11



          Note: Certain features of this product are not available when
          using language pre-processors such as those supplied for VAX
          Rdb/VMS and VAX DBMS. Consult your local Digital representative
          for additional information.

          List 1

          The following list specifies VAX languages which are fully
          supported by the VAX Language-Sensitive Editor/Source Code
          Analyzer. Templates for those languages are included with the
          Language-Sensitive Editor component.

          -  VAX Ada
          -  VAX BASIC
          -  VAX BLISS-32 Implementation Language
          -  VAX C
          -  VAX COBOL
          -  VAX FORTRAN
          -  VAX MACRO
          -  VAX PASCAL
          -  VAX PL/I

          List 2

          The following list specifies VAX languages which are fully
          supported by the Language-Sensitive Editor component. Templates
          for these languages are included with the product and not the
          Language-Sensitive Editor component.

          -  VAX CDD/Plus
          -  VAX DIBOL
          -  VAX DOCUMENT
          -  VAX Rdb/VMS
          -  VAX SCAN
          -  VAXELN PASCAL

          List 3


                                         17

 


          VAX Language-Sensitive Editor/Source Code Analyzer, SPD 26.59.11



          The following list specifies VAX products which have partial
          support for the Language-Sensitive Editor component (Refer to
          product SPD for more details). Templates for these products are
          included with the product and not the Language-Sensitive Editor
          component.

          -  VAX ACMS
          -  VAX DATATRIEVE
          -  DECwindows UIL
          -  VAX TDMS

          List 4

          The following list specifies VAX products which process pseu-
          docode entry information for the Source Code Analyzer component.

          -  VAX Ada
          -  VAX BASIC
          -  VAX BLISS-32 Implementation Language
          -  VAX C
          -  VAX COBOL
          -  VAX FORTRAN
          -  VAX PASCAL

          Refer to the System Software Addendum for availability and re-
          quired versions of prerequisite/optional software (SSA 26.59.11-
          x) and for information regarding components of VMS DECwindows.

          ORDERING INFORMATION

          Software Licenses: QL-057A*-**
          Software Media: QA-057A*-**
          Software Documentation: QA-057AA-GZ
          Software Product Services: QT-057A*-**

          *  Denotes variant fields. For additional information on avail-
             able licenses, services and media, refer to the appropriate
             price book.

          SOFTWARE LICENSING

                                         18

 


          VAX Language-Sensitive Editor/Source Code Analyzer, SPD 26.59.11



          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.

          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 about Digital's licensing terms and poli-
          cies, contact your local Digital office.

          SOFTWARE PRODUCT SERVICES

          A variety of service options are available. 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, VMS, DECwindows, VAX, MicroVAX, VAXs-
                tation, VAXserver and VAXset are trademarks of Digital
                Equipment Corporation.



                                         19
