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 20091
Última versão 1 (28 de março de 2012)
Criado por Robert Griesemer, Rob Pike, and Ken Thompson1
Estilo de tipagem: Estática2
Compiladores gc, gccgo3
Influenciada por C, Pascal, Modula, Oberon, Newsqueak, Limbo4
Licença: BSD3
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çãoeditar | 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çõeseditar | 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

Exemploseditar | 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 nomeeditar | 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. Página visitada em 12 de novembro de 2009.
  2. a b FAQ (em inglês). Página visitada em 12 de novembro de 2009.
  3. a b c Installing Go (em inglês). Página visitada em 14 de setembro de 2012.
  4. a b c d e f Language Design FAQ (em inglês). Página visitada em 12 de novembro de 2009.
  5. 5.c - go - Project Hosting on Google Code. Página visitada em 12 de novembro de 2009.
  6. A Tutorial for the Go Programming Language (em inglês). Página visitada 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. Página visitada em 12 de novembro de 2009.

Ligações externaseditar | editar código-fonte








Creative Commons License