Есть ли языки, которые не написаны на c ++, rust или ada? - PullRequest
0 голосов
/ 16 февраля 2020

В настоящее время я разрабатываю язык программирования, для которого я использую golang в качестве основного языка программирования.

Это выглядит не намного медленнее, чем python. Я просто хотел знать, трачу ли я свое время на написание языка на go? Кто-нибудь уже писал какой-либо язык программирования, сохраняющий golang как базовый язык?

Я слышал, что самыми быстрыми языками являются c, c ++, rust и ada. Я также слышал, что go был быстрым, но не так быстро, как с ++. Какие (полу-популярные) языки написаны на go или на любом другом языке, не являющемся сверхбыстрым.

1 Ответ

1 голос
/ 17 февраля 2020

Вы можете проверить эту книгу при написании языка на основе 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 должно быть в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...