Go (linguagem de programação)

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Go
Paradigma compilada, concorrente, imperativa, estruturada
Surgido em 2009[1]
Última versão 1 (28 de março de 2012)
Criado por Robert Griesemer, Rob Pike, and Ken Thompson[1]
Estilo de tipagem: Estática[2]
Compiladores gc, gccgo[3]
Influenciada por C, Pascal, Modula, Oberon, Newsqueak, Limbo[4]
Licença: BSD[3]
Página oficial http://golang.org/

Go é uma linguagem de programação criada pela Google e lançada em código livre em novembro de 2009. É uma linguagem compilada e programação concorrente,[4] baseada em trabalhos feitos no sistema operacional chamado Inferno.[5] O projeto inicial da linguagem foi feito em setembro de 2007 por Robert Griesemer, Rob Pike e Ken Thompson.[4] Atualmente, há implementações para Windows, Linux, Mac OS X e FreeBSD.[3]

Descrição[editar | editar código-fonte]

A sintaxe de Go é semelhante a C; uma variação é a declaração de tipos, a ausência de parênteses em volta das estruturas for e if. Possui coletor de lixo. Seu modelo de concorrência é baseado no CSP de Tony Hoare,[4] além de possuir características do cálculo pi, como passagem por canal.

Algumas funcionalidades ausentes são tratamento de exceção, Herança, programação genérica, assert e sobrecarga de métodos.[4] Os autores expressam abertura para discutir programação genérica, mas argumentam abertamente contra asserções e defendem a omissão de herança de tipos em favor da eficiência.[4] Ao contrário de Java, vetores associativos são parte intrísceca da linguagem, assim como strings.

Implementações[editar | editar código-fonte]

Atualmente, há dois compiladores para Go. 6g e ferramentas complementares - conhecidos em conjunto como gc - são escritos em C, usando yacc e bison para análise sintática. Além do gc, há o gccgo, um compilador de Go com front-end C++ (utilizando um analisador sintático descendente recursivo) associado ao back-end padrão do GCC.[2]

Exemplos[editar | editar código-fonte]

Abaixo, segue-se o Programa Olá Mundo em Go:

package main
 
import "fmt"
 
func main() {
    fmt.Printf("Olá, Mundo!\n")
}

Outro exemplo, uma implementação do echo do Unix:[6]

package main
 
import (
    "os"
    "flag" // analisador sintático da linha de comando
)
 
var omitNewline = flag.Bool("n", false, "don't print final newline")
 
const (
    Space   = " "
    Newline = "\n"
)
 
func main() {
    flag.Parse() // escaneia a lista de argumentos e configura as bandeiras
    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)
}

Disputa sobre o nome[editar | editar código-fonte]

Poucos dias após o lançamento da linguagem, Fancis McCabe, desenvolvedor da linguagem chamada Go!, solicitou uma mudança de nome da linguagem do Google, para evitar confusões. McCabe criou Go! em 2003, mas não registrou o nome.[7]

Referências

  1. a b Della Valle, James (12 de novembro de 2009). Google apresenta linguagem GO INFO Online Editora Abril. Visitado em 12 de novembro de 2009.
  2. a b FAQ (em inglês). Visitado em 12 de novembro de 2009.
  3. a b c Installing Go (em inglês). Visitado em 14 de setembro de 2012.
  4. a b c d e f Language Design FAQ (em inglês). Visitado em 12 de novembro de 2009.
  5. 5.c - go - Project Hosting on Google Code. Visitado em 12 de novembro de 2009.
  6. A Tutorial for the Go Programming Language (em inglês). Visitado em 12 de novembro de 2009.
  7. Claburn, Thomas (11 de novembro de 2009). Google 'Go' Name Brings Accusations Of 'Evil' (em inglês) InformationWeek United Business Media. Visitado em 12 de novembro de 2009.

Ligações externas[editar | editar código-fonte]