From: stephen@estragon.uchicago.edu (Stephen P Spackman)
Newsgroups: comp.lang.misc
Subject: Re: Fortran90 and Arrays
Date: 11 Apr 92 09:55:17 GMT
	<ROCKWELL.92Apr8001532@socrates.umd.edu>
	<1992Apr8.180420.9294@newshost.lanl.gov>
	<ROCKWELL.92Apr8164502@socrates.umd.edu>
	<STEPHEN.92Apr9214055@estragon.uchicago.edu>
	<ROCKWELL.92Apr10214059@socrates.umd.edu
Organization: University of Chicago CILS

In article <ROCKWELL.92Apr10214059@socrates.umd.edu> rockwell@socrates.umd.edu (Raul Deluth Miller-Rockwell) writes:
|Stephen P Spackman:
|   Actually, one of my biggest criticisms of J is that it is one of
|   the worst "reserved word" offenders I've seen: there is a large
|   vocaublary of operator symbols allowed by J's lexical rules (like &
|   and *:) and EVERY ONE of them is reserved. If this isn't foolish I
|   don't know what is.
|
|How about having reserved words which can not be distinguished from
|identifiers by a casual user?  Also, a quick look at the back cover of
|the working copy of the J language specification, I see slightly under
|80 tokens [which includes all your reserved words].  80 words is not
|outrageous for a computer language.

How about having NO reserved words? Perhaps not literally practical,
but the notation I use in my thesis, although it supports algol-like
syntax, technically reserves only (as I recall) .. (as a comment
introducer), ; (as the delimiter beore the third argument of a ternary
operator), and .end (all "keyword" syntax has to end in an .end). Of
course, redefining () in a local scope might be inadvisable - but not
illegal.

In fact, if you want to embed, oh, EBNF in your parser package - and
who doesn't - there are reasons to do even that. Perhaps excessive,
but it proves the point.

|   Part of the reason, of course, is that there isn't enough of a type
|   system to resolve overloads.
|
|I'm not quite sure what this means.

Just that since there are no static types, and very, very few dynamic
ones, it's hard to reuse a symbol: * couldn't be used for set
intersection because you can't tell if a vector is intended to be
interpreted as a set or not - that isn't recorded anywhere. So
operators are in VERY short supply. Which is why there need to be so
many squiggles, and why Iverson needs them all for himself :-).

|   But it seems really silly to say "these are my letters and those
|   are yours" and make it impossible to build application-specific
|   notation within the language.
|
|I haven't a clue what this means.

I mean that it is none of the application programmer's business which
functions are "built in" to the language, and which comes from a
library that the system architect has provided. So there shouldn't be
a syntactic distinction - it gets in the way of doing the job. Until
people understand this we will continue to be cursed with special
purpose languages like dBase, TeX, Wool, gawk, bash, J, SNOBOL, ....
----------------------------------------------------------------------
stephen p spackman         Center for Information and Language Studies
stephen@estragon.uchicago.edu                    University of Chicago
----------------------------------------------------------------------
Newsgroups: comp.lang.misc