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.