by Joseph Weizenbaum Since the dawn of the age of computers, people have cursed the difficulty of programming. Over and over again we encounter the suggestion that we should be able to communicate to a computer in natural language what we want it to do. Unfortunately, such advice rests upon a misconception of both the computer and its task. The computer might not be stupid, but it is stubborn. That is, the computer does what all the details of its pro gram command it to do, i. e. , what the programmer "tells" it to do. And this can be quite different from what the programmer intended. The…mehr
by Joseph Weizenbaum Since the dawn of the age of computers, people have cursed the difficulty of programming. Over and over again we encounter the suggestion that we should be able to communicate to a computer in natural language what we want it to do. Unfortunately, such advice rests upon a misconception of both the computer and its task. The computer might not be stupid, but it is stubborn. That is, the computer does what all the details of its pro gram command it to do, i. e. , what the programmer "tells" it to do. And this can be quite different from what the programmer intended. The misun derstanding with respect to tasks posed to the computer arises from the failure to recognize that such tasks can scarcely be expressed in natural language, if indeed at all. For example, can we practice music, chemistry or mathematics without their respective special symbolic languages? Yet books about computers and programming languages can be written more or less reasonably, even if theyare not quite poetic or lyrical. This book can serve as an example of this art and as a model for anyone at tempting to teach inherently difficult subject matters to others. Klagenfurt, April 1995 Preface Striving to make learning to program easier, this book addresses primarily students beginning a computer science major. For our program examples, we employ a new, elegant programming language, Modula-3.
Die Herstellerinformationen sind derzeit nicht verfügbar.
Inhaltsangabe
1 What is programming?.- 1.1 An informal introduction.- 1.2 The von Neumann Computer.- 1.3 Rigid thought structures.- 1.4 Programming in the small.- 1.5 Levels of programming.- 1.6 Programming and Computer science.- 2 Metalanguages.- 2.1 Definition of formal languages.- 2.2 Digits and numbers.- 2.3 Names.- 2.4 Arithmetic expressions.- 2.5 Extension for Modula-3 syntax.- 3 The structure of programs.- 3.1 Structuring.- 3.2 Language environment.- 3.3 The statics and dynamics of a program.- 3.4 Structure of Modula-3 programs.- 4 Predefined data types.- 4.1 Integers.- 4.2 Logical type.- 4.3 Characters.- 4.4 Texts.- 4.5 Floating-point numbers.- 5 Statements.- 5.1 The assignment.- 5.2 Structured Statements.- 5.3 Sequence.- 5.4 Branches.- 5.5 Loops.- 6 User-defined simple types.- 6.1 Enumeration.- 6.2 Subranges.- 7 Expressions and declarations.- 7.1 Expressions.- 7.2 Declarations.- 7.3 Equivalence of types.- 7.4 Subtypes.- 7.5 Assignment compatibility.- 7.6 Expression compatibility.- 8 Composite static types.- 8.1 Arrays.- 8.2 Records.- 8.3 Sets.- 8.4 Comparison of arrays, records and sets.- 8.5 Packed data types.- 9 Structuring algorithms.- 9.1 Block structure.- 9.2 Procedures and functions.- 9.3 Modes of parameter passing.- 9.4 Identifying the procedures.- 9.5 Name, type and default value of a parameter.- 9.6 Eval statement.- 9.7 Procedure types.- 10 Modules.- 10.1 Structure.- 10.2 Using modules.- 10.3 An example with graphic elements.- 10.4 Modularization.- 11 Dynamic data structures.- 11.1 Dynamism in static data structures.- 11.2 Dynamic data in Modula-3.- 11.3 Subtypes.- 11.4 Abstract and encapsulated data types.- 11.5 Dynamic structures.- 12 Recursion.- 12.1 Recursive algorithms.- 12.2 Recursive data structures.- 13 Objects.- 13.1 Object-oriented modeling.- 13.2 Object-oriented programming.- 13.3 Object types in Modula-3.- 13.4 Encapsulation of object types.- 14 Persistent data structures.- 14.1 Files.- 14.2 Files in Modula-3.- 14.3 Persistent variables.- 15 Exception handling.- 15.1 Exceptions in a program.- 15.2 Exception handling in Modula-3.- 15.3 Delaying exception handling.- 15.4 Strategies for exception handling.- 16 Parallel programming.- 16.1 Motivation for parallelism.- 16.2 Parallel programs.- 16.3 Threads in Modula-3.- 16.4 Shared variables.- 16.5 Message passing.- A small database.- B Language Definition.- C Library interfaces.- D Modula-3 language environments.
1 What is programming?.- 1.1 An informal introduction.- 1.2 The von Neumann Computer.- 1.3 Rigid thought structures.- 1.4 Programming in the small.- 1.5 Levels of programming.- 1.6 Programming and Computer science.- 2 Metalanguages.- 2.1 Definition of formal languages.- 2.2 Digits and numbers.- 2.3 Names.- 2.4 Arithmetic expressions.- 2.5 Extension for Modula-3 syntax.- 3 The structure of programs.- 3.1 Structuring.- 3.2 Language environment.- 3.3 The statics and dynamics of a program.- 3.4 Structure of Modula-3 programs.- 4 Predefined data types.- 4.1 Integers.- 4.2 Logical type.- 4.3 Characters.- 4.4 Texts.- 4.5 Floating-point numbers.- 5 Statements.- 5.1 The assignment.- 5.2 Structured Statements.- 5.3 Sequence.- 5.4 Branches.- 5.5 Loops.- 6 User-defined simple types.- 6.1 Enumeration.- 6.2 Subranges.- 7 Expressions and declarations.- 7.1 Expressions.- 7.2 Declarations.- 7.3 Equivalence of types.- 7.4 Subtypes.- 7.5 Assignment compatibility.- 7.6 Expression compatibility.- 8 Composite static types.- 8.1 Arrays.- 8.2 Records.- 8.3 Sets.- 8.4 Comparison of arrays, records and sets.- 8.5 Packed data types.- 9 Structuring algorithms.- 9.1 Block structure.- 9.2 Procedures and functions.- 9.3 Modes of parameter passing.- 9.4 Identifying the procedures.- 9.5 Name, type and default value of a parameter.- 9.6 Eval statement.- 9.7 Procedure types.- 10 Modules.- 10.1 Structure.- 10.2 Using modules.- 10.3 An example with graphic elements.- 10.4 Modularization.- 11 Dynamic data structures.- 11.1 Dynamism in static data structures.- 11.2 Dynamic data in Modula-3.- 11.3 Subtypes.- 11.4 Abstract and encapsulated data types.- 11.5 Dynamic structures.- 12 Recursion.- 12.1 Recursive algorithms.- 12.2 Recursive data structures.- 13 Objects.- 13.1 Object-oriented modeling.- 13.2 Object-oriented programming.- 13.3 Object types in Modula-3.- 13.4 Encapsulation of object types.- 14 Persistent data structures.- 14.1 Files.- 14.2 Files in Modula-3.- 14.3 Persistent variables.- 15 Exception handling.- 15.1 Exceptions in a program.- 15.2 Exception handling in Modula-3.- 15.3 Delaying exception handling.- 15.4 Strategies for exception handling.- 16 Parallel programming.- 16.1 Motivation for parallelism.- 16.2 Parallel programs.- 16.3 Threads in Modula-3.- 16.4 Shared variables.- 16.5 Message passing.- A small database.- B Language Definition.- C Library interfaces.- D Modula-3 language environments.
Es gelten unsere Allgemeinen Geschäftsbedingungen: www.buecher.de/agb
Impressum
www.buecher.de ist ein Internetauftritt der buecher.de internetstores GmbH
Geschäftsführung: Monica Sawhney | Roland Kölbl | Günter Hilger
Sitz der Gesellschaft: Batheyer Straße 115 - 117, 58099 Hagen
Postanschrift: Bürgermeister-Wegele-Str. 12, 86167 Augsburg
Amtsgericht Hagen HRB 13257
Steuernummer: 321/5800/1497
USt-IdNr: DE450055826