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 (10 de novembro de 2009)
Versão em teste {{{versao_beta}}} ()
Criado por Robert Griesemer, Rob Pike, and Ken Thompson[1]
Estilo de tipagem: Estática[2]
Compiladores gc, gccgo[3]
Dialetos:
Influenciada por C, Pascal, Modula, Oberon, Newsqueak, Limbo[4]
Influenciou
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 apenas para Linux e Mac OS X.[3]

Índice

[editar] Descrição

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.

[editar] Implementações

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]

[editar] Exemplos

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)
}

[editar] Disputa sobre o nome

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. "Google apresenta linguagem GO". INFO Online. Editora Abril. 12 de novembro de 2009. (página da notícia 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 12 de novembro de 2009.
  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. "Google 'Go' Name Brings Accusations Of 'Evil'" (em inglês). InformationWeek. United Business Media. 11 de novembro de 2009. (página da notícia visitada em 12 de novembro de 2009)

[editar] Ligações externas

Ferramentas pessoais
Espaços nominais
Variantes
Ações
Navegação
Colaboração
Imprimir/exportar
Ferramentas
Noutras línguas