Miksilo logo Miksilo


A modularity first language construction workbench.

View on GitHub

Miksilo is a language workbench, which is a tool to construct programming languages. Miksilo, whose name comes from the Esperanto word for mixer, lets you create languages quickly by mixing existing languages and building on top of them. Language construction is notoriously hard, and these days involves not just writing a compiler or interpreter, but also editor tooling to provide features such as code completion, inline errors and code navigation. Miksilo takes a declarative language definition and from that generates all the tools expected of a modern language. To learn how to use Miksilo to generate editor tooling, visit this page.

Because languages share many properties, the quickest way to build a language is to build on top of existing ones. Although most language workbenches allow some language reuse, Miksilo is built for modular language design. To achieve that goal, it has the following properties:

The best way to show Miksilo’s modularity is by example, so we’ve picked a few language transformations as showcases. Before diving into them however, we recommend to get an introduction to BiGrammar, one of Miksilo’s metalanguages. Here are the showcases:

  1. Add support for comments in a language agnostic way.
  2. Inline the constant pool in Java bytecode.
  3. Resolving interactions between independent deltas.

If you would prefer to learn Miksilo by experimenting instead of reading, then try out its sandbox application, which lets you create languages by composing predefined language transformations.