Языки программирования - это не программы, поэтому они не "написаны" ни на каком языке. Они часто описываются формальными грамматиками (например, БНФ).
Интерпретаторы и компиляторы для языков программирования являются программами и поэтому должны быть написаны на каком-либо языке программирования.
У Go есть по крайней мере два компилятора, gc
и gccgo
. Первый был написан на языке C, но теперь он написан на языке Go. В то время как второй представляет собой фронтенд gcc, написанный в основном на C++. Библиотеки Go написаны на Go.
Посмотрите исходники и C для себя, если можно так выразиться.
EDIT Команда разработчиков Go объявила в декабре 2013 года, что они переведут компилятор на Go. По состоянию на февраль 2015 года компилятор является исключительно самодостаточным, так как реализация на C была удалена. Новый компилятор впервые поставляется с Go 1.5.
Он написан на C. Библиотеки написаны на самом Go.
Edit: Теперь компилятор был переписан на Go, так что он полностью самодостаточен.