In the first part of this GNU Emacs series, I focused on the history and explains why there is a Lisp interpreter embedded inside a text editor. Before diving into this part, I recommend reading the previous post:
Emacs Internal #01: Emacs is a Lisp Runtime in C, Not an Editor
In this post, I want to look at GNU Emacs from a higher system-design perspective.
The Mathematical Foundation: McCarthy's Lisp
Before diving into the source code, I left a short reference on Lisp here. Feel free to skip it if you are familiar with its background.
First Principle: Data and Operations
This is how I personally approach reading source code: I start from how general computation works.
Given some data, and some operation, then we get a new piece of data
Starting with the very basic, 3 + 4 = 7 . The data is 3 and 4 . The operation is + .
If we pile up the abstractions of basic math operations with data abstractions:
... continue reading