Jetbrains MPS (система метапрограммирования) предлагает инструмент расширения расширяемого языка на основе проекционного редактора. Это поможет вам в создании редакторов, систем типов, ограничений, рефакторингов и генераторов кода для ваших языковых расширений. Он поставляется с некоторыми реализациями и расширениями языка Java.
mbeddr - это реализация C, использующая эту технологию. Он имеет систему компонентов, интерфейсы отправки / получения + клиент / сервер, внедрение зависимостей, конечные автоматы, тестирование и расширения PLE. Он также содержит расширяемую систему отладки, так что вы можете сопоставить свои расширения с gdb и обеспечить удобную отладку. Почти все функции языка C отображаются, поэтому генерация кода может быть в основном обработана путем преобразования в конструкции C вместо тупых преобразований M2T.
Aynth - простой монофонический синтезатор, написанный с использованием mbeddr для демонстрации компонентов и интерфейсов отправки / получения.
В любом случае, первое, что вы заметите, если будете использовать его, - проекционное редактирование не так удобно, как редактирование текста во многих случаях. Мы так привыкли к текстовому редактированию. Но расширяемые языки имеют много преимуществ.