Sunday, November 06, 2022

Spelunking CACM, Vol. 12 (1969)

 The first half of the year seems to move along smoothly, with a lot of algorithm papers but not much exciting. Automated printed circuit routing with a stepping aperture, by Stanley E. Lass, is the first hardware CAD/routing paper I've seen in CACM, but it cites a couple of things from the early 1960s. I remember VLSI engineers at Caltech in the early 1980s worrying that chips being designed by computers automatically were too complex to verify by hand. Of course, we now think of verification as being a task best suited for automation.

One letter to the editor in June, though, concerns an LA chapter meeting that bothered the author:

My disappointment stems from the subject matter and from the speakers. Three of the last meetings which I attended had to do with social conscience and community aspects. Two of these were on the same subject "Operation Bootstrap," which is an L.A. area self-help program for black people.

If only we had been more successful all the way back in 1969 in creating an inclusive atmosphere, and providing mentoring and help to those who needed it!

 A July paper talks about adding features to Dave Farber's SNOBOL. I haven't programmed in SNOBOL, so there are things I definitely don't grok, but there is a feature called "indirection", in which a variable contains the name of another variable, and via indirection the value of that variable can be read or written. This, of course, requires that the symbol table be available at run time, since the variable name can be constructed by the program! No indication in this paper as to what happens when the name isn't found in the symbol table (or, in modern terms, a dictionary?).

The September issue has a solid theory paper by David L. Parnas, On simulating networks of parallel processes in which simultaneous events may occur. It's dealing with discrete event simulation, and provides formal logic solutions for handling simultaneous events in the simulation of digital logic circuits. This work is roughly contemporaneous with the cooperating sequential processes work of Dijkstra and a little before the communicating sequential processes work of Hoare. Although this paper explicitly discusses the parallel nature of the work to be done and some machines that do the work in parallel, the paper really focuses on how to guarantee an acceptable sequential ordering.

And, in fact, in the following month's issue there is an article by Tony Hoare on An axiomatic basis for computing programming. This particular paper takes an...optimistic?...view of programming?

Computer programming is an exact science in that all the properties of a program and all the consequences of executing it in any given environment can, in principle, be found out from the text of the program itself by means of purely deductive reasoning. 

And then later,

When the correctness of a program, its compiler, and the hardware of the computer have all been established with mathematical certainty, it will be possible to place great reliance on the results of the program, and predict their properties with a confidence limited only by the reliability of the electronics.

Ah, would that it were so...

 

No comments:

Post a Comment