perl@rdin2.UUCP (Robert Perlberg) (09/12/84)
<APL n. [A Personal Language, A Packed Language, or (rarely) A Programming Language.] A language, devised by K. Iverson (1961), so compacted that the source code can be freely disseminated without revealing the programmer's intentions or jeopardizing proprietary rights.> Several months ago I posted the following: |We have a legally obtained but unsupported version of apl\11 |on a MASSCOMP MC500. We have no documentation. Could |someone send me some documentation for it? I at least need |to know how to use it with a regular ascii terminal. I have |tried some of the commands I have seen in this newsgroup. |The ones which don't require APL characters work, but using |words like 'rho' and 'iota' don't. I got many responses. Unfortunately, none of them were really helpful. I suspect that something must be wrong with our APL. Nothing conventional or intuitive works. The responses fell into two categories: the APL-ASCII mapping and the "dot" conventions. Here are representative samples of each: From: philabs!allegra!watmath!ljdickey (Lee Dickey) Note that the ASCII character set for uses both upper-case and lower-case. a-z letter 0-9 digit ` negative sign '--' string C <bs> J comment ( ) [ ; ] indexing L quad L <bs> ' quote quad dyadic monadic ------ ------- + add plus - sub negate X mult sign % div reciprocal | mod absolute value D min floor S max ceiling * pwr exp O <bs> * log ln (log base e) O circle funct pi times ' <bs> . combinatorial factorial ! combinatorial factorial ^ and V or ^ <bs> ~ nand V <bs> ~ nor < lt > gt $ le & ge = eq # ne ~ not ? deal random number R rho rho I iota iota E epsilon N encode B decode \ <bs> O transpose transpose , catenate ravel * Y take U drop { assign } goto B <bs> N i-beam i-beam L <bs> % matrix div matrix inverse | <bs> H grade up * G <bs> | grade down * B <bs> J execute N <bs> J format / compress * / <bs> - compress \ expand * \ <bs> - expand O <bs> | rotate reverse * O <bs> - rotate reverse op/ reduce * op / <bs> - reduce J.op outer product op.op inner product * may be subscripted with a scalar <bs> means backspace (ctrl h) From: philabs!seismo!ut-sally!mordor!jdb There are a couple of different versions of APL\11 floating around. If your version originally came from Yale or Toronto (circa 1975) or from 3BSD, then I can't help much. It is likely, though, that what you have is based upon the Purdue/EE version. I worked on it during the later years it was at Purdue. We distributed it to any site with a source license >= V6 (some of the original code was written in the days of the Fifth Edition!) and it was distributed with 4.2BSD. If you have a source license for UNIX you might want to contact my ex-major professor, now at Cornell, for a current distribution copy. (For various reasons I cannot distribute copies from LLNL, where I now work.) If the machine you are using doesn't look a LOT like a PDP/VAX-11, then someone probably put some changes in to support your machine and the distribution probably won't run unless you can reinstall those mods. However, the documentation that comes on the distribution tape may be helpful. While maintaining APL, I wrote a manual describing the idiosyncracies of its use: the character set, Unix-I/O quad functions, function editing, etc. If you don't want the tape, send me your U.S. mail address and I'll try to dig up a hardcopy of the manual to send to you. My former major professor can be reached at Dr. Anthony P. Reeves School of Electrical Engineering Cornell University, Phillips Hall Ithaca, NY 14853 (607) 256-4296 To answer your immediate problem, here is the ASCII character set. By the way, if you have one of my more recent versions it may be able to deal with APL terminals. Check to see if there is an include file "aplmap.h". Note that the ASCII character set uses both upper-case and lower-case. a-z letter 0-9 digit ` negative sign '--' string C <bs> J C comment . ( ) [ ; ] indexing L quad L <bs> ' quote quad dyadic monadic ------ ------- + add plus - sub negate X mult sign % div reciprical | mod absolute value D min floor S max ceiling * pwr exp O <bs> * log ln (log base e) O circle funct pi times ' <bs> . combinatorial factorial ! combinatorial factorial ^ and V or ^ <bs> ~ nand V <bs> ~ nor < lt > gt $ le & ge = eq # ne ~ not ? deal random number R rho rho I iota iota E epsilon N encode B decode \ <bs> O transpose transpose , catenate ravel * Y take U drop { assign } goto B <bs> N i-beam i-beam L <bs> % matrix div matrix inverse | <bs> H grade up * G <bs> | grade down * B <bs> J execute N <bs> J format / compress * / <bs> - compress \ expand * \ <bs> - expand O <bs> | rotate reverse * O <bs> - rotate reverse op / reduce * op / <bs> - reduce J.op outer product op.op inner product * may be subscripted with a scalar <bs> backspace (ctrl h) While I don't do much in the way of maintenance of APL any more (I just don't have the time these days), I am interested in any comments you may have. -- John Bruner (S-1 Project, Lawrence Livermore National Laboratory) MILNET: jdb@mordor.ARPA [jdb@s1-c] (415) 422-0758 UUCP: ...!ucbvax!dual!mordor!jdb ...!decvax!decwrl!mordor!jdb From: Matthew J Weinstein <philabs!seismo!matt@UCLA-LOCUS.ARPA> An old APL\10 implementation book I have (c. 1973) has two alternate sets, a set beginning with `.', and a set beginning with `@'. In addition, I have seen sets that begin with `$' or <ESC>. The @, $, and <ESC> characters are used to indicate that the following character be interpreted as a standard apl character (e.g. @G == DEL). The `.' set in the DEC-10 book are in all uppercase, I have transcribed to lower: dotconvention APL char .al alpha .de decode .du intersection (upside down u) .fl floor .ep epsilon .us underscore .dl del .ld upside down del .io iota .so degrees ' quote .bx box .ab absolute (vert bar) .en encode .lo circle * * ? ? .ro rho .ce ceiling .nt ~ .da down arro .uu real union (u) .om omega .lu left union ^ uparrow .ru right union .dd double dots (umlaut) .ge greater equal >= .go right arrow (goto) .le <= .ne != (not equal) .ng negate .or or funny overstrikes: .cb -\ .cr -circle .cs -/ .dq domino quad .gd grade down .gu grade up .ib ibeam .iq left arrow quad (is this insert quad?) .lg log (circle star) .nn nand .nr nor .oq right arrow quad (ahha output quad) .ou can't decipher this one .pd del squiggle (locked del) .qd quad del .qq quote quad .rv reverse? (circle with abs) .tr translate? (circle with \) .xq or over and (this may be a funny form of execute?) .za a underscore .zb b underscore .zc c underscore etc. Hope this is the weird code you're using. IF not, do try @, '$', <ESC>, and any other character (`.') you can think of followed by `G' and 'g', and see if any get you into a function. Let me know if this helps (in fact, plz reply anyway, cause I'm not sure the path I picked is right). - Matt ------- UUCP: {ucbvax,ihnp4}!ucla-cs!locus.matt ARPA: matt@ucla-locus From: blickstein@orphan.DEC (Dave Blickstein) The APL-11 documentation is still (and only) available from digital. You'll have to get in touch with a dec salesman to order it. There is no on-line documentation. What follows is a table of mnemonics used in ASCII mode for the APL characters. The TTY mode in APL-11 doesn't use keywords (like "rho"). Instead it uses either single character substitutions ("#" for multiply/signum) or "dot mnemonics" like .RO for rho. Here is the table. This table is actually for VAX-11 APL and so not all of these are available in APL-11, but the standard APL symbols are the same as in APL-11. (Things like control characters probably aren't in APL-11). Hope this helps. APL Character Set APL Single Strike Characters TTY TTY Name TTY TTY Name Set Mnemonic Set Mnemonic A-Z letters .NE Not Equal 0-9 numbers .LE < or = + plus .GE > or = - minus ( left parenthesis # times ) right parenthesis % divide [ left bracket * star ] right bracket .NG high minus { .LB Left Brace .US UnderScore } .RB Right Brace , comma \ backslash . period / slash : colon .CE CEiling ; semicolon .FL FLoor $ dollar sign .SO jot (Small O) ' quote .LO circle (Large O) ? question mark .LD delta (Lower Del) ~ .NT tilde (NoT) .DM DiaMond | .AB stile .DL DeL .AL ALpha _ left arrow .BX quad (BoX) .GO right arrow .DD Dieresis ^ up arrow .EP EPsilon .DA Down Arrow .IO IOta .LU Left U .OM OMega .RU Right U .RO RhO .UU Up U & and .DU Down U .OR OR .LK Left tacK < less than .RK Right tacK > greater than .EN represent = equals .DE base APL Overstruck Characters TTY Name TTY Name Set Set .ZA-.ZZ Underscored letters .PD Protected Del .UD Underscored Delta .NR NoR ! shriek .NN NaNd " lamp .LG LoGarithm .IB I-Beam .RV ReVerse .XQ hydrant (eXecute) .TR TRanspose .FM thorn (ForMat) .CR Column Reverse .DQ Divide Quad .CC Column Comma .IQ Input Quad .CS Column Slash .OQ Output Quad .CB Column Backslash .QQ Quote Quad .SS SubSet .QD Quad Del .CO COntains .GU Grade Up .SQ Squish Quad .GD Grade Down APL Support for ASCII Graphics ASCII TTY Name Graphic Set ` .AG Accent Grave @ @ AT sign " .QU double QUote # .PS Pound Sign % .PC PerCent sign & .AP AmPersand a-z .JA-.JZ Lower case letters APL Support for ASCII Control Characters ASCII TTY Name ASCII TTY Name Set Set Set Set NUL .WN CTRL/@ (NULl) DC1 .KQ CTRL/Q SOH .KA CTRL/A DC2 .KR CTRL/R STX .KB CTRL/B DC3 .KS CTRL/S ETX .KC CTRL/C DC4 .KT CTRL/T EOT .KD CTRL/D NAK .KU CTRL/U ENQ .KE CTRL/E SYN .KV CTRL/V ACK .KF CTRL/F ETB .KW CTRL/W BEL .KG CTRL/G (BELl) CAN .KX CTRL/X BS .KH CTRL/H (BackSpace) EM .KY CTRL/Y HT .KI CTRL/I (Horizontal Tab) SUB .KZ CTRL/Z LF .KJ CTRL/J (Line Feed) ESC .WE CTRL/[ (ESC) VT .KK CTRL/K (Vertical Tab) FS .WF CTRL/\ FF .KL CTRL/L (Form Feed) GS .WG CTRL/] CR .KM CTRL/M (Carriage Return) RS .WR CTRL/^ SO .KN CTRL/N (Shift Out) US .WU CTRL/_ SI .KO CTRL/O (Shift In) DEL .WD DEL DLE .KP CTRL/P { ==================================================================== My APL does not accept any of the APL-ASCII mappings. It also does not accept any of the "dot" conventions, or the "@", "$", or "ESC" contructs. It does, however, accept the single character operators which are listed with the dot conventions. Robert Perlberg Resource Dynamics Inc. New York philabs!rdin!rdin2!perl
reid@Cascade.ARPA (09/20/84)
Here at Stanford we have a version of apl\11, which we got from the UCSF Computer Graphics Lab; I have no idea where they got it from, and we have made a lot of changes to it (but none to the character set) It obviously is rooted in the same Ken Thompson original Yale version that the Purdue apl\11 comes from, but I don't really know what disparate path it took. I am busily converting our apl\11 to work under 4.2 because the Purdue APL, though much nicer, is just too deeply in bed with overstruck characters and wants its own editor; we like to use Emacs with an "apl mode" for editing. Ours uses dot codes, but they are not the same as any of the other dot codes you were given. Try .it 10 20 20 .rh 'abc' .qd _ 'Hi mom' and see what happens. If that does anything useful I can send you the whole character table. Brian Reid