Las subrutinas permiten dividir un problema complejo en partes más pequeñas y manejables. Existen dos tipos de subrutinas: los procedimientos, que no retornan un valor, y las funciones, que producen y retornan un valor que puede ser utilizado por la parte del programa que la llamó. Las variables pueden ser locales a una subrutina o globales al programa principal.