Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!mcvax!guido From: guido@mcvax.cwi.nl (Guido van Rossum) Newsgroups: comp.sys.ibm.pc,comp.lang.misc Subject: Re: Rebuttal to Mr. Russell Nelson's complaint about SPL Message-ID: <7374@boring.mcvax.cwi.nl> Date: Wed, 6-May-87 05:15:45 EDT Article-I.D.: boring.7374 Posted: Wed May 6 05:15:45 1987 Date-Received: Sat, 9-May-87 01:02:27 EDT References: <224@helm.UUCP> <3997@teddy.UUCP> Reply-To: guido@cwi.nl (Guido van Rossum) Organization: "Stamp Out BASIC" Committee, CWI, Amsterdam Lines: 44 Summary: No, John! Xref: mnetor comp.sys.ibm.pc:3818 comp.lang.misc:380 Regarding the difference between translators and preprocessors: I haven't tried SPL (not SPR, Jonh!) so I don't know which it is, but I do have a criterion to distinguish translators from preprocessors: A translator does *full* lexical and syntactical analysis, while a preprocessor leaves part of this kind of checking to the processor (compiler/interpreter/...) of its output language. For example, the C++ front/end by Bjarne Stroustrup is a translator, because it finds all bugs in the C++ source. The "C preprocessor" is what its name says, a preprocessor. (Let's not pick nits; there may always be bugs in translators that can make it produce output which causes errors in the next phase; but this can happen even to a C compiler: on some systems, code segments > 32K can generate assembler or linker warnings, and on most systems linker warnings are the only way to detect unsatisfied external references.) The SPL implementation at hand could be either, but I would like to believe its author who says that SPL is a translator (and whose vehement reply seemed to indicate that he knows the difference). One problem could be with the documentation: if it relies on the user's knowledge of BASIC instead explaining all the syntactical and semantical details of the language in their own right, it is probably guilty of starting the translator/preprocessor controversy. Another problem could be with semantical restrictions imposed by the underlying BASIC system; I presume SPL's string operations are translated into the corresponding BASIC string operations, and this means there are all kinds of nasty limitations such as a maximum string length of 255 bytes or the requirement of frequent garbage collections. But as I say, I don't know, as I haven't inspected SPL. Quite a different point is the question whether SPL as a *language* differs sufficiently from BASIC to deserve all the hype it receives. When I glanced through the documentation about a year ago, I said to myself: Gasp! a dialect of Algol-60 with BASIC string handling and a few other goodies added. It's good that the users of BASIC get access to a more structured language; but it's bad that this is the structure of the sixties. C'mon folks, programming language design has evolved quite a bit beyond that in the past 20 years! I wish Dennis Baer had spent his time in writing a true microcomputer implementation of something like Icon, or our own ABC, for that matter. -- Guido van Rossum, Centre for Mathematics and Computer Science (CWI), Amsterdam guido@cwi.nl or mcvax!guido or (from ARPAnet) guido%cwi.nl@seismo.css.gov