Software Product Description _________________________________________________________ PRODUCT NAME: VAX APL, Version 4.0 SPD 25.31.11 DESCRIPTION APL (A Programming Language) is a concise programming lan- guage that can be used for a wide range of applications. It simplifies the handling of numeric and character data or- ganized as lists and tables. VAX APL is a native-mode, shareable, reentrant interpreter that runs under the VMS Operating System. It provides a built- in function editor, debugging aids, system communication fa- cilities and file system. VAX APL can execute lines of code immediately or store the code for later execution. VAX APL uses virtual memory to create a "workspace" that can expand dynamically as needed and utilizes the VAX Floating Point and Character String instructions. VAX APL HPO (High Performance Option) requires a separate license to activate modules enabling VAX APL commands to uti- lize the Vector Processing hardware. The activation of the feature requires no change to user APL programs. Features o Contains all of the APL primitive functions and opera- tors described in Development of an APL Standard by Falkoff and Orth in the APL79 Conference Proceedings. o Support for enclosed arrays, which allows any item of an array to be another array. VAX APL supports heterogeneous arrays (mixing numeric and character values) and nested arrays to an arbitrary depth. Strand or vector notation DIGITAL July 1991 AE-P450L-TE VAX APL, Version 4.0 SPD 25.31.11 can be used to create enclosed arrays. The user can con- trol the display of enclosed arrays, including specify- ing spacing, centering, and optional bordering. o VAX APL provides a Character Cell Terminal User Environ- ment, which greatly expands support for users without DECwin- dows hardware. It will present a character cell screen editor interface, which allows the user to interact with the APL command line on the same display on which the user can edit values and operations. o VAX APL also has a separate full DECwindows User Inter- face that provides VAX APL with an interactive window in which commands can be entered and results viewed. The ses- sion transcript can be reviewed through the use of a scroll bar. APL objects can be edited in a separate window from the main session. VAX APL permits the selection and copy- ing of text sections into and out of buffers, with a re- striction on the session transcript itself. Pull down menus will be provided as an alternative to some of the tra- ditional APL methods of operation. o Large workspaces are limited in size only by the avail- able virtual memory. The space is allocated dynamically and may be constrained by the user or system manager. o The symbol table and function (SI) stack are part of the workspace and may grow dynamically as long as there is workspace available. o The VAX Record Management System (RMS) is used for file system input and output. VAX APL supports sequential, rel- ative, keyed, and APL component files. These files may be created or used by other VAX languages that use RMS. o External routines (not written in APL) can be called from APL and arguments passed to and values received from these external routines. The VMS DEBUGGER can be used from in- side VAX APL to debug these external routines. Perfor- mance monitoring of external routines is also available with VAX PCA, a separately-purchased product. 2 VAX APL, Version 4.0 SPD 25.31.11 o Data may be shared between VAX APL processes via VMS mail- boxes. The data may also be shared between APL processes and programs written in other languages that support mail- boxes. Event flags may be used to synchronize data shar- ing. o VAX APL supports the VAX Vector Architecture as a means to increase the performance of VAX APL. This support is transparent to the VAX APL user and requires no changes to APL programs. Performance gains are heavily dependent on the application being run. Activation of this feature requires a separate VAX APL HPO License. o End-of-line comments and the preservation of white space (including spaces and tab characters) in input lines en- able the user to document and format functions for en- hanced readability. o Line-oriented APL function editor and line editing of im- mediate mode expressions is standard. o Detailed error messages give more information than tra- ditional APL messages. o Support for APL/ASCII typewriter-paired ASCII and APL/ASCII bit-paired ASCII is provided. o A complete set of mnemonics allows access to the inter- preter without the use of a special terminal. o Support for the Workspace Interchange Convention, which makes it easier to exchange workspaces with other APL prod- ucts supporting Convention. o An execute-only, run-time support version of the APL in- terpreter is available to run APL applications. o The Monadic form Epsilon (.ep) has been changed from the quiet Execute function to the Enlist function. The En- list function converts enclosed arrays to simple vectors. The quiet Execute function is still available as Quad- XQ. 3 VAX APL, Version 4.0 SPD 25.31.11 Language Extensions o Most primitive functions and operators have been extended to operate on enclosed arrays. The scalar primitive func- tions are pervasive so they operate at the leaves of their arguments. The primitive functions "enclose", "disclose", "depth", "first", and "pick" are available to create, in- terrogate, and manipulate enclosed arrays. o The operator "each" can produce a derived function that is applied to the items of its arguments. All of the prim- itive operators have been extended to allow any primi- tive function, system function, user-defined function, or derived function as an operand. Identity and Fill func- tions have been defined for the primitive functions. o The execute function allows any APL character string to be evaluated as if it were entered at a terminal. This includes system commands and the function editor. o Diamond statement separators allow more than one expres- sion on a line. o Take, Drop, and Ravel take a vector axis. The set func- tions (union, intersection, without, subset, contains, unique, match) are available. o Ambivalent functions allow the user to define functions that can accept either one or two arguments. o Replicate adds new capabilities to compression. One ex- pression can eliminate elements, repeat elements, and add zeros or blanks to an array. o Relational (equal, greater than, etc.) and sorting func- tions can operate on character, as well as numeric data. Dyadic grade allows the user to specify a collating se- quence to sort. o Boolean, integer, and D_floating internal data types. G_ and H_ floating are not supported internally. 4 VAX APL, Version 4.0 SPD 25.31.11 System Commands o System commands which query workspace objects work both with the currently active workspace and with any inac- tive workspaces on disk. o A complete set of APL system commands to query or to change the APL system environment is available, including list- ing and deleting files from disk, loading, saving and copy- ing of VAX APL workspaces. Commands that work on iden- tifiers accept wildcard strings. o Any VMS Operating System command may be executed from immediate- mode or from a running APL function via the )PUSH and )DO commands without disturbing the APL process. The )DO com- mand may be used to place the result of a VMS Operating System command into an APL variable. The variable would contain the text of what the VMS Operating System nor- mally displays on the terminal. This variable may then be used for further analysis. )ATTACH can be used to at- tach to a subprocess without exiting APL. o Input may be taken from a command file via the )INPUT com- mand. Text in the file is treated as if the user had typed the responses at the terminal, which allows for "batch- like" processing within the APL environment. VAX APL can be run under the VMS batch control system with no mod- ifications to APL workspaces or user input conventions. o Reports, text files and even a log of the work performed may be transparently written to a file. The )OUTPUT com- mand directs everything that would have appeared on the terminal to a file. The )OUTPUT/SHADOW command directs the output to both the terminal and to a file. The file looks the same as the output would look on a terminal, complete with formatting and control characters. o )STEP allows function lines to be executed one at a time. 5 VAX APL, Version 4.0 SPD 25.31.11 o )EDIT invokes the VAXTPU system editor to do full-screen editing of functions and data. System Functions and Variables o A complete set of APL system variables is provided to af- fect and to query the APL workspace and system environ- ments. o A complete set of APL system functions to examine or to modify the APL workspace environment, including creat- ing local functions, accessing information from the workspace symbol table, and loading and copying VAX APL workspaces is available. o Flexible terminal output handling includes the ability to send escape sequences to the terminal. o Flexible error handling enables the user to detect, an- alyze and correct errors without interrupting the APL pro- cess. These are implemented via Quad-TRAP, Quad-ERROR, Quad-SIGNAL and Quad-BREAK. o Debugging aids are supplied to help find logic errors in a user function. Quad-TRACE enables display of the re- sult of each requested line of APL code. Quad-STOP sets breakpoints in the code. The user may investigate the workspace and then resume execution from the breakpoint. Quad-WATCH can be used to determine when a variable is accessed or modified. Quad-MONITOR can be used to determine CPU time and execution counts for lines of a function. o Extensive formatting capabilities are available via Quad- FMT. Both character and numeric data of various shapes may be combined using powerful format descriptors to pro- duce special-effect reports. Run-Time Support Facility 6 VAX APL, Version 4.0 SPD 25.31.11 The VAX APL product contains a run-time support facility that is an "execute only" version of APL; it does not support the interactive sessions or features necessary for APL program development. Users can use this "execute only" version of VAX APL to run APL applications on VMS systems not licensed to support VAX APL. The "execute only" version of VAX APL can be copied to any valid VMS system free of charge. In order to take full advantage of the Vector Processor hard- ware on the target computer, the customer must purchase a VAX APL HPO License for the particular target computer be- ing used. The only change in this license is to utilize the special instructions for vectoring. HARDWARE REQUIREMENTS VAX APL VAX, MicroVAX, VAXstation or VAXserver configuration as spec- ified in the System Support Addendum (SSA 25.31.11-x). VAX APL HPO (High Performance Option) Any VAX that can support the Vector Processor Module FV64A- AA/FV65A-AA for the VAX 6000 and KV900-AA for the VAX 9000. Terminal Support VAX APL supports the APL character set on the VT300 Series, VT200 Series, and VAXstation terminals. Refer to the SSA (SSA 25.31.11-x) for more information. SOFTWARE REQUIREMENTS VAX APL For Systems Using Terminals (No DECwindows Interface): o VMS Operating System 7 VAX APL, Version 4.0 SPD 25.31.11 For Workstations Running DECwindows: o VMS Operating System (and necessary components of VMS DECwin- dows) VAX APL HPO (High Performance Option) o VAX APL o VAX APL HPO Refer to the System Support Addendum (SSA 25.31.11-x) for availability and required versions of prerequisite/optional software. ORDERING INFORMATION VAX APL Software Licenses: QL-020A*-** Software Media: QA-020A*-** Software Documentation: QA-020AA-GZ Software Product Services: QT-020A*-** VAX APL HPO (High Performance Option) Software Licenses: QL-XAAA*-** o Denotes variant fields. For additional information on avail- able licenses, services, and media, refer to the appro- priate price book. SOFTWARE LICENSING This software is furnished under the licensing provisions of Digital Equipment Corporation's Standard Terms and Con- ditions. For more information about Digital's licensing terms and policies, contact your local Digital office. 8 VAX APL, Version 4.0 SPD 25.31.11 LICENSE MANAGEMENT FACILITY SUPPORT This layered product supports the VMS License Management Fa- cility. License units for this product are allocated on a CPU-capacity plus User/Activity basis. For more information on the License Management Facility, re- fer to the VMS Operating System Software Product Descrip- tion (SPD 25.01.xx) or the License Management Facility man- ual 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 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, CI, MicroVAX, VAX, VAXcluster, VAXserver, VAXstation, VMS, VT320, VT330, VT340 and VT220 are trademarks of Digital Equipment Corpora- tion. 9