Tag: interpreters
All the articles with the tag "interpreters".
LETDEP: Dependency-Ordered Binding Semantics for let Expressions
Define LETDEP precisely, resolve forward references with dependency analysis and topological sorting, and explore the lexical-scope edge cases that make it interesting.
LETSEQ: Sequential Binding Semantics for let Expressions
Define LETSEQ precisely, implement sequential binding semantics in Elm, test the interesting edge cases, and compare similar forms in Racket and Clojure.
LETPAR: Parallel Binding Semantics for let Expressions
Define LETPAR precisely, implement parallel binding semantics in Elm, test the interesting edge cases, and compare similar forms in Racket and OCaml.
Multiple-Binding let Expressions - Syntax Before Semantics
Extend a tiny Elm interpreter with multiple-binding let expressions, then explore the semantic choices that lead to parallel and sequential bindings.
LET: Adding Local Bindings to a Tiny Interpreter in Elm
Add let expressions to a tiny interpreter in Elm and explore local bindings, scope, variable shadowing, and evaluation order through examples and tests.
VAR: Adding Variables and Environments to a Tiny Interpreter in Elm
Add variable expressions and environments to a tiny interpreter in Elm, then see how variable lookup makes evaluation depend on context.
IF: Adding Conditional Expressions to a Tiny Interpreter in Elm
Add conditional expressions to a tiny Elm interpreter and see how Boolean conditions introduce control flow by selecting which branch gets evaluated.
Make it a Syntax Error
See how grammar and AST design in a tiny Elm interpreter can turn runtime type errors into syntax errors, simplify evaluation, and connect to GADTs.
ZERO: Adding Booleans and Runtime Type Errors to a Tiny Interpreter in Elm
Add the zero? predicate to a tiny Elm interpreter and see how Boolean values introduce runtime type errors, type checks, and fallible evaluation with Result.
DIFF: Adding Recursive Expressions to a Tiny Interpreter in Elm
Add recursive difference expressions to a tiny Elm interpreter and see how recursion shapes the grammar, AST, parser with lazy, and evaluator.
Setting Up a Reproducible Elm Interpreter Project with Nix
Set up a reproducible Elm interpreter project with a Nix flake, Elm tooling, helper commands, source and test structure, and grammar documentation.
Testing an Elm Interpreter with elm-test
Learn how to test an Elm interpreter with elm-test at the lexer, parser, and interpreter boundaries, then extract a reusable testValue helper.
CONST: The Structure of a Tiny Interpreter in Elm
Build a tiny but complete interpreter in Elm and follow a program from source text through parsing and an AST to its evaluated result.