La programación procesal es un enfoque de programación que es uno de los elementos básicos de los bloques de construcción para muchos otros diseños de lenguaje (funcional no es uno).
La mayoría de los idiomas caen en el conjunto de "Programación de procedimientos" y es probablemente el enfoque de diseño más natural para la mayoría de las personas (si piensas en términos de OO, entonces diría que eres una minoría).
BASIC es de procedimiento.
Como otros han dicho, es un mecanismo para estructurar programas de manera secuencial.
- Primero hago x
- Segundo hago y
- En tercer lugar hago Z
Requiere un mecanismo para definir "procedimientos": bloques de código con nombre similares a los métodos OO, que pueden aceptar cero a muchos parámetros y, opcionalmente, devolver un valor (que generalmente se llamaría una función), lo que probablemente genere confusión con los lenguajes funcionales. )
El paradigma no dicta cuáles serán las cosas que hagas o la forma en que se transmitirán.
Simplemente describe que el programa se estructurará como una serie de procedimientos (o funciones) que operan de manera secuencial. Los datos se definen entonces independientemente de los procedimientos.
Esto difiere de la programación orientada a objetos, que estructura el programa en torno a colecciones de datos y métodos (no funciones) que actúan sobre esos datos.
Una forma de pensarlo es en términos del alcance de los datos.
En un lenguaje de procedimiento, el alcance es bastante simple. Una variable puede estar dentro del alcance de un procedimiento dado (declarado localmente), hasta el nivel de la parte superior que llama cosas (declaradas globalmente), con ámbitos anidados entre ellos.
En un lenguaje orientado a objetos, agrega un nuevo contexto de alcance, que es el del objeto actualmente en uso, que es ortogonal al anterior.
Otra forma de pensar en procedimientos, en comparación con los orientados a objetos es considerar un lenguaje orientado a objetos donde todos los métodos deben declararse como estáticos. El resultado es un lenguaje de procedimiento donde las clases se pueden usar para agrupar procedimientos.