build · Oct 2026
KerinciLang
Solo build: language design, interpreter, tests, and tutorial
- Python
- Language Design
- Parsing
- Interpreters
Summary
KerinciLang is a programming language built from Kerinci vocabulary. Variables are barang, functions are guno, printing is nyetak, and the whole interpreter is a single Python file with no dependencies.
Problem
A language is one of the clearest ways to show that a vocabulary can carry modern work. Kerinci has speakers and a dictionary, but almost no presence in software, and a learner who wants to write a first program has to leave the language behind at the door.
Approach
The language was designed around a small set of words reviewed by Kerinci speakers, with a grammar that covers variables, constants, numbers, text, lists, maps, conditionals, loops, functions, recursion, closures, file input and output, error handling, and multi-file programs. The interpreter is a single Python file with no third-party dependencies, so a learner can read the implementation as well as use it. Every tutorial code block runs in the test suite.
Outcome
Version 0.5.0 has 26 special words, 6 comparison words, and 24 built-in functions, with 271 language tests and 550 tutorial code blocks passing. It ships a 13-lesson tutorial in English and Indonesian, a glossary, a krc command, a packaged .pyz, and a REPL.
Honest limitations
Two vocabulary questions are still open: a Kerinci word for the boolean type, and the reserved word kelihu. Interpreter error messages are still in Indonesian rather than Kerinci. The dictionary title, authors, and speaker credits have to be completed before publication.
Detail
- Reviewed by speakers
- The vocabulary was reviewed and approved by Kerinci speakers, and the worksheet they worked through is in the repository rather than in a private document.
- Tests as documentation
- The 550 tutorial code blocks are executed by the test suite, so an example that stops working fails the build instead of sitting in the tutorial as a broken promise.
- Small enough to read
- The interpreter is one Python file with no dependencies. That is a design constraint, not a shortcut: the point is a language a learner can open and follow.
- Two languages of explanation
- The tutorial exists in English and Indonesian, with the code in Kerinci either way.
Gallery

Next project
Djournl