Примечания (18 декабря 2013), планируется переместить компилятор C Пойти себя:
"Go 1.3+ Compiler Overhaul" (Russ Cox)
В этом контексте пакетах, как идти/анализатор будет принимать участие, и «Фаза 5» упоминает:
Заменить передний конец с последними (возможно, новых) версий go/parser
и go/types
.
Роберт Гриземер обсудил возможность разработки новых API-интерфейсов go/parser
и go/types
в какой-то момент, основываясь на опыте с текущими (и под новыми именами, чтобы сохранить совместимость Go 1).
Работа по подключению их к задней части компилятора может помочь в разработке дизайна новых API.
Это, вероятно, свидетельствует о том, стабильнее язык стал, так как старый «A Tour of Go» (июнь 2012) упоминалось выше ясно сказано:
Тот факт, что Go не было написанная сама по себе, также значительно облегчила внесение существенных изменений языка.
Перед первым выпуском мы прошли через несколько оптовых синтаксических переворотов, и я рад, что нам не пришлось беспокоиться о том, как мы собираемся перезагружать компилятор или обеспечивать некоторую обратную совместимость во время этих изменений.
Вопрос «Есть ли какой-нибудь план для загрузки в Go Go, чтобы написать компилятор Go в Go? "упоминается в то время (опять же, июнь 2012):
Там нет немедленного плана Go делает корабль с программным анализатором Go написано в Go, так что первая часть уже сделана, и есть экспериментальный тип проверка. в работах, но это в основном для написания инструментов анализа программ.
Я работал над загруженными языками в прошлом, и я обнаружил, что самонастраивание не обязательно подходит для языков, которые меняются часто. подняться на скалу и завинчивать крюки в скале время от времени, чтобы поймать вас, если вы упадете.
Что делать, если я добавил новый токен и соответствующий узел узла и метод анализа? Или я просто полностью ошибаюсь. – calvin
Инструмент go запускает компилятор Go, но компилятор Go - это проект C, он не использует пакет парсеров Go. – zzzz