LVCA (Language Verification, Construction, and Analysis) is a toolkit for building programming languages. Well, it will be. Right now it's a collection of ideas and prototypes, available below.
These are meant to form a somewhat coherent story, read in order. They'll be updated as LVCA evolves.
These are shorter, more frequent posts. I won't change these in a major way after they're published, so they can serve as a progress log. The newest posts are at the top.
- July 25, 2021 Progress Update
- June 9, 2021 Progress Update
- May 24, 2021 Progress Update
- Are Constructors Functions?
- Semantic Diffs and Broken Tests
- Sorts and Kind Checking
- December 28, 2020 Progress Update
- December 23, 2020 Progress Update
- November 7, 2020 Progress Update
- A Constructive Real Calculator
- October 8, 2020 Progress Update
- September 23, 2020 Progress Update
- Making Lambda Calculus: Concrete and Abstract
- Lambda Calculus: Concrete and Abstract
- August 8, 2020 Progress Update
- July 24, 2020 Progress Update
- Church and Curry
- Working with the Garage Door Up
- What is a programming language?
- The futility of designing the ultimate programming language
- What LVCA doesn't do
- Finding terms (term indexing)
- The interop story
- More on typechecking
- More on evaluation
- Forking a program
- Forking a language
- Against monolanguages
- Semantic diffs
- Making a differentiable programming language
- Rendering as HTML / LaTeX
- Building UIs for free-ish
- Write once, run anywhere
- Something like PowerShell
- A language with linearity
- Evaluating languages via denotational semantics
- LVCA specification