Orcmid's Lair status 
privacy 
 
about 
contact 

2007-02-23

Peter Naur: Science for Computer Science

Peter Naur’s brief citation for the 2005 A. M. Turing Award reads, “For fundamental contributions to programming language design and the definition of Algol 60, to compiler design, and to the art and practice of computer programming [my emphasis].”  The full citation provides a deeper look: “Naur pioneered the methodology for writing correct programs. … Naur’s work is formal and precise; but it displays an exceptional understanding of the limits and uses of formalism and precision. Throughout his career Naur has been a leader in establishing Software Engineering as a discipline - converting program design from an art form to a subject with sound basic principles. … His recent work has focused on programming as a human activity - exploring the social and ethical aspects of computing, and also the problems of writing programs so as to cater for evolving requirements.”

As sometimes happens, the recipient used the occasion of the award to introduce his latest view of investigations for which he is not yet widely-known.   Naur’s Turing Lecture recounts the path by which he reached a subject that increasingly commanded his attention over the past half-century [1]. 

{tags: }

Reconstructing Naur’s Thesis

My colleague Bill Anderson and I have followed Peter Naur’s work and writings probably as long as we’ve known each other.  Bill has been the systematic reader, always reminding me of how much Naur has already contributed to understanding topical and stubbornly-remaining problems of software engineering.  We looked forward to appearance of his Turing Award paper.  It is not an easy piece, and we’ve elected to extract and analyze some key portions at length. 

We begin our explorations by examining the notion of description and its role in science.   This is not a new topic in the philosophy of science.  It is peculiarly important to situating the science in computer science, and we will probably chew more on the ways that description arises in elements of computer science than any other topic.  You might do likewise.

Naur’s Progressive Experience

In the introductory paragraphs, Peter Naur asserts that experiences in his career have featured increasingly-firm conviction that computing (that is, operating by computation as computers do) has nothing to do with human thinking (that is, as it arises in activity of the human nervous system). 

Almost two-thirds of the Turing Award paper are devoted to a theory of mental life that Naur offers in refutation of the notion that human thinking has any similarity to computation whatsoever.

He embarks into his thesis with the iconoclastic claim that “a large part of what is currently said about human thinking and about scientific and scholarly activity is false and harmful to our understanding.”

The sections that come first trace the experiences by which Naur progressed to this point of view.  

Explanation vs. Description in Science

Naur raises description as the “core issue of science and scholarship [1: p.85],”

“Already in my work in astronomy, around 1955, a decisive item in my awareness came from Bertrand Russell’s explicit rejection of any notion of cause as a central issue of scientific work.  As pointed out clearly by Russell, science as pursued by astronomers is concerned, not with causes, not with logic, but with description [2].”

The emphasis is Naur’s. 

Description figures in an important way in the next, post-astronomer stage of Naur’s career.  Even so, this use of description as the ultimate concern of scientists is puzzling.  I think it is different than that.   I think Russell does as well. 

Easily dispensing with causality as a red-herring invented by philosophers to muddle the methodologies of science, Russell makes this important observation about the nature of science [2: pp.142–143]:

“Although the old 'law of causality' is not assumed by science, something which may be called 'the uniformity of nature' is assumed, or rather is accepted on inductive grounds. ... The ground of this principle [of the permanence of a certain law] is simply the inductive ground that it has been found to be true in very many instances; hence the principle cannot be considered certain, but only probably to a degree which cannot be accurately estimated. ... The uniformity of nature is not known a priori, but is an empirical generalization, like 'all men are mortal'.”

Russell does not make use of “description” at all in this context.  On reflection, that’s no surprise, since Russell has a very particular usage for description (whether ambiguous, indefinite, or definite) in his analysis of how language is used descriptively and in our claims to knowledge in certain matters.  This is quite different than the empirical contingency that Russell ascribes to scientific endeavors.  Russell might countenance description as performed by naturalists and astronomers — that is, the use of observations in science — but I think not with Naur’s emphasis.

If “description” is off the mark, what alternative term can we offer that resonates with Naur’s concern yet is not so presumptive?  My preference is “explanation,” not so much as an answer (and certainly not “the truth”) but a way of relating to ourselves some confirmable uniformity of nature. 

Rushing to the dictionary, I find it useful that “description” is tantamount to “explanation,” an account or representation of something.  However, both terms are inappropriate in their sense of giving the reason for something.  Details about something — yes, how — not so much, why — not at all.  Just the same, we do use scientific theories (and laws) as ways to explain observed phenomena to ourselves. 

It is the sense of explanation as an observer-significant story or theoretical conception that appeals to me.  I will stick with that as informally preferable to description, with its — to me — suggestion of ultimate accuracy.  A way to keep the terms straight is with this maxim: we are not describing what’s so, we are using an explanatory conception that conveniently accounts for what happens without concern for how or why.

There is harmonious use of explanation in this touching characterization of scientific activity [3: p.31]: 

“Physical concepts are free creations of the human mind, and are not, however it may seem, uniquely determined by the external world.  In our endeavor to understand reality we are somewhat like a man trying to understand the mechanism of a closed watch.  he sees the face and the moving hands, even hears its ticking, but he has no way of opening the case.  If he is ingenious he may form some picture of a mechanism which could be responsible for all the things he observed, but he may never be quite sure his picture is the only one which could explain his observations.  He will never be able to compare his picture with the real mechanism and he cannot even imagine the possibility or the meaning of such a comparison.  But he certainly believes that, as his knowledge increases, his picture of reality will become simpler and simpler and will explain a wider and wider range of his sensuous impressions.  He may also believe in the existence of the ideal limit of knowledge and that it is approached by the human mind.  He may call this ideal limit the objective truth.”

Application to Computing Science

 I want to follow-up on this gentle wordsmithing with an examination of formalism in science, especially in computer science, and how that intersected Naur’s work in programming languages.

Meanwhile, Eugene Wallingford also finds science as being about description in Russell, asserting that [4],

“As Bertrand Russell wrote a century ago, science is about description, not logic or causation or any other naive notion we have about necessity. Scientists describe things. This being the case, computer science is in many ways the ultimate scientific endeavor -- or at least a foundational one -- because computer science is the science of description.”

I commend the entire piece to your attention, although I do find this particular passage on description rather disheartening.  To unravel this concern, it will be necessary to work our way up to an important notion of Peter Naur, that of programming as theory building.

For an alternative, empirically-grounded look at some of the science that underlies the success of the modern digital computer, I recommend Charles Petzold’s “Anatomy of a flashlight” for its remarkable foray into kitchen-table science [5: pp.23–24]:

“As we know, all matter—the stuff that we can see and feel (usually)—is made up of extremely small things called atoms.  Every atom is composed of three types of particles; these are called neutrons, protons, and electrons.  You can picture an atom as a little solar system, with the neutrons and protons bound into a nucleus and the electrons spinning around the nucleus like planets around a sun. … I should mention that this isn’t exactly what you’d see if you were able to get a microscope powerful enough to see actual atoms, but it works as a convenient model.”

Isn’t it interesting that, in the year 2000, a description of the Bohr atom could start off with “As we know.”  Petzold uses this conceptualization as a way of explaining certain matters to ourselves—a convenient model.  The model is so evocative that we tend, by now, to take it as a revealed truth.  To appreciate how it is far more than that, it is useful to remind ourselves that this picture of the atom is a theoretical conception that accounts for some natural phenomena under a significant range of conditions.  But it is still Einstein’s closed watch.

Hold that thought for when we ask, in a more critical way, just what, exactly, is a science that could be called the science of description?  And if computer science is not that, pray tell what is the science that is (uniquely?) in computer science?


Computing Versus Human Thinking: Organization

For the most part, Naur’s paper is presented in short sections that we’ll use as organization of our commentaries.  The largest section, preceding the conclusion, presents a theory of human mental life that we will not explore.  We’re not qualified to assess this part, and it is not necessary to master it to explore the main themes that strike us as pertinent regardless of the merits of this particular theory. 

  • [brief introduction]
  • Description as the Core Issue of Science and Scholarship
  • Compiler Design
  • Techniques of Programming and Programming Description
  • Descriptions of Mental Life
  • Knowing
  • Science and Scholarship
  • Philosophy as Presumption
  • The Ideological Decay of Psychology
  • The Synapse-State Theory of Mental Life [long]
  • Conclusion [with Acknowledgment]
  • References

References

[1] Naur, Peter.
Computing Versus Human Thinking.  Communications of the ACM 50, 1 (January 2007), 85-94.  Available to ACM Digital Library subscribers via http://doi.acm.org/10.1145/1188913.1188922.
   It is unfortunate that the full text has not yet been made freely-available on-line.  I’m grateful that it was published in C.ACM, the magazine received by all members of the Association for Computing Machinery.  That way we didn’t overlook its appearance in print, and there will be opportunity for wide discussion and commentary among the ACM membership for now.
   
[2] Russell, Bertrand.
On the Notion of Cause. pp.132–151 in Mysticism and Logic and Other Essays.  George Allen & Unwin (1917, 1963 edition); Barnes & Noble Books (Totowa, NJ: 1981). ISBN 0-389-20135-9 pbk.
   
[3] Einstein, Albert., Infeld, Leopold.
The Evolution of Physics: From Early Concepts to Relativity and Quanta. Simon and Schuster (New York: 1938, 1966). ISBN 0-671-20156-5 pbk. A Touchstone Book.
   
[4] Wallingford, Eugene.
Computer Science as Science.  Knowing and Doing (weblog), February 8, 2007.  Accessed at http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2007-02.html#e2007-02-08T18_23_50.htm.
  
[5] Petzold, Charles.
Code: The Hidden Language of Computer Hardware and Software.  Microsoft Press (Redmond, WA: 2000).  ISBN 0-7356-1131-9 pbk.

 
Comments:
 
Edsger Dijkstra is reported to have said "asking whether a computer thinks is like asking whether a submarine swims".
 
 
That's a wonderful observation. Thank you. You may find my older piece on "What Computers Know" to have some bearing on what Dijkstra may have been pointing at.

Also, let me take this opportunity to point out that there are on-line videos of Naur's presentation on receipt of the Turing Award. Scroll down the ACM page on Naur's award to where there are links to two versions.

I'm still mulling over the next part, on description of programming languages and data structures.
 
Post a Comment
 
Construction Zone (Hard Hat Area) You are navigating Orcmid's Lair.

template created 2002-10-28-07:25 -0800 (pst) by orcmid
$$Author: Orcmid $
$$Date: 07-02-17 11:08 $
$$Revision: 26 $