Sobre o conceito de Pilhas, responda:
2. Cite duas aplicações reais de pilhas em sistemas de software e justifique por que a pilha é adequada em cada caso.
2. Cite duas aplicações reais de pilhas em sistemas de software e justifique por que a pilha é adequada em cada caso.
Passo 1
O enunciado pede para citar duas aplicações reais de pilhas em sistemas de software e justificar por que a estrutura LIFO é adequada em cada caso. O conteúdo envolve entender como pilhas gerenciam dados no estilo last-in, first-out e reconhecer cenários em que esse comportamento espelha a lógica do problema.
Passo 2
Uma aplicação clássica é a gestão da pilha de chamadas (call stack) em linguagens de programação. Sempre que uma função é invocada, seus dados de contexto (variáveis locais, endereço de retorno etc.) são empilhados; ao retornar, esse contexto é desempilhado. A pilha é ideal aqui porque as chamadas aninhadas obedecem exatamente ao padrão LIFO: a última função chamada deve ser a primeira a terminar e devolver o controle.
Passo 3
Outra aplicação comum é o recurso de “undo” em editores de texto ou softwares de edição gráfica. Cada ação do usuário (inserir texto, apagar, mover objeto) é empacotada num comando e empilhada. Quando o usuário solicita desfazer, o programa desempilha o último comando e o inverte. Assim, as operações são revertidas na ordem inversa àquela em que ocorreram, casando perfeitamente com a semântica de uma pilha.
Resposta
(a) Pilha de chamadas em runtimes de linguagens: armazena contextos de execução de funções em LIFO, já que a última chamada é a primeira a retornar.
(b) Histórico de operações (undo) em editores: empilha cada ação para que o desfazer execute a última operação feita antes de seguir para as anteriores.
(b) Histórico de operações (undo) em editores: empilha cada ação para que o desfazer execute a última operação feita antes de seguir para as anteriores.