Afbeelding van de auteur.
11+ Werken 333 Leden 5 Besprekingen

Besprekingen

Engels (3)  Deens (2)  Alle talen (5)
Toon 5 van 5
Indeholder "Preface", "Acknowledgments", "M. Woodger: A History of WG2.3", "Part I: Viewpoints on Programming", " 1. E. W. Dijkstra: The humble programmer", " 2. J. N. Buxton: Software engineering", " 3. W. M. Turski: Software engineering-some principles and problems", " 4. C. A. R. Hoare: The engineering of software: a startling contradiction", " 5. M. M. Lehman: Programs, cities, students-limits to growth?", " 6. D. Gries: On structured programming", "Part II: The Concern for Program Correctness", " 7. E. W. Dijkstra: Correctness concerns and, among other things, why they are resented", " 8. C. A. R. Hoare: An axiomatic basis for computer programming", " 9. C. A. R. Hoare: Proof of a program: FIND", " 10. O.-J. Dahl: An approach to correctness proofs for semicoroutines", " 11. S. Owicki, D. Gries: An axiomatic proof technique for parallel programs", " 12. J. C. Reynolds: Programming with transition diagrams", " 13. E. W. Dijkstra: Guarded commands, nondeterminacy, and formal derivation of programs", " 14. J. Darlington, R. M. Burstall: A system which automatically improves programs", "Part III: Harnessing Parallelism", " 15. C. A. R. Hoare: Towards a theory of parallel programming", " 16. P. Brinch Hansen: Structured multiprogramming", " 17. C. A. R. Hoare: Monitors: an operating system structuring concept", " 18. P. Brinch Hansen: The programming language Concurrent Pascal", "Part IV: Data Types", " 19. C. A. R. Hoare: Proof of correctness of data representations", " 20. J. V. Guttag, J. J. Horning: The algebraic specification of abstract data types", " 21. J. C. Reynolds: User-defined types and procedural data structures as complementary approaches to data abstraction", "Part V: Software Development", " 22. N. Wirth: Program development by stepwise refinement", " 23. D. L. Parnas: On a "buzzword": hierarchical structure", " 24. D. L. Parnas: On the design and development of program families", " 25. B. Randell: System structure for software fault tolerance", " 26. D. T. Ross: Structured analysis (SA): a language for communicating ideas", "References ".

Mange tankevækkende artikler om programmering og modstand mod automatiserede hjælpeværktøjer.
 
Gemarkeerd
bnielsen | Jan 1, 2024 |
Indeholder "Edsger W. Dijkstra: Forword", "Preface", "Part 0. Why Use Logic? Why Prove Programs Correct?", "Part I. Propositions and Predicates", "Chapter 1. Propositions", " 1.1. Fully Parenthesized Propositions", " 1.2. Evaluation of Constant Propositions", " 1.3. Evaluation of Propositions in a State", " 1.4. Precedence Rules for Operators", " 1.5. Tautologies", " 1.6. Propositions as Sets of States", " 1.7. Transforming English to Propositional Form", "Chapter 2. Reasoning using Equivalence Transformations", " 2.1. The Laws of Equivalence", " 2.2. The Rules of Substitution and Transitivity", " 2.3. A Formal System of Axioms and Inference Rules", "Chapter 3. A Natural Deduction System", " 3.1. Introduction to Deductive Proofs", " 3.2. Inference Rules", " 3.3. Proofs and Subproofs", " 3.4. Adding Flexibility to the Natural Deduction System", " 3.5. Developing Natural Deduction System Proofs", "Chapter 4. Predicates", " 4.1. Extending the Range of a State", " 4.2. Quantification", " 4.3. Free and Bound Identifiers", " 4.4. Textual Substitution", " 4.5. Quantification Over Other Ranges", " 4.6. Some Theorems About Textual Substitution and States", "Chapter 5. Notations and Conventions for Arrays", " 5.1. One-dimensional Arrays as Functions", " 5.2. Array Sections and Pictures", " 5.3. Handling Arrays of Arrays of", "Chapter 6. Using Assertions to Document Programs", " 6.1. Program Specifications", " 6.2. Representing Initial and Final Values of Variables", " 6.3. Proof Outlines", "Part II. The Semantics of a Small Language", "Chapter 7. The Predicate Transformer wp", "Chapter 8. The Commands skip, abort and Composition", "Chapter 9. The Assignment Command", " 9.1. Assignment to Simple Variables", " 9.2. Multiple Assignment to Simple Variables", " 9.3. Assignment to an Array Element", " 9.4. The General Multiple Assignment Command", "Chapter 10. The Alternative Command", "Chapter 11. The Iterative Command", "Chapter 12. Procedure Call", " 12.1. Calls with Value and Result Parameters", " 12.2. Two Theorems Concerning Procedure Call", " 12.2. Using Var Parameters", " 12.3. Allowing Value Parameters in the Postcondition", "Part III. The Development of Programs", "Chapter 13. Introduction", "Chapter 14. Programming as a Goal-Oriented Activity", "Chapter 15. Developing Loops from Invariants and Bounds", " 15.1. Developing the Guard First", " 15.2. Making Progress Towards Termination", "Chapter 16. Developing Invariants", " 16.1. The Balloon Theory", " 16.2. Deleting a Conjunct", " 16.3. Replacing a Constant By a Variable", " 16.4. Enlarging the Range of a Variable", " 16.5. Combining Pre-and Postconditions", "Chapter 17. Notes on Bound Functions", "Chapter 18. Using Iteration Instead of Recursion", " 18.1. Solving Simpler Problems First", " 18.2. Divide and Conquer", " 18.3. Traversing Binary Trees", "Chapter 19. Efficiency Considerations", " 19.1. Restricting Nondeterminism", " 19.2. Taking an Assertion out of a Loop", " 19.3. Changing a Representation", "Chapter 20. Two Larger Examples of Program Development", " 20.1. Right-justifying Lines of Text", " 20.2. The Longest Upsequence", "Chapter 21. Inverting Programs", "Chapter 22. Notes on Documentation", " 22.1. Indentation", " 22.2. Definitions and Declarations of Variables", " 22.3. Writing Programs in Other Languages", "Chapter 23. Historical Notes", " 23.1. A Brief History of Programming Methodology", " 23.2. The Problems Used in the Book", "Appendix I. Backus-Naur Form", "Appendix 2. Sets, Sequences, Integers and Real Numbers", "Appendix 3. Relations and Functions", "Appendix 4. Asymptotic Execution Time Properties", "Answers to Exercises", "References", "Index".

I stedet for qwerty programmering skal man tænke på programmer som beviser. Det er godt tænkt, men mon vi har lært ret meget i de forgangne 30 år?
 
Gemarkeerd
bnielsen | Oct 19, 2019 |
Gries taught his CS class at Cornell from his book, so I spent many hours sweating away over exercises from it. Rereading it seems like a good idea, if I can dig it up.

Some of the notation is not typical, which can throw me off when I (rarely) encounter logic problems today.

The back cover morph between Gries and Schneider is classic. See it here: http://tinyurl.com/ydljyek
 
Gemarkeerd
joeyreads | Apr 3, 2013 |
This book is written in a straight forward, and precisive manner. It is written from students point of view rather than author's point of view. I think it is because authors long time university teaching experience. He will remind readers common misunderstand concept and make sure you get it right. This book is more in lecture notes style, so there is no nonsense explaination, and well written enough for individual self pace study. It starts from OOP concept first, then looping, array and others. The first 2 chapters are all the foundations for other chapters.

A BIG plus is the CD-ROM. It got the whole book in it, but in multimedia format, and a bit different arrangement. It teachs better in some areas. In the paperback book, it will indicate you when to refer to CD. You can also reconfirm your understanding by go though the CD, while reading the book and doing the execise. Inside the CD, it gots lab, project and extra homework.

Programming is not the same way studying history or philosophy, you MUST hand on practise the execise, I recommend you have your laptop at your side while reading the book, try out immediately, and think why mistake being made. You can gain a lot of efficiency by doing that.

I highly recommend this book for beginner programmer, so you got do things right from the beginning. Save you a lot of time in the future.
 
Gemarkeerd
knol | Dec 27, 2007 |
Toon 5 van 5