Go (язык программирования)

Материал из Seo Wiki - Поисковая Оптимизация и Программирование
Перейти к навигацииПерейти к поиску
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);
}

Примечания

Ссылки


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 и ещё....