schnorr / mlp

Disciplina de Modelos de Linguagens de Programação - INF/UFRGS
19 stars 11 forks source link

Recursão impossivel variavel estatica #18

Closed mariojose123 closed 5 years ago

mariojose123 commented 6 years ago

Na aula de Vinculação de Estocagem,não entendi o que você quis dizer com recursão impossível na seção 10 estatica,porque seria o caso?

augustotimm commented 6 years ago

Meu entendimento, posso estar errado, mas o que entendi foi: Não é possível fazer recursao com variáveis estatísticas pois para fazer recursao depende-se do parâmetro de entrada da função e no momento que é utilizada essa variável está sendo usada uma variável dinâmica.

schnorr commented 6 years ago

@mariojose123 O comentário do @augustotimm é válido no sentido que quando se tem recursão de funções, as variáveis locais a função recursiva são alocadas dinamicamente. Estas variáveis locais são também conhecidas como variáveis automáticas, cuja vinculação de estocagem - storage binding - é feita automaticamente na chamada e fim da função.

Quando temos unicamente vinculação de estocagem estática na linguagem, temos somente variáveis globais ou estáticas, com static. Isso implica que não teremos mais aquelas variáveis "automáticas". Isso faz com que todas as instâncias da função recursiva compartilhem o conteúdo das variáveis (que são globais), e portanto tendo acesso ao mesmo conteúdo. Isso torna impossível ter variáveis que controlem o critério de parada, por exemplo.