Вы можете проверить эту книгу при написании языка на основе Go: Написание переводчика в Go. У него также есть продолжение, Writing A Compiler In Go.
Это показывает развитие игрушечного языка под названием обезьяна, и хотя обезьяна не используется в производстве, книга делает хорошая работа показа основ. Вы можете прочитать больше об этом на их сайте.
Существует определенный язык, который разрабатывает Александр Медведников , который vlang . Vlang стремится быть готовым к использованию языком, так что проверьте его. Первоначально Vlang разрабатывался в Go, но теперь его компилятор находится в vlang, что является еще одним примером начальной загрузки.
Если вы считаете домены, заданные c языками, вы можете утверждать, что формат Dockerfile также написан на Go, поскольку docker демон находится в Go, и он должен анализировать Dockerfile.
Ну, Golang также написано в Golang. В языке был компилятор в C до версии 1.4, но они переписали свой компилятор в Golang, скомпилировали его со старым C компилятором и используют их Golang компилятор начиная с указанной версии. Эта вещь называется начальной загрузкой и является популярным способом разработки новых языков.
Если я прав, то язык, на котором написан компилятор, влияет только на время компиляции языка, и на скорость выполнения влияет вашими оптимизациями на самом компиляторе. (Если у вас есть скомпилированный язык).
Для интерпретируемых языков, которые у вас, похоже, есть, потому что вы сравниваете свой с python, Golang может быть медленнее, чем C ++, хотя имейте в виду, что это так, если вы можете довольно оптимизировать оба языка хорошо. (что трудно сделать)
Я думаю, что развитие языка в Go - не пустая трата времени. Его проще разрабатывать, чем C ++ (опять-таки, на мой взгляд), поэтому вы можете быстро выполнять итерации при разработке семантики вашего собственного языка. Если вам в конечном итоге потребуется гораздо более высокая скорость, чем может предложить Go, что хорошо для вас, это означает, что ваш язык сейчас популярен и имеет стабильный синтаксис, вы можете переписать его на Rust или C. До этого Go должно быть в порядке.