Skip to content

Reading List

Alex edited this page Mar 25, 2021 · 37 revisions

Contents

Mathematics

Youtube Lecture Series

Logic

  • QA9 is a fascinating "computational logic" blog.

Automated Theorem Proving

Despite its name, it's really "Treat math like a programming language, and if the 'program' 'compiles' then the proofs are true." But the field sounds like "ZOMG! Skynet!"

Operating Systems

Operating systems have two major components at its heart, plus a bunch of really "nice to haves" (like networking): process management, file systems. The former (process management) is really the soul of operating systems (without it, you have no operating system). File systems are a nice-to-have component (you can have an operating system without one).

See also my Hard Disk Geometry Notes.

Programming

  • Bartosz Milewski's Blog

  • Let's Build a Simple Database: Writing a sqlite clone from scratch in C

  • Barbara Liskov's "Seven Papers every programmer should read" include:

    1. Dijkstra, E. W. (1968). Letters to the editor: go to statement considered harmful. Communications of the ACM, 11(3), 147-148.
    2. Wirth, N. (1971). Program development by stepwise refinement. Communications of the ACM, 14(4), 221-227. Preprint
    3. Parnas, D. L. (1971). Information distribution aspects of design methodology.
    4. Dahl, O. J., & Hoare, C. A. R. (1972). Chapter III: Hierarchical program structures (pp. 175-220). Academic Press Ltd.
    5. Morris Jr, J. H. (1973). Protection in programming languages. Communications of the ACM, 16(1), 15-21.
    6. Liskov, B., & Zilles, S. (1974, March). Programming with abstract data types. In ACM Sigplan Notices (Vol. 9, No. 4, pp. 50-59). ACM.
    7. Liskov, B. H. (1972, December). A design methodology for reliable software systems. In Proceedings of the December 5-7, 1972, fall joint computer conference, part I (pp. 191-199). ACM.

Algorithms

C

C++

Clojure

Also see Make a Lisp for the nuts and bolts of making a lisp.

D

Haskell

Articles

Dependent Types in Haskell

Ebooks on Haskell

Java Virtual Machine

Garbage Collection

Formalization of the Java Virtual Machine

  • J Strother Moore's Formal Model of the JVM Course CS378 at the University of Texas at Austin
  • Hanbing Liu, "Formal Specification and Verification of a JVM and its Bytecode Verifier" Doctoral Thesis (2006) Eprint, 332 pages, pdf.
  • J. Strother Moore and George Porter, "An Executable Formal Java Virtual Machine Thread Model". In Java Virtual Machine Research and Technology Symposium (JVM '01), USENIX, April, 2001. Eprint
  • J. Strother Moore, Robert Krug, Hanbing Liu, George Porter, "Formal Models of Java at the JVM Level: A Survey from the ACL2 Perspective". In Workshop on Formal Techniques for Java Programs, 2001. Eprint, 10 pages.

Lisp

Some random blog posts giving opinions and history to Lisp.

Lisp isn't just a language: it's a cult. Err, I mean, way of life.

As far as doing mathy stuff with Common Lisp, Richard Fateman discusses in a number of papers overloading Lisp to get a CAS. I'm personally more interested in writing a "problem solving environment" (PSE) using Common Lisp for mathematics and physics (and the other hard sciences).

Idioms.

Hardware

Literature

Teddy Roosevelt had over 8000 books at Sagamore hill (everything he owned there was indexed). It might make a nice reading list.

Pigskin Library

Here's the contents of Roosevelt's "Pigskin Library". I had trouble finding the exact list, so I'm making note for my future reading.

Clone this wiki locally