A Language With No ‘=’: My Journey to Homoiconic C

came of age in the 1980s, as the C programming language and UNIX operating system were becoming the gold standard for "serious" computing. I was taught that: - Lisp reflects how computers **think** - C reflects how computers **work** - Shell scripts reflect how humans **write** I never questioned this split ....

TSM-10.2: HLIR NextGen – A TableGen Replacement for MLIR

The HLIR (High-Level Intermediate Representation) framework written in Homoiconic C could also serve as a next-generation replacement (“HLIR-NG”) for LLVM’s TableGen, especially if it’s designed to handle the kind of semantic richness and extensibility required for a dynamic, multi-level execution framework like MLIR.

TSM-10.1: HLIR – Homoiconic, High-Level Intermediate Representation

instructions in a homoiconic form. It represents a novel synthesis in compiler design by bridging the gap between human and machine representations of programs. By combining monadic composition with homoiconic structure, HLIR allows developers to express computational intent with minimal syntax while maintaining direct mappings to MLIR's powerful optimization framework. This marriage of high-level semantics with low-level compilation produces a uniquely ergonomic intermediate representation - one where code is data, transformations are first-class citizens, and optimization becomes natural rather than imposed. The result is a language that is both easy for humans to reason about and efficient for compilers to transform, potentially setting a new standard for intermediate representations in modern compiler design.

TSM-7: From Aristotle to Newton — Towards a Scientific Theory of Computation

Since the dawn of computer science, our understanding of computation has been shaped by mathematical theories, from Aristotle's logic to Turing's formalization of algorithms. Turing Machines, with their elegant abstraction of computation into discrete steps on an infinite tape, have become a cornerstone of computational theory. However, this mathematical approach, while powerful, lacks a crucial element: empirical testability.

Summary: Retrospective Thoughts on BitC

In my opinion, BitC is the most innovative take on systems programming we've seen since the invention of C.  While sad that it failed, I am deeply impressed by the thoughtful post-mortem by Jonathan S. Shapiro.   Here are links to the various threads of his analysis (and the equally thoughtful responses): [bitc-dev] Retrospective Thoughts on BitC... Continue Reading →

Blog at WordPress.com.

Up ↑