Blog
All articles. All pillars. All authors.
#010 -- Building a Programming Language From Abidjan, Cote d'Ivoire
How Juste Thales Gnimavo built the FLIN programming language from Abidjan with AI CTO Claude and a $200/month budget.
#011 -- Session 1: Project Setup and 42 Keywords
Session 1 of building FLIN: project setup, 42 keywords, 60+ token types, and the first lines of a language compiler.
#012 -- Building a Lexer From Scratch in Rust
How we built FLIN's lexer in Rust: character stream to tokens, keyword recognition, and view mode scanning.
#013 -- Pratt Parsing: How FLIN Reads Your Code
Pratt parsing in FLIN: how we implemented operator precedence, expression parsing, and control flow in Rust.
#014 -- The Abstract Syntax Tree: FLIN's Internal Representation
FLIN's Abstract Syntax Tree: how the compiler represents code as expressions, statements, views, and entities.
#015 -- Hindley-Milner Type Inference in a Custom Language
How FLIN uses Hindley-Milner type inference to determine types without annotations -- implemented in Rust.
#016 -- Code Generation: From AST to Bytecode
How FLIN's code generator transforms the AST into bytecode: opcodes, constant pool, and view instructions.
#035 -- Pattern Matching: From Switch to Match
How we designed FLIN's pattern matching -- from simple value matching to exhaustive checking on tagged unions, and the Rust implementation that powers it all.
#036 -- Tagged Unions and Algebraic Data Types
How we brought algebraic data types to FLIN -- generic enums with associated data, Option<T>, Result<T, E>, and the Rust implementation of tagged unions.
#021 -- Building a Stack-Based Virtual Machine in Rust
How we built FLIN's stack-based virtual machine in Rust: execution loop, value types, and call frames.
#023 -- Closures and Higher-Order Functions in the VM
Implementing closures and higher-order functions in FLIN's virtual machine: upvalues and capture semantics.
#024 -- How the VM Executes Views
How FLIN's VM executes views: from bytecode opcodes to HTML rendering with reactive attribute binding.