Notas de aula são baseadas no livro "Concepts of Programming Languages"