- Home
- Self-Help & Personality
- Thinking Forth
Thinking Forth
Book Description:
Thinking Forth applies a philosophy of problem solving and programming style to the unique programming language Forth. Published first in 1984, it could be among the timeless classics of computer books, such as Fred Brooks’ The Mythical Man-Month and Donald Knuth’s The Art of Computer Programming. Many software engineering principles discussed here have been rediscovered in eXtreme Programming, including (re)factoring, modularity, bottom-up and incremental design. Here you’ll find all of those and more, such as the value of analysis and design, described in Leo Brodie’s down-to-earth, humorous style, with illustrations, code examples, practical real life applications, illustrative cartoons, and interviews with Forth’s inventor, Charles H. Moore as well as other Forth thinkers.
CONTENTS
Preface to the 2004 Edition, iii
Preface to the 1994 Edition, ix
Preface, xi
Contents, xiv
The Philosophy of Forth, 1
An Armchair History of Software Elegance, 2
The Superficiality of Structure, 24
Looking Back, and Forth, 25
Component Programming, 27
Hide From Whom?, 32
Hiding the Construction of Data Structures, 33
But Is It a High-Level Language?, 36
The Language of Design, 41
The Language of Performance, 42
Summary, 46
References, 46
Analysis, 48
Contents xivThe Nine Phases of the Programming Cycle, 49
The Iterative Approach, 50
The Value of Planning, 52
The Limitations of Planning, 56
The Analysis Phase, 60
Defining the Interfaces, 64
Defining the Rules, 70
Defining the Data Structures, 80
Achieving Simplicity, 80
Budgeting and Scheduling, 88
Reviewing the Conceptual Model, 91
References, 92
Preliminary Design/Decomposition, 93
Decomposition by Component, 94
Example: A Tiny Editor, 98
Maintaining a Component-based Application, 103
Designing and Maintaining a Traditional Application, 105
The Interface Component, 111
Decomposition by Sequential Complexity, 116
The Limits of Level Thinking, 118
Summary, 126
For Further Thinking, 126
Detailed Design/Problem Solving, 130
Problem-Solving Techniques, 132
Interview with a Software Inventor, 141
Detailed Design, 144
Forth Syntax, 145
Algorithms and Data Structures, 157
Contents xvCalculations vs. Data Structures vs. Logic, 159
Solving a Problem: Computing Roman Numerals, 162
Summary, 178
References, 178
For Further Thinking, 179
Implementation: Elements of Forth Style, 181
Listing Organization, 183
Screen Layout, 197
Comment Conventions, 203
Vertical Format vs. Horizontal Format, 215
Choosing Names: The Art, 220
Naming Standards: The Science, 227
More Tips for Readability, 229
Summary, 230
References, 231
Factoring, 235
Factoring Techniques, 237
Factoring Criteria, 244
Compile-Time Factoring, 259
The Iterative Approach in Implementation, 265
References, 270
Handling Data: Stacks and States, 271
The Stylish Stack, 272
The Stylish Return Stack, 283
The Problem With Variables, 284
Local and Global Variables/Initialization, 289
Contents xviSaving and Restoring a State, 290
Application Stacks, 293
Sharing Components, 294
The State Table, 297
Vectored Execution, 302
Using DOER/MAKE, 304
Summary, 310
References, 310
Minimizing Control Structures, 314
What’s So Bad about Control Structures?, 315
How to Eliminate Control Structures, 320
A Note on Tricks, 335
Summary, 356
References, 357
For Further Thinking, 357
Forth’s Effect on Thinking, 362
Appendix A Overview of Forth (For Newcomers), 366
Appendix B Defining DOER/MAKE, 371
Appendix C Other Utilities Described in This Book, 380
Appendix D Answers to “Further Thinking” Problems, 384
Appendix E Summary of Style Conventions, 387
Index, 396
Direct Download Links:
- Book lience:Attribution-NonCommercial-ShareAlike 2.0
- Download the ebook in PDF
- prdownloads.sourc...olor.pdf?download
- thinking-forth.so...net/tf-kindle.pdf
Related Books at ISBNlib
- Forth Programmer’s Handbook (3rd Edition)
- FORTH Applications: Ready to run programs in Forth (Bitfire Books)
- Forth Application Techniques (5th Edition): Course Notebook
- The Little Schemer - 4th Edition
- FORTH Quick-Start Introduction (Bitfire Books)