Copy the page URI to the clipboard
Petre, Marian
(1991).
URL: http://www.ppig.org/workshops/3rd-programme.html
Abstract
Having studied expert programmers and hardware designers, I have long had difficulty with the notion that people program “solely declaratively”, or even that they reason solely declaratively about systems, and I have been unable to find any expert who does. Expertise and operational models seem at least to be wholly coincident. People who begin with a “purely declarative” model of things soon find or develop for themselves an operational one, correct or not. I suggest that operational knowledge underpins our ability to reason declaratively—that a reasonably comprehensive operational model of the underlying ‘machine’, extending one or several layers deeper than the current focus, is necessary to our ability to design systems competently. The crux is time; what distinguishes functional from operational views is, primarily, time (also seen as process, change, behaviour). In a formal system, like a computing environment, there is a notionally perfect notational world sitting on top of a real world, and the mapping between them is not always perfect or ideal. The real world is imperfect, imposing physical and temporal constraints that matter to solution. Hence, we need to “escape from formalism”; we need knowledge of what lies underneath. The operational model is a way of coping with reality. The talk will address this question of how fundamental and how extensive is our need to know “how it works”; examples will be drawn from studies of programmers and of digital electronics engineers.