Go (programming language)
Go is a statically typed, compiled high-level programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson. It is syntactically similar to C, but also has memory safety, garbage collection, structural typing, and CSP-style concurrency. It is often referred to as Golang because of its former domain name, golang.org
, but its proper name is Go.
Paradigm | Multi-paradigm: concurrent imperative, functional object-oriented |
---|---|
Designed by | Robert Griesemer Rob Pike Ken Thompson |
Developer | The Go Authors |
First appeared | November 10, 2009 |
Stable release | |
Typing discipline | Inferred, static, strong, structural, nominal |
Memory management | Garbage collection |
Implementation language | Go, Assembly language (gc); C++ (gofrontend) |
OS | DragonFly BSD, FreeBSD, Linux, macOS, NetBSD, OpenBSD, Plan 9, Solaris, Windows |
License | 3-clause BSD + patent grant |
Filename extensions | .go |
Website | go |
Major implementations | |
gc, gofrontend | |
Influenced by | |
C, Oberon-2, Limbo, Active Oberon, communicating sequential processes, Pascal, Oberon, Smalltalk, Newsqueak, Modula-2, Alef, APL, BCPL, Modula, occam | |
Influenced | |
Crystal, V (Vlang) |
There are two major implementations:
- Google's self-hosting "gc" compiler toolchain, targeting multiple operating systems and WebAssembly.
- gofrontend, a frontend to other compilers, with the libgo library. With GCC the combination is gccgo; with LLVM the combination is gollvm.
A third-party source-to-source compiler, GopherJS, compiles Go to JavaScript for front-end web development.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.