Paradigma de programació

De Viquipèdia
Dreceres ràpides: navegació, cerca

Un paradigma és una forma de representar i manipular el coneixement. Representa un enfocament particular o filosofia per a la construcció del programari. No és millor un que un altre, sinó que cada un té avantatges i desavantatges. També hi ha situacions on un paradigma resulta més apropiat que un altre.

Alguns exemples de paradigmes de programació:

  • El paradigma imperatiu és considerat el més comú i està representat, per exemple, pel C o per BASIC..
  • El paradigma funcional està representat per llenguatges com LISP, Scheme, Haskell..
  • El paradigma lògic, un exemple és Prolog.
  • El paradigma orientat a objectes. Un llenguatge completament orientat a objectes és Smalltalk.

Nota: La representació orientada a objectes millora l'estructura de les dades i per això s'ha aplicat a diferents paradigmes.

Si bé es pot seleccionar la forma pura d'aquests paradigmes al moment de programar, en la pràctica és habitual que es barregin. Així, llenguatges com C++, Delphi o Visual Basic combinen el paradigma imperatiu amb l'orientat a objectes.

Un altre exemple: Llenguatges com Scheme o Prolog, paradigma funcional i lògic respectivament, compten amb estructures repetitives. Aquestes són més pròpies del paradigma imperatiu que a la forma pura d'aquells.

 Història[modifica | modifica el codi]

Amb el temps s'han desenvolupat diferents disciplines de programació, sent identificades al moment o retrospectivament. Una de les primeres disciplines identificada com a tal va ser la programació estructurada, proposada des de mitjans dels anys 1960. El concepte de "paradigma de programació" com a tal data almenys del 1978, en la conferència del Premi Turing de Robert W. Floyd, titulada The Paradigms of Programming (Els Paradigmes de Programació), que cita la idea de paradigma de programació usada per Thomas Kuhn al seu llibre L'estructura de les revolucions científiques (The Structure of Scientific Revolutions) de 1962.

Codi màquina[modifica | modifica el codi]

El nivell més baix dels paradigmes de programació és el codi màquina, que representa directament les instruccions (els continguts de la memòria del programa) com una seqüència de nombres, i el llenguatge d'assemblador on les instruccions són representades per mnemònics i adreces de memòria.

En els anys 1960, els llenguatges d'assemblador van ser desenvolupats per suportar la llibreria COPY, CALL a subrutines, variables externes i seccions comunes (globals), permetent reutilització de codi i aïllament del hardware fent servir operadors lògics com READ, WRITE, GET i PUT.

Llenguatges procedurals[modifica | modifica el codi]

El següent avanç va ser el desenvolupament de llenguatges procedurals. Aquests llenguatges fan servir vocabulari relacionat amb el problema a resoldre. Per exemple:

  • COBOL (COmmon Business Oriente Language) - fa servir termes com file, move i copy.
  • FORTRAN (FORmula TRANslation) - fa servir terminologia del llenguatge matemàtic.
  • ALGOL (ALGOritmic Language) - enfocat a ser un llenguatge apropiat per definir algoritmes, també fent servir llenguatge matemàtic.
  • PL/I (Programing Language One) - un híbrid comercial/científic de propòsit general amb suport per punters.
  • BASIC (Begginers All purpose Symbolic Instruction Code) - va ser desenvolupat per permetre escriure programes a més persones.
  • C - un llenguatge de propòsit general.

Tots aquests llenguatges segueixen un paradigma procedural. Descriuen, pas a pas, exactament el procés que ha de ser seguit per resoldre un problema específic. L'eficàcia i eficiència de cada solució depenen en l'experiència, la inventiva i l'habilitat del programador.

Programació orientada a objectes[modifica | modifica el codi]

Després de l'estès ús dels llenguatges procedurals, es van crear els llenguatges orientats a objectes com Simula, Smalltalk, C++, C#, Eiffel i Java. En aquests llenguatges, les dades i els mètodes per manipular-la es mantenen com una sola unitat anomenada objecte. L'única manera en què un usuari pot accedir a les dades és a través dels "mètodes" de l'objecte, com a conseqüència, el funcionament intern d'un objecte pot ser modificat sense afectar cap codi que fa servir l'objecte. Encara hi ha controvèrsia plantejada per Alexander StepanovRichard Stallman i altres programadors, sobre l'eficàcia del paradigma POO en comparació amb el paradigma procedural. La necessitat de cada objecte de tenir mètodes associatius porta a alguns escèptics a associar POO amb software inflat. El polimorfisme va ser desenvolupat com un intent per resoldre aquest dilema.

Com que la programació orientada a objectes és considerada un paradigma, i no un llenguatge, és possible fins i tot crear un llenguatge d'assemblador orientat a objectes. L'assemblador d'Alt Nivell (High Level Assembly) és un exemple d'això, que suporta completament els tipus de dades avançats.

 Referències[modifica | modifica el codi]

  1. Nørmark, Kurt. Overview of the four main programming paradigms.
  2. Frans Coenen (1999-10-11). "Characteristics of declarative programming languages".
  3. Michael A. Covington (2010-08-23). "CSCI/ARTI 4540/6540: First Lecture on Symbolic Programming and LISP" (PDF).
  4. Peter Van Roy (2009-05-12). "Programming Paradigms for Dummies: What Every Programmer Should Know" (PDF).
  5. Frank Rubin (March 1987). "'GOTO Considered Harmful' Considered Harmful" (PDF).
  6. Krishnamurthi, Shriram (November 2008). "Teaching programming languages in a post-linnaean age".
  7. Floyd, R. W. (1979). "The paradigms of programming".

Articles relacionats[modifica | modifica el codi]