Tech News
← Back to articles

Emacs internals: Deconstructing Lisp_Object in C (Part 2)

read original related products more articles

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