Programación por procedementos

A programación por procedementos é un paradigma da programación. Moitas veces é aplicable tanto en linguaxes de programación de baixo nivel como en linguaxes de alto nivel, no caso de que esta técnica aplíquese en linguaxes de alto nivel, recibira o nome de Programación funcional, esta técnica consiste en basearse dun número moi baixo de expresións repetidas, englobalas todas nun procedemento ou función e chamalo cada vez que teña que executarse.

Esta técnica de programación ofrece moi boa resposta en relación ao tamaño dos programas, e en bruto case non se nota na velocidade de execución do mesmo (mentres que as variables, constantes ou índices de vector estean en memoria, como adoita ser normal, estes relacionaranse entre se, sen unha carga de memoria considerablemente alta para os procesadores modernos); aínda que é moi complicado conseguir unha Programación por procedementos pura.

Exemplo
A modo de exemplo, para mostrar o anterior, o posterior e un propio número dunha lista (vector), un pseudocódigo por procedementos ou funcións (a alto nivel) sería:

 funcion a_p( numero ) {
  out(numero-1);
  out(numero);
  out(numero+1);
 }

 for( i = 0; i < tamaño(lista); i++){
 a_p( lista[i] );
 }

Ou se queremos dividir ao número por 2,3,4,5,6,7,8,9 e 10 noutro pseudocódigo:

 funcion div(numero) {
 out(numero/2);
 out(numero/3);
 out(numero/4);
 out(numero/5);
 out(numero/6);
 out(numero/7);
 out(numero/8);
 out(numero/9);
 out(numero/10);
 }

 for( i = 0; i < tamaño(lista); i++){
 div( lista[i] );
 }

Utilizar este tipo de Programación pode resultar moi útil á hora de programar grandes proxectos, xa que se crea unha inmensa biblioteca de funcións especiais para procedementos utilizados con frecuencia dentro do programa.

Por contrapartida, é moi difícil determinar cal é o número mínimo de instrucións consecutivas, e o mínimo número que esta secuencia débese de repetir para considerar declarar un procedemento, ou función.

Linguaxes puramente funcionais
Haskell
Miranda

 Linguaxes que soportan procedementos ou funcións
C++
StarBasic

Programacion por procedementos