Building Languages to Solve Problems
When a problem is complex enough, the right move is to build a language for that problem. SICP's most powerful idea.
Browse posts by tag
When a problem is complex enough, the right move is to build a language for that problem. SICP's most powerful idea.
An R package where optimization solvers are first-class functions that compose through chaining, racing, and restarts.
A Python library for symbolic computation with a readable DSL, pattern matching, and a security model that separates rules from computation.
AlgoGraph is an immutable graph library for Python with pipe-based transformers, declarative selectors, and lazy views.
ZeroIPC treats shared memory not as passive storage but as an active computational substrate, bringing futures, lazy evaluation, reactive streams, and CSP channels to IPC with zero-copy performance.
A streaming data processing system implementing boolean algebra over nested JSON structures, with lazy evaluation, S-expression queries, and memory-efficient windowed operations.
A composable ecosystem of tools for manipulating nested data structures. From a simple helper function to a full data algebra, guided by purity, pedagogy, and the principle of least power.
A Lisp-like functional language designed for network transmission. JSL makes JSON serialization a first-class design principle, so closures, continuations, and entire computation states can travel over the wire.
An immutable-by-default tree library for Python with composable transformations, pipe-based pipelines, and pattern-matching selectors.
A C++20 library for composing online statistical accumulators with numerically stable algorithms and algebraic composition.
An R package that treats probability distributions as algebraic objects. They compose through standard operations. The algebra preserves distributional structure.