Mathematical Foundations for Structured Programming

Total Page:16

File Type:pdf, Size:1020Kb

Mathematical Foundations for Structured Programming University of Tennessee, Knoxville TRACE: Tennessee Research and Creative Exchange The Harlan D. Mills Collection Science Alliance 2-1972 Mathematical Foundations for Structured Programming Harlan D. Mills Follow this and additional works at: https://trace.tennessee.edu/utk_harlan Part of the Mathematics Commons, and the Software Engineering Commons Recommended Citation Mills, Harlan D., "Mathematical Foundations for Structured Programming" (1972). The Harlan D. Mills Collection. https://trace.tennessee.edu/utk_harlan/56 This Book is brought to you for free and open access by the Science Alliance at TRACE: Tennessee Research and Creative Exchange. It has been accepted for inclusion in The Harlan D. Mills Collection by an authorized administrator of TRACE: Tennessee Research and Creative Exchange. For more information, please contact [email protected]. University of Tennessee, Knoxville Trace: Tennessee Research and Creative Exchange The aH rlan D. Mills Collection Science Alliance 2-1972 Mathematical Foundations for Structured Programming Harlan D. Mills Follow this and additional works at: http://trace.tennessee.edu/utk_harlan Part of the Mathematics Commons, and the Software Engineering Commons Recommended Citation Mills, Harlan D., "Mathematical Foundations for Structured Programming" (1972). The Harlan D. Mills Collection. http://trace.tennessee.edu/utk_harlan/56 This Book is brought to you for free and open access by the Science Alliance at Trace: Tennessee Research and Creative Exchange. It has been accepted for inclusion in The aH rlan D. Mills Collection by an authorized administrator of Trace: Tennessee Research and Creative Exchange. For more information, please contact [email protected]. athematical Foundations for Structured Programming B Harlan D. Mills FSC 72-6012 MATHEMATICAL FOUNDATIONS II FOR STRUCTURED PROGRAMMING by HarlanD ~~ February 1972 SEP Federal Systems Division INTERNATIONAL BUSINESS MACHINES CORPORATION Gaithersburg, Maryland 20760 :Copyright 1972 International Bus iness Machines Corporation FOREWORD The first name in structured programming is Edsger W. Dijkstra (Holland), who has originated a set of ideas and a series of examples for clear thinking in the construction of programs. These ideas are powerful tools in mentally connecting the static text of a program with the dynamic process it invokes in execution. This new correspondence between program and process permits a new level of precision in programming. Indeed, it is contended here that the precision now possible in programming will change its industrial characteristics from a frustrating, trial and error activity to a systematic, quality controlled activity. However, in order to introduce and enforce such precision programming as an industrial activity, the ideas of structured programming must be formulated as technical standards, not simply as good ideas to be used when convenient, but as basic principles which are always valid. A good example of a technical standard occurs in logic circuit design. There, it is known, from basic theorems in boolean algebra, that an~ logic circuit, no matter how complex its requirement, can be constructed using only AND, OR, and NOT gates. Our interest is similar, to provide a mathematical assurance, for manage­ 1 ment purposes, t:'hat: a ..ac1ni':C& ..L 'il"L<mdM..4.. ~!t !LO_u_qQ_ a_!!~l_ ~ractical. This mathematical assurance is due, in large part, to Corrado Bohm and Giuseppe Jacopini (Italy), who showed how to prove that relatively simple (structured) program control logics were capable of expressing any pro­ gram requirements. Initial practical experience with structured programming indicates there is more than a technical side to the matter. There is a psychological effect, as well, when programmers learn of their new power to write programs correctly. This new power motivates, in turn, a new level of concentration, which helps avoid errors of carelessness. This new psychology of precision has a mathematical counterpart in the theory of program correctness, which we formulate in a new way. The mathematical appYoach we take in formulating stYuctured programming and the correctness problem emphasizes these combinatorial aspects, in order to demonstrate for programmers that corre~t programming involves only combinatorial selection, and not problems requiring perfect pre­ cision, on a continuous scale. Because of this, we are confident that programmers will soon work at a level of productivity and precision which will appear incredible compared to early experience with the programming problem. ii-- CONTENTS Page Complexity and Precision in Programming The Psychology of Precision 2 The Problem of Complexity 3 The Idea of Structured Programming 4 The Correctness of Structured Programs 6 Ft.mctions 8 Functions and Rules 8 Ft.mction Composition and Completion 10 Special Functions 11 Programs 12 Control Graphs 13 Programs in Flowchart Form 14 Program Execution 16 Proper Programs 17 Program Equivalence 18 Program Expansions 19 Control Graph Labels 20 Program Formulas 22 Program Descriptions 25 Structured Programs 27 The Number of Control Lines in a Proper Program 30 Lemma 30 Proof 30 Structure Theorem 31 Proof 31 Summary 38 Top Down Corollary 39 S-Structured Programs 40 Program Representations 40 Program Trees 41 iii Page Program Correctness 43 Correctness Theorem 43 Proof 44 Correctness Notes 49 Top Down Program Expansions so Expansion Theorem (Verbal Version) 51 Expansion Theorem (Set Theoretic Version) 52 Proof 53 Indeterminate Programs 57 References 59 iv COMPLEXITY AND PRECISION IN PROGRAMMING The digital computer has introduced a need for highly complex, precisely formulated, logical systems on a scale never before attempted. Systems may be large and highly complex, but if human beings, or even analog devices, are components in them, then various error tolerances are possible, which such components can adjust and compensate for. However, a digital computer, in hardware and software, not only makes the idea of perfect precision possible -- it requires perfect precision for satis­ factory operation. This complete intolerance to the slightest logical error gives programming a new character, little known previously, in its requirements for precision on a large scale. The combination of this new requirement for precision, and the commercial demand for computer programming on a broad scale, has created many false values and distorted relationships in the past decade. They arise from intense pressure to achieve complex and precision results in a practical way without adequate technical foundations. As a result, a great deal of programming uses people and computers highly inefficiently, as the only means presently known to accomplish a practical end. It is universally accepted today that programming is an error-prone activity. Any major programming system is presumed to have errors in it. Only the very naive would believe otherwise. The process of debugging programs and systems is a mysterious art. Indeed, more programmer time goes into debugging than into program designing and coding in most large systems. But there is practically no systematic literature on this large undertaking. Yet, even though errors in program logic have always been a source of frustration, even for the most careful and meticulous, this may not be necessarily so in the future. Programming is very young as a human activity -· some twenty years old. It has practically no technical foundations yet. Imagine engineering when it was twenty years old. Whether that was in 1620 or 1770, it was not in very good technical shape at that stage either! As technical foundations are developed for programming, its character will undergo radical changes. We contend here that such a radical change is possible now •• that in structured programming the techniques and tools are at hand to permit an entirely new level of precision in programming. This new level of precision will be characterized by programs of large size (from tens of thousands to millions of instructions) which have 1 mean time between detected errors of a year or so. But to accomplish that level of precision a new attitude toward programming expectations will be required in programmers, as well. THE PSYCHOLOGY OF PRECISION A child can learn to play the game of tic tac toe perfectly -· but a man can never learn to saw a board exactly in half. Playing tic tac toe is a combinatorial problem, selecting, at every alternative, one of a finite number of possibilities. Sawing a board exactly in half is a physical problem, for which no discrete level of accuracy is sufficient. The child who has learned to play tic tac toe need never make a mistake, except through a loss of concentration. In any game he believes important (say played for a candy bar) he is capable of perfect play. Computer programming is a combinatorial activity, like tic tac toe, not like sawing a board in half. It does not require perfect resolution in measurement and control -- it only requires correct choices out of finite sets of possibilities at every step. The difference between tic tac toe and computer programming is complexity. The purpose of structured program­ ming is to control complexity through theory and discipline. And with complexity under better control, it now appears that men can write sub­ stantial computer programs correctly. In fact, just as a child moves from groping and frustration to confidence and competence in tic tac toe, so men can now find solid ground for program development. A child, in learning to play
Recommended publications
  • COM 113 INTRO to COMPUTER PROGRAMMING Theory Book
    1 [Type the document title] UNESCO -NIGERIA TECHNICAL & VOCATIONAL EDUCATION REVITALISATION PROJECT -PHASE II NATIONAL DIPLOMA IN COMPUTER TECHNOLOGY Computer Programming COURSE CODE: COM113 YEAR I - SE MESTER I THEORY Version 1: December 2008 2 [Type the document title] Table of Contents WEEK 1 Concept of programming ................................................................................................................ 6 Features of a good computer program ............................................................................................ 7 System Development Cycle ............................................................................................................ 9 WEEK 2 Concept of Algorithm ................................................................................................................... 11 Features of an Algorithm .............................................................................................................. 11 Methods of Representing Algorithm ............................................................................................ 11 Pseudo code .................................................................................................................................. 12 WEEK 3 English-like form .......................................................................................................................... 15 Flowchart .....................................................................................................................................
    [Show full text]
  • Basic Structures: Sets, Functions, Sequences, and Sums 2-2
    CHAPTER Basic Structures: Sets, Functions, 2 Sequences, and Sums 2.1 Sets uch of discrete mathematics is devoted to the study of discrete structures, used to represent discrete objects. Many important discrete structures are built using sets, which 2.2 Set Operations M are collections of objects. Among the discrete structures built from sets are combinations, 2.3 Functions unordered collections of objects used extensively in counting; relations, sets of ordered pairs that represent relationships between objects; graphs, sets of vertices and edges that connect 2.4 Sequences and vertices; and finite state machines, used to model computing machines. These are some of the Summations topics we will study in later chapters. The concept of a function is extremely important in discrete mathematics. A function assigns to each element of a set exactly one element of a set. Functions play important roles throughout discrete mathematics. They are used to represent the computational complexity of algorithms, to study the size of sets, to count objects, and in a myriad of other ways. Useful structures such as sequences and strings are special types of functions. In this chapter, we will introduce the notion of a sequence, which represents ordered lists of elements. We will introduce some important types of sequences, and we will address the problem of identifying a pattern for the terms of a sequence from its first few terms. Using the notion of a sequence, we will define what it means for a set to be countable, namely, that we can list all the elements of the set in a sequence.
    [Show full text]
  • The Machine That Builds Itself: How the Strengths of Lisp Family
    Khomtchouk et al. OPINION NOTE The Machine that Builds Itself: How the Strengths of Lisp Family Languages Facilitate Building Complex and Flexible Bioinformatic Models Bohdan B. Khomtchouk1*, Edmund Weitz2 and Claes Wahlestedt1 *Correspondence: [email protected] Abstract 1Center for Therapeutic Innovation and Department of We address the need for expanding the presence of the Lisp family of Psychiatry and Behavioral programming languages in bioinformatics and computational biology research. Sciences, University of Miami Languages of this family, like Common Lisp, Scheme, or Clojure, facilitate the Miller School of Medicine, 1120 NW 14th ST, Miami, FL, USA creation of powerful and flexible software models that are required for complex 33136 and rapidly evolving domains like biology. We will point out several important key Full list of author information is features that distinguish languages of the Lisp family from other programming available at the end of the article languages and we will explain how these features can aid researchers in becoming more productive and creating better code. We will also show how these features make these languages ideal tools for artificial intelligence and machine learning applications. We will specifically stress the advantages of domain-specific languages (DSL): languages which are specialized to a particular area and thus not only facilitate easier research problem formulation, but also aid in the establishment of standards and best programming practices as applied to the specific research field at hand. DSLs are particularly easy to build in Common Lisp, the most comprehensive Lisp dialect, which is commonly referred to as the “programmable programming language.” We are convinced that Lisp grants programmers unprecedented power to build increasingly sophisticated artificial intelligence systems that may ultimately transform machine learning and AI research in bioinformatics and computational biology.
    [Show full text]
  • 7. Control Flow First?
    Copyright (C) R.A. van Engelen, FSU Department of Computer Science, 2000-2004 Ordering Program Execution: What is Done 7. Control Flow First? Overview Categories for specifying ordering in programming languages: Expressions 1. Sequencing: the execution of statements and evaluation of Evaluation order expressions is usually in the order in which they appear in a Assignments program text Structured and unstructured flow constructs 2. Selection (or alternation): a run-time condition determines the Goto's choice among two or more statements or expressions Sequencing 3. Iteration: a statement is repeated a number of times or until a Selection run-time condition is met Iteration and iterators 4. Procedural abstraction: subroutines encapsulate collections of Recursion statements and subroutine calls can be treated as single Nondeterminacy statements 5. Recursion: subroutines which call themselves directly or indirectly to solve a problem, where the problem is typically defined in terms of simpler versions of itself 6. Concurrency: two or more program fragments executed in parallel, either on separate processors or interleaved on a single processor Note: Study Chapter 6 of the textbook except Section 7. Nondeterminacy: the execution order among alternative 6.6.2. constructs is deliberately left unspecified, indicating that any alternative will lead to a correct result Expression Syntax Expression Evaluation Ordering: Precedence An expression consists of and Associativity An atomic object, e.g. number or variable The use of infix, prefix, and postfix notation leads to ambiguity An operator applied to a collection of operands (or as to what is an operand of what arguments) which are expressions Fortran example: a+b*c**d**e/f Common syntactic forms for operators: The choice among alternative evaluation orders depends on Function call notation, e.g.
    [Show full text]
  • Structured Programming - Retrospect and Prospect Harlan D
    University of Tennessee, Knoxville Trace: Tennessee Research and Creative Exchange The aH rlan D. Mills Collection Science Alliance 11-1986 Structured Programming - Retrospect and Prospect Harlan D. Mills Follow this and additional works at: http://trace.tennessee.edu/utk_harlan Part of the Software Engineering Commons Recommended Citation Mills, Harlan D., "Structured Programming - Retrospect and Prospect" (1986). The Harlan D. Mills Collection. http://trace.tennessee.edu/utk_harlan/20 This Article is brought to you for free and open access by the Science Alliance at Trace: Tennessee Research and Creative Exchange. It has been accepted for inclusion in The aH rlan D. Mills Collection by an authorized administrator of Trace: Tennessee Research and Creative Exchange. For more information, please contact [email protected]. mJNDAMNTL9JNNEPTS IN SOFTWARE ENGINEERING Structured Programming. Retrospect and Prospect Harlan D. Mills, IBM Corp. Stnuctured program- 2 ' dsger W. Dijkstra's 1969 "Struc- mon wisdom that no sizable program Ste red .tured Programming" articlel could be error-free. After, many sizable ming haxs changed ho w precipitated a decade of intense programs have run a year or more with no programs are written focus on programming techniques that has errors detected. since its introduction fundamentally alteredhumanexpectations and achievements in software devel- Impact of structured programming. two decades ago. opment. These expectations and achievements are However, it still has a Before this decade of intense focus, pro- not universal because of the inertia of lot of potentialfor gramming was regarded as a private, industrial practices. But they are well- lot of fo puzzle-solving activity ofwriting computer enough established to herald fundamental more change.
    [Show full text]
  • INTRODUCTION to PL/1 PL/I Is a Structured Language to Develop Systems and Applications Programs (Both Business and Scientific)
    INTRODUCTION TO PL/1 PL/I is a structured language to develop systems and applications programs (both business and scientific). Significant features : v Allows Free format v Regards a program as a continuous stream of data v Supports subprogram and functions v Uses defaults 1 Created by Sanjay Sinha Building blocks of PL/I : v Made up of a series of subprograms and called Procedure v Program is structured into a MAIN program and subprograms. v Subprograms include subroutine and functions. Every PL/I program consists of : v At least one Procedure v Blocks v Group 2 Created by Sanjay Sinha v There must be one and only one MAIN procedure to every program, the MAIN procedure statement consists of : v Label v The statement ‘PROCEDURE OPTIONS (MAIN)’ v A semicolon to mark the end of the statement. Coding a Program : 1. Comment line(s) begins with /* and ends with */. Although comments may be embedded within a PL/I statements , but it is recommended to keep the embedded comments minimum. 3 Created by Sanjay Sinha 2. The first PL/I statement in the program is the PROCEDURE statement : AVERAGE : PROC[EDURE] OPTIONS(MAIN); AVERAGE -- it is the name of the program(label) and compulsory and marks the beginning of a program. OPTIONS(MAIN) -- compulsory for main programs and if not specified , then the program is a subroutine. A PL/I program is compiled by PL/I compiler and converted into the binary , Object program file for link editing . 4 Created by Sanjay Sinha Advantages of PL/I are : 1. Better integration of sets of programs covering several applications.
    [Show full text]
  • Chemical Formula
    Chemical Formula Jean Brainard, Ph.D. Say Thanks to the Authors Click http://www.ck12.org/saythanks (No sign in required) AUTHOR Jean Brainard, Ph.D. To access a customizable version of this book, as well as other interactive content, visit www.ck12.org CK-12 Foundation is a non-profit organization with a mission to reduce the cost of textbook materials for the K-12 market both in the U.S. and worldwide. Using an open-content, web-based collaborative model termed the FlexBook®, CK-12 intends to pioneer the generation and distribution of high-quality educational content that will serve both as core text as well as provide an adaptive environment for learning, powered through the FlexBook Platform®. Copyright © 2013 CK-12 Foundation, www.ck12.org The names “CK-12” and “CK12” and associated logos and the terms “FlexBook®” and “FlexBook Platform®” (collectively “CK-12 Marks”) are trademarks and service marks of CK-12 Foundation and are protected by federal, state, and international laws. Any form of reproduction of this book in any format or medium, in whole or in sections must include the referral attribution link http://www.ck12.org/saythanks (placed in a visible location) in addition to the following terms. Except as otherwise noted, all CK-12 Content (including CK-12 Curriculum Material) is made available to Users in accordance with the Creative Commons Attribution-Non-Commercial 3.0 Unported (CC BY-NC 3.0) License (http://creativecommons.org/ licenses/by-nc/3.0/), as amended and updated by Creative Com- mons from time to time (the “CC License”), which is incorporated herein by this reference.
    [Show full text]
  • Domain and Range of a Function
    4.1 Domain and Range of a Function How can you fi nd the domain and range of STATES a function? STANDARDS MA.8.A.1.1 MA.8.A.1.5 1 ACTIVITY: The Domain and Range of a Function Work with a partner. The table shows the number of adult and child tickets sold for a school concert. Input Number of Adult Tickets, x 01234 Output Number of Child Tickets, y 86420 The variables x and y are related by the linear equation 4x + 2y = 16. a. Write the equation in function form by solving for y. b. The domain of a function is the set of all input values. Find the domain of the function. Domain = Why is x = 5 not in the domain of the function? 1 Why is x = — not in the domain of the function? 2 c. The range of a function is the set of all output values. Find the range of the function. Range = d. Functions can be described in many ways. ● by an equation ● by an input-output table y 9 ● in words 8 ● by a graph 7 6 ● as a set of ordered pairs 5 4 Use the graph to write the function 3 as a set of ordered pairs. 2 1 , , ( , ) ( , ) 0 09321 45 876 x ( , ) , ( , ) , ( , ) 148 Chapter 4 Functions 2 ACTIVITY: Finding Domains and Ranges Work with a partner. ● Copy and complete each input-output table. ● Find the domain and range of the function represented by the table. 1 a. y = −3x + 4 b. y = — x − 6 2 x −2 −10 1 2 x 01234 y y c.
    [Show full text]
  • Adaptive Lower Bound for Testing Monotonicity on the Line
    Adaptive Lower Bound for Testing Monotonicity on the Line Aleksandrs Belovs∗ Abstract In the property testing model, the task is to distinguish objects possessing some property from the objects that are far from it. One of such properties is monotonicity, when the objects are functions from one poset to another. This is an active area of research. In this paper we study query complexity of ε-testing monotonicity of a function f :[n] → [r]. All our lower bounds are for adaptive two-sided testers. log r • We prove a nearly tight lower bound for this problem in terms of r. TheboundisΩ log log r when ε =1/2. No previous satisfactory lower bound in terms of r was known. • We completely characterise query complexity of this problem in terms of n for smaller values of ε. The complexity is Θ ε−1 log(εn) . Apart from giving the lower bound, this improves on the best known upper bound. Finally, we give an alternative proof of the Ω(ε−1d log n−ε−1 log ε−1) lower bound for testing monotonicity on the hypergrid [n]d due to Chakrabarty and Seshadhri (RANDOM’13). 1 Introduction The framework of property testing was formulated by Rubinfeld and Sudan [19] and Goldreich et al. [16]. A property testing problem is specified by a property P, which is a class of functions mapping some finite set D into some finite set R, and proximity parameter ε, which is a real number between 0 and 1. An ε-tester is a bounded-error randomised query algorithm which, given oracle access to a function f : D → R, distinguishes between the case when f belongs to P and the case when f is ε-far from P.
    [Show full text]
  • Defining Computer Program Parts Under Learned Hand's Abstractions Test in Software Copyright Infringement Cases
    Michigan Law Review Volume 91 Issue 3 1992 Defining Computer Program Parts Under Learned Hand's Abstractions Test in Software Copyright Infringement Cases John W.L. Ogilive University of Michigan Law School Follow this and additional works at: https://repository.law.umich.edu/mlr Part of the Computer Law Commons, Intellectual Property Law Commons, and the Judges Commons Recommended Citation John W. Ogilive, Defining Computer Program Parts Under Learned Hand's Abstractions Test in Software Copyright Infringement Cases, 91 MICH. L. REV. 526 (1992). Available at: https://repository.law.umich.edu/mlr/vol91/iss3/5 This Note is brought to you for free and open access by the Michigan Law Review at University of Michigan Law School Scholarship Repository. It has been accepted for inclusion in Michigan Law Review by an authorized editor of University of Michigan Law School Scholarship Repository. For more information, please contact [email protected]. NOTE Defining Computer Program Parts Under Learned Hand's Abstractions Test in Software Copyright Infringement Cases John W.L. Ogilvie INTRODUCTION Although computer programs enjoy copyright protection as pro­ tectable "literary works" under the federal copyright statute, 1 the case law governing software infringement is confused, inconsistent, and even unintelligible to those who must interpret it.2 A computer pro­ gram is often viewed as a collection of different parts, just as a book or play is seen as an amalgamation of plot, characters, and other familiar parts. However, different courts recognize vastly different computer program parts for copyright infringement purposes. 3 Much of the dis­ array in software copyright law stems from mutually incompatible and conclusory program part definitions that bear no relation to how a computer program is actually designed and created.
    [Show full text]
  • Presentation on Key Ideas of Elementary Mathematics
    Key Ideas of Elementary Mathematics Sybilla Beckmann Department of Mathematics University of Georgia Lesson Study Conference, May 2007 Sybilla Beckmann (University of Georgia) Key Ideas of Elementary Mathematics 1/52 US curricula are unfocused A Splintered Vision, 1997 report based on the TIMSS curriculum analysis. US state math curriculum documents: “The planned coverage included so many topics that we cannot find a single, or even a few, major topics at any grade that are the focus of these curricular intentions. These official documents, individually or as a composite, are unfocused. They express policies, goals, and intended content coverage in mathematics and the sciences with little emphasis on particular, strategic topics.” Sybilla Beckmann (University of Georgia) Key Ideas of Elementary Mathematics 2/52 US instruction is unfocused From A Splintered Vision: “US eighth grade mathematics and science teachers typically teach far more topic areas than their counterparts in Germany and Japan.” “The five surveyed topic areas covered most extensively by US eighth grade mathematics teachers accounted for less than half of their year’s instructional periods. In contrast, the five most extensively covered Japanese eighth grade topic areas accounted for almost 75 percent of their year’s instructional periods.” Sybilla Beckmann (University of Georgia) Key Ideas of Elementary Mathematics 3/52 Breaking the “mile-wide-inch-deep” habit Every mathematical skill and concept has some useful application has some connection to other concepts and skills So what mathematics should we focus on? Sybilla Beckmann (University of Georgia) Key Ideas of Elementary Mathematics 4/52 What focus? Statistics and probability are increasingly important in science and in the modern workplace.
    [Show full text]
  • Edsger W. Dijkstra: a Commemoration
    Edsger W. Dijkstra: a Commemoration Krzysztof R. Apt1 and Tony Hoare2 (editors) 1 CWI, Amsterdam, The Netherlands and MIMUW, University of Warsaw, Poland 2 Department of Computer Science and Technology, University of Cambridge and Microsoft Research Ltd, Cambridge, UK Abstract This article is a multiauthored portrait of Edsger Wybe Dijkstra that consists of testimo- nials written by several friends, colleagues, and students of his. It provides unique insights into his personality, working style and habits, and his influence on other computer scientists, as a researcher, teacher, and mentor. Contents Preface 3 Tony Hoare 4 Donald Knuth 9 Christian Lengauer 11 K. Mani Chandy 13 Eric C.R. Hehner 15 Mark Scheevel 17 Krzysztof R. Apt 18 arXiv:2104.03392v1 [cs.GL] 7 Apr 2021 Niklaus Wirth 20 Lex Bijlsma 23 Manfred Broy 24 David Gries 26 Ted Herman 28 Alain J. Martin 29 J Strother Moore 31 Vladimir Lifschitz 33 Wim H. Hesselink 34 1 Hamilton Richards 36 Ken Calvert 38 David Naumann 40 David Turner 42 J.R. Rao 44 Jayadev Misra 47 Rajeev Joshi 50 Maarten van Emden 52 Two Tuesday Afternoon Clubs 54 2 Preface Edsger Dijkstra was perhaps the best known, and certainly the most discussed, computer scientist of the seventies and eighties. We both knew Dijkstra |though each of us in different ways| and we both were aware that his influence on computer science was not limited to his pioneering software projects and research articles. He interacted with his colleagues by way of numerous discussions, extensive letter correspondence, and hundreds of so-called EWD reports that he used to send to a select group of researchers.
    [Show full text]