Bookshock Ask Tez ✨
Software Design for Flexibility How to Avoid Programming Yourself into a Corner cover

Software Design for Flexibility How to Avoid Programming Yourself into a Corner

by Chris Hanson, Gerald Jay Sussman

Lowest price on Bookshock
$62.79
1 offer
In stock

Ask Tez about this book →

This title is temporarily out of stock. Email support@bookshock.ai or call (972) 638-0790 and we'll let you know when it's back.
Free US shipping
30-day free returns
Stripe-secured checkout

All offers (1)

PriceConditionSeller
$62.79Best price New Basi6 International LLC

Stock and pricing refresh on page load. Tez can also compare prices on Amazon, AbeBooks, and ThriftBooks if you ask.

About this book

<b>Strategies for building large systems that can be easily adapted for new situations with only minor programming modifications.</b><br><br>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.<br><br>The authors explore ways to enhance flexibility by:<br><li>Organizing systems using combinators to compose mix-and-match parts, ranging from small functions to whole arithmetics, with standardized interfaces</li><li> Augmenting data with independent annotation layers, such as units of measurement or provenance</li><li> Combining independent pieces of partial information using unification or propagation</li><li> Separating control structure from problem domain with domain models, rule systems and pattern matching, propagation, and dependency-directed backtracking</li><li> Extending the programming language, using dynamically extensible evaluators</li>

Details

Format
Hardcover
Pages
448
Publisher
MIT Press
Language
EN
ISBN-13
9780262045490
ISBN-10
0262045494

Categories

Computers, Computer Science, Programming, Software Development & Engineering