Posts com Tag ‘Programação’

Para os que não utilizam o linux, estou postando este passo a passo para instalação e configuração do compilador. Um detalhe que deve ser considerado é que esta versão suporta apenas os windows 2000 e XP.

baixe o GO versão para windows clicando neste link, e descompacte o conteúdo do arquivo baixado em c:\go

Em seguida vamos criar as variáveis de ambiente, clique com o botão direito do mouse em meu computador em seguida clique em propriedades, vai aparecer a guia de propriedades você terá que ir na aba avançado e clicar no botão variáveis de ambiente.

Nesta nova tela que abrir, em variáveis do sistema clique em nova e adiciona as seguintes variáveis:

Nome Valor
GOBIN C:\go\bin
GOARCH 386
GOOS mingw
GOROOT C:\go

Após criar as variáveis acima é necessário adicionar o %GOBIN% no path, para fazer isso encontre a variável path na lista de variáveis selecione e clique em editar, no final da linha com o valor da variável adicione “;” se não tiver e em seguida %GOBIN% , agora abra o teminal em executar depois digite cmd, em seguida na tela preta com linhas bancas, digite 8l, se deu um erro diferente de comando não encontrado parabéns você instalou o GO.

Agora vamos para a próxima postagem fazer o ola mundo! e aprender um pouco da linguagem.

Continuando com a serie de postagens sobre a linguagem GO, o rarefecundo.com trás a instalação e configuração do mesmo nos sistemas operacionais linux.

Instalação no LINUX/MAC

No site golang.com existe um tutorial com passo a passo para instalação e configuração do sistema, nestes dois SOs. Mas achei muito interessante o script  produzido pelo Daniel Mazza que pode ser baixado neste endereço: http://migre.me/LSSZ

Vamos mostar como fazer a instalação manual depois faremos a instalação usando o script do Mazza.

para fazer a instalação no linux, eu usei o ubuntu 9.10/64bits para fazer esse post, vamos seguir os seguintes passos:

Primeiro: A configuração das variáveis e abaixo está as combinações possíveis a serem usadas nos passos que se seguem,

$GOOS $GOARCH
darwin 386
darwin amd64
freebsd 386
freebsd amd64
linux 386
linux amd64
linux arm
nacl 386

No nosso caso a combinação utilizada foi a linux/amd64, detalhes eu uso core2duo intel, o fato é que a arquitetura de 64bits inicial foi da amd por isso foi colocado este nome para ela, mas como é um padrão tanto os processadores da amd quanto os da intel usam essa arquitetura.

Escolhemos a pasta /HOME/go  para ser a pasta raiz da aplicação

Escolhido o local de instalação vamos agora as variáveis. Para registrá-las use os comandos:

export GOROOT=$HOME/go
export GOBIN=$HOME
/bin
export GOOS=linux
export GOARCH=amd64
export PATH=$PATH:$HOME
/bin

inicialmente você terá que digitar as linhas acima para fazer a instalação .

para não precisar fazer o registro das variáveis todas as vezes que o sistema for reiniciado edite o arquivo .baschrc ou .profile, no meu caso foi o .bachrc usei o comando

$ sudo gedit /home/nomeUsuario/.bashrc

é só adicionar no final do arquivos as linhas acima, lembrado que nomeUsuario deve ser substituído pelo seu usuário no sistema.

para conferir se as variáveis foram registradas digite:

$ env | grep ‘^GO’   (se for copiar esta linha, redigite as aspas simples.)

Segundo: Baixando os pacotes necessários.

vamos instalar algumas ferramentas  necessárias para baixar os pacotes a serem compilados do GO.

$ sudo apt-get install bison gcc libc6-dev ed gawk make

$ sudo apt-get install mercurial

em seguida vamos baixar os pacotes que serão compilados,

$ hg clone -r release https://go.googlecode.com/hg/ $GOROOT

crie o diretório necesśario e em seguida faça a instalação

$ mkdir ~/bin 2> /dev/null

$  cd $GOROOT/src

$  ./all.bash

se tudo deu certo (provavelmente não) você está com o go instalado na sua maquina. para testar digite no terminal 6l ou 8l caso apareça algo diferente de command not fount, parabéns você conseguiu instalar agora é só esperar a próxima postagem com o ola mundo. caso contrário recomendo o uso do script do Mazza http://migre.me/LSSZ

baixe e depois descompacte o conteúdo para a pasta de usuário.

Acesse esta pasta:

$ /home/nomeUsuario/GoInstaller

e em seguida execute o script, ele vai pedir para confirmar a arquitetura e o SO, se seu linux for de 64bits será o linux/amd64. é só aguardar o dito fazer o trabalho.

até a próxima!

fontes:

http://golang.org/doc/install.html

A uma semana atrás tivemos uma apresentação interessante na aula de paradigmas de linguagem de programação, que nos apresentou a linguagem de programação Prolog, a aula foi ministrada pelos colegas Rafael, Elias e Jonas.

O Prolog é uma linguagem de programação lógica,  funciona com cálculos de predicados. Para os que não lembram dos cálculos de predicados das aulas de lógica de predicados o negócio funciona assim:dado alguns predicados podemos inferir ou tirar como conclusão alguma coisa, claro que essa alguma coisa tem que ter lógica (meio redundante isso).

um exemplo de calculo de predicado:

1. Todo amigo de Carlos é amigo de Jonas.
Pedro não é amigo de Jonas.
Logo, Pedro não é amigo de Carlos.

Para testar o prolog, basta instalar o swipl no ubuntu digitando o comando sudo aptitude install swipl

Uma coisa interessante no prolog é que ele especifica como deve ser a solução, ao invés de dar o algarismo para sua resolução. A solução se obtém mediante busca aplicando a lógica de predicados.

Um exemplo de programa usando prolog:

  • gosta(joão, jazz).
  • gosta(joão, renata).
  • gosta(joão, lasanha).
  • gosta(renata, joão).
  • gosta(renata, lasanha).

Poderiamos então fazer as seguintes perguntas:

gosta(joão, jazz),João gosta de jazz?

gosta(renata, lasanha). renata gosta de lasanha?

Agora é só deixar a imaginação fluir um pouco.

A atividade da semana foi: fazer um programa que fizesse os cálculos de fibonacci.

cheguei aos seguinte algorítimo recursivo:

  • fib(0, 0). /*para a sequência iniciada por 0, teremos como sucessão 0*/
  • fib(1, 1). /*para a sequência iniciada por 1, teremos como sucessão 1*/
  • fib(X, Y) :-
  • X > 1, /*para a sequência iniciada por X sendo x>1 */
  • X2 is X – 2, fib(X2, Y2), /* X2 recebe o valor x-2 e faz o fibonacci de forma recursiva de X2 que retorna   Y2*/
  • X1 is X – 1, fib(X1, Y1), /* X1 recebe o valor x-1 e faz o fibonacci de forma recursiva de X1 que retorna Y1*/
  • Y is Y1 + Y2.  /* por fim Y recebe como requerido no cálculo de fibonacci a soma dos dois valores precedentes */

/*cada número subseqüente é igual à soma dos dois números precedentes da seqüência própria*/

As peguntas que podem ser feitas são:

fib(8, X), qual o primeiro número da sucessão de fibonacci em  8? Os 100 primeiros números da sequencia fibonacci

outros detalhes e exemplos podem ser encontrados na apresentação sobre prolog.

Apresentação aula de paradigmas Prolog

Clique aqui para ver a apresentação

Lua é uma linguagem de programação poderosa, rápida e leve, projetada para estender aplicações. [7], É uma linguagem open source, podendo ser utilizada comercialmente sem a necessidade de qualquer tipo de autorização.

Para instalar o compilador lua no GNU/Linux ubuntu é só abrir o terminal e digitar a seguinte linha de comando, sudo aptitude install lua5.1 e pronto, agora use um editor de textos de sua preferencia, no meu caso o kate, para criar seus arquivos .lua , e no final é só compilar o arquivo usando o comando lua nomeArquivo.lua.

Vamos fazer uma programinha em lua que tenha as seguintes funções, ler dez valores armazenado-os
em uma tabela coloque a tabela em ordem crescente e no final Imprima o vetor.

  1. local tabela = {}
  2. vetor = {}
  3. cont=0
  4. while cont<10 do
  5. print”Digite um valor numérico”
  6. table.insert(tabela,io.read(“*n”))
  7. cont=cont+1
  8. end
  9. table.sort(tabela)
  10. for i=1, 10 do
  11. vetor[i]=(tabela[i])
  12. end
  13. for i=1, 10 do
  14. print(vetor[i])
  15. end

Por fim segue a apresentação feita pelos colegas, Douglas e as colegas Deise, Luane e Naara sobre esta linguagem para a disciplina de paradigmas de linguagem de programação.

Clique aqui para baixar a apresentação LUA

[7] http://www.lua.org/portugues.html

Imagem Capa livro Linguagens de Programação SebestaUma variável é a abstração de uma localização na memória do computador, uma célula ou conjunto de células, no caso das memórias RAMs são endereços nas células capacitivas. Nas linguagens de programação da atualidade, as variáveis são formadas por seis atributos a saber; nome, endereço, valor, tipo, tempo de vida e escopo. (Sebesta. p.179).

Os nomes são identificação que os desenvolvedores atribuem a uma variável. Em algumas linguagens existem um conjunto de nomes reservados. Os nomes podem ter de um, a um conjunto não limitado de caracteres como no JAVA e no C. (Sebesta. p.181). Na linguagem de programação ‘criada’ pelo google o GO, os nomes podem receber um conjunto indeterminado de caracteres, e possuem as restrições de palavras reservadas como int.

O endereço é a localização da variável na memória, ele pode mudar de acordo com os tempo de execução de um programa. Os endereços podem receber vários nomes, como no caso dos APELIDOS. Desta forma podemos ter dois nomes de variável apontando para o mesmo endereço de memória.(Sebesta. p.181).

“O tipo de uma variável determina a faixa de valores que uma variável pode ter e o conjunto de operações definidas para os valores do tipo.”(Sebesta. p.181). Na linguagem GO por exemplo o “int” possui um valor entre 32 e 64 bits. Com este tipo podemos efetuar operações matemática como subtração, adição, multiplicação e etc.

Ainda quanto ao tipo, uma linguagem pode ser fortemente tipificada quando exige a definição do tipo na declaração de uma variável como no caso do FORTRAN , dinamicamente tipificada quando o tipo de dados pode  ser alterado em tempo de execução e fracamente tipificada que o caso das linguagens que possuem apenas um tipico genérico de dados, nestes caso não há necessidade de definição do tipo na declaração da variável. (Sebesta. p.190)

Segundo Sebesta, o valor de uma variável é o conteúdo de uma célula ou conjunto de celular associadas a esta. As células de memórias costumam ser de 1 byte ou seja 8 bits, e muitas variáveis podem conter valores maiores que 1 byte como é o caso do int no GO. Com isso usam-se o conceito de célula de memória abstrata, é o conjunto de células usadas por uma determinada variável, ou seja, um int com valor 32bits ocupa 4bytes, ou seja quatro células reais de memória ou uma célula abstrata.

O tempo de vida de uma variável é o intervalo de tempo durante o qual um conjunto de células de memória está vinculado à uma variável. As variáveis estáticas são as com um maior tempo de vida, visto que são reservadas no inicio do programa e só são desalocadas quando o finalizamos. Em um programa escrito em GO, uma variável pode ser declarada e usada tanto dentro do programa como dentro de métodos, estas últimas  tem um tempo de vida menor, pois duram o exato tempo de vida do método.

O escopo de uma variável é o trecho do programa em que esta variável pode utilizada, acessada ou modificada. Usando a linguagem GO, uma variável declarada em um método qualquer, terá seu escopo determinado por este método.

Para mais detalhes leiam:

http://books.google.com.br/books?id=b0tcn_uPLoAC&printsec=frontcover&dq=sebesta&as_brr=3&ei=t_S4S9WML4SqywTRh_k5&cd=5#v=onepage&q=&f=true

http://www-di.inf.puc-rio.br/~rangel/

http://golang.org/doc/go_spec.html#TypeName

Thiago Santos de Amorim