Description
Strategies for building large systems that can be easily adapted for new situations with only minor programming modifications.Time pressures encourage programmers to write code that works well for a narrow purpose, with no room to grow. But the best systems are evolvable; they can be adapted for new situations by adding code, rather than changing the existing code. The authors describe techniques they have found effective–over their combined 100-plus years of programming experience–that will help programmers avoid programming themselves into corners.The authors explore ways to enhance flexibility by:
– Organizing systems using combinators to compose mix-and-match parts, ranging from small functions to whole arithmetics, with standardized interfaces
– Augmenting data with independent annotation layers, such as units of measurement or provenance
– Combining independent pieces of partial information using unification or propagation
– Separating control structure from problem domain with domain models, rule systems and pattern matching, propagation, and dependency-directed backtracking
– Extending the programming language, using dynamically extensible evaluators
Product details
- Publisher : The MIT Press (March 9, 2021)
- Language : English
- Hardcover : 448 pages
- ISBN-10 : 0262045494
- ISBN-13 : 978-0262045490
- Item Weight : 1.6 pounds
- Dimensions : 6.25 x 1.01 x 9.25 inches
There are no reviews yet.