References
References
Programming Simplicity
- Discord https://discord.gg/yrhegrjy65
Ceptre
- Strangeloop 2015: https://www.youtube.com/watch?v=bFeJZRdhKcI
- Paper: http://www.cs.cmu.edu/~cmartens/ceptre.pdf
- Thesis: https://www.cs.cmu.edu/~cmartens/thesis/thesis.pdf
Peter Lee – Realistic Compiler Generation.
- Denotational Semantics in several passes.
- https://www.amazon.ca/Realistic-Compiler-Generation-Peter-Lee/dp/0262121417
S/SL
- Syntax Semantic Language (not Secure Sockets Layer)
- Primitives for Parsing
- Primitives (mechanisms) for handles to semantic checking
- Holt, Cordy, Wortman
- https://research.cs.queensu.ca/home/cordy/pub/downloads/ssl/
- (paper in pt+ssl/doc/ssl.intro and various other places)
- report:
PT Pascal - Syntax Driven Translation
OCG
- Orthogonal Code Generator
- Portable code generator in two passes, declarative
- J. Cordy
- https://books.google.ca/books?id=X0OaMQEACAAJ&dq=bibliogroup:%22University+of+Toronto+Computer+Systems+Research+Institute+Technical+Report+CSRI%22&hl=en&sa=X&ved=2ahUKEwig1Legm8bqAhWvlHIEHYzzBYEQ6AEwBHoECAEQAQs
RTL
- https://www.researchgate.net/publication/220404697_The_Design_and_Application_of_a_Retargetable_Peephole_Optimizer](https://www.researchgate.net/publication/220404697_The_Design_and_Application_of_a_Retargetable_Peephole_Optimizer)
- Portable code generator in two passes
- (Used in gcc)
- Fraser Davidson
Smalltalk Blue Book
- implementation of Smalltalk in a subset of Smalltalk
- beautiful simplicity
- http://www.mirandabanda.org/bluebook/
SmallC
- very straight-forward implementation of a C compiler that could (IMO) be ported to any modern language
- https://ia801008.us.archive.org/19/items/dr_dobbs_journal_vol_05_201803/dr_dobbs_journal_vol_05.pdf](https://ia801008.us.archive.org/19/items/dr_dobbs_journal_vol_05_201803/dr_dobbs_journal_vol_05.pdf)
- (see Dr. Dobb’s Journal number 45, May 1980 “A Small C Compiler for the 8080’s)
- beautiful simplicity, easy to understand compiler
- Ron Cain
Anatomy of Lisp
- a Lisp Compiler written in a functional style
- https://www.amazon.ca/Anatomy-Lisp-John-Allen/dp/007001115X
- John R. Allen
Flow-Based Programming
- https://jpaulm.github.io/fbp/
- book: https://jpaulm.github.io/fbp/book.html
- discord: Flow-Based Programming https://discord.gg/JAUYWUBDHk
- google group: https://groups.google.com/d/forum/flow-based-programming
- slack (use discord instead) https://join.slack.com/t/fbphq/shared_invite/enQtOTM4ODkzMTYyODE3LTJiMmNlZjhiMWY1MDY1ODA4Y2YzNDBlNDZlMTBkMDNlMjcwNzg2MGZhZjA2NjJjYTliYTM0OTIyYmM0Yzk0MDQ
- J. P. Morrison
PROLOG Control in Six Slides
- PROLOG is fundamentally very simple – it is just an exhaustive pattern matching tool
- Nils Holm created the most understandable description of PROLOG…
- https://www.t3x.org/bits/prolog6.html
Eiffel, The Language
- https://www.amazon.ca/Eiffel-The-Language/dp/0132479257
- Bertrand Meyer
Tiny Basic
- Dr. Dobb’s Journal of Computer Calisthenics & Orthodontia, Volume One (see Tiny Basic)
- https://ia801302.us.archive.org/24/items/dr_dobbs_journal_vol_01/dr_dobbs_journal_vol_01.pdf
(my article “Potpourri of Lisp Functions” in number 38)
- Dr. Dobb’s Journal of Computer Calisthenics & Orthodontia, Volume Four
- https://ia801007.us.archive.org/30/items/dr_dobbs_journal_vol_04_201803/dr_dobbs_journal_vol_04.pdf
Getting to Simple
- https://alarmingdevelopment.org/?p=766
- Jonathan Edwards
Framing Software Reuse
- https://www.amazon.ca/Framing-Software-Reuse-Lessons-World/dp/013327859X
- (see also XVCL)https://www.sciencedirect.com/science/article/pii/S0167642304000978
- multiple use vs. reuse
- Paul Bassett
Lisp for MC6800
- https://github.com/guitarvydas/frits-van-der-wateren-lisp
- Frits van der Wateren
TXL
- Source Transformation by Example
- (functional, backtracking, parsing)
- http://www.txl.ca/
- Jim Cordy
Data Descriptors
- normalize reference to data
- https://dl.acm.org/doi/abs/10.1145/24039.24051
- R.C. Holt
Greenspun’s Tenth Rule
C.A.R. Hoare CSP (Communicating Sequential Processes)
Ohm-js
- A JavaScript library for building parsers, interpreters, compilers, and more. [ed. Way more]
- https://ohmjs.org
- (based on PEG and META-II)
PEG.js
- PEG parser for JS (I feel that Ohm is “better”)
- https://pegjs.org/
ESRAP
- PEG parser for CL (Common Lisp)
- https://scymtym.github.io/esrap/
PEG
- the definitive source
- https://bford.info/packrat/
- Bryan Ford
JQ tutorial
Concurrency is not Parallelism
- https://vimeo.com/49718712
- Rob Pike
Order Out of Chaos
- functional thinking is insufficient and hurt Physics
- https://www.amazon.com/Order-Out-Chaos-Dialogue-Thinkers-ebook/dp/B01N7H2J3B/ref=sr_1_1?dchild=1&keywords=ilya+prigogine+order&qid=1595281139&sr=8-1
- Ilya Prigogine
Humane Interface
- https://www.amazon.ca/Humane-Interface-Directions-Designing-Interactive/dp/0201379376
Design of Everyday Things
- https://www.amazon.ca/Design-Everyday-Things-Revised-Expanded/dp/0465050654
Small-C (Ron Cain)
- https://ia801008.us.archive.org/19/items/dr_dobbs_journal_vol_05_201803/dr_dobbs_journal_vol_05.pdf volume #45
Non-CS References
- human brain invents explanations for experiences - after-the-fact (!)
- bacteria exhibits behaviour that might be called “intelligence” and “consciousness”
- examines personalities of people involved in transition from Ptolemaic Universe to Copernican Universe
- important because it shows how many people are “blind” to simpler theories (e.g. epicycles in Ptolemaic version)
Songwriting
- anything by Pat Pattison
- PatPattison.com
- tension and release of tension via rhyme choice
- good songs blend good lyric writing with good music writing (melody, chords)
- important for understanding choice of words and phrasing (even in technical documentation, IMO)
- B-Rhymes (perfect rhymes are not always appropriate)
Appendix - Updates
See Also