VidaGeek.net

Linux, Open-source, Programação e Produtividade

Archive for March, 2007

Jogue com o Pensamento

Uma empresa chamada Emotiv está desenvolvendo um sistema que permite que você controle um jogo diretamente do seu cérebro. Embora o nome, Poryecto Epoc, seja realmente ruim e precise ser melhorado, o aparelho será lançado na feira GameDevelopers que acontece nos Estados Unidos entre os dias 5 e 9 de março.

Mais informações: Uol

Posts Relacionados:

  • Inteligência Artificial
  • E quando nossos heróis tombarem?
  • 10 artigos que todo programador deveria ler (pelo menos duas vezes)
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

  • 0 Comments
  • Filed under: Jogos
  • Dia C - Pilha do C

    Provavelmente você ja deve ter ouvido falar de FILO, first in last out (primeiro a entrar é o ultimo a sair). Muitas (talvez todas) linguagens de programação usam uma estrutura FILO para controlar chamadas de funções e alocações de variáveis. Uma estrutura FILO também é chamada de pilha.

    Uma pilha basicamente é um vetor e um controle de onde está o topo dessa pilha. No caso da pilha de uma linguagem de programação, como são os parâmetros e as variáveis de funções em execução ou em espera pelo término de uma outra função chamada por ela. Variáveis globais e/ou estáticas também são armazenadas na pilha. Quando uma função é chamada (ou um bloco é aberto), o marcador do topo da pilha é deslocado X bytes para frente, sendo X o espaço para alocar variáveis e/ou parâmetros. Quando a função (ou o bloco) termina, o marcador é deslocado novamente X bytes para trás, liberando o espaço para uma posterior alocação.

    Em C, a pilha tem em torno de 8Mb. Isso é muita memória. Então chamadas de funções (a não ser um loop recursivo infinito) dificilmente irão exceder esse limite. Caso exceda, uma Segmentation Fault é lançada.

    Apenas para complementar o post sobre VarArgs, agora que você conhece o funcionamento geral do sistema de controle de variáveis e parâmetros, é fácil notar que pelo menos parte da va_list lida com um ponteiro associado à pilha (por isso é necessário um parâmetro fixo, pois não é possível obter o endereço do local onde estão os parâmetros na pilha). Além disso a va_list deve cuidar de parâmetros passados por registradores.

    Mais informações: Introduction To Algorithms, de Cormem, Leiserson, Rivest e Stein (CLRS) ou pilha -> Google

    Próxima sexta: Recursão

    Posts Relacionados:

  • Dia C - Recursão
  • JSF - Java’s Signal of Failure
  • Séries
  • INC - Pilha de Construtores
  • Dia C - Threads em C
  • FISL 8.0 - A Ida
  • Promoção RedBug
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.