THINKING FORTH
CONTENTS THE PHILOSOPHY OF FORTH AN ARMCHAIR HISTORY OF SOFTWARE ELEGANCE, THE SUPER?CIALITY OF STRUCTURE, LOOKING BACK, AND FORTH, COMPONENT PROGRAMMING, HIDE FROM WHOM?, HIDING THE CONSTRUCTION OF DATA STRUCTURES, BUT IS IT A HIGH-LEVEL LANGUAGE?, THE LANGUAGE OF DESIGN, THE LANGUAGE OF PERFORMANCE, SUMMARY, REFERENCES, ANALYSIS THE NINE PHASES OF THE PROGRAMMING CYCLE, THE ITERATIVE APPROACH, THE VALUE OF PLANNING, THE LIMITATIONS OF PLANNING, THE ANALYSIS PHASE, DE?NING THE INTERFACES, DE?NING THE RULES, DE?NING THE DATA STRUCTURES, ACHIEVING SIMPLICITY, BUDGETING AND SCHEDULING, REVIEWING THE CONCEPTUAL MODEL, PRELIMINARY DESIGN/DECOMPOSITION DECOMPOSITION BY COMPONENT, EXAMPLE: A TINY EDITOR, MAINTAINING A COMPONENT-BASED APPLICATION, DESIGNING AND MAINTAINING A TRADITIONAL APPLICATION, THE INTERFACE COMPONENT, DECOMPOSITION BY SEQUENTIAL COMPLEXITY, THE LIMITS OF LEVEL THINKING, FOR FURTHER THINKING, DETAILED DESIGN/PROBLEM SOLVING PROBLEM-SOLVING TECHNIQUES, INTERVIEW WITH A SOFTWARE INVENTOR, DETAILED DESIGN, FORTH SYNTAX, ALGORITHMS AND DATA STRUCTURES, CALCULATIONS VS DATA STRUCTURES VS LOGIC, SOLVING A PROBLEM: COMPUTING ROMAN NUMERALS, IMPLEMENTATION: ELEMENTS OF FORTH STYLE LISTING ORGANIZATION, SCREEN LAYOUT, COMMENT CONVENTIONS, VERTICAL FORMAT VS HORIZONTAL FORMAT, CHOOSING NAMES: THE ART, NAMING STANDARDS: THE SCIENCE, MORE TIPS FOR READABILITY, FACTORING FACTORING TECHNIQUES, FACTORING CRITERIA, COMPILE-TIME FACTORING, THE ITERATIVE APPROACH IN IMPLEMENTATION, HANDLING DATA: STACKS AND STATES THE STYLISH STACK, THE STYLISH RETURN STACK, THE PROBLEM WITH VARIABLES, LOCAL AND GLOBAL VARIABLES/INITIALIZATION, SAVING AND RESTORING A STATE, APPLICATION STACKS, SHARING COMPONENTS, THE STATE TABLE, VECTORED EXECUTION, USING DOER/MAKE, MINIMIZING CONTROL STRUCTURES WHAT’S SO BAD ABOUT CONTROL STRUCTURES?, HOW TO ELIMINATE CONTROL STRUCTURES, A NOTE ON TRICKS, FORTH’S E?ECT ON THINKING