malton@csri.toronto.edu (Andrew Malton) (10/04/89)
Apparently := to express the assignment operation was used faute de mieux in Algol since the arrow <--- originally chosen for this purpose wasn't available on teletypes. Does anyone know a reference for this story? Or, is it folklore. Please send email. ----- Andrew Malton, U of Toronto Dept of Computer Science malton@csri.toronto.edu
dik@cwi.nl (Dik T. Winter) (10/04/89)
In article <1989Oct3.182931.518@jarvis.csri.toronto.edu> malton@csri.toronto.edu (Andrew Malton) writes: > Apparently := to express the assignment operation was used faute de mieux > in Algol since the arrow <--- originally chosen for this purpose wasn't > available on teletypes. Does anyone know a reference for this story? > Or, is it folklore. > It is partly folklore. (Oh dear, it appears that none of my Algol 60 reports and Algol 60 revised reports are here at home, so the terminology may be a bit wrong.) Back in the time of Algol 60 transportation of a program by means of paper tape (e.g. 5 level Alcor according to DIN standards) or punched cards (Yuck) was no consideration (it simply was not done). So there was a simple definition of the language where each installation would provide the symbols to represent the language in some way. There was a publication language that contained all kind of symbols not found on most punching devices of those times (like logical and and or, these are still not found). Also the publications used underscored words for special words (so no reserverd words). Btw. the device I used when punching Algol 60 programs on 7-level papertape (a Friden Flexowriter) knew about underlining and logical and, or and not etc, and of course the compiler understood them also. Difficult symbols were: string open/close, assignment, exponentiation, lower 10 for exponents in numbers, multiplication (a serifless x), logical and, or, not and equivalence, and of course underlined words. (I may have forgotten some.) And of course in Algol 60 case was (ought to be?) significant. The outlook of the report and revised report comes mainly from the fact that it was produced by Peter Naur in Copenhagen using said Flexowriter. They lacked back arrows for assignment (they were replaced by :=), proper string quotes (they were pasted by hand), and exponentiation (I do not know what it looked like in the reports, we used a vertical bar overprinting a logical and). (I may be a bit wrong here, it is all from memory, and the Flexowriters in Copenhagen were a bit different from those at our institute.) I have seen Algol 60 programs with proper up arrows and left arrows from other installations. So it was not choosen as such in Algol 60 but by the users (the installations). And of course I have seen programs like the following (using Knuths much later Algol 60 notation from, I believe 1964): 'debut' ecrit('('Allo monde.')') 'fin' We even had programs to translate French Algol 60 to English (to allow us to compile and run programs from France) and vv. (to confuse our friends). -- dik t. winter, cwi, amsterdam, nederland INTERNET : dik@cwi.nl BITNET/EARN: dik@mcvax
UH2@PSUVM.BITNET (Lee Sailer) (10/04/89)
I vaguely remember that <-- (a one character left arrow) was included in some early versions of ASCII, about 1970 or so. When the final definition finally settled down, it was gone. Hence :=.
toma@tekgvs.LABS.TEK.COM (Tom Almy) (10/04/89)
In article <1989Oct3.182931.518@jarvis.csri.toronto.edu> malton@csri.toronto.edu (Andrew Malton) writes: >Apparently := to express the assignment operation was used faute de mieux >in Algol since the arrow <--- originally chosen for this purpose wasn't >available on teletypes. Does anyone know a reference for this story? I used Teletypes (TM) that had the left arrow, and I remember it being on some early ASCII charts. At one point the ASCII standard was revised and the left arrow became an underscore. I used an HP Algol on an early HP minicomputer (2114?) and used the left arrow for assignment. Also Smalltalk-80 uses the left arrow for assignment; when you look at the character code, it is the underscore. The APL character set has a left arrow for assignment as well. I personally would like to see the left arrow back. It makes more sense than colon equal (gag, why couldn't they at least have used <- ?) and both of these are easier to explain than the use of just the equals sign for assignment. Tom Almy toma@tekgvs.labs.tek.com Standard Disclaimers Apply
markg@ashtate (Mark Grand) (10/05/89)
In article <89277.090337UH2@PSUVM.BITNET>, UH2@PSUVM.BITNET (Lee Sailer) writes: > I vaguely remember that <-- (a one character left arrow) was included in > some early versions of ASCII, about 1970 or so. When the final definition > finally settled down, it was gone. Hence :=. Prior to 1967 the character code that is now rendered as '_' was a left arrow. There are still compilers that will recognize this as an alternative to :=.
torkil@psivax.UUCP (Torkil Hammer) (10/07/89)
In article <1989Oct3.182931.518@jarvis.csri.toronto.edu> malton@csri.toronto.edu (Andrew Malton) writes: #Apparently := to express the assignment operation was used faute de mieux #in Algol since the arrow <--- originally chosen for this purpose wasn't #available on teletypes. Does anyone know a reference for this story? #Or, is it folklore. # Originally Algol was for publication and used several non-typewriter fonts. For example, reserved words (begin, end and such) were in boldface. But TeletypE (tm), No Sir! no you don't in Algol. By the time it became a programming language the major driving forces were all European (Denmark, England, Holland) and teletypes are an American specialty. We used Flexowriters, some bitchy pieces of machinery as noisy and clunky and breakdown prone as teletypes but with 2 major advantages. The first was that Flexo used 8 row paper tape compared to teletype 5. The second was that there was a key for sHIFT INTO UPPER CASE AND WITHOUT THAT FACILITY ALGOL WOULD HAVE LOOKED LIKE FORTRAN, AND PASCAL LIKE ALGOL, AND C LIKE PASCAL, AND ADA LIKE C, AND COMPUTER PROGRAMS WOULD ALL HAVE LOOKED LIKE AMERICAN IMMIGRATION FORMS, AND WE WOULD ALL BE SCREAMING ACROSS THE NET. BUT THE LOWer case code fixed that, and let's all rejoice. (The case shift code was sometimes punched a character or two after it should have appeared but that went with the territory...) Flexo codes included some characters not available on the typewriter, but not the back arrow. I think they just forgot to put it in. There was a subscript 10 as one character to indicate power of 10 in numeric constants. There was a big sloppy X to use for multiplication. There was even one for shift between red and black typewriter ribbon. Artistic we were. Error messages brought us in the red and compilation OK brought us back. There was a non-paper advancing key that gave the _ in lower case and the | in upper. It was useful for constructing reserved words, commonly defined as underscored words, and exponentiation which was also forgotten (should have been upper case of backarrow) - simulated as the |^ combination printed in one space. The quotes weren't there either, but they were done as |< and |> and |<< which sort of looked funny. It also forced printer driver software to do double takes unless we really wanted to look at _B_E_G_I_N _I_N_T_E_G_E_R N; - and that in turn often annoyed the printer hardware which was specified to be able to do doubles but really wasn't expecting to actually have to do it after the selloff demo. (Line printers were American, upper case only, and Fortran rarely does double takes). After the Flexowriter came the Bima, which was a quieter version with a much prettier font, but even more breakdown prone and couldn't be fixed with whatever was lying around at 4 am, but that's a whole 'nother story. You'll get that some other Friday evening. Bye now torkil