"Why move the compiler to Go?
Not for validation; we have more pragmatic motives:
Go is easier to write (correctly) than C.
Go is easier to debug than C (even absent a debugger).
Go is the only language you'd need to know; encourages contributions.
Go has better modularity, tooling, testing, profiling, ...
Go makes parallel execution trivial.
Already seeing benefits, and it's early yet.
Design document: golang.org/s/go13compiler"
"Why translate it, not write it from scratch?
Correctness, testing.
Steps:
Write a custom translator from C to Go.
Run the translator, iterate until success.
Measure success by bit-identical output.
Clean up the code by hand and by machine.
Turn it from C-in-Go to idiomatic Go (still happening)."