A Arte de Programar Computadores
A Arte de Programar Computadores
David E Kight
Prefácio
Aqui está o seu livro, aquele que suas milhares de cartas nos pediram publicar. Levamos anos
para fazer, verificando e checando inúmeras receitas para trazer a você apenas o melhor,
apenas o interessante, apenas o perfeito. Agora podemos dizer, sem sombra de dúvida, que
cada um deles, se você seguir as instruções ao pé da letra, funcionará para você exatamente
como funcionou para nós, mesmo que você nunca tenha cozinhado antes.
a) Alguma ideia de como funciona um computador digital com programa armazenado; não
necessariamente a eletrônica, mas a maneira como as instruções podem ser mantidas na
memória da máquina e executadas sucessivamente.
Esses quatro pré-requisitos podem ser resumidos no único requisito de que o leitor já deve ter
escrito e testado pelo menos, digamos, quatro programas para pelo menos um computador.
Tentei escrever este conjunto de livros de forma a preencher várias necessidades. Em primeiro
lugar, esses livros são obras de referência que resumem os conhecimentos adquiridos em
vários campos importantes. Em segundo lugar, podem ser usados como livros didáticos para
auto-estudo ou para cursos universitários de informática e ciências da informação. Para
atender a esses dois objetivos, incorporei um grande número de exercícios no texto e
forneceram respostas para a maioria deles. Também fiz um esforço para preencher as páginas
com fatos, em vez de comentários vagos e gerais.
Este conjunto de livros é destinado a pessoas que estarão mais do que apenas casualmente
interessadas em computadores, embora não seja apenas para o especialista em
computadores. Na verdade, um dos meus principais objetivos tem sido tornar essas técnicas
de programação mais acessíveis para as muitas pessoas que trabalham em outras áreas, que
podem fazer uso frutífero dos computadores, mas que não têm tempo para localizar todas as
informações necessárias enterradas na técnica revistas.
Podemos chamar o assunto desses livros de "análise não numérica". Os computadores têm
sido tradicionalmente associados à solução de problemas numéricos, como o cálculo das raízes
de uma equação, interpolação e integração numérica, etc., mas esses tópicos não são tratados
aqui, exceto de passagem.
Os resultados da pesquisa em análise não numérica estão espalhados por vários periódicos
técnicos. Minha abordagem tem sido tentar destilar essa vasta literatura estudando as técnicas
que são mais básicas, no sentido de que podem ser aplicadas a muitos tipos de situações de
programação. Tentei coordenar as idéias em mais ou menos uma “teoria”, bem como mostrar
como a teoria se aplica a uma ampla variedade de problemas práticos. Claro, "análise não
numérica" é um nome terrivelmente negativo para este campo de estudo; é muito melhor ter
um termo descritivo positivo que caracterize o assunto. “Processamento de informação” é
uma designação muito ampla para o material que estou considerando, e “técnicas de
programação” é muito restrita. Portanto, desejo propor a análise de algoritmos como um
nome apropriado para o assunto abordado nestes livros. Este nome significa "a teoria das
propriedades de algoritmos de computador específicos".