Paradigma de porgramaçon

Un paradigma de porgramaçon fornece i detremina la bison que l porgramador ten subre la struturaçon i eisecuçon de l porgrama. Por eisemplo, an porgramaçon ourientada a oubjetos, porgramadores puoden abstrair un porgrama cumo ua coleçon de oubjetos qu'anteraige antre si, anquanto an porgramaçon funcional ls porgramadores abstraen l porgrama cumo ua sequéncia de funçones eisecutadas de modo ampilhado.

Assi cumo defrentes grupos an angenharie de software proponen defrentes metodologies, defrentes lenguaiges de porgramaçon proponen defrentes paradigmas de porgramaçon. Alguas lenguaiges fúrun zambolbidas para suportar un paradigma specífico (Smalltalk i Jaba suportan l paradigma d'ourientaçon a oubjetos anquanto Haskell suportan l paradigma funcional), anquanto outras lenguaiges suportan múltiplos paradigmas (cumo l LISP, Perl, Python, C++ i Oç).

Ls paradigmas de porgramaçon son muitas bezes defrenciados pulas técnicas de porgramaçon que proíben ó permiten. Por eisemplo, la porgramaçon struturada nun permite l'uso de goto. Esse ye un de ls motibos pul qual nuobos paradigmas son cunsidrados mais rígidos que stilos tradecionales. Anque desso, eibitar ciertos tipos de técnicas puode facelitar la proba de cunceito dun sistema, podendo até mesmo facelitar l zambolbimiento d'algoritmos.

L relacionamiento antre paradigmas de porgramaçon i lenguaiges de porgramaçon puode ser cumplexo pul fato de lenguaiges de porgramaçon podéren suportar mais dun paradigma.

 Stória 
Einicialmente, ls cumputadores éran porgramados atrabeç de código binairo, que repersentaba las sequéncias de cuntrole alimentadas a la [CPU]. Tal porcesso era defícel i propenso a erros; ls porgramas stában an código de máquina, que ye un paradigma de porgramaçon de muito baixo nible.

Para facelitar la porgramaçon fúrun zambolbidas lenguaiges de montaige. Eilhas sustituían las funçones de l código de máquina por mnemónicos, andereços de mimória absolutos por eidantificadors. La lenguaige de montaige inda ye cunsidrada de baixo nible, inda que seia un paradigma de la "segunda geraçon" de las lenguaiges. Mesmo lenguaiges de montaige de la década de 1960 suportában geraçones cundicionales de macros bastante sofisticadas. Tamien suportában recursos de porgramaçon modular tales cumo CALL (para suportar subrotinas), bariables sternas i seçones quemuns (globales); esso permitie l reuso de código i l'eisolamiento de caratelísticas specíficas de l'hardware, atrabeç de l'uso d'ouperadores lógicos cumo READ, WRITE, GET i PUT. La lenguaige de montaige fui i inda ye ousada para sistemas críticos, i frequentemente ousada an sistemas ambarcados.

L próssimo abanço fui l zambolbimiento de las lenguaiges procedurales. Las purmeiras la séren çcritas cumo de alto nible, essas lenguaiges de la terceira geraçon úsan un bocabulairo relatibo al porblema sendo resolbido. Por eisemplo, COBOL usa tenermos cumo file (para eidantificar arquibos), mobe (para mober arquibos) i copy (para copiar arquibos). Tanto FORTRAN quanto ALGOL úsan treminologie matemática, tenendo sido zambolbidas percipalmente para porblemas comerciales ó científicos. Tales lenguaiges procedurales çcriben, passo a passo, l procedimiento a ser seguido para resulber cierto porblema. L'eficácia i l'eficiéncia de cada soluçon ye subjetiba i altamente dependente de la spriéncia, halbelidade i criatebidade de l porgramador.

Mais tarde, lenguaiges ourientadas a oubjeto fúrun criadas. Neilhas, ls dados i las rotinas para manipulá-los son mantidos nua ounidade chamada oubjeto. L'outelizador solo puode acessar ls dados atrabeç de las subrotinas çponibles, chamadas métodos, l que permite altarar l funcionamiento anterno de l'oubjeto sin afetar l código que l cunsume. Inda hai cuntrobérsia por porgramadores notables cumo Alexander Stepanob, Richard Stallman antre outros, questionando l'eficácia desse paradigma an cumparaçon de l paradigma procedural. La necidade de cada oubjeto de tener métodos associados tornarie ls porgramas mui maiores. l cunceito de polimorfismo fui zambolbido cumo tentatiba de solucionar tal dilema. Tenendo an bista que l'ourientaçon a oubjeto ye un paradigma i nun ua lenguaige, ye possible criar até mesmo ua lenguaige de montaige ourientada a oubjeto, cumo l High Leble Assembly.

Andependiente de l galho de las lenguaiges amperatibas, baseadas nas lenguaiges procedurales, paradigmas de porgramaçon declaratiba tamien fúrun zambolbidos. Nessa lenguaiges se çcribe l porblema al cumputador, nun cumo resolbé-lo. L porgrama ye struturado cumo ua coleçon de propiadades para ancontrar l resultado sperado, i nun un procedimiento la se seguir. Dado un banco de dados ó un cunjunto de regras, l cumputador tenta ancontrar la soluçon al casar todas las propiadades zeiadas. Un eisemplo ye l SQL, assi cumo la família de las lenguaiges funcionales i lógicas.

Porgramas scritos an porgramaçon funcional úsan funçones, blocos de código custruídos para agir cumo funçones matemáticas. Zamcoraja-se la mudança de l balor de las bariables atrabeç d'atribuiçon, fazendo grande uso de recursebidade para esso.

Na porgramaçon lógica, fatos subre l domínio de l porblema son spressados cumo fórmulas lógicas, i ls porgramas son eisecutados al se aplicar regras d'anferéncia nas fórmulas até qu'ua repuosta ye ancontrada, ó la coleçon de fórmulas ye probada anconsistente.

 Eisemplos 
 Porgramaçon struturada, an cuntreste la Porgramaçon ourientada a oubjetos
 Porgramaçon amperatiba, an cuntreste de porgramaçon declaratiba
 Porgramaçon de passaige de mensaiges, an cuntreste de porgramaçon amperatiba
 Porgramaçon procedural, an cuntreste de porgramaçon funcional
 Porgramaçon ourientada a fluxos, an cuntreste de porgramaçon ourientada a eibentos
 Porgramaçon scalar, an cuntreste de porgramaçon betorial
 Porgramaçon restritiba, que cumplementa la porgramaçon lógica
 Porgramaçon ourientada a aspeto (cumo an AspetJ)
 Porgramaçon ourientada la regras (cumo an Mathematica)
 Porgramaçon ourientada la tabelas (cumo an Microsoft FoxPro)
 Porgramaçon ourientada a fluxo de dados (cumo an diagramas)
 Porgramaçon ourientada la políticas
 Porgramaçon ourientada a testes
 Porgramaçon genérica
 Porgramaçon multiparadigma (cumo an Scala)