Programação intencional (IP), também chamada de software intencional, é a renderização das intenções da aplicação de uma forma que pode ser processada por um computador. Neste contexto, as intenções consistem em dados que definem as funções e finalidades que os programadores têm em mente ao conceberem e desenvolverem uma aplicação. O termo está associado à Intentional Software Corporation, sediada em Bellevue, Washington. O conceito IP teve origem no engenheiro Charles Simonyi quando ele trabalhou para a Microsoft .
O processo IP começa quando um programador define as funções e propósitos propostos para uma aplicação no formato WYSIWYG (o que você vê é o que você obtém). Então um sistema automatizado usa esta informação para gerar o produto final. Mudanças sucessivas são feitas no nível WYSIWYG usando um sistema chamado domínio workbench.
A maior parte das linguagens de programação representam o código fonte como texto e dão nomes simbólicos aos objetos s, variáveis s ou tarefas s. Em um programa complexo pode ser difícil rastrear qual nome se refere a qual entidade. No IP, a todas as entidades são atribuídos identificadores privados únicos, bem como nomes simbólicos. Sempre que o programa se refere a um objeto, variável ou tarefa, o identificador gera automaticamente um link para a entidade original. Se o programador renomeia uma entidade, todas as referências a ela são atualizadas nesse momento. Isto reduz o risco de erros que podem ser causados pela supervisão humana ou pelo uso manual da função global de busca e substituição em um editor de texto. Também simplifica o processo de versionamento .