What is Go written in?
The Go compiler is written in C and Go (well-documented). Its runtime is implemented in Go and Assembly (well-documented). Go is self-hosting.
Relationship Graph
All directly connected languages. Click any node to navigate to its page.
Compiler Implementation
| Language | Confidence | Notes | Source |
|---|---|---|---|
| C | 98% | Original Go compiler in C, rewritten in Go in 1.5 (2015) | Source |
| Go | 98% | Go compiler rewritten in Go in version 1.5 | Source |
Runtime Implementation
| Language | Confidence | Notes | Source |
|---|---|---|---|
| Go | 95% | Go runtime also written in Go since 1.5 | Source |
| Assembly | 95% | Go runtime has assembly components | Source |
Influenced By
- Newsqueak — Go's channel-based concurrency directly from Newsqueak
- Limbo — Limbo's concurrency model influenced Go
- C — Go's syntax influenced by C
- Alef — Alef's CSP-style concurrency influenced Go
- Oberon-2 — Oberon-2 influenced Go's package system and declarations
- Modula-2 — Go's package system influenced by Modula-2
- Oberon — Oberon influenced Go's module/package design
- BCPL — BCPL influenced Go via C lineage
- Pascal — Pascal influenced Go's declaration syntax
- Smalltalk — Smalltalk influenced Go's interface system
Languages Go Influenced
Frequently Asked Questions
What language is Go written in?
Go is primarily implemented in C and Go and Assembly. See the implementation section above for details and source references.
What languages influenced Go?
Go was influenced by Newsqueak, Limbo, Alef among others. See the influence section above for the full list.
Which languages did Go influence?
Go influenced V, Crystal among others.
Is Go self-hosting?
Yes, Go is self-hosting — its compiler can compile itself.
Evidence Sources
- https://go.dev/doc/faq#history
- https://go.dev/doc/go1.5
- https://vlang.io/
- https://devblogs.microsoft.com/typescript/typescript-native-port/
- https://en.wikipedia.org/wiki/Go_(programming_language)
- https://en.wikipedia.org/wiki/Crystal_(programming_language)