Three Computer Cultures: Computer Technology, Computer Mathematics, and Computer Science

Publisher Summary As scientific and technological tools, computers have proved so useful that computer science is widely regarded as a technological discipline whose purpose is to create problem-solving tools for other disciplines. Within computer science there is a group of theoreticians who build mathematical models of computational processes. Yet computer science is neither a branch of technology nor a branch of mathematics. It involves a new way of thinking about computational schemes that is partly technological and partly mathematical but contains a unique ingredient that differs qualitatively from those of traditional disciplines. This chapter illustrates the special quality that distinguishes computer science from technology and mathematics by the means of examples from the emerging theory of programming languages. The computer revolution is comparable to the industrial revolution. Just as machines have reduced the physical drudgery of man, computers are reducing his mental drudgery. The central role played by “energy” in the industrial revolution is replaced in the computer revolution by “information.” This chapter focuses on technological and scientific programming languages and mathematical models related to computers.

[1]  John McCarthy,et al.  Towards a Mathematical Science of Computation , 1962, IFIP Congress.

[2]  Peter Wegner The Representation and Transformation of Functions , 1968 .

[3]  Allen Newell,et al.  An introduction to information processing language V , 1960, Commun. ACM.

[4]  P. J. Landin The Mechanical Evaluation of Expressions , 1964, Comput. J..

[5]  P. J. Landin,et al.  Correspondence between ALGOL 60 and Church's Lambda-notation , 1965, Commun. ACM.

[6]  Peter Naur Proof of Algorithms by General Snapshots , 1966 .

[7]  B. J. Mailloux,et al.  Report on the Algorithmic Language ALGOL 68 , 1969 .

[8]  John C. Reynolds,et al.  GEDANKEN—a simple typeless language based on the principle of completeness and the reference concept , 1970, Commun. ACM.

[9]  Victor H. Yngve COMIT as an IR language , 1962, CACM.

[10]  C. E. SHANNON,et al.  A mathematical theory of communication , 1948, MOCO.

[11]  A. Nico Habermann,et al.  Prevention of system deadlocks , 1969, CACM.

[12]  J. Rhodes,et al.  Algebraic theory of machines. I. Prime decomposition theorem for finite semigroups and machines , 1965 .

[13]  Friedrich L. Bauer,et al.  Revised report on the algorithm language ALGOL 60 , 1963, CACM.

[14]  Dean Hanawalt Vanderbilt Controlled information sharing in a computer utility , 1969 .

[15]  R. Narasimhan,et al.  Programming Languages and Computers: A Unified Metatheory , 1967, Adv. Comput..

[16]  J. G Laski Sets and other types , 1968 .

[17]  A. Church The calculi of lambda-conversion , 1941 .

[18]  Kristen Nygaard,et al.  SIMULA: an ALGOL-based simulation language , 1966, CACM.

[19]  Alan J. Perlis,et al.  The Synthesis of Algorithmic Systems , 1967, JACM.

[20]  John McCarthy,et al.  Correctness of a compiler for arithmetic expressions , 1966 .

[21]  Niklaus Wirth,et al.  EULER: a generalization of ALGOL, and its formal definition: Part II , 1965, CACM.

[22]  A. Turing On Computable Numbers, with an Application to the Entscheidungsproblem. , 1937 .

[23]  Jerome A. Feldman,et al.  Translator writing systems , 1968, Commun. ACM.

[24]  Robert T. Gregory,et al.  Floating-point arithmetic with 84-bit numbers , 1964, CACM.

[25]  D. W. Barron,et al.  The Main Features of CPL , 1963, Comput. J..

[26]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[27]  Arthur Evans PAL—a language designed for teaching programming linguistics , 1968, ACM '68.

[28]  P. Wegner Programming Languages, Information Structures, and Machine Organization. , 1968 .

[29]  C. A. R. Hoare,et al.  A contribution to the development of ALGOL , 1966, CACM.

[30]  Robert W. Floyd,et al.  A Note on Mathematical Induction on Phrase Structure Grammars , 1961, Inf. Control..

[31]  Joseph Weizenbaum Symmetric list processor , 1963, CACM.

[32]  Maurice V. Wilkes,et al.  The preparation of programs for an electronic digital computer , 1958 .