1 03/23/79 apl_vs_vsapl.extensions.info
2
3
4 This document lists the features available in Multics APL
5 that are not available in VS APL. Some of the features listed
6 below are extensions to existing facilities and some are totally
7 new features. This list is subject to revision.
8
9 All of the language features described in the IBM
10 publications "APL Language", GC26-3847-4, and "VS APL for CMS:
11 Terminal User's Guide", SH20-9067-1, except as noted in
12 apl_vs_vsapl.incompat.info, are available in Multics APL.
13
14 The following new features are available:
15
16 1. Comments are no longer restricted to a line by themselves;
17 they may appear to the right of any APL statement even the
18 function header.
19
20 2. Error messages may be printed in either short or long mode;
21 the former is identical to VS APL, the latter explains the
22 particular error more fully.
23
24 3. APL functions may call PL/I programs, and these PL/I programs
25 may, in turn, call programs written in BASIC, COBOL, FORTRAN,
26 or PL/I. To the APL function, the PL/I "external function"
27 appears exactly like any other APL function. The external
28 function may be niladic, monadic, or dyadic, may report
29 errors, and may allocate return values in the same manner as
30 any builtin APL operator. This facility allows easy
31 communication between APL and programs written in other
32 languages, and also allows heavily used APL functions to be
33 coded in PL/I for utmost efficiency.
34
35 4. Multics APL supports EBCD, Correspondence, typewriter-paired
36 APL/ASCII, bit-paired APL/ASCII, and full ASCII terminals.
37 Multics APL is also fully usable over the ARPA Network, and
38 from Multics absentee batch.
39
40 5. A special subsystem interface is provided for projects which
41 may wish to encapsulate their users entirely within the APL
42 environment.
43
44 6. For compatibility with Multics typing conventions, the
45 following APL graphics are used as the erase and kill
46 characters:
47 omega erases previous character or white space
48 alpha kills everything on same line to its left
49 On ASCII terminals, the normal Multics graphics for these
50 functions, number sign and commercial-at sign, may also be
51 used.
52
53 7. The Multics APL file system requires no knowledge of JCL or
54 storage formats. All of the operations are easily performed
55 through a complete set of system functions.
56
57 8. The grade operators have been extended to sort arrays, column
58 by column.
59
60 9. The value of the integer tolerance, which specifies how close
61 a floating point number must be to an integer to be
62 considered exactly equal to that integer, is available
63 through a system variable. This value is similar to the
64 comparison tolerance "fuzz" which specifies how close two
65 numbers must be to be considered equal.
66
67 10. Multics APL utilizes the Multics virtual memory to allow
68 almost arbitrarily large workspaces. Single values may
69 contain over 130,000 elements. The entire workspace may grow
70 to over 31 million bytes in the present implementation; and
71 this limit is expandable.
72
73 11. In general, 1-element vectors, arrays, and higher-dimensional
74 matrices may appear in any expression where a scalar is
75 permitted.
76
77 12. Multics APL preserves the original typing style of the user
78 in calculator mode and functions. Only comment lines and
79 lines with labels are changed; as in VS APL, they are
80 exdented one space.
81
82 13. Several new requests have been added to the APL function
83 editor. The capability of searching and substituting by
84 context has been added. The editor also performs a simple
85 syntax check of the function before it is closed, catching
86 many common typing mistakes, and allowing them to be
87 corrected before leaving the editor.
88
89
90 14. The Multics APL character set is a compatible superset of
91 ASCII; hence, character data can be easily and efficiently
92 shared between APL and other Multics programming languages.