Programació procedimental

De la Viquipèdia, l'enciclopèdia lliure

La programació procedimental és un paradigma de programació, classificat com a programació imperativa, [1] que implica implementar el comportament d'un programa d'ordinador com a procediments (també coneguts com funcions, subrutines) que s'anomenen entre si. El programa resultant és una sèrie de passos que forma una jerarquia de trucades als seus procediments constitutius.[2]

Van aparèixer els primers llenguatges de programació procedimentals c. 1957 –1964, incloent Fortran, ALGOL, COBOL, PL/I i BASIC. Pascal i C es van publicar c. 1970 –1972.

Els processadors informàtics proporcionen suport de maquinari per a la programació de procediments mitjançant un registre de pila i instruccions per cridar procediments i tornar-ne. El suport de maquinari per a altres tipus de programació és possible, com ara màquines Lisp o processadors Java.[3]

Pràctiques de desenvolupament[modifica]

Sovint s'utilitzen determinades pràctiques de desenvolupament de programari amb programació de procediments per millorar la qualitat i reduir els costos de desenvolupament i manteniment.

La modularitat consisteix a organitzar els procediments d'un programa en mòduls separats, cadascun dels quals té un propòsit específic i comprensible.

Minimitzar l' abast de variables i procediments pot millorar la qualitat del programari reduint la càrrega cognitiva dels procediments i mòduls.

Un programa que no té modularitat o abast ampli tendeix a tenir procediments que consumeixen moltes variables que altres procediments també consumeixen. El codi resultant és relativament difícil d'entendre i de mantenir.

Com que un procediment pot especificar una interfície ben definida i ser autònom, admet la reutilització de codi, en particular mitjançant la biblioteca de programari.[4]

Comparació amb altres paradigmes de programació[modifica]

Programació imperativa[modifica]

La programació procedimental es classifica com una programació imperativa, perquè implica un comandament directe de l'execució.

El procediment és una subclasse d'imperatiu ja que el procediment inclou conceptes de bloc i abast, mentre que l'imperatiu descriu un concepte més general que no requereix aquestes característiques. Els llenguatges procedimentals generalment utilitzen paraules reservades que defineixen blocs, com ara if, while, i for, per implementar el flux de control, mentre que els llenguatges imperatius no estructurats (és a dir, llenguatge ensamblador) utilitzen taules goto i branca per a aquest propòsit.

Programació orientada a objectes[modifica]

També classificada com a imperativa, la programació orientada a objectes (OOP) implica dividir la implementació d'un programa en objectes que exposen el comportament (mètodes) i les dades (membres) mitjançant una interfície ben definida. En canvi, la programació procedimental consisteix a dividir la implementació del programa en variables, estructures de dades i subrutines. Una distinció important és que, mentre que els procediments inclouen procediments per operar en estructures de dades, OOP agrupa els dos. Un objecte és una estructura de dades i el comportament associat amb aquesta estructura de dades.[5]

Programació funcional[modifica]

Els principis de modularitat i reutilització de codi en llenguatges funcionals són fonamentalment els mateixos que en llenguatges procedimentals, ja que tots dos deriven de la programació estructurada.

Programació lògica[modifica]

En programació lògica, un programa és un conjunt de premisses, i el càlcul es realitza intentant demostrar teoremes candidats. Des d'aquest punt de vista, els programes lògics són declaratius, centrant-se en quin és el problema, més que en com resoldre'l.

Referències[modifica]

  1. «Programming Paradigms» (en anglès).
  2. «What is Procedural Programming? A Beginner's Guide» (en anglès). [Consulta: 14 abril 2024].
  3. «What is Procedural Programming? [Definition - Key Features]» (en anglès). [Consulta: 14 abril 2024].
  4. «Differences between Procedural and Object Oriented Programming» (en anglès americà), 12-04-2019. [Consulta: 14 abril 2024].
  5. Stevenson, Joseph. «Procedural programming vs object-oriented programming» (en anglès). neonbrand.com, August 2013. [Consulta: 19 agost 2013].