Um Tutorial para a Linguagem de Programação Go – parte 1

Posted by ALOVasconcelos on Nov 17, 2009 in Dicas, Tutoriais, laboratório |

Olá.
Continuando com o trabalho de desbravar/divulgar/estudar a linguagem de programação Go, começo a disponibilizar a partir de agora, a minha tradução do documento A Tutorial for the Go Programming Language, disponível (em inglês) no site The Go Programming Language.
Vou disponibilizar em partes, de modo que não seja necessário que você espere toda a tradução ficar pronta para ir estudando. Acrescentei algumas notas minhas (N.T.) para complementos de informações que achei necessários.
Espero que este documento seja útil, e conto com a sua colaboração para eventuais correções ou acréscimos que julgue necessários.

Um Tutorial para a Linguagem de Programação Go

<!– Let’s Go –>


Introdução

[Voltar ao topo]

Este documento é um tutorial introdutório às noções básicas da liguagem de programação Go,
destinado a programadores familiarizados com C ou C++. Não é um guia abrangente para a linguagem; no
momento o documento que mais se aproxima disso é a Especificação da Linguagem (em inglês).
Depois que tiver lido este tutorial, você pode querer dar uma olhada no documento Effective Go que estuda em profundidade a utilização da linguagem.
Slides de um curso de 3 dias sobre Go também estão disponíveis: Dia 1, Dia 2, Dia 3 (em inglês).

A apresentação aqui segue através de uma série de pequenos programas para ilustrar
características-chave da linguagem. Todos os funcionam (quando foram escritos) e estão
disponíveis no repositório, no diretório doc/progs (~/go/doc/progs).

Trechos de programas são transcritos com os números de linhas correspondentes ao arquivo original; para limpeza, linhas em branco permanecem em branco.


Alô, mundo

[Voltar ao topo]

Vamos começar da forma tradicional:

package main

import fmt "fmt" // Package implementando entrada/saída de dados formatada

func main() {
 	fmt.Printf("Alô, mundo\n");
}

Todo código-fonte Go, define através de uma declaração package, a qual pacote (package) ele pertence.
Ele também importa outras packages para dispor de suas facilidades.
Este programa importa a packagefmt” para ter acesso a nossa velha, agora capitalizada (com a primeira letra maiúscula) e “package-qualified” (com uma chamada qualificada – identificando a package a que pertence), amiga, “fmt.Printf“.

Funções são introduzidas com a palavra chave “func”.
A função “main” da package “main” é onde o programa começa a rodar (depois de qualquer inicialização).
Constantes strings pode conter caracteres Unicode, codificados em UTF-8. (Na verdade, arquvos-fonte Go são definidos para ser codificados em UTF-8).

N.T. No arquivo original correspondente a este tutorial, a string impressa contém a string “Alô, mundo” em outras línguas, o que fizerem para demonstrar a capacidade de Go manipular caracteres UTF-8.

A convenção de comentários é a mesma de C++:

/* ... */

// ...

Mais tarde, teremos muito mais a dizer sobre impressão.


Compilando

[Voltar ao topo]

Go é uma linguagem compilada. No momento, existem dois compiladores.
Gccgo é o compilador que usa o back end do GCC. Existe também uma suite de compiladores com
diferentes (e estranhos) nomes para cada arquitetura: “6g” para x86 de 64 bits, “8g” para x86 de 32 bits
e mais. Estes compiladores rodam significativamente mais rápido mas geram código menos eficiente que “gccgo”.
No momento da escrita deste documento (novembro/2009), eles também têm um sistema de tempo de execução mais robusto, embora “gccgo” os esteja alcançando.

Aqui está como compilar e executar nosso programa. Com “6g”:

$ 6g helloworld.go  # compila; código objeto salvo em helloworld.6
$ 6l helloworld.6   # "linka"; saida vai para 6.out
$ ./6.out           # Executa
Alô, mundo
$

N.T. – Observe que caso esteja utilizando uma máquina de 32 bits, ao invés de 6g e 6l, você deverá utilizar 6g e 8l.
O arquivo binário executável pode ser especificado pelo argumento -o do comando 6l (ou 8l), da seguinte forma:

$ 6l -o helloworld helloworld.6   # "linka"; saida vai para helloworld

Dessa forma, o executável gerado se chamará helloworld, ao invés de 6.out

Com “gccgo” a coisa parece um pouco mais tradicional:

$ gccgo helloworld.go
$ ./a.out
Alô, mundo
$

N.T. – Com a utilização do gccgo, o arquivo binário executável gerado, tem por default o nome a.out (como no gcc). Podemos especificar um nome diferente pelo argumento -o:

$ gccgo -o helloworld helloworld.go
$ ./helloworld
Alô, mundo
$

Para instruções sobre a instalação do gccgo, acesse o Post Instalando gccgo no Ubuntu neste Blog.

Continua…

Abraço

Tags: , , , , , ,

7 Comments

Leave a Reply

XHTML: You can use these tags:' <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Copyright © 2008-2010 ALOVasconcelos All rights reserved.
Desk Mess Mirrored v1.5.1 theme from BuyNowShop.com.