Programació procedimental
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]- ↑ «Programming Paradigms» (en anglès).
- ↑ «What is Procedural Programming? A Beginner's Guide» (en anglès). [Consulta: 14 abril 2024].
- ↑ «What is Procedural Programming? [Definition - Key Features]» (en anglès). [Consulta: 14 abril 2024].
- ↑ «Differences between Procedural and Object Oriented Programming» (en anglès americà), 12-04-2019. [Consulta: 14 abril 2024].
- ↑ Stevenson, Joseph. «Procedural programming vs object-oriented programming» (en anglès). neonbrand.com, 01-08-2013. [Consulta: 19 agost 2013].