BlogsGitLabDomain Specific Language Framework

Domain Specific Language Framework

Domain Specific Language Framework

1
posts
2022

GitLab has developed Lingo, a micro language framework in Go for building Domain Specific Languages (DSLs). Lingo is designed to be simple, flexible, and composable, allowing developers to easily integrate custom types and functions without modifying the core parser or processor. It uses S-expressions as its foundation and is implemented in approximately 3K lines of pure Go code. Lingo aims to simplify the creation and evolution of embeddable DSLs for specific use cases, such as data generation for fuzzing.

2022

Lingo: A Go micro language framework for building Domain Specific Languages

5/26/2022

This post introduces Lingo, a new micro language framework developed at GitLab for building Domain Specific Languages (DSLs) in Go. It details the challenges of DSL design, the requirements for a micro language framework (stability, flexibility, simplicity), and how Lingo addresses these through its S-expression-based approach and plug-in mechanism. An example of using Lingo to design a data generation engine for CSV output is provided.