Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site water.UUCP Path: utzoo!watmath!watnot!water!ljdickey From: ljdickey@water.UUCP (Lee Dickey) Newsgroups: net.lang.c Subject: Re: Proliferation of operators (was: C Builtin Functions) Message-ID: <372@water.UUCP> Date: Fri, 16-May-86 08:33:18 EDT Article-I.D.: water.372 Posted: Fri May 16 08:33:18 1986 Date-Received: Sat, 17-May-86 05:16:17 EDT References: <1418@mmintl.UUCP> <812@bentley.UUCP> Organization: U of Waterloo, Ontario Lines: 57 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.