Article View: net.lang.apl
Article #120APL character set (summary of responses)
From: Robert Perlberg
Date: Wed, 12 Sep 1984 13:48
Date: Wed, 12 Sep 1984 13:48
435 lines
15766 bytes
15766 bytes
<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
Technical Details
Message-ID:
<113@rdin2.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!watmath!clyde!burl!hou3c!hocda!houxm!mhuxj!ulysses!allegra!mit-eddie!genrad!decvax!mcnc!philabs!rdin2!perlShow Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site rdin2.UUCP Path: arc1-ca.pugleaf.net!utzoo!watmath!clyde!burl!hou3c!hocda!houxm!mhuxj!ulysses!allegra!mit-eddie!genrad!decvax!mcnc!philabs!rdin2!perl From: perl@rdin2.UUCP (Robert Perlberg) Newsgroups: net.lang.apl Subject: APL character set (summary of responses) Message-ID: <113@rdin2.UUCP> Date: Wed, 12-Sep-84 09:48:15 EDT Article-I.D.: rdin2.113 Posted: Wed Sep 12 09:48:15 1984 Date-Received: Tue, 25-Sep-84 19:39:06 EDT Organization: Resource Dynamics Inc., New York Lines: 435