Yes. If it was =op, this means the C program probably used =+
instead of +=. That was the
dialect of C that was around when Al was at Bell Labs. The
transition from =+ to += was a
pain, but decreased errors dramatically (a=-1 vs a= -1).
We actually had a pretty good system for making changes like that.
First, we would change
the compiler to accept both the old and the new. Then we would
produce a warning
that on a particular date the old would no longer work. Then we made
the old an error
and printed a message about how to fix it. Eventually, we just let
it be a syntax error.
This process was applied many times on the way from typeless B to
strongly typed C.
----- Original Message -----
From: "Lars Brinkhoff" <lars(a)nocrew.org>
To:"Steve Johnson" <scj(a)yaccman.com>
Cc:<tuhs@tuhs.org>
Sent:Mon, 29 Oct 2018 07:31:24 +0000
Subject:Re: [TUHS] Archaic yacc C grammar
Steve Johnson wrote:
Looking at the reserved words, there is one, ENTRY,
that I've never
heard of (although FORTRAN had an ENTRY statement), and there is
STRUCT but no UNION. Also, he uses val= instead of $$=. There don't
seem to be any nontrivial assignment ops (neither += or =+).
This is for Snyder's C compiler. There is something called =op which
is guess is for =+ etc.
I'm guessing either Al wrote it from scratch or
based it on some
other
similar program.
Looks like you're right. I found this in another file, so it would
seem
he wrote it back at MIT:
"The original YACC was designed and implemented on a PDP-11/45 and a
Honeywell 6000 by S. C. Johnson at Bell Laboratories. The version
described in this paper was implemented on the PDP-10 by Alan Snyder.