Читайте лоты и будьте проще
Создать новый язык сложно. Действительно трудно. Но в конечном итоге очень приятно, если он становится популярным и действительно решает проблему, с которой люди элегантно сталкиваются.
Как я уже упоминал в комментариях, я бы посоветовал вам прочитать доменные языки Мартина Фаулера по следующим причинам:
- Он углубляется в практическую глубину о том, почему вы должны разработать язык
- Есть подробности о том, как это сделать (парсеры, лексические анализаторы, языковые рабочие места и т. Д.)
- Существуют подробные инструкции по реализации того, как выбранный вами синтаксис может быть использован для обработки таких понятий, как замыкания, аннотации, литеральные списки, динамический прием и т. Д.
Что касается того, как написать свою спецификацию, подумайте о своей аудитории. Очевидно, что перед тем, как приложить палец к клавиатуре, чтобы разработать свой язык, вы должны тщательно продумать, для чего он предназначен.
Если это новый интерпретируемый язык, который заменит JavaScript, то вам понадобится очень лаконичный подход, чтобы привлечь веб-разработчиков с ограниченным объемом внимания и стремлением к немедленным результатам - или быстрее, если это возможно.
Если он будет использоваться в следующей миссии на Титане, то минимальные начальные уровни будут иметь чрезвычайно подробные спецификации, показывающие точные формальные доказательства поведения каждого компонента.
Так что это не простая вещь. Чтобы приблизиться к спецификации, вам, вероятно, будет лучше приобрести большой опыт в создании ваших языков, а также работать с теми, кто фактически использует их на повседневной основе. Если у вас есть готовые жертвы ... э ... разработчики, которые могут потратить некоторое время на изучение вашего языка, они могут дать вам обратную связь о том, что необходимо для того, чтобы заставить их использовать его.
Короче говоря, будьте проще, и больше людей будут его использовать.