Computer Old Farts Forum
 help / color / mirror / Atom feed
* [COFF] Of PL/I
@ 2024-04-02 15:06 Dave Horsfall
  2024-04-02 16:40 ` [COFF] " Clem Cole
  0 siblings, 1 reply; 17+ messages in thread
From: Dave Horsfall @ 2024-04-02 15:06 UTC (permalink / raw)
  To: Computer Old Farts Followers

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

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [COFF] Re: Of PL/I
  2024-04-02 15:06 [COFF] Of PL/I Dave Horsfall
@ 2024-04-02 16:40 ` Clem Cole
  2024-04-02 17:01   ` Charles H Sauer (he/him)
  2024-04-02 19:25   ` Stuff Received
  0 siblings, 2 replies; 17+ messages in thread
From: Clem Cole @ 2024-04-02 16:40 UTC (permalink / raw)
  To: Dave Horsfall; +Cc: Computer Old Farts Followers

[-- Attachment #1: Type: text/plain, Size: 1304 bytes --]

On Tue, Apr 2, 2024 at 11:23 AM Dave Horsfall <dave@horsfall.org> 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 :-)
ᐧ

[-- Attachment #2: Type: text/html, Size: 3298 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [COFF] Re: Of PL/I
  2024-04-02 16:40 ` [COFF] " Clem Cole
@ 2024-04-02 17:01   ` Charles H Sauer (he/him)
  2024-04-03 16:18     ` Paul Winalski
  2024-04-07 23:10     ` Dave Horsfall
  2024-04-02 19:25   ` Stuff Received
  1 sibling, 2 replies; 17+ messages in thread
From: Charles H Sauer (he/him) @ 2024-04-02 17:01 UTC (permalink / raw)
  To: coff

On 4/2/2024 11:40 AM, Clem Cole wrote:
> 
> 
> On Tue, Apr 2, 2024 at 11:23 AM Dave Horsfall <dave@horsfall.org 
> <mailto:dave@horsfall.org>> 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@technologists.com
fax: +1.512.346.5240         Web: https://technologists.com/sauer/
Facebook/Google/LinkedIn/Twitter: CharlesHSauer

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [COFF] Re: Of PL/I
  2024-04-02 16:40 ` [COFF] " Clem Cole
  2024-04-02 17:01   ` Charles H Sauer (he/him)
@ 2024-04-02 19:25   ` Stuff Received
  2024-04-02 20:31     ` William H. Mitchell
  1 sibling, 1 reply; 17+ messages in thread
From: Stuff Received @ 2024-04-02 19:25 UTC (permalink / raw)
  To: coff

On 2024-04-02 12:40, Clem Cole wrote (in part):
> 
> 
> On Tue, Apr 2, 2024 at 11:23 AM Dave Horsfall <dave@horsfall.org 
> <mailto:dave@horsfall.org>> 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.


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [COFF] Re: Of PL/I
  2024-04-02 19:25   ` Stuff Received
@ 2024-04-02 20:31     ` William H. Mitchell
  0 siblings, 0 replies; 17+ messages in thread
From: William H. Mitchell @ 2024-04-02 20:31 UTC (permalink / raw)
  To: Computer Old Farts Followers

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!


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [COFF] Re: Of PL/I
  2024-04-02 17:01   ` Charles H Sauer (he/him)
@ 2024-04-03 16:18     ` Paul Winalski
  2024-04-03 17:30       ` segaloco via COFF
  2024-04-07 23:10     ` Dave Horsfall
  1 sibling, 1 reply; 17+ messages in thread
From: Paul Winalski @ 2024-04-03 16:18 UTC (permalink / raw)
  To: coff

[-- Attachment #1: Type: text/plain, Size: 2735 bytes --]

On Tue, Apr 2, 2024 at 1:01 PM Charles H Sauer (he/him) <
sauer@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.

[-- Attachment #2: Type: text/html, Size: 3236 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [COFF] Re: Of PL/I
  2024-04-03 16:18     ` Paul Winalski
@ 2024-04-03 17:30       ` segaloco via COFF
  2024-04-03 20:44         ` Paul Winalski
  2024-04-04  3:37         ` Wesley Parish
  0 siblings, 2 replies; 17+ messages in thread
From: segaloco via COFF @ 2024-04-03 17:30 UTC (permalink / raw)
  To: coff

On Wednesday, April 3rd, 2024 at 9:18 AM, Paul Winalski <paul.winalski@gmail.com> 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.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [COFF] Re: Of PL/I
  2024-04-03 17:30       ` segaloco via COFF
@ 2024-04-03 20:44         ` Paul Winalski
  2024-04-04  3:37         ` Wesley Parish
  1 sibling, 0 replies; 17+ messages in thread
From: Paul Winalski @ 2024-04-03 20:44 UTC (permalink / raw)
  To: coff

[-- Attachment #1: Type: text/plain, Size: 1392 bytes --]

On Wed, Apr 3, 2024 at 1:30 PM segaloco via COFF <coff@tuhs.org> 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.

[-- Attachment #2: Type: text/html, Size: 1765 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [COFF] Re: Of PL/I
  2024-04-03 17:30       ` segaloco via COFF
  2024-04-03 20:44         ` Paul Winalski
@ 2024-04-04  3:37         ` Wesley Parish
  2024-04-04 15:40           ` Paul Winalski
  2024-04-04 22:53           ` Peter Pentchev
  1 sibling, 2 replies; 17+ messages in thread
From: Wesley Parish @ 2024-04-04  3:37 UTC (permalink / raw)
  To: coff

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 <paul.winalski@gmail.com> 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.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [COFF] Re: Of PL/I
  2024-04-04  3:37         ` Wesley Parish
@ 2024-04-04 15:40           ` Paul Winalski
  2024-04-04 22:53           ` Peter Pentchev
  1 sibling, 0 replies; 17+ messages in thread
From: Paul Winalski @ 2024-04-04 15:40 UTC (permalink / raw)
  To: coff

[-- Attachment #1: Type: text/plain, Size: 2068 bytes --]

On Wed, Apr 3, 2024 at 11:37 PM Wesley Parish <wobblygong@gmail.com> 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.

[-- Attachment #2: Type: text/html, Size: 2456 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [COFF] Re: Of PL/I
  2024-04-04  3:37         ` Wesley Parish
  2024-04-04 15:40           ` Paul Winalski
@ 2024-04-04 22:53           ` Peter Pentchev
  1 sibling, 0 replies; 17+ messages in thread
From: Peter Pentchev @ 2024-04-04 22:53 UTC (permalink / raw)
  To: coff

[-- Attachment #1: Type: text/plain, Size: 2036 bytes --]

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 <paul.winalski@gmail.com> 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@ringlet.net roam@debian.org pp@storpool.com
PGP key:        http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint 2EE7 A7A5 17FC 124C F115  C354 651E EFB0 2527 DF13

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [COFF] Re: Of PL/I
  2024-04-02 17:01   ` Charles H Sauer (he/him)
  2024-04-03 16:18     ` Paul Winalski
@ 2024-04-07 23:10     ` Dave Horsfall
  2024-04-07 23:25       ` Charles H Sauer (he/him)
  2024-04-08  1:13       ` [COFF] Re: Of PL/I Paul Winalski
  1 sibling, 2 replies; 17+ messages in thread
From: Dave Horsfall @ 2024-04-07 23:10 UTC (permalink / raw)
  To: Computer Old Farts Followers

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

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [COFF] Re: Of PL/I
  2024-04-07 23:10     ` Dave Horsfall
@ 2024-04-07 23:25       ` Charles H Sauer (he/him)
  2024-04-09 21:41         ` Stuff Received
  2024-04-08  1:13       ` [COFF] Re: Of PL/I Paul Winalski
  1 sibling, 1 reply; 17+ messages in thread
From: Charles H Sauer (he/him) @ 2024-04-07 23:25 UTC (permalink / raw)
  To: coff

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@technologists.com
fax: +1.512.346.5240         Web: https://technologists.com/sauer/
Facebook/Google/LinkedIn/Twitter: CharlesHSauer

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [COFF] Re: Of PL/I
  2024-04-07 23:10     ` Dave Horsfall
  2024-04-07 23:25       ` Charles H Sauer (he/him)
@ 2024-04-08  1:13       ` Paul Winalski
  1 sibling, 0 replies; 17+ messages in thread
From: Paul Winalski @ 2024-04-08  1:13 UTC (permalink / raw)
  To: Computer Old Farts Followers

[-- Attachment #1: Type: text/plain, Size: 1645 bytes --]

On Sun, Apr 7, 2024 at 7:10 PM Dave Horsfall <dave@horsfall.org> 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.

[-- Attachment #2: Type: text/html, Size: 2009 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [COFF] Re: Of PL/I
  2024-04-07 23:25       ` Charles H Sauer (he/him)
@ 2024-04-09 21:41         ` Stuff Received
  2024-04-10  0:50           ` [COFF] SNOBOL, ICEBOL, SPITBOL, et al William H. Mitchell
  0 siblings, 1 reply; 17+ messages in thread
From: Stuff Received @ 2024-04-09 21:41 UTC (permalink / raw)
  To: coff

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.


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [COFF] SNOBOL, ICEBOL, SPITBOL, et al.
  2024-04-09 21:41         ` Stuff Received
@ 2024-04-10  0:50           ` William H. Mitchell
  2024-04-10  1:42             ` [COFF] " Dave Horsfall
  0 siblings, 1 reply; 17+ messages in thread
From: William H. Mitchell @ 2024-04-10  0:50 UTC (permalink / raw)
  To: Computer Old Farts Followers

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 <stuff@riddermarkfarm.ca> 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.
> 


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [COFF] Re: SNOBOL, ICEBOL, SPITBOL, et al.
  2024-04-10  0:50           ` [COFF] SNOBOL, ICEBOL, SPITBOL, et al William H. Mitchell
@ 2024-04-10  1:42             ` Dave Horsfall
  0 siblings, 0 replies; 17+ messages in thread
From: Dave Horsfall @ 2024-04-10  1:42 UTC (permalink / raw)
  To: Computer Old Farts Followers

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

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2024-04-10  1:42 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-02 15:06 [COFF] Of PL/I Dave Horsfall
2024-04-02 16:40 ` [COFF] " Clem Cole
2024-04-02 17:01   ` Charles H Sauer (he/him)
2024-04-03 16:18     ` Paul Winalski
2024-04-03 17:30       ` segaloco via COFF
2024-04-03 20:44         ` Paul Winalski
2024-04-04  3:37         ` Wesley Parish
2024-04-04 15:40           ` Paul Winalski
2024-04-04 22:53           ` Peter Pentchev
2024-04-07 23:10     ` Dave Horsfall
2024-04-07 23:25       ` Charles H Sauer (he/him)
2024-04-09 21:41         ` Stuff Received
2024-04-10  0:50           ` [COFF] SNOBOL, ICEBOL, SPITBOL, et al William H. Mitchell
2024-04-10  1:42             ` [COFF] " Dave Horsfall
2024-04-08  1:13       ` [COFF] Re: Of PL/I Paul Winalski
2024-04-02 19:25   ` Stuff Received
2024-04-02 20:31     ` William H. Mitchell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).