← Table of Contents Chapter 36 of 51

Chapter 36: Computers and Software

Era span: 1854 Boole → 1980s PCs · Difficulty: extreme
Requires: Ch 18, Ch 35
Unlocks: Ch 39, Ch 42, Ch 45, Ch 46

Computers automate reasoning itself. The lineage is longer than the hardware: logic formalized → information quantified → machines built → software industrialized. This chapter builds the stack in that order, because each layer only works on the one below.

Stored program architecture block diagram Fig 36.1 — Stored program: instructions ARE data (von Neumann, 1945) INPUT cards, tape, keys, sensors CPU ALU (AND/OR/ADD) control + registers fetches, decodes, executes, stores MEMORY program + data same store! loadable, writable, self-modifying OUTPUT print, display, disk, control SYSTEM BUS — address (where) · data (what) · control (when) one bus joins all three — programs and numbers travel the same wires Manchester Baby (June 1948) first ran this loop; everything since is refinement. plugboard programming (ENIAC) died here — programs became files, not wiring
Figure 36.1. The architectural decision that still governs everything: no separate "program machine" and "data machine" — one memory holds both, and the CPU fetches instructions exactly as it fetches numbers. Programs become writable, loadable, transmittable text.

36.1 Theory Before Metal

Gate Symbol Rule Relay/tube/transistor form
NOT ¬A Inverts One switch, normally closed
AND A·B 1 only if both 1 Series switches
OR A+B 1 if either 1 Parallel switches
NAND / NOR ¬(A·B), ¬(A+B) Each alone is complete: any circuit can be built from one type Preferred in silicon
XOR A⊕B 1 if different Adder core (sum bit)

Half-adder in one line: sum = A⊕B, carry = A·B. Chain carry into full adders, chain adders into ALUs — arithmetic IS stacked logic, and Shannon's thesis is the translation dictionary.

36.2 Hardware Generations

Memory hierarchy pyramid and software stack Fig 36.2 — Memory pyramid and software stack Hierarchy (fast/small → slow/big) REGISTERS CACHE / RAM DISK / TAPE keep hot data high Software stack (each runs on below) APPLICATIONS (payroll, CAD, games) OS (files, pipes, processes) COMPILERS (FORTRAN, C, Lisp) ASSEMBLER + MACHINE CODE HARDWARE (gates → CPU)
Figure 36.2. Left: the hierarchy — speed costs, so keep working data in the smallest fast store that holds it. Right: the stack — each layer hides the one below. Portability (C, UNIX) means upper layers survive hardware generations.
Generation Element Cycle time Lesson
Relay (Z3, Mark I) Telephone switches Seconds/multiply Reliability before speed
Tube (ENIAC) ~18,000 bottles ~200 µs add (5,000 additions/s) MTBF planning; stored program next
Transistor Discrete germanium/silicon ~µs Rooms become cabinets
IC → microprocessor 4004 (1971) → 8-bit families Sub-µs Cabinets become desks

36.3 Software: The Second Machine

Hardware without software is jewelry. The stack, in dependency order:

  1. Machine code/assembler: raw instruction encodings; human-hostile but direct.
  2. Compilers (FORTRAN, 1957): translate human-readable formulas into optimized machine code — programming effort fell several-fold; skeptics predicted bad code, benchmarks humiliated them.
  3. Operating systems: batch schedulers → time-sharing (many users, interleaved execution; CTSS/Multics) → UNIX (1969): small kernel + composable tools + portability via C language. Unix patterns (files, pipes, processes) remain the lingua franca.
  4. Languages by purpose: COBOL (business records), Lisp (symbolic/AI research), ALGOL (structured-programming theory → Pascal/C descendants). Type systems, structured control flow, and modularity tame complexity ("software crisis" responses of the late 60s).
  5. Engineering culture: version control, testing, code review, documentation — software quality is process quality (Ch 47).

UNIX pattern in four nouns: everything is a file; small tools do one thing; pipes join tools; shell scripts freeze workflows. A team that internalizes this administers ten machines with the effort others spend on one — composability IS staffing.

36.4 Personal Computing Inflection

Microprocessors made computers cheap enough to give away:

Adoption economics: value compounds with installed base (compatibility gravity) — platform wars are ecosystem wars, won by developers courted early.

Machine Hook Why it mattered
Altair 8800 Kit, S-100 bus Hobbyists became an industry
Apple II Color + floppy + slots Usable out of box, expandable
VisiCalc Spreadsheet First business "must-buy" app
IBM PC Open-ish standard Clones → commodity → ubiquity
Macintosh GUI + mouse Computing without memorizing

36.5 Doctrine

Move Cost Payoff
ASCII + open formats Convention effort Files readable for decades
3-2-1 backups (3 copies, 2 media, 1 offsite) Disks + routine Survive fire, theft, fat-finger
Tests + review per change 30–50 % of coding time Regressions caught, not shipped
O(n²) → O(n log n) One smart afternoon 100× on real data

Key threshold: when computation costs less than the labor it replaces per task (payroll, inventory, drafting, simulation), adoption becomes automatic — the same crossover logic as Ch 26's electricity, now applied to thought work. Everything remaining in this book rides that curve.

36.6 The Computing Papers

36.7 First-Machine Build Order

Gates on breadboard (AND/OR/NOT by hand) → half-adder → stored-program paper simulator (fetch-decode-execute by hand on paper memory) → relay or tube ALU → assembler → compiler for one tiny language → OS kernel (scheduler + filesystem) → useful application. Teams that skip the paper simulator misunderstand every bug thereafter; teams that build it debug hardware and software separately — the skill that separates engineers from assemblers.

FIRE TO FUTURE — A Field Manual for Rebuilding Technology · Download PDF