Languages Overview

The SMACCMPilot project is built using several new domain-specific languages (DSLs). These new languages are embedded in the Haskell programming language, which means they use Haskell syntax and types, and complete programs are Haskell values.

Embedded Domain Specific Languages (eDSLs) can be more powerful and easier to learn than standalone DSLs because the host language (Haskell) also serves as a macro language.

Ivory Language

The Ivory Language is an eDSL for safe systems programming. You can think of Ivory as a safer C, embedded in Haskell.

Ivory Resources:

Tower Language

The Tower Language is an eDSL for composing Ivory programs into real-time systems. Tower programs specify communication channels, tasks, and signal handlers, and generate Ivory code which implements scheduling and communication for real-time operating systems.

Tower Resources: