Porgramaçon amperatiba

Na Ciéncia de la Cumputaçon, porgramaçon amperatiba ye un paradigma de porgramaçon que çcribe la cumputaçon cumo açones, enunciados ó comandos que mudan l stado (bariables) dun porgrama. Mui parecido cul cumportamiento amperatibo de las lenguaiges naturales que spressan ordes, porgramas amperatibos son ua sequéncia de comandos pa l cumputador eisecutar. L nome de l paradigma, Amperatibo, stá ligado al tiempo berbal amperatibo, adonde l porgramador diç al cumputador: faga esso, depuis esso, depuis aqueilho... Este paradigma de porgramaçon se çtaca pula simplicidade, ua beç que to ser houmano, al se porgramar, l faç amperatibamente, baseado na eideia d'açones i stados, quaije cumo un porgrama de cumputador.


L fundamiento de la porgramaçon amperatiba ye l cunceito de Máquina de Turing, que nada mais ye qu'ua abstraçon matemática que corresponde al cunjunto de funçones cumputables.
La Máquina de Turing fui aprossimada por John von Neumann a ua arquitetura de cumputadores que fundamenta ls cumputadores custruídos até hoije. Esso splica, an parte, l sucesso de las lenguaiges que seguen esse paradigma an relaçon a las demales. Nesta arquitetura( ousada hoije ne ls microcumputadores comercializados), tanto ls dados cumo ls porgramas son armazenados na mesma mimória, i la CPU que porcessoa las anstruçones, ye apartada de a mimória. Dessa forma, ls dados i anstruçones dében ser trasportados de a mimória pa la CPU i ls resultados de las ouparaçones rializadas na CPU dében ser debolbidos pa a mimória.

Las lenguaiges amperatibas struturadas sofren inda assi dua falta de flexibelidade dadas l caráter sequencial de las anstruçones. Cuntrariamente la porgramaçon declaratiba, la porgramaçon amperatiba antroduç un paradigma de porgramaçon que çcribe la cumputaçon an tenermos dun stado dun porgrama i açones que modifican esse stado, tal cumo l modo amperatibo nas lenguaiges naturales (faladas i scritas) spressa comandos para perfazer açones, las lenguaiges amperatibas spressan ua sequencia de comandos para un cumputador efetuar.


Las lenguaiges de porgramaçon amperatiba cuntrastan cun outros tipos de lenguaige, tales cumo lenguaiges de porgramaçon declaratiba, funcional i lógica. Lenguaiges de porgramaçon funcional, cumo por eisemplo Haskell, nun son ua sequéncia d'afirmaçones i nó possuen, por cunsequéncia, un stado global cumo las lenguaiges amperatibas. Lenguaiges de porgramaçon lógica, cumo eisemplo Prolog, frequentemente definen "l que" ye para ser cumputado, mais de l que "cumo" cumputar, cumo serie normal nua lenguaige amperatiba. 

An lenguaiges puramente amperatibas, cumo Assembly, ye mui fácele l porgramador criar códigos de defícel leitura, pus esse tipo de lenguaige ten l que se chama de saltos (jumps) an sue strutura. Estes saltos funcionan de la seguinte forma: l porgramador define ua marcaçon (label) ne l código i depuis, a partir de qualquiera parte de l porgrama, el puode eisecutar un zbio de fluxo d'eisecuçon (salto) para aqueilha marcaçon. Puode ser que a la purmeira bista esso nun tenga porblema, assi i todo, na depuraçon de l código, l porgramador queda an apuros cun tantas marcaçones i saltos, pus esso deficulta l'antendimiento de l fluxo d'eisecuçon de l porgrama.

Neste cuntesto, surge la porgramaçon struturada, cumo ua forma de possibelitar que l porgramador tenga maior cuntrole subre l fluxo d'eisecuçon de l porgrama. Para esso, qualquiera porgrama puode ser reduzido a 3 struturas:

 Struturas de sequéncia: Adonde ua tarefa ye eisecutada passado l'outra, linearmente.
 Struturas de decison: Adonde, a partir dun teste lógico, detreminado trecho de código ye eisecutado, ó nó.
 Struturas d'iteraçon: Adonde, a partir dun teste lógico, detreminado trecho de código ye repetido por un númaro fenito de bezes.

Porgramaçon struturada ye ua forma de porgramaçon de cumputadores que preconiza que todos ls porgramas possibles puoden ser reduzidos a solo trés struturas: sequéncia, decison i anteraçon, zambolbida por Michael La. Jackson ne l sou libro "Principles of Porgran Zeign" de 1975.

Tenendo, na prática, sido trasformada na porgramaçon modular, la Porgramaçon struturada ourienta ls porgramadores pa la criaçon de struturas simples an sous porgramas, usando las subrotinas i las funçones. Fui la forma dominante na criaçon de software anterior a la porgramaçon ourientada por oubjetos.

Anque tener sido sucedida pula porgramaçon ourientada por oubjetos, puode-se dezir que la porgramaçon struturada inda ye mui anfluente, ua beç que grande parte de las pessonas inda daprenden porgramaçon atrabeç deilha. Pa la resoluçon de porblemas relatibamente mais simples i diretos la porgramaçon struturada ye mui eficiente. Para alhá desso, por eisigir formas de pensar relatibamente cumplexas, la porgramaçon ourientada a oubjetos até hoije inda nun ye bien cumprendida ó ousada pula maiorie.

Hai de se acrecentar tamien qu'einúmaras lenguaiges inda stremamente relebantes ne ls dies d'hoije, cumo Cobol, PHP i Perl inda outelizan l paradigma struturado (mui ambora possuan suporte pa l'ourientaçon a a oubjetos).

 Ouriges 

Lenguaiges amperatibas ténen ua stória rica i bariada. Las purmeiras lenguaiges de porgramaçon amperatibas éran lenguaiges de máquina, cun anstruçones simples mas de custruçon cumplexa. Anstruçones de máquina fúrun lougo sustituídos cun lenguaiges de montaige que son eissencialmente trasliteraçones de código de máquina.

Fortran (FORmula TRANslation) fui la purmeira lenguaige d'alto nible para ganhar ampla aceitaçon. El fui porjetado para aplicaçones científicas i cuntou cun ua notaçon algébrica, tipos, subprogramas, i antrada/salida formatada. Fui amplementado an 1956 por John Backus na IBM specificamente pa la máquina IBM 704. Eisecuçon eficiente fui ua grande preocupaçon, por bias desso, sue strutura i comandos ténen mui an quemun cun lenguaiges de montaige. FORTRAN ganhou ampla aceitaçon i cuntina a ser largamente outelizado na quemunidade de cumputaçon científica.

COBOL (COmmon Business Ouriented Language) fui porjetada (por un comité de repersentantes de fabricantes de cumputadores i de l Departamiento de Defesa), por eniciatiba de l Departamiento de Defesa de ls EUA an 1959 i amplementado an 1960. COBOL carateriza registros, arquibos i dados fixos decimales. El tamien forneciu ua lenguaige natural cumo sintaxe para que ls porgramas séian capazes de ser lido i antendido por nun porgramadores. COBOL ganhou ampla aceitaçon na quemunidade de processamiento de dados i cuntina a ser largamente outelizado.

300px|thumb|Ken Thompson i Dennis Ritchie (de la squierda para dreita), ls criadores de las lenguaiges B i C, respetibamente.

ALGOL 60 (ALGorithmic Ouriented Language) fui cuncebido an 1960 por un comité anternacional para uso an resoluçon de porblemas científicos. Al cuntrairo FORTRAN fui cuncebido de forma andependiente dua aplicaçon, ua scolha que cunduzen a ua lenguaige eilegante. La çcriçon de l ALGOL 60 antroduziu la notaçon BNF pa la defeniçon de sintaxe i ye un modelo de clareza i cumpletude. Ambora ALGOL 60 nun cunseguiu ganhar grande aceitaçon, antroduziu strutura de bloco, anstruçones de cuntrole struturados i procedimientos recursibos ne l paradigma de porgramaçon amperatiba.

 FORTRAN (1956) -> bariables cun nome, subprogramas, spressones cumplexas
 ALGOL (1960) -> maior facelidade de spressar algoritmos matemáticos
 COBOL (1960)
 BASIC (1964) -> sintaxe mais próssima de l'anglés
 PASCAL (1970)
 C (1970)
 ADA (1974-1983)

 Stórico 

 Cumputador Heipotético
 Antroduçon a la Porgramaçon
 Custruçon de Algoritmos
 Cumponentes de Algoritmos
 Cuntrole de Fluxo de Eisecuçon
 Strutura de Decison SE
 Strutura de Decison CASO

 Caratelísticas Percipales de la Lenguaige Amperatiba 

Las lenguaiges amperatibas tamien son chamadas de procedurales i se trata de l modelo mais antigo de todos, l'eisecuçon ye baseada an comandos i armazenamiento de dados. L paradigma amperatibo fui predominante nas LP, pus son mais fáceles de traduzir para ua forma adequada para eisecuçon de la máquina. Un porgrama amperatibo ye mantido an bariables que son associadas cun localizaçones de mimória que corresponden a un andereço i un balor d'armazenamiento. L balor de la bariable puode ser besitado direta ó andiretamente, i puode ser altarado atrabeç dun comando d'atribuiçon. L comando d'atribuiçon antroduç ua dependéncia d'orde ne l porgrama, ó seia, l balor de la bariable puode se modificar antes i depuis de l comando i esso garante la sequencia d'anstruçones.
Las funçones de lenguaige de porgramaçon amperatiba son çcritas cumo algoritmos que specifican cumo processar un anterbalo de balores, a partir dun balor de domínio, cun ua série de passos çcritos. La repetiçon ye ousada para processar ls balores i laços para barrer ua sequencia de localizaçones de mimória (betores, por eisemplo), ó para acumular balor nas bariables. 

 Bariábeis: modelan las células de mimória
 Comandos d'atribuiçon: son baseados nas ouparaçones de trasferéncias de dados i anstruçones.
 Eisecuçon sequencial d'anstruçones
 Forma anteratiba de repetiçon

 Cumo Funciona la Porgramaçon Amperatiba 

L'eissencia de la porgramaçon amperatiba i tamien de la Máquina de Turing se resume la trés cunceitos:

 La çcriçon de stados dua máquina abstrata por balores dun cunjunto de bariables
 Reconhecedores desses stados - spressones cumpuostas por relaçones antre esses balores ó ls resultados d'ouparaçones outelizando balores
 Comandos d'atribuiçon i cuntrole

L código fuonte de ls porgramas i cumputador, seguindo l paradigma amperatibo ten marcaçones speciales (amplíticas ó splícitas) que direcionan la sue eisecuçon pul sistema ouperacional i, an radadeira análeze, pul hardware. Ambora las lenguaiges de porgramaçon modernas pertencentes a outros paradigmas tendan a facelitar cada beç mais la scrita de l código, camuflando ouparaçones mais próssimas a las lenguaiges de baixo nible, podemos ancontrar inda la persença de struturas de cuntrole de la mesma forma qu'ocorria an lenguaiges de porgramaçon de binte ó trinta anhos atrás.

Las marcaçones outelizadas para cuntrolar l'eisecuçon de ls porgramas son chamadas de struturas de cuntrole. Las struturas de cuntrole son debedidas an trés grupos: sequéncia, seleçon i repetiçon. La strutura de sequéncia ye amplícita ne ls porgramas i andica que las anstruçones son eisecutadas ua passado l'outra, seguindo ua sequéncia.

 Modelo Cumputacional de l Paradigma Amperatibo 

Porgramas centrados ne l cunceito dun stado (modelado por bariables) i açones (comandos) que manipulan l stado, son porgramas porjetados nun paradigma amperatibo, paradigma esse que tamien ye chamado de procedural, por ancluir subrotinas ó procedimientos cumo macanismo de struturaçon. Fui l purmeiro paradigma a aparecer i inda ye l dominante.

L paradigma amperatibo stá baseado na eideia dun stado que sofre modificaçones durante la cumputaçon. L stado ye repersentado por un cunjunto d'associaçones d'eidantificadores (bariables globales i locales atibas de l porgrama) an balores. La defrença fundamental cun relaçon al paradigma funcional ye qu'esta associaçon ye dinámica, sendo custantemente modificada durante l'eisecuçon dun porgrama. Las lenguaiges amperatibas ouferecen ua bariadade de comandos cuja eisecuçon ambolbe aspetos de cuntrole, mas eissencialmente modificaçon de l stado de l porgrama.

L'eilemiento central dun porgrama amperatibo ye l comando, que puode ser primitibo (cumo atribuiçon, leitura i scrita) ó cumpuosto, cumo sequéncia, cundicional i iteraçon. Un amportante macanismo de struturaçon de las lenguaiges amperatibas ye l procedimiento, que, cumo ua funçon, puode ser parametrizado, mas ten cumo cuorpo un comando, al ambés dua spresson. An giral, un porgrama nua lenguaige amperatiba deixa de ser ua spresson i passa a ser un comando. La figura ambaixo, eilustra l modelo cumputacional de l paradigma amperatibo.

 Eilemientos de la Porgramaçon Amperatiba 

Ls percipales eilemientos de la porgramaçon amperatiba son:

 Defeniçon de tipos de dados
 Spressones i atribuiçones
 Struturas de cuntrole de fluxo (porgramaçon struturada)
 Defeniçon de sub-rotinas (porgramaçon procedimental)

 Técnicas an Porgramaçon Amperatiba 

 Modularidade de ls Algoritmos (Porgramaçon struturada)
 Modularidade de las Struturas de dados (Tipos abstratos de dados)
 Recorréncia

 Bantaiges 

 Eficiéncia (ambute l modelo Von Neumann)
 Paradigma dominante i bien stablecido
 Modelaige natural d'aplicaçones de l mundo rial
 Ten tipaige fraca i tamien mui flexible (alguns specialistas cunsidran esso ua zbantaige)
 Ye fácele de se antender, sendo amplamente ousada an cursos antrodutórios de porgramaçon.

 Zbantaiges 

 Ten defícel legibelidade i facelita antroduçon d'erros an sue manutençon 
 Çcriçones demasiadamente profissional focaliza l "cumo" i nun l "qué" 
 Relacionamiento andireto cula I/S (anduçon a erros/stados)
 Inda se foca an cumo la tarefa debe ser feita i nó an l que debe ser feito.
 Tende a gerar códigos cunfusos, adonde tratamiento de ls dados son misturados cul cumportamiento de l porgrama

 Lenguaiges de porgramaçon 

Alguns eisemplos de lenguaiges de porgramaçon que baseian-se ne l modelo amperatibo:

 Ada
 ALGOL
 Basic
 C
 PHP
 Jaba
 Cobol
 Fortran
 Pascal
 Python
 Luna
 Mathematica

 Leitura Recomendada 

Pratt, Terrence W. i Marbin B. Zelkowitç. Lénguas De Porgramaçon: Porjeto i eisecuçon. ó ed. Penhascos De Anglewod, N.J.: Prentice Salon, 1996.

Sebesta, Robert W. Cunceitos de lénguas de porgramaçon. ó ed. Leitura, Massa.: Addison-Wesley Publishing Cumpanha, 1996.

 Ber Tamien 

 Paradigma de porgramaçon
 Lenguaige de porgramaçon
 Porgramaçon funcional
 Porgramaçon procedural 
 Porgramaçon ourientada a oubjetos
 Porgramaçon struturada

Catadorie:Paradigmas de porgramaçon