Quadro de pilha

Definição - o que significa Stack Frame?

Um frame de pilha é uma técnica de gerenciamento de memória usada em algumas linguagens de programação para gerar e eliminar variáveis ​​temporárias. Em outras palavras, pode ser considerada a coleção de todas as informações na pilha pertencentes a uma chamada de subprograma. Os frames da pilha só existem durante o processo de tempo de execução. Os frames de pilha ajudam as linguagens de programação no suporte à funcionalidade recursiva para sub-rotinas.

Um quadro de pilha também conhecido como quadro de ativação ou registro de ativação.

Definirtec explica Stack Frame

Uma estrutura de pilha é composta por:

  • Variáveis ​​locais
  • Cópias salvas de registros modificados por subprogramas que podem precisar de restauração
  • Parâmetros de argumento
  • Endereço de devolução

Um frame de pilha individual possui espaço para parâmetros reais, localizações temporárias, variáveis ​​locais e informações de sub-rotina de chamada. Quando as rotinas específicas que chamam esses parâmetros, locais ou variáveis ​​concluem a execução, o quadro de pilha relevante é eliminado da pilha. A ordem de empacotamento das informações no stack frame, na maioria dos casos, é independente das especificações da linguagem de programação.

Uma das características salientes do quadro de pilha é que, para um subprograma específico, o tamanho do quadro de pilha é fixo. Para que uma linguagem de programação use um frame de pilha, um contador de programa e um thread devem estar disponíveis com dois ponteiros: o ponteiro de base e o ponteiro de pilha. O ponteiro da base sempre aponta para o topo do quadro, enquanto o ponteiro da pilha aponta para o topo da pilha. O contador do programa ajuda a apontar para a próxima instrução executável. Um frame de pilha para um determinado procedimento possui todas as informações relevantes para salvar e restaurar o estado do procedimento específico.