Programação literária é uma
filosofia de
programação de computadores baseada na premissa que um
programa de computador deve ser escrito tendo a legibilidade humana como principal objetivo, similar a um trabalho de
literatura. De acordo com essa filosofia, programadores devem almejar um estilo "literário" em sua programação tanto quanto escritores buscam um estilo inteligível e articulado em sua escrita. Essa filosofia contrasta com a visão mais comum que diz que o objetivo principal ou único do programador é criar código fonte e que a documentação deve ser apenas um objetivo secundário.
Na prática, programação literária é atingida pela combinação da
documentação (legível por humanos) e
código fonte (legível pela máquina) em um único arquivo (ficheiro) fonte, de modo a manter uma correspondência próxima entre a documentação e o código fonte. A ordem e a estrutura desse arquivo são especificamente projetadas para auxiliar a compreensão humana: código e documentação juntos são organizados em ordem lógica e/ou hierárquica (tipicamente de acordo com um esquema que acomode explicações detalhadas e comentários como necessárias). Ao mesmo tempo, a estrutura e o formato dos arquivos fontes acomodam utilitários externos que geram documentação do programa e/ou extraem o código legível por máquina dos mesmos arquivos fontes (para processamento subseqüente por
compiladores ou
interpretadores).
O primeiro ambiente de programação literária publicado foi WEB, introduzido por
Donald Knuth em
1981 para seu sistema de tipografia
TeX; ele usa
Pascal como sua linguagem de programação subjacente e TeX para tipografia da documentação.