Proliferation of operators (was: C Builtin Functions)
Lee Dickey
ljdickey at water.UUCP
Fri May 16 22:33:18 AEST 1986
There are several APL's that admit data with tree structure.
An older example of one of these is Honeywell's GCOS APL, which since
the early 70's ran on its 66 series machines, and now runs on its
DPS 8 line.
GCOS APL allows things of the sort
a <- 'now is the time'
b <- 'next one'
c <- 'the third'
list <- (a;b;c)
and more. A list may contain, as an element, any other list.
You can construct a tree. Honeywell is not agressive in
marketing this product.
Today, there are two newer APL's that use strand notation,
APL2 and STSC's production APL.
Perhaps the best known of these is IBM's product: APL2.
There, one uses "strand notation" and one types something like
list2 <- 'now is the time' 'next one' 'the third'
or
list2 <- a b c
Of course, allowing this sort of statement introduces a lot
of power in the data, but introduces new complications in the
syntactic analyzer.
On the other hand, another new implementation is the one done
by I.P.Sharp Associates. There one builds arrays in which
each element of the array is a scalar (same as in APL). But
there are new primitives
called enclose and disclose. The result of enclose is
always a scalar. Disclose is a left inverse of enclose.
Then, for any data object, BLAT,
BLAT <---> disclose enclose BLAT
A fourth implementation is NIAL (Nested Interactive Array Language)
developed by Mike Jenkins at Queens' University in Kingston.
His language runs on UN*X machines and on IBM PC's.
It appear to be a super set of APL, and uses keywords.
It has rooted trees, and it has Pascal like structured statements.
Perhaps the Sharp version is the most esthetically beautiful and has
the simplest theory. The strand notation supported by APL2 may be
easier to use if the for trees are simple, but I am told that some
trees can not be modelled in this APL. NIAL has the advantage
that it does not have to have a special keyboard, it has all
the power of APL, and it has structured control statements.
----------------
Yo pays yer money an' yo takes yer choice.
More information about the Comp.lang.c
mailing list