E-Book, Englisch, 248 Seiten
Turner Computational Artifacts
1. Auflage 2018
ISBN: 978-3-662-55565-1
Verlag: Springer
Format: PDF
Kopierschutz: 1 - PDF Watermark
Towards a Philosophy of Computer Science
E-Book, Englisch, 248 Seiten
ISBN: 978-3-662-55565-1
Verlag: Springer
Format: PDF
Kopierschutz: 1 - PDF Watermark
The philosophy of computer science is concerned with issues that arise from reflection upon the nature and practice of the discipline of computer science. This book presents an approach to the subject that is centered upon the notion of computational artefact. It provides an analysis of the things of computer science as technical artefacts. Seeing them in this way enables the application of the analytical tools and concepts from the philosophy of technology to the technical artefacts of computer science. With this conceptual framework the author examines some of the central philosophical concerns of computer science including the foundations of semantics, the logical role of specification, the nature of correctness, computational ontology and abstraction, formal methods, computational epistemology and explanation, the methodology of computer science, and the nature of computation. The book will be of value to philosophers and computer scientists.
Raymond Turner is an emeritus professor of the School of Computer Science and Electronic Engineering of the University of Essex. His research interests include theoretical computer science, mathematical logic, philosophical logic, philosophy of mathematics, and the philosophy of computer science.
Autoren/Hrsg.
Weitere Infos & Material
1;Preface;5
2;Contents;8
3;Part I INTRODUCTION;15
3.1;Chapter 1: COMPUTER SCIENCE;18
3.1.1;1.1 Machines;18
3.1.2;1.2 Theoretical Computer Science;20
3.1.3;1.3 Programs and Programming;21
3.1.4;1.4 Computational Thinking;23
3.1.5;1.5 The Discipline;24
3.2;Chapter 2: TOWARDS A PHILOSOPHY OF COMPUTER SCIENCE;25
3.2.1;2.1 Semantics;25
3.2.2;2.2 Ontology;27
3.2.3;2.3 Methodology;28
3.2.4;2.4 Epistemology;29
3.2.5;2.5 Conclusion;30
4;Part II ONTOLOGY;32
4.1;Chapter 3: COMPUTATIONAL ARTIFACTS;35
4.1.1;3.1 Function and Structure;35
4.1.2;3.2 Design and Manufacture;36
4.1.3;3.3 Theories of Function;37
4.1.4;3.4 Computational Artifacts;38
4.2;Chapter 4: LOGIC MACHINES AS TECHNICAL ARTIFACTS;40
4.2.1;4.1 Function;40
4.2.2;4.2 Structure;42
4.2.3;4.3 Design;45
4.2.4;4.4 Correctness;46
4.2.5;4.5 Implementation;46
4.2.6;4.6 Logic Machines as Technical Artifacts;47
4.2.7;4.7 The Abstract-Concrete Interface;48
4.2.8;4.8 The von Neumann Computer as Artifact;48
4.2.9;4.9 High-Level Functional Notation;49
4.2.10;4.10 Conclusion;50
4.3;Chapter 5: THE ONTOLOGY OF PROGRAMS;51
4.3.1;5.1 The Functional Specification of Programs;52
4.3.2;5.2 Structure;56
4.3.3;5.3 Implementation;57
4.3.4;5.4 The Symbolic and the Physical;58
4.3.5;5.6 Programs as Technical Artifacts;60
4.4;Chapter 6: SOFTWARE SYSTEMS AS TECHNICAL ARTIFACTS;61
4.4.1;6.1 Requirements;61
4.4.2;6.2 Structure and Design;62
4.4.3;6.3 Implementation;63
4.4.4;6.4 Software Systems as Artifacts;64
4.4.5;6.5 Verification, Validation, and Malfunction;65
4.4.6;6.6 Conclusion;65
5;Part III SEMANTICS;66
5.1;Chapter 7: THE LANGUAGES OF COMPUTER SCIENCE;69
5.1.1;7.1 Varieties of Languages;69
5.1.2;7.2 Formal Languages;71
5.2;Chapter 8: PROGRAMMING LANGUAGES;73
5.2.1;8.1 Imperative Languages;74
5.2.2;8.2 Functional Languages;77
5.2.3;8.3 Logical Languages;79
5.2.4;8.4 Object Orientation;80
5.2.5;8.5 Concurrency and Nondeterminism;81
5.2.6;8.6 Theories of Representation and Computation;82
5.3;Chapter 9: SEMANTIC THEORIES;83
5.3.1;9.1 The Roles of Semantics;83
5.3.2;9.2 Normativity;85
5.3.3;9.3 Compositionality;86
5.3.4;9.4 Rigor;88
5.3.5;9.5 Conclusion;89
5.4;Chapter 10: FORMAL SEMANTICS;90
5.4.1;10.1 Vernacular Semantics;90
5.4.2;10.2 Operational Semantics;91
5.4.3;10.3 Denotational Semantics;95
5.4.4;10.4 Definitional Priority;96
5.4.5;10.5 Game-Theoretic Semantics;98
5.4.6;10.6 Programming Languages as Mathematical Theories;98
5.5;Chapter 11: SEMANTICS AND IMPLEMENTATION;100
5.5.1;11.1 Compilers, Interpreters, and Virtual Machines;100
5.5.2;11.2 Compilation and Semantic Interpretation;103
5.5.3;11.3 Semantics and Interpretation;104
5.5.4;11.4 Programming Languages as Technical Artifacts;108
5.6;Chapter 12: SPECIFICATION LANGUAGES;109
5.6.1;12.1 Typed Predicate Logic;109
5.6.2;12.2 The Logic of TPL;111
5.6.3;12.3 Definitions;112
5.6.4;12.4 Z and Set Theory;113
5.6.5;12.5 VDM and Three-Valued Logic;114
5.6.6;12.6 Types, Not Sets;115
5.6.7;12.7 Expressive Power;116
6;Part IV METHODOLOGY;117
6.1;Chapter 13: SOFTWARE SYSTEM METHODOLOGY;120
6.1.1;13.1 The Waterfall Method;121
6.1.2;13.2 The Spiral Method;121
6.1.3;13.3 The Agile Method;121
6.1.4;13.4 Methodology;122
6.2;Chapter 14: SPECIFICATION;124
6.2.1;14.1 Requirements Analysis as Modeling;124
6.2.2;14.2 Definition;125
6.2.3;14.3 Intention;126
6.2.4;14.4 Intentional Stance;127
6.2.5;14.5 Precision and Information;129
6.3;Chapter 15: THE PHILOSOPHY OF DESIGN;131
6.3.1;15.1 Correctness;132
6.3.2;15.2 Simplicity;132
6.3.3;15.3 Modularity;133
6.3.4;15.4 Formal Methods;133
6.4;Chapter 16: SIMPLICITY;135
6.4.1;16.1 Elegance;136
6.4.2;16.2 Parsimony;139
6.4.3;16.3 Justification;140
6.5;Chapter 17: MODULARITY;142
6.5.1;17.1 Encapsulation;143
6.5.2;17.2 Bundling;144
6.5.3;17.3 Information Hiding;145
6.5.4;17.4 Independence;146
6.5.5;17.5 Single Function;147
6.5.6;17.6 Cohesion and Coupling;148
6.5.7;17.7 Modularization;149
6.6;Chapter 18: FORMAL METHODS;151
6.6.1;18.1 Formal Specification;152
6.6.2;18.2 System Properties;153
6.6.3;18.3 Programming;153
6.6.4;18.4 Module Correctness;154
6.6.5;18.5 Transformational Programming;157
6.6.6;18.6 Constructive Programming;157
6.6.7;18.7 Limitations of Formal Methods;158
6.6.8;18.8 Programming as a Mathematical Activity;159
6.7;Chapter 19: THE DESIGN OF PROGRAMMING LANGUAGES;161
6.7.1;19.1 Simplicity;161
6.7.2;19.2 Elegance via Uniformity;162
6.7.3;19.3 Parsimony;164
6.7.4;19.4 The Defense of Simplicity;165
6.7.5;19.5 Expressive Power;165
6.8;Chapter 20: SEMANTICS AND DESIGN;168
6.8.1;20.1 The Principle of Correspondence;169
6.8.2;20.2 Type Completeness;171
6.8.3;20.3 The Principle of Abstraction;172
6.8.4;20.4 Programming Languages as Mathematical Theories;173
6.9;Chapter 21: DATA ABSTRACTION;174
6.9.1;21.1 The Traditional Account of Abstraction;175
6.9.2;21.2 The Way of Abstraction;176
6.9.3;21.3 Russell's Paradox;178
6.9.4;21.4 Data Abstraction;178
6.9.5;21.5 Principles of Abstraction;180
6.9.6;21.6 Implementation as a Basis for Abstraction;181
6.9.7;21.7 A Theory of Computational Abstraction;182
7;Part V EPISTEMOLOGY;183
7.1;Chapter 22: COMPUTABILITY;186
7.1.1;22.1 Mathematical Modeling;186
7.1.2;22.2 The Programming Language Approach;187
7.1.3;22.3 Invariance;188
7.1.4;22.4 The Machine Approach;189
7.1.5;22.5 Semantics and Turing Machines;189
7.1.6;22.6 Turing Machines as Technical Artifacts;191
7.1.7;22.7 Machines and Rules;191
7.2;Chapter 23: FEASIBLE COMPUTATIONS;193
7.2.1;23.1 Computational Complexity Theory;193
7.2.2;23.2 The Cobham-Edmonds Thesis;194
7.2.3;23.3 Quantum Computing and Feasibility;195
7.3;Chapter 24: VARIETIES OF CORRECTNESS;196
7.3.1;24.1 Digital Circuits;197
7.3.2;24.2 Programs;198
7.3.3;24.3 Software Systems;199
7.4;Chapter 25: PROGRAM CORRECTNESS;200
7.4.1;25.1 The Mathematical Challenge;200
7.4.2;25.2 The Mechanical Challenge;202
7.4.3;25.3 The Pragmatic Challenge;204
7.4.4;25.4 The Scientific Challenge;205
7.4.5;25.5 Proof and Principles of Program Design;206
7.5;Chapter 26: TYPES AND CORRECTNESS;208
7.5.1;26.1 Type Inference;209
7.5.2;26.2 Semantics;210
7.5.3;26.3 Implementation;211
7.5.4;26.4 Correctness;212
7.6;Chapter 27: THE SIMPLE MAPPING ACCOUNT;214
7.6.1;27.1 The Correctness of Electronic Devices;214
7.6.2;27.2 Simple Mapping Account;215
7.6.3;27.3 The Mathematical Case;217
7.6.4;27.4 Good and Bad Programs;218
7.7;Chapter 28: COMPUTATIONAL EXPLANATION;220
7.7.1;28.1 Technological Explanation;220
7.7.2;28.2 Mathematical Explanation;222
7.7.3;28.3 Structural Explanation;224
7.7.4;28.4 Conclusion;225
7.8;Chapter 29: INTENTION AND CORRECTNESS;226
7.8.1;29.1 The Standard Account;227
7.8.2;29.2 Definition and Intention;227
7.9;Chapter 30: RULE FOLLOWING AND CORRECTNESS;229
7.9.1;30.1 Computing and Programming;229
7.9.2;30.2 Rule Following;230
7.9.3;30.3 The Skeptical Paradox;231
7.9.4;30.4 The Skeptical Solution;232
7.9.5;30.5 Rules and Customs;232
7.9.6;30.6 Rule Following and Computer Science;233
8;Nomenclature;234
9;References;236
10;Index;246




