Explorando a Pilha de Execução (Exploring the stack for fun and profit)
DOI:
https://doi.org/10.5753/ijcae.2015.4925Abstract
A disciplina de Software Básico que oferecemos na PUC-Rio adota a perspectiva de um desenvolvedor de software, enfatizando o suporte que os componentes básicos de uma arquitetura típica provê para as abstrações oferecidas por linguagens de programação. Um tópico central da disciplina é a pilha de execução, um mecanismo cujo domínio é essencial para proficiência em programação. Neste trabalho discutimos como a disciplina explora esse mecanismo e o seu suporte para abstrações típicas de programação, como variáveis locais e procedimentos, e também para multitasking a nível de aplicação.
Downloads
Referências
R. Sebesta, Concepts of Programming Languages, 10th ed. Pearson, 2012.
M. Scott, Programming Language Pragmatics, 3rd ed. Morgan Kaufmann, 2009.
C. Ghezzi and M. Jazayeri, Programming Languages Concepts, 3rd ed. Wiley, 1997.
A. L. de Moura and N. Rodriguez, “Sistemas de computação sob o ponto de vista do desenvolvedor de software,” in Anais do XXXIV CSBC — WEI (Workshop de Educação em Computação), 2014.
R. E. Bryant and D. R. O’Hallaron, Computer Systems: A Programmer’s Perspective, 2nd ed. Prentice-Hall, 2011.
(2014) Heartbleed. [Online]. Available: [link]
A. L. Moura and R. Ierusalimschy, “Revisiting coroutines,” ACM Transactions on Programmming Languages and Systems, vol. 31, no. 2, pp. 6:1–6:31, Feb. 2009.
R. Ierusalimschy, Programming in Lua, 3rd ed. Lua.org, 2012.
A. Branco, A. L. Moura, N. Rodriguez, and S. Rossetto, “Teaching concurrent and distributed computing – initiatives in Rio de Janeiro,” in Proc. IEEE 27th International Parallel and Distributed Processing Simpoium Workshops & PhD Forum (IPDPSW), 2013.
J. Spolsky. (2002) The law of leaky abstractions. [Online]. Available: [link]
(1996) Smashing the stack for fun and profit. Phrack.org. [Online]. Available: [link]
Downloads
Published
Como Citar
Issue
Section
Licença
Copyright (c) 2015 Os autores
Este trabalho está licenciado sob uma licença Creative Commons Attribution 4.0 International License.