Na programação de computadores, rotina e sub-rotina são termos gerais e quase sinônimos para qualquer sequência de código que se pretende chamar e usar repetidamente durante o executável de um programa. Isto torna o programa mais curto e fácil de escrever (e também de ler quando necessário). A sequência principal da lógica num programa pode ramificar-se para uma rotina comum quando necessário. Ao terminar, a rotina se ramifica de volta para a próxima instrução sequencial seguindo a instrução que se ramificou para ela. Uma rotina também pode ser útil em mais de um programa e salvar outros programadores de terem que escrever código do que pode ser compartilhado.
Tipicamente, em linguagens assembler, uma rotina que requer alguma entrada de variável pode ser codificada em uma definição macro com uma interface especificada chamada instrução macro . O programador pode então usar uma instrução macro em vez de ter que incluir e gerenciar a ramificação para uma rotina. As definições e instruções de macro também tendem a ser compartilhadas entre programadores para uso em múltiplos programas, especialmente em projetos de desenvolvimento de software.
Em linguagens computacionais de nível superior, muitas rotinas comumente necessárias são pré-empacotadas como função , que são rotinas com interfaces de programação especificadas. Algumas funções podem ser compiladas em linha com outros códigos. Outras funções são compiladas como stub que fazem chamadas dinâmicas para os serviços do sistema durante a execução do programa. Funções são algumas vezes chamadas rotinas da biblioteca . O compilador e um conjunto de rotinas de biblioteca geralmente vêm como parte de um pacote de desenvolvimento de software relacionado.
No Windows e alguns outros sistemas operacionais de computadores pessoais, as rotinas do sistema para lidar com tarefas específicas, como a interação com dispositivos de E/S específicos são chamadas de rotinas de biblioteca de links dinâmicos ( dynamic link library ). These routines are dynamic because their files are not actually loaded into memory until the first time they are called.
A more recent term, procedure , is similar in meaning.