Skip to content
Justin Simpson edited this page Oct 1, 2015 · 3 revisions

Tuna lang is a project created to provide a problem, that we can then go and solve with a dsl. Many dsl's in fact, as a learning exercise. It is a contrived problem, built as an educational tool.

The problem is this: I want a way to describe what my cats eat and plan their meals.

In the Martin Fowler book 'Domain Specific Languages', he describes the process of creating a DSL as starting with a Semantic Model. This model is defined as a subset of a Domain Model. You can build a DSL to populate the Semantic Model. The Semantic Model is used to drive computational process.

In many examples, the Semantic Model is used to drive a State Machine.

Clone this wiki locally