Skip to content

Logo

SLE is defined as the application of systematic, disciplined, and measurable approaches to the development, deployment, use, and maintenance of software languages — SLEBoK (Software Language Engineering Body of Knowledge)

This is a collection of software language engineering (SLE) tools, frameworks and books.
With a focus on maintained and open-source projects.
Pull requests are very welcome!

Table of content

Language Workbench

A language workbench is a software development tool designed to define, reuse and compose domain-specific languages together with their integrated development environment. Language workbenches support language-oriented programming. Language workbenches were introduced and popularized by Martin Fowler in 2005. - Wikipedia

Attribute grammar

An attribute grammar is a formal way to define attributes for the productions of a formal grammar, associating these attributes with values. The evaluation occurs in the nodes of the abstract syntax tree, when the language is processed by some parser or compiler. - Wikipedia

Metalanguages

Broadly, any metalanguage is language or symbols used when language itself is being discussed or examined. In logic and linguistics, a metalanguage is a language used to make statements about statements in another language (the object language). Expressions in a metalanguage are often distinguished from those in an object language by the use of italics, quotation marks, or writing on a separate line. The structure of sentences and phrases in a metalanguage can be described by a metasyntax. - Wikipedia

General purpose

Visual syntax

Parser

Code Generation

Syntax

Semantics

Static semantics

Model transformation

Type system

Books

  • The Software Languages Book - Syntax, semantics, and metaprogramming: http://www.softlang.org/book
  • Engineering Modeling Languages - Turning Domain Knowledge Into Tools: http://mdebook.irisa.fr/
  • DSL Engineering: http://dslbook.org/
  • Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages (Pragmatic Programmers)
  • Compilers: Principles, Techniques, and Tools (2nd Edition)
  • Principles of Software Language Design for Model-Driven Software Engineering, Andrzej Wasowski and Thorsten Berger, [Coming soon] https://mdsebook.bitbucket.io/

Blogs

Talks

License

CC0

To the extent possible under law, Manuel Leduc has waived all copyright and related or neighboring rights to this work. Title image Designed by Freepik.