Em
ciência da computação, mais especificamente no contexto da
programação, uma
sub-rotina (
função,
procedimento ou mesmo
subprograma) consiste em uma porção de
código que resolve um problema muito específico, parte de um problema maior (a
aplicação final). O conceito de
função difere da noção de
procedimento, já que devolve um valor, se bem que, em algumas linguagens, esta distinção não é sequer existente; por exemplo, em
C, a implementação de um procedimento é uma função do tipo
void. No contexto da
programação orientada a objetos, estas sub-rotinas são encapsuladas nos próprios objetos, passando a designar-se
métodos.