From dave at horsfall.org Wed Apr 3 01:23:43 2024 From: dave at horsfall.org (Dave Horsfall) Date: Tue, 02 Apr 2024 15:23:43 -0000 Subject: [COFF] Of PL/I Message-ID: Has there ever been a full implementation of PL/I? It seems akin to solving the halting problem... Yes, I've used PL/I in my CompSci days, and was told that IBM had trademarked everything from /I to /C :-) -- Dave, who loved PL/360 From coff at tuhs.org Wed Apr 3 01:41:29 2024 From: coff at tuhs.org (segaloco via COFF) Date: Tue, 02 Apr 2024 15:41:29 -0000 Subject: [COFF] Earliest COBOL Compilers Message-ID: Good morning, I was reading recently on the earliest days of COBOL and from what I could gather, the picture (heh) regarding compilers looks something like this: - RCA introduced the "Narrator" compiler for the 501[1] in November, 1960 (although it had been demonstrated in August of that year) - Sperry Rand introduced a COBOL compiler running under the BOSS operating system[2] sometime in late 1960 or early 1961 (according to Wikipedia which then cites [3]). First, I had some trouble figuring out the loading environment on the RCA 501, would this have been a "set the start address on the console, load cards/PPT, and go" sort of setup, or was there an OS/monitor involved? And for the latter, there is a UNIVAC III COBOL Programmer's Guide (U-3389) cited in [2] but thus far I haven't found this online. Does anyone know if COBOL was also on the UNIVAC II (or I) and/or if any distinct COBOL documents from this era of UNIVAC survive anywhere? - Matt G. [1] - http://bitsavers.org/pdf/rca/501/RCA501_COBOL_Narrator_Dec60.pdf [2] - http://bitsavers.org/pdf/univac/univac3/U-3521_BOSS_III_Jan63.pdf [3] - Williams, Kathleen Broome (10 November 2012). Grace Hopper: Admiral of the Cyber Sea. From clemc at ccc.com Wed Apr 3 02:40:59 2024 From: clemc at ccc.com (Clem Cole) Date: Tue, 02 Apr 2024 16:40:59 -0000 Subject: [COFF] Of PL/I In-Reply-To: References: Message-ID: On Tue, Apr 2, 2024 at 11:23 AM Dave Horsfall wrote: > Has there ever been a full implementation of PL/I? Well all of the IBM, GE/Honeywell and DEC compilers were certified. Bob Freiburghouse (who was part of the Multics compiler if I understand this right), created a firm in Mass that built a number of commercial compilers for a number of folks, with PL/1 being their prime. In fact when DEC bought the PL/1 front-end from them (which was in PL/1 of course), Culter and team wrote the VAX back-end, they had to cross-compile in Cambridge (I think at MIT) and bring the assembler source back to ZKO in Nashua to assemble and test. > It seems akin to solving the halting problem... > No more than Algol-68 and many modern languages. > > Yes, I've used PL/I in my CompSci days, and was told that IBM had > trademarked everything from /I to /C :-) > I think that is more like an urban legend and IBM's notorious marketing behavior since Gary Kidall (who was originally a compiler guy) created PL/M for the 8080 and sold it to Intel. > > -- Dave, who loved PL/360 > Yeah - it might have been Nicklaus Wirth's best language. I still have the Standford manuals, but I can not say I have seen a working compiler since the late 1970s :-) ᐧ -------------- next part -------------- An HTML attachment was scrubbed... URL: From sauer at technologists.com Wed Apr 3 03:01:56 2024 From: sauer at technologists.com (Charles H Sauer (he/him)) Date: Tue, 02 Apr 2024 17:01:56 -0000 Subject: [COFF] Of PL/I In-Reply-To: References: Message-ID: <1d3f129c-eafe-4fb2-9ea2-d949f3813c88@technologists.com> On 4/2/2024 11:40 AM, Clem Cole wrote: > > > On Tue, Apr 2, 2024 at 11:23 AM Dave Horsfall > wrote: > > Has there ever been a full implementation of PL/I? > > Well all of the IBM, GE/Honeywell and DEC compilers were certified.  Bob > Freiburghouse (who was part of the Multics compiler if I understand this > right), created a firm in Mass that built a number of commercial > compilers for  a number of folks, with PL/1 being their prime.  In fact > when DEC bought the PL/1 front-end from them (which was in PL/1 of > course), Culter and team wrote the VAX back-end, they had to > cross-compile in Cambridge (I think at MIT) and bring the assembler > source back to ZKO in Nashua to assemble and test. > >   It seems akin tosolving the halting problem... > > No more than Algol-68 and many modern languages. > > > Yes, I've used PL/I in my CompSci days, and was told that IBM had > trademarkedeverything from /I to /C :-) > > I think that is more like an urban legend and IBM's notorious marketing > behavior since Gary Kidall (who was originally a compiler guy) created > PL/M for the 8080 and sold it to Intel. > > > -- Dave, who loved PL/360 > > Yeah - it might have been Nicklaus Wirth's best language.  I still have > the Standford manuals, but I can not say I have seen a working compiler > since the late 1970s :-) I was ready to jump in, but since I didn't have a definitive answer, I waited for someone (Clem) who would really know. The vast majority of my undergraduate and graduate school work was in CDC Fortran. When I joined IBM Yorktown in 1975, I brought that work with me in thousands of punched cards. Initially, I continued my simulation work in Fortran. As that work became more important, Fortran was unacceptable. I wrote a Fortran to PL/I crude translator in SNOBOL, had the PL/I version running in a couple of weeks, and didn't look back. Being judicious in using just the good parts, PL/I seemed just fine. Essentially all of my work at Yorktown was in PL/I. The 801 people created PL.8, which was primarily a subset of the good parts of PL/I, but with some changes that I'd have to research to remember. Charlie ᐧ -- voice: +1.512.784.7526 e-mail: sauer at technologists.com fax: +1.512.346.5240 Web: https://technologists.com/sauer/ Facebook/Google/LinkedIn/Twitter: CharlesHSauer From stuff at riddermarkfarm.ca Wed Apr 3 05:25:09 2024 From: stuff at riddermarkfarm.ca (Stuff Received) Date: Tue, 02 Apr 2024 19:25:09 -0000 Subject: [COFF] Of PL/I In-Reply-To: References: Message-ID: On 2024-04-02 12:40, Clem Cole wrote (in part): > > > On Tue, Apr 2, 2024 at 11:23 AM Dave Horsfall > wrote (in part): > > -- Dave, who loved PL/360 > > Yeah - it might have been Nicklaus Wirth's best language.  I still have > the Standford manuals, but I can not say I have seen a working compiler > since the late 1970s :-) A scanned printout (in assembler) is available, if someone is brave enough. S. From whm at msweng.com Wed Apr 3 06:31:26 2024 From: whm at msweng.com (William H. Mitchell) Date: Tue, 02 Apr 2024 20:31:26 -0000 Subject: [COFF] Of PL/I In-Reply-To: References: Message-ID: <44286CEB-4014-442D-8DA9-6496C39AEAC1@msweng.com> PL/I, in the form of Cornell’s PL/C was the language we learned in CSC 101H at NC State* in Fall 1976. At some point I was possessed to buy from the local IBM office a copy of "OS PL/I Optimizing Compiler: Execution Logic". I see that a 1985 version of that is here: http://bitsavers.trailing-edge.com/pdf/ibm/370/pli/SC33-0025-3_PLI_Optimizing_Compiler_Execution_Logic_Sep85.pdf 454 pages. Lots of ASCII (well, EBCDIC?) diagrams and flowcharts. See pages 31 and 151 for two examples. In a comparative languages class that I’ve taught at the U of Arizona, I've described PL/I as an example of what can happen when a language designer incorporates a number of good features from other languages: you get a Frankenstein. Support for `PIC` formatting comes to mind as one of the things borrowed from COBOL. IIRC, and it’s a dim memory of a then-freshman, an interesting thing about PL/I is that it has no reserved words. You can say something like `if else = if then while = returns + return;` PL/I also has a macro facility that I only "got" years later, when learning C. Hmm...no PL/I examples in https://rosettacode.org/wiki/Metaprogramming. I wish I had a clone to give that task. Very conveniently, PL/I has a `put data;` statement that prints the value of all variables in scope. A friend at NCSU in the 70s, Billy Willis, used PL/M on maybe a PDP-11 for a system he wrote to support his dissertation in chemical engineering. William Mitchell Mitchell Software Engineering Occasional Adjunct Instructor at U of AZ CS 520-870-6488 (m) Discord: whm#5716, Twitter: @x77686d, Skype: x77686d linkedin.com/in/x77686d *Go Wolfpack; beat Purdue! From paul.winalski at gmail.com Thu Apr 4 02:19:21 2024 From: paul.winalski at gmail.com (Paul Winalski) Date: Wed, 03 Apr 2024 16:19:21 -0000 Subject: [COFF] Of PL/I In-Reply-To: <1d3f129c-eafe-4fb2-9ea2-d949f3813c88@technologists.com> References: <1d3f129c-eafe-4fb2-9ea2-d949f3813c88@technologists.com> Message-ID: On Tue, Apr 2, 2024 at 1:01 PM Charles H Sauer (he/him) < sauer at technologists.com> wrote: > > Being judicious in using just the good parts, PL/I seemed just fine. > Essentially all of my work at Yorktown was in PL/I. > > Every programming language I've encountered has had its share of what I call toxic language features--things that impair reliability and maintainability. Good production programming shops ban the use of these features in their code. In the case of PL/I, IMO the most toxic feature is the DEFAULT statement. This is Fortran's IMPLICIT on steroids. The end result of using the DEFAULT statement is that, when you see a variable declaration, you need to review all of the applicable DEFAULT statements to figure out what the variable's attributes are. PL/I was designed to be a successor language to both COBOL and Fortran. One of the ugly features of Fortran is a fussy set of rules on statement ordering, particularly on declaration-type statements. PL/I relaxed those rules. Declarations can appear anywhere in the program and apply throughout the block they appear in. I know of folks who composed programs at the keypunch who used to write down variable declarations on a piece of paper as they came up with them, then when they reached the END statement of the scope block, punched out all the cards for the DECLARE statements. This practice was annoying in that, while reading the code you'd encounter variables that hadn't been declared yet and you'd have to rummage through the code to find the declarations. In the PL/I shops I worked at it was required that all declarations be at the beginning of the scope block. PL/I also has very weak data typing--you can convert almost any data type into almost any other data type. The language has a large and baroque set of conversion rules, and these don't always produce intuitive results, particularly when doing fixed decimal division. It can also mask typos, leading to hard-to-find bugs. I once mistyped: IF A ^= B [I'm using ^ here for the angle-bracket EBCDIC NOT sign character] as: IF A =^ B where A and B were both declared as character strings. So I wrote "if A equals NOT B". The compiler happily generated code to treat B as a character string of 0s and 1s, convert that to a bit string, apply the NOT operation, then similarly convert A to a bit string and do the comparison. This of course caused unexpected program behavior. It might have taken me a long time to find it except that there was a warning diagnostic message from the compiler: "data conversion will be done by subroutine call". This almost always means you've unintentionally mixed data types. -Paul W. -------------- next part -------------- An HTML attachment was scrubbed... URL: From coff at tuhs.org Thu Apr 4 03:30:25 2024 From: coff at tuhs.org (segaloco via COFF) Date: Wed, 03 Apr 2024 17:30:25 -0000 Subject: [COFF] Of PL/I In-Reply-To: References: <1d3f129c-eafe-4fb2-9ea2-d949f3813c88@technologists.com> Message-ID: On Wednesday, April 3rd, 2024 at 9:18 AM, Paul Winalski wrote: > > In the PL/I shops I worked at it was required that all declarations be at the beginning of the scope block. > > -Paul W. I get (friendly) flack for this from some of my coworkers, context is we're a C# and Java(Type)Script shop. They poke fun at how I write these languages like a C programmer but I don't ever hear anyone complaining about the readability of my code :) Declarations anywhere else but the top of blocks irks me, even if the language is totally fine with it. The only exception is asm, putting all the data and bss at the bottom of assembly units instead. - Matt G. From paul.winalski at gmail.com Thu Apr 4 06:44:53 2024 From: paul.winalski at gmail.com (Paul Winalski) Date: Wed, 03 Apr 2024 20:44:53 -0000 Subject: [COFF] Of PL/I In-Reply-To: References: <1d3f129c-eafe-4fb2-9ea2-d949f3813c88@technologists.com> Message-ID: On Wed, Apr 3, 2024 at 1:30 PM segaloco via COFF wrote: > I get (friendly) flack for this from some of my coworkers, context is > we're a C# and Java(Type)Script shop. They poke fun at how I write these > languages like a C programmer but I don't ever hear anyone complaining > about the readability of my code :) > > Someone once observed that a good Fortran programmer can write Fortran in any programming language. Here's another PL/I toxic language feature. Both COBOL and Fortran were designed around the same time that Noam Conmsky was working out formal language theory and both have ill-behaved grammars. Fortran has context-dependent lexical analysis, for example. PL/I is better behaved--the grammar for its lexical analysis is a regular grammar and can be processed with a state machine. But unlike C and other more modern languages, PL/I has no reserved keywords. So you can write things such as: IF IF=THEN THEN THEN = ELSE; Here the first IF and the second THEN are keywords. Everything else is a variable name. Our PL/I shops forbade variable names that were the same as language keywords. I suppose the designers of the PL/I language wanted to allow for the introduction of new language keywords while retaining backwards compatibility with programs that may have used the new keyword sa a variable name. -Paul W. -------------- next part -------------- An HTML attachment was scrubbed... URL: From wobblygong at gmail.com Thu Apr 4 13:37:38 2024 From: wobblygong at gmail.com (Wesley Parish) Date: Thu, 04 Apr 2024 03:37:38 -0000 Subject: [COFF] Of PL/I In-Reply-To: References: <1d3f129c-eafe-4fb2-9ea2-d949f3813c88@technologists.com> Message-ID: <516a4019-d987-4ca4-ac62-bd6b40841f93@gmail.com> I learn C by reading Tanenbaum and Comer's OS books, and I cannot imagine how putting variable declarations anywhere other than the top of the function they belong to, would make sense. Unless they are global, in which case they go in a suitably global header file. Wesley Parish On 4/04/24 06:30, segaloco via COFF wrote: > On Wednesday, April 3rd, 2024 at 9:18 AM, Paul Winalski wrote: > >> In the PL/I shops I worked at it was required that all declarations be at the beginning of the scope block. >> >> -Paul W. > I get (friendly) flack for this from some of my coworkers, context is we're a C# and Java(Type)Script shop. They poke fun at how I write these languages like a C programmer but I don't ever hear anyone complaining about the readability of my code :) > > Declarations anywhere else but the top of blocks irks me, even if the language is totally fine with it. The only exception is asm, putting all the data and bss at the bottom of assembly units instead. > > - Matt G. From paul.winalski at gmail.com Fri Apr 5 01:41:10 2024 From: paul.winalski at gmail.com (Paul Winalski) Date: Thu, 04 Apr 2024 15:41:10 -0000 Subject: [COFF] Of PL/I In-Reply-To: <516a4019-d987-4ca4-ac62-bd6b40841f93@gmail.com> References: <1d3f129c-eafe-4fb2-9ea2-d949f3813c88@technologists.com> <516a4019-d987-4ca4-ac62-bd6b40841f93@gmail.com> Message-ID: On Wed, Apr 3, 2024 at 11:37 PM Wesley Parish wrote: > I learn C by reading Tanenbaum and Comer's OS books, and I cannot > imagine how putting variable declarations anywhere other than the top of > the function they belong to, would make sense. Unless they are global, > in which case they go in a suitably global header file. > > That's the way we always handled declarations in every PL/I shop I worked in. Local declarations always appeared immediately following the PROCEDURE or BEGIN statement that starts the scope to which the declaration applies. PL/I adopted the idea of nested scopes from Algol. One other programming convention we used was to keep variable scopes as localized as possible. Among other things, it makes lifetime analysis easier for the compiler. Another feature present in PL/I but not in C or most other languages is nested procedures. A nested procedure inherits all of the variables accessible in the scope of the containing procedure in which it's declared. Up-level addressing (use of variables declared outside the nested procedure) is somewhat error prone and less efficient than accessing data via a parameter. PL/I also supports recursion, something not provided for in the usual IBM S/360 ABI calling convention. A procedure that can be called recursively must be declared with the RECURSIVE attribute. Unlike C, in IBM S/360/370 PL/I recursion was disallowed by default. DEC's ABI for VMS supports recursion by default and so DEC PL/I dropped the RECURSIVE attribute. PL/I also supports an extended version of Fortran's computed GOTO via label variables. PL/I statements are labeled by name as opposed to Fortran's statement numbers. A label variable can be assigned a statement label value and a GOTO statement using the label variable transfers control to whichever statement label is held in the label variable. Label variables encourage rat's nest programming styles and very much went out of fashion when structured programming came along. -Paul W. -------------- next part -------------- An HTML attachment was scrubbed... URL: From roam at ringlet.net Fri Apr 5 08:53:50 2024 From: roam at ringlet.net (Peter Pentchev) Date: Thu, 04 Apr 2024 22:53:50 -0000 Subject: [COFF] Of PL/I In-Reply-To: <516a4019-d987-4ca4-ac62-bd6b40841f93@gmail.com> References: <1d3f129c-eafe-4fb2-9ea2-d949f3813c88@technologists.com> <516a4019-d987-4ca4-ac62-bd6b40841f93@gmail.com> Message-ID: On Thu, Apr 04, 2024 at 04:37:23PM +1300, Wesley Parish wrote: > On 4/04/24 06:30, segaloco via COFF wrote: > > On Wednesday, April 3rd, 2024 at 9:18 AM, Paul Winalski wrote: > > > > > In the PL/I shops I worked at it was required that all declarations be at the beginning of the scope block. > > > -Paul W. > > I get (friendly) flack for this from some of my coworkers, context is we're a C# and Java(Type)Script shop. They poke fun at how I write these languages like a C programmer but I don't ever hear anyone complaining about the readability of my code :) > > > > Declarations anywhere else but the top of blocks irks me, even if the language is totally fine with it. The only exception is asm, putting all the data and bss at the bottom of assembly units instead. > > I learn C by reading Tanenbaum and Comer's OS books, and I cannot imagine > how putting variable declarations anywhere other than the top of the > function they belong to, would make sense. Unless they are global, in which > case they go in a suitably global header file. TBH, the fact that variables can now be declared in the middle of a block is one of the things that I use most in C90 and C99. Caveat: I only use it in combination with the "const" keyword for single-assignment variables, similar to the bindings in some functional languages. The result is that even the compiler will yell at me if I try to do something funny to a variable that I have declared as "this is its value; it is really, really not supposed to change during its lifetime, but I'm storing it into a variable mainly to cache it for reuse". A side effect is that the compiler has another optimization hint. It also prevents me from using the same name for two different variables, even by accident. G'luck, Peter -- Peter Pentchev roam at ringlet.net roam at debian.org pp at storpool.com PGP key: http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint 2EE7 A7A5 17FC 124C F115 C354 651E EFB0 2527 DF13 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: not available URL: From dave at horsfall.org Mon Apr 8 09:10:14 2024 From: dave at horsfall.org (Dave Horsfall) Date: Sun, 07 Apr 2024 23:10:14 -0000 Subject: [COFF] Of PL/I In-Reply-To: <1d3f129c-eafe-4fb2-9ea2-d949f3813c88@technologists.com> References: <1d3f129c-eafe-4fb2-9ea2-d949f3813c88@technologists.com> Message-ID: On Tue, 2 Apr 2024, Charles H Sauer (he/him) wrote: [...] > I wrote a Fortran to PL/I crude translator in SNOBOL [...] Gadzooks... For our "write a simple compiler" assignment I threatened to use SNOBOL, but my lecturer (Ken Robinson) threatened to fail me :-) -- Dave From sauer at technologists.com Mon Apr 8 09:25:37 2024 From: sauer at technologists.com (Charles H Sauer (he/him)) Date: Sun, 07 Apr 2024 23:25:37 -0000 Subject: [COFF] Of PL/I In-Reply-To: References: <1d3f129c-eafe-4fb2-9ea2-d949f3813c88@technologists.com> Message-ID: On 4/7/2024 6:10 PM, Dave Horsfall wrote: > On Tue, 2 Apr 2024, Charles H Sauer (he/him) wrote: > > [...] > >> I wrote a Fortran to PL/I crude translator in SNOBOL [...] > > Gadzooks... For our "write a simple compiler" assignment I threatened to > use SNOBOL, but my lecturer (Ken Robinson) threatened to fail me :-) > > -- Dave SNOBOL fascinated me as soon as I learned in first languages survey course (also covered LISP, ALGOL, others) in 1971. In the mid 1980s, when we (IBM AIX people) wanted to move our PL.8 code to C, I created a PL.8 to C translator in Griswold's Icon successor to SNOBOL, then an ISC colleague took it over and enhanced it so that I could focus on my other responsibilities. I'm told the enhanced version was used quite a bit, but I don't really know. Charlie -- voice: +1.512.784.7526 e-mail: sauer at technologists.com fax: +1.512.346.5240 Web: https://technologists.com/sauer/ Facebook/Google/LinkedIn/Twitter: CharlesHSauer From paul.winalski at gmail.com Mon Apr 8 11:13:38 2024 From: paul.winalski at gmail.com (Paul Winalski) Date: Mon, 08 Apr 2024 01:13:38 -0000 Subject: [COFF] Of PL/I In-Reply-To: References: <1d3f129c-eafe-4fb2-9ea2-d949f3813c88@technologists.com> Message-ID: On Sun, Apr 7, 2024 at 7:10 PM Dave Horsfall wrote: > On Tue, 2 Apr 2024, Charles H Sauer (he/him) wrote: > > [...] > > > I wrote a Fortran to PL/I crude translator in SNOBOL [...] > > Gadzooks... For our "write a simple compiler" assignment I threatened to > use SNOBOL, but my lecturer (Ken Robinson) threatened to fail me :-) > > Translating Fortran to PL/I is pretty straightforward. It translates pretty much 1-for-1 except for handling character data. One could replace Fortran's Hollerith-encoded character strings with an integer array on which a PL/I character string has been overlay defined. Back in 1977 I translated the TOPS-10 version of the Adventure game, which was in Fortran, into PL/I so that I could run it on our batch S/370 mainframe. I used an IBM 3277 transaction terminal as the interactive interface. I very carefully translated the TOPS-10 Fortran into IBM PL/I line by line, except for the character data where I bit the bullet and used pure PL/I character variables. The whole thing ran the very first time and had only one obscure bug: instead of saying PLOVER ROOM as one did in the TOPS-10 version, you had to say PLOVERROOM. Once that bug was fixed the PL/I version worked like a charm until we got our VAX, where I did another port of the TOPS-10 program so that it ran under VAX/VMS. This time it stayed in Fortran, but again there was funny business with character strings because of the 36 vs. 32 bit word size. If I were to write an automated, general Fortran-to-PL/I translator, SNOBOL would be my language of choice. -Paul W. -Paul W. -------------- next part -------------- An HTML attachment was scrubbed... URL: From stuff at riddermarkfarm.ca Wed Apr 10 07:41:21 2024 From: stuff at riddermarkfarm.ca (Stuff Received) Date: Tue, 9 Apr 2024 17:41:21 -0400 Subject: [COFF] Of PL/I In-Reply-To: References: <1d3f129c-eafe-4fb2-9ea2-d949f3813c88@technologists.com> Message-ID: <3c9d8682-1761-dd35-b101-b5aff46288ca@riddermarkfarm.ca> On 2024-04-07 19:25, Charles H Sauer (he/him) wrote (in part): > On 4/7/2024 6:10 PM, Dave Horsfall wrote: >> On Tue, 2 Apr 2024, Charles H Sauer (he/him) wrote: >> >> [...] >> >>> I wrote a Fortran to PL/I crude translator in SNOBOL [...] >> >> Gadzooks...  For our "write a simple compiler" assignment I threatened to >> use SNOBOL, but my lecturer (Ken Robinson) threatened to fail me :-) >> >> -- Dave > > SNOBOL fascinated me as soon as I learned in first languages survey > course (also covered LISP, ALGOL, others) in 1971. I recall a job cards lying around the card readers with ICEBOL written on them. This may have been a local Toronto variant (in the 1970s). S. From whm at msweng.com Wed Apr 10 10:50:06 2024 From: whm at msweng.com (William H. Mitchell) Date: Tue, 9 Apr 2024 17:50:06 -0700 Subject: [COFF] SNOBOL, ICEBOL, SPITBOL, et al. In-Reply-To: <3c9d8682-1761-dd35-b101-b5aff46288ca@riddermarkfarm.ca> References: <1d3f129c-eafe-4fb2-9ea2-d949f3813c88@technologists.com> <3c9d8682-1761-dd35-b101-b5aff46288ca@riddermarkfarm.ca> Message-ID: <3B54EC8E-D96B-4C2E-8931-D4E3AF276F9B@msweng.com> Re ICEBOL, there were lots of playful names for SNOBOL4 implementations. FASBOL, SITBOL and surely SPITBOL come to mind. Learning SPITBOL at NCSU in Dr. Tharp’s CSC 255 changed the course of my life, to my mother’s rue--I ended up moving from NC to AZ. I’ve mentioned on TUHS that I used Dave Hanson’s RATSNO (RATFOR meets SNOBOL4) on several large undergrad projects. I’ve since wondered if I was maybe only regular user of RATSNO in the universe. (Please let me know if I’m not alone in the universe!) I have hopes of reviving RATSNO, if not revived already on some world. Instead of calling it "RATSNO", Dr. Tharp liked to get my goat by calling it "RATSPIT". If Ralph Griswold were still around I think he might say to not confuse SNOBOL with SNOBOL2, SNOBOL3, or SNOBOL4; they were all significantly different. I believe all the creatively named implementations, like SPITBOL, were implementations of SNOBOL4. Speaking of differences in the four versions, I thought I'd read in Griswold’s HOPL paper on the SNOBOL languages (https://dl.acm.org/doi/pdf/10.1145/800025.1198417) that there was no such thing as a syntactically invalid SNOBOL (v1) program, but I’m not finding that now. Just now I found that ChatGPT 3.5 does speak somewhat correctly of there being a difference between SNOBOL and SNOBOL4. However, when I asked it, "Write me a SNOBOL program, and not a SNOBOL4, program to print the numbers from one through 10.", I got this: LOOP I = 1 TO 10 OUTPUT = I END And--see above--I believe that to be a syntactically valid SNOBOL program! :) William Mitchell Mitchell Software Engineering Occasional Adjunct Instructor at U of AZ CS 520-870-6488 (m) Discord: whm#5716, Twitter: @x77686d, Skype: x77686d linkedin.com/in/x77686d > On Apr 9, 2024, at 2:41 PM, Stuff Received wrote: > > On 2024-04-07 19:25, Charles H Sauer (he/him) wrote (in part): >> On 4/7/2024 6:10 PM, Dave Horsfall wrote: >>> On Tue, 2 Apr 2024, Charles H Sauer (he/him) wrote: >>> >>> [...] >>> >>>> I wrote a Fortran to PL/I crude translator in SNOBOL [...] >>> >>> Gadzooks... For our "write a simple compiler" assignment I threatened to >>> use SNOBOL, but my lecturer (Ken Robinson) threatened to fail me :-) >>> >>> -- Dave >> SNOBOL fascinated me as soon as I learned in first languages survey course (also covered LISP, ALGOL, others) in 1971. > > I recall a job cards lying around the card readers with ICEBOL written on them. This may have been a local Toronto variant (in the 1970s). > > S. > From dave at horsfall.org Wed Apr 10 11:42:30 2024 From: dave at horsfall.org (Dave Horsfall) Date: Wed, 10 Apr 2024 11:42:30 +1000 (EST) Subject: [COFF] SNOBOL, ICEBOL, SPITBOL, et al. In-Reply-To: <3B54EC8E-D96B-4C2E-8931-D4E3AF276F9B@msweng.com> References: <1d3f129c-eafe-4fb2-9ea2-d949f3813c88@technologists.com> <3c9d8682-1761-dd35-b101-b5aff46288ca@riddermarkfarm.ca> <3B54EC8E-D96B-4C2E-8931-D4E3AF276F9B@msweng.com> Message-ID: On Tue, 9 Apr 2024, William H. Mitchell wrote: > Re ICEBOL, there were lots of playful names for SNOBOL4 implementations. > FASBOL, SITBOL and surely SPITBOL come to mind. Ahh... SPITBOL... We used it at UNSW, but it came with a time bomb i.e. the licence had to be renewed every so often. So, me being me I took a hex dump and patched the expiry date with Superzap. Well, it sort of worked... The compiler would then crash at random for no apparent reason, so I took a closer look; it turned out that there was more than one check on the expiry date, and took a jump to whatever random "address" was in R0 (I think). OK then; playing silly games are we? I wrote a program that LOADed SPITBOL into memory, and scanned it for anything that looked like that expiry date, and printing them (nicely formatted, of course). After checking the context there were about a dozen of them, and I patched the lot; it worked fine after that... For that effort Dr. Graham McMahon (another of my CompSci lecturers) gave me the "Superzap of the Year" award :-) -- Dave From dave at horsfall.org Wed Apr 24 22:31:43 2024 From: dave at horsfall.org (Dave Horsfall) Date: Wed, 24 Apr 2024 22:31:43 +1000 (EST) Subject: [COFF] Imagine an architecture where... Message-ID: ... every memory location is a stack. I'm thinking of a notation like: A => CADR (yes, I'm a LISP fan) A' => A[0] A'' => A[-1] etc. Not quite APL\360, but I guess pretty close :-) -- Dave From ralph at inputplus.co.uk Wed Apr 24 23:01:28 2024 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Wed, 24 Apr 2024 14:01:28 +0100 Subject: [COFF] Imagine an architecture where... In-Reply-To: References: Message-ID: <20240424130128.F2C871FB21@orac.inputplus.co.uk> Hi Dave, > ... every memory location is a stack. > > I'm thinking of a notation like: > > A => CADR (yes, I'm a LISP fan) > A' => A[0] > A'' => A[-1] dc(1) has 256 registers identified by a byte. Each can be treated as a stack, stored to and loaded from with S and L. -- Cheers, Ralph. From dave at horsfall.org Thu Apr 25 11:44:54 2024 From: dave at horsfall.org (Dave Horsfall) Date: Thu, 25 Apr 2024 11:44:54 +1000 (EST) Subject: [COFF] Imagine an architecture where... In-Reply-To: <20240424130128.F2C871FB21@orac.inputplus.co.uk> References: <20240424130128.F2C871FB21@orac.inputplus.co.uk> Message-ID: On Wed, 24 Apr 2024, Ralph Corderoy wrote: > dc(1) has 256 registers identified by a byte. Each can be treated as a > stack, stored to and loaded from with S and L. Jeeze, I'd forgotten about DC; thanks! -- Dave, with his treasured HP-42S From sjenkin at canb.auug.org.au Sat Apr 27 15:19:46 2024 From: sjenkin at canb.auug.org.au (steve jenkin) Date: Sat, 27 Apr 2024 15:19:46 +1000 Subject: [COFF] [ off topic ] History of US computing leading to 1968 NATO Conference on Software Engineering Message-ID: <3FEB2B5C-B791-4FD3-AA69-A839251FD282@canb.auug.org.au> Sorry for the dual list post, I don’t who monitors COFF, the proper place for this. There may a good timeline of the early decades of Computer Science and it’s evolution at Universities in some countries, but I’m missing it. Doug McIlroy lived through all this, I hope he can fill in important gaps in my little timeline. It seems from the 1967 letter, defining the field was part of the zeitgeist leading up to the NATO conference. 1949 ACM founded 1958 First ‘freshman’ computer course in USA, Perlis @ CMU 1960 IBM 1400 - affordable & ‘reliable’ transistorised computers arrived 1965 MIT / Bell / General Electric begin Multics project. CMU establishes Computer Sciences Dept. 1967 “What is Computer Science” letter by Newell, Perlis, Simon 1968 “Software Crisis” and 1st NATO Conference 1969 Bell Labs withdraws from Multics 1970 GE's sells computer business, including Multics, to Honeywell 1970 PDP-11/20 released 1974 Unix issue of CACM ========= The arrival of transistorised computers - cheaper, more reliable, smaller & faster - was a trigger for the accelerated uptake of computers. The IBM 1400-series was offered for sale in 1960, becoming the first (large?) computer to sell 10,000 units - a marker of both effective marketing & sales and attractive pricing. The 360-series, IBM’s “bet the company” machine, was in full development when the 1400 was released. ========= Attached is a text file, a reformatted version of a 1967 letter to ’Science’ by Allen Newell, Alan J. Perlis, and Herbert A. Simon: "What is computer science?” ========= A 1978 masters thesis on Early Australian Computers (back to 1950’s, mainly 1960’s) cites a 17 June 1960 CSIRO report estimating 1,000 computers in the US and 100 in the UK. With no estimate mentioned for Western Europe. The thesis has a long discussion of what to count as a (digital) ‘computer’ - sources used different definitions, resulting in very different numbers, making it difficult to reconcile early estimates, especially across continents & countries. Reverse estimating to 1960 from the “10,000” NATO estimate of 1968, with a 1- or 2-year doubling time, gives a range of 200-1,000, including the “100” in the UK. Licklider and later directors of ARPA’s IPTO threw millions into Computing research in the 1960’s, funding research and University groups directly. [ UCB had many projects/groups funded, including the CSRG creating BSD & TCP/IP stack & tools ] Obviously there was more to the “Both sides of the Atlantic” argument of E.W. Dijkstra and Alan Kay - funding and numbers of installations was very different. The USA had a substantially larger installed base of computers, even per person, and with more university graduates trained in programming, a higher take-up in private sector, not just the public sector and defence, was possible. ========= In September 1949, a constitution was instituted by membership approval. ———— In 1958, Perlis began teaching the first freshman-level computer programming course in the United States at Carnegie Tech. In 1965, Carnegie Tech established its Computer Science Department with a $5 million grant from the R.K. Mellon Foundation. Perlis was the first department head. ========= From the 1968 NATO report [pg 9 of pdf ] Helms: In Europe alone there are about 10,000 installed computers — this number is increasing at a rate of anywhere from 25 per cent to 50 per cent per year. The quality of software provided for these computers will soon affect more than a quarter of a million analysts and programmers. d’Agapeyeff: In 1958 a European general purpose computer manufacturer often had less than 50 software programmers, now they probably number 1,000-2,000 people; what will be needed in 1978? _Yet this growth rate was viewed with more alarm than pride._ (comment) ========= -- Steve Jenkin, IT Systems and Design 0412 786 915 (+61 412 786 915) PO Box 38, Kippax ACT 2615, AUSTRALIA mailto:sjenkin at canb.auug.org.au http://members.tip.net.au/~sjenkin -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: Newell-Perlis-Simon-1967_What is Computer Science?.txt URL: