-
Notifications
You must be signed in to change notification settings - Fork 0
Reading List
Contents
- Kan Extension Seminar reading group about category theory papers.
- QA9 is a fascinating "computational logic" blog.
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!"
- Wiedijk's preprint on the Mathematical Vernacular [pdf]
- Carnegie Mellon's Course "15-815 Automated Theorem Provers" Lecture Notes
- Introduction to Automated Theorem Proving with Logtk
- Jean Gallier's book Logic for Computer Science: Foundations of Automatic Theorem Proving
- Metatheorem Blog
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.
-
Let's Build a Simple Database: Writing a sqlite clone from scratch in C
-
Barbara Liskov's "Seven Papers every programmer should read" include:
- Dijkstra, E. W. (1968). Letters to the editor: go to statement considered harmful. Communications of the ACM, 11(3), 147-148.
- Wirth, N. (1971). Program development by stepwise refinement. Communications of the ACM, 14(4), 221-227. Preprint
- Parnas, D. L. (1971). Information distribution aspects of design methodology.
- Dahl, O. J., & Hoare, C. A. R. (1972). Chapter III: Hierarchical program structures (pp. 175-220). Academic Press Ltd.
- Morris Jr, J. H. (1973). Protection in programming languages. Communications of the ACM, 16(1), 15-21.
- Liskov, B., & Zilles, S. (1974, March). Programming with abstract data types. In ACM Sigplan Notices (Vol. 9, No. 4, pp. 50-59). ACM.
- 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.
- Algorithmist Wiki a collection of algorithms, and basic analyses thereof...
- Inside the C Standard Library
- C Portability Lessons from Weird Machines
- Into the Depths of C: Elaborating the De Facto Standards (pdf)
- Clojure STM - What? Why? How?
- The Life of a Clojure Expression
- Clojure Compilation: Parenthetical Prose to Bewildering Bytecode
Also see Make a Lisp for the nuts and bolts of making a lisp.
- BIOS Boot to D, which contains a fascinating discussion of BIOS and assembly (refers to The Art of Assembly Language for details on the latter)
- Code & Co. discusses quite a few fascinating topics (e.g., Types and Kinds and Sorts, Oh My!)
- What I Wish I Knew When Learning Haskell 2.1
- Learning Haskell, a great annotated bibliography of tutorials on Haskell
- Stephen Diehl's Blog has nifty stuff
- Semantic Domain
- Comonad.Reader
- Haskell for All
-
My assorted collection of links on the JVM's Lambda implementation
-
Brian Goetz - "Lambdas in Java: A peek under the hood" , a talk at GOTO Aarhus 2013.
-
JVM 8
klass.h
-
markOop.h
which becamemarkWord.h
at some point...
- Java Memory Management Pragmatics
- Java Garbage Collection Distilled
- Understanding Java Garbage Collection
- Tuning JVM GC for a Big, Mathy, STMful Clojure App
- 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.
- Paul Graham's On Lisp is a good first book
- Practical Common Lisp
- Peter Norvig's Paradigms of AI is now free online (put online by author)
- Building Problem Solvers is now free online (put online by the authors)
-
Style Guide
- I dislike the predicate convention (suffix
-p
for compound names, and suffixp
for simple names). I'm more tempted to stick to Clojure's convention (suffix?
for predicates)
- I dislike the predicate convention (suffix
- Google's Common Lisp Style Guide
Some random blog posts giving opinions and history to Lisp.
-
A Road to Common Lisp
- I disagree with the author's contention that a package could be split across multiple files; it could, but it's bad style (locating an identifier's definition becomes quite a bit harder).
- Some Observations About LISP
- Common Lisp in Practice
- How Lisp Became God's Own Programming Language
- Starting with Common Lisp in 2020
Lisp isn't just a language: it's a cult. Err, I mean, way of life.
- StumpWM is a window manager written in Common Lisp
- Raspberry Pi for Common Lisp Development
- In the Mood for Lisp, written in 2013, though SBCL now supports ARM
- Example config
- Hacking StumpWM with Common Lisp
- Lisp: Good News, Bad News, How to Win Big
-
LaTTe is a declarative-style theorem prover (CoC foundations) written in Clojure
- Challenge: translate the MML to Lispy syntax. (Not necessarily checkable by LaTTe, just change the syntax to use S-expressions)
- Reference for Mizar Syntax
- Also the Journal of Formalized Mathematics
- The weaknesses of SBCL's type propagation
- Immutable Persistent Data Structures in Common Lisp
- Symbols and Namespaces in Clojure and Common Lisp
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).
- R. Fateman Building Algebra Systems by Overloading Lisp: Automatic Differentiation, pdf.
- cl-autodiff
- Problem Solving Environments and Symbolic Computation
- Novak's Exercise on Symbolic algebra and ISAAC in particular
Idioms.
- Trinity Project apparently trying to build a ternary LISP machine
Teddy Roosevelt had over 8000 books at Sagamore hill (everything he owned there was indexed). It might make a nice reading list.
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.
- Bible.
- Apocrypha.
- George Borrow:
- Shakespeare: [Comedies. Histories and Poems. Tragedies.]
- Edmund Spenser: Faerie Queene.
- Christopher Marlowe.
- Alfred T. Mahan Sea Power.
- Thomas Babbington Macaulay:
- History of England. Take with a pillar of salt, Babbington was called one of the greatest systematic falsifier of facts mankind has ever known.
- Essays.
- Poems.
- Homer: Iliad and Odyssey.
- Chanson de Roland.
- Nibelungenlied.
- Thomas Carlyle:
- Shelley: Poems.
- Francis Bacon: Essays.
- James Russell Lowell:
- Literary Essays. [Latest Literary Essays.]
- Biglow Papers.
- Emerson: Poems.
- Longfellow.
- Tennyson.
- Poe:
- Tales.
- Poems.
- Keats.
- Milton: Paradise Lost (Books I and II)
- Dante: Inferno (Carlyle's translation)
- Oliver Wendell Holmes, Sr.:
- Bret Harte:
- Robert Browning: Selections.
- Samuel McChord Crothers:
- Gentle Reader.
- Pardoner's Wallet.
- Mark Twain:
- John Bunyan Pilgrim's Progress.
- Euripides (Murray's translation):
- The Federalist Papers.
- Gregorovius: History of Rome during the Middle Ages.
- Sir Walter Scott:
- Legend of Montrose.
- Guy Mannering.
- Waverley.
- Rob Roy.
- Antiquary.
- James Fenimore Cooper:
- Froissart's Chronicles.
- Thomas Percy: The Reliques of Ancient English Poetry.
- Thackeray:
- Dickens:
- Goethe: Faust.
- Cervantes: Don Quixote (Ormsby's translation)
- Molière.
- Pascal et al.: Pensées.