Go (язык программирования)
Файл:Golang.png | |
Класс языка: | |
---|---|
Появился в: |
2009 г. |
Автор(ы): | |
Основные реализации: |
gc, gccgo |
Go — компилируемый, многопоточный язык программирования. Данный язык был разработан компанией Google[1] как ответвление от проекта разработки операционной системы Inferno. Первоначальная разработка Go началась в сентябре 2007 года, а его непосредственным проектированием занимались Роберт Гризмер, Роб Пайк и Кен Томпсон[2]. Официально язык был представлен в ноябре 2009. На данный момент его поддержка осуществляется лишь для операционных систем Linux и Mac OS X.[3]
Название
Следует отметить, что название языка, выбранное компанией Google, практически совпадает с названием языка программирования Go!, созданного Ф.Джи. МакКейбом и К. Л. Кларком в 2003 году.[4] Обсуждение названия ведется на странице, посвященной Go[4].
Описание
Синтаксис языка Go схож с синтаксисом языка Си, за исключением объявлений типа; прочие синтаксические различия заключаются в отсутствии круглых скобок для условных конструкций for и if. Язык также поддерживает сборку мусора (garbage collection). Модель многопоточности Go была создана на основе CSP Тони Хоара по типу предыдущих распараллеливаемых языков программирования Occam и Limbo,[2], но также присутствуют такие особенности Пи-исчисления как канальная передача.
Однако отсутствуют такие возможности как обработка исключений, наследование типов, обобщённое программирование, использование утверждений и переопределение методов (en:Method overriding).[2] Однако, у Google есть в дальнейших планах возможность добавления обобщённого программирования, тогда как против использования утверждений в FAQ по языку приводятся аргументы, а наследование без указания типа, наоборот, отстаивается. В отличие от Java присутствует поддержка ассоциативных массивов (в виде хэшей или словарей) как и строк.
Реализации
На данный момент существуют два компилятора Go. 6g (и сопутствующие ему инструменты, вместе известные под названием gc) написан на Си с применением yacc/Bison для парсера. Gccgo — еще один компилятор Go с клиентской частью, написанной на C++, и рекурсивным парсером, совмещенным со стандартным бэк-эндом GCC[5].
Примеры
Ниже представлен пример программы «hello world» на языке Go.
package main
import "fmt"
func main()
{
fmt.Printf("Hello, World!\n")
}
Пример реализации команды Unix echo
package main
import (
"os";
"flag"; // парсер параметров командной строки
)
var omitNewline = flag.Bool("n", false, "не печатать последнюю линию")
const (
Space = " ";
Newline = "\n";
)
func main() {
flag.Parse(); // Сканирование списка аргументов и установка флагов
var s string = "";
for i := 0; i < flag.NArg(); i++ {
if i > 0 {
s += Space
}
s += flag.Arg(i)
}
if !*omitNewline {
s += Newline
}
os.Stdout.WriteString(s);
}
Примечания
Ссылки
- Google создал новый язык программирования
- Домашняя страница языка Go
- Вопросы и ответы по языку Go
- The Go Programming Language на YouTube
- IRC : irc://irc.freenode.net/go-nuts на irc.freenode.net
- Подписка на рассылку : http://groups.google.com/group/golang-nuts
SQL | Это незавершённая статья о компьютерных языках. Вы можете помочь проекту, исправив и дополнив её. |
Ошибка: неверное или отсутствующее изображение |
Для улучшения этой статьи желательно?:
|
ar:غو (لغة برمجة) da:Go (programmeringssprog) de:Go (Programmiersprache) en:Go (programming language) es:Go (lenguaje de programación) fi:Go (ohjelmointikieli) fr:Go (langage) he:GO (שפת תכנות) hu:Go (programozási nyelv) it:Go (Linguaggio di programmazione) ja:Go (プログラミング言語) ms:Go (bahasa pengaturcaraan) nl:Go (google) no:Go (programmeringsspråk) pl:Go (język programowania) pt:Go (linguagem de programação) sr:Гоу tr:Go (programlama dili) vi:Ngôn ngữ GO zh:Go
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....
- Страницы, использующие устаревший тег source
- Страницы с ошибками в подсветке синтаксиса
- Страницы с неработающими файловыми ссылками
- Появились в 2009 году
- Языки программирования по алфавиту
- Википедия:Стилистически некорректные статьи
- Википедия:Статьи без иллюстраций
- Языки программирования семейства C
- Языки программирования, использующие фигурные скобки
- Многопоточные языки программирования
- Языки программирования, созданные в 2009