What resources to introduce people to Language Engineering?

We would like to map language engineering as a topic. We want to collect articles and other resources to provide an overview for people interested in the subject. We would love to receive suggestions both about our list of topics and any interesting resource you have in mind. It can be anything: an article, a book, a video, etc.

This is our provisional list of topics:

  • Language design. How to design effective languages.
  • Model driven development. Creating software working on domain models.
  • Domain specific languages. Domain Specific Languages (DSL) are programming languages tailored for a specific purpose and audience.
  • Application modernization. Even the best-designed software gets old and becomes a liability. You need to understand how to modernize the code, keep the value the old software provides, and get rid of the old approach.
  • Parsing. Parsing is about extracting information from some text written in a meaningful format.
  • Compilers, Interpreters and Transpilers. Once you have parsed some code, you have essentially a series of instructions. You then need to execute them in some way, this is when you need to build a compiler, interpreter, or transpiler.
  • Code processing. Extracting data from code, analyzing it and programmatically transforming it. In other words, we talk about static analysis, automated refactoring, and code generation.
  • Editors. Programming languages are professional tools that require specific tools to be most productive. There are many aspects to understanding how to develop an editor, from design to pragmatic considerations.
  • Language Workbenches. Language workbenches are IDEs designed specifically to build languages. They support you in all steps, from language definition to creating supporting tools like compilers and editors.
1 Like