Skip to content

Bibliography

Pages cite sources locally when a contract is version-sensitive. The following works provide deeper foundations.

Algorithms and data structures

  • Cormen, Leiserson, Rivest, and Stein. Introduction to Algorithms.
  • Sedgewick and Wayne. Algorithms.
  • Knuth. The Art of Computer Programming.
  • Kleinberg and Tardos. Algorithm Design.
  • Tarjan. Data Structures and Network Algorithms.
  • Hoare. β€œAn Axiomatic Basis for Computer Programming.”

Concurrency and systems

  • Goetz et al. Java Concurrency in Practice.
  • Herlihy and Shavit. The Art of Multiprocessor Programming.
  • Tanenbaum and Van Steen. Distributed Systems.
  • Kleppmann. Designing Data-Intensive Applications.
  • Gray and Reuter. Transaction Processing.
  • Hohpe and Woolf. Enterprise Integration Patterns.
  • Nygard. Release It!.
  • Beyer et al. Site Reliability Engineering.

Object-oriented design and architecture

  • Gamma, Helm, Johnson, and Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software.
  • Bloch. Effective Java.
  • Fowler. Patterns of Enterprise Application Architecture.
  • Evans. Domain-Driven Design.
  • Martin. Agile Software Development: Principles, Patterns, and Practices.
  • Liskov and Wing. β€œA Behavioral Notion of Subtyping.”

C++

The working draft describes work toward a standard and is not a substitute for the purchased published ISO text. The Core Guidelines are a living engineering guide, not normative language wording.

Primary specifications and official documentation

Source policy

Prefer standards, specifications, official API documentation, original papers, and established textbooks. A tutorial can improve intuition but should not be the sole authority for a formal definition or version-specific contract. Record the consulted edition or release when it materially affects a claim.