Prefácio da 2ª Edição
Last updated
Was this helpful?
Last updated
Was this helpful?
É possível que o software não seja como qualquer outra coisa, que ele seja feito para ser descartado: que principal questão seja de sempre vê-lo como uma bolha de sabão?
Alan J. Perlis
O material neste livro tem sido a base da disciplina de ciência da computação de nível básico do MIT desde 1980. Estivemos ensinando esse material por quatro anos quando a primeira edição foi publicada, e mais doze anos se passaram até o aparecimento desta segunda edição. Estamos satisfeitos que nosso trabalho tenha sido amplamente adotado e incorporado em outros textos. Vimos nossos alunos pegar as ideias e programas deste livro e integrá-los no núcleo de novos sistemas e linguagens de computador. Na compreensão literal de um antigo trocadilho talmúdico, nossos alunos se tornaram nossos construtores. Temos sorte de ter alunos tão capazes e construtores tão talentosos.
Na preparação desta edição, incorporamos centenas de esclarecimentos sugeridos por nossa própria experiência de ensino e comentários de colegas do MIT e de outros lugares. Reprojetamos a maioria dos principais sistemas de programação do livro, incluindo o sistema aritmético genérico, os interpretadores, o simulador de máquina de registradores e o compilador; e reescrevemos todos os exemplos de programas para garantir que qualquer implementação de Scheme em conformidade com padrão Scheme IEEE (IEEE 19990) seja capaz de executar o código.
Esta edição enfatiza vários novos temas. O mais importante deles é o papel central desempenhado por diferentes abordagens para lidar com o tempo em modelos computacionais: objetos com estado, programação concorrente, programação funcional, avaliação preguiçosa e programação não-determinística. Incluímos novas seções sobre concorrência e não-determinismo, e tentamos integrar esse tema ao longo do livro.
A primeira edição do livro seguia de perto o currículo da nossa disciplina de um semestre no MIT. Com todo o material novo na segunda edição, não será possível cobrir tudo em um único semestre, então o instrutor terá que escolher. Em nossas aulas, às vezes pulamos a seção sobre programação lógica (seção 4.4.), pedimos aos alunos que usem o simulador de máquina de registros, mas não cobrimos sua implementação (seção 5.2) e damos apenas uma visão geral superficial do compilador (seção 5.5). Mesmo assim, este ainda é um curso intenso. Alguns instrutores podem desejar cobrir apenas os primeiros três ou quatro capítulos, deixando o outro material para cursos subsequentes.
O site fornece suporte aos usuários deste livro. Isso inclui programas do livro, exemplos de tarefas de programação, materiais suplementares e implementações para download do dialeto Scheme do Lisp.