Breve Historia de los lenguajes de Programación Traducción encontrada en Barrapunto Barrapunto de de A A Brief, Incomplete, Incomplete, and and Mostly Wrong Wrong History History of Programming Programming Languages,, de James Iry. Languages 1801 - Joseph Marie Jacquard usa tarjetas perforadas para hacer que un tear escri!a "hoa mundo" en un tapi#. $os !arrapunteros de a %poca critican su fata de recursi&idad y concurrencia, y e ma uso de as may'scuas. 18() - *da $o&eace escri!e e primer pro+rama, un poco astrada por e pequeo detae de que no tiene un ordenador de &erdad para ejecutar su códi+o. $os arquitectos empresariaes recrearn ms tarde sus t%cnicas para pro+ramar en M$. 1/ - *an Turin+ in&enta todos os en+uajes que e2istirn, pero es coaccionado por e ser&icio secreto !ritnico para con&ertirse en 003 antes de que consi+a patentaros. 1/ - *on#o 4hurch tam!i%n in&enta todos os en+uajes, pero mejor. Todo e mundo pasa de su ccuo am!da porque no se parece suficientemente a 4, a pesar de que 4 no se ha in&entado a'n. 1/(0s - 5arios "ordenadores" se "pro+raman" mediante ca!eado e interruptores. $os in+enieros o hacen as6 para no &erse impicados en e de!ate de ta!uadores contra espacios. 1/73 - John Bacus e IBM crean 9:;T;*<.
au ?raham in&entan $I@>. * causa de su ato coste, pro&ocado por - John Mc4arthy y >au ?raham in&entan $I@>. * causa de su ato coste, pro&ocado por e a+otamiento de a reser&a estrat%+ica de par%ntesis en a pos+uerra, $I@> nunca se popuari#a A1. * pesar de eso, $I@> Cahora amado "$isp" o a &eces "*rc"D si+ue siendo un en+uaje infuyente en "t%cnicas a+or6tmicas ca&e como recursi&idad y condescendencia" A). 1/7/ - Tras perder una apuesta con e teniente ;on Eu!!ard, ?race Eopper y &arios sdicos ms in&entan e "$en+uaje orientado a formuismos todo en may'scuas", en in+%s "4apitai#ation :f Boierpate :riented $an+ua+e" C4:B:$D. *os ms tarde, en una &en+an#a a!surda y se2ista contra contra e tra!ajo en 4:B:$ de a amirante Eopper, as conferencias de ;u!y sueen incuir materia misó+ino. 1/( - John Femeny y Thomas Furt# crean B*@I4, un en+uaje de pro+ramación no estructurado para os no informticos. 1/7 - Femeny y Furt# ?:T: 1/(. 1/30 - ?uy @teee y ?erad @ussman crean @cheme. @u tra!ajo conduce a una serie de art6cuos en "$am!da the timate" que cuminan en "$am!da the timate Fitchen tensi" C"$am!da, e utensiio de cocina definiti&o"D, que se con&ierte en a !ase de una proon+ada, pero finamente infructuosa emisión de pu!irreportajes a atas horas de a noche. $as am!das quedan ree+adas a una reati&a oscuridad hasta que Ja&a as hace popuares por no teneras. 1/30 - asca, un en+uaje procedimenta. $os cr6ticos inmediatamente atacan >asca por usar a sinta2is "2 H 2 y" en &e# de a ms famiiar "2 2 y" como en 4. =so a pesar de que 4 toda&6a no se ha in&entado. 1/3) - Kennis ;itchie in&enta una potente arma de fue+o que dispara a a &e# hacia deante 1/3) - Kennis ;itchie in&enta una potente arma de fue+o que dispara a a &e# hacia deante y hacia atrs. roo+. @u o!jeti&o es crear un en+uaje con a intei+encia de un nio de dos aos. Kemuestra ha!ero conse+uido enseando una sesión de >roo+ que dice "
1/80 - *an Fay crea @mata e in&enta e t%rmino "orientado a o!jetos". 4uando e pre+untan qu% si+nifica respondeH "os pro+ramas en @mata son sóo o!jetos". 4uando e pre+untan de qu% estn hechos os o!jetos, contestaH "de o!jetos". 4uando e pre+untan otra &e#, diceH "&er usted, son siempre o!jetos otra &e#, hasta que e+as a as tortu+as". 1/8 - Bjarne @troustrup em!ute todo o que ha o6do en su &ida so!re en+uajes y o mete en 4 para crear 4. = en+uaje resutante es tan compejo, que os pro+ramas de!en en&iarse a futuro para que os compie @ynet, a intei+encia artificia. $os tiempos de compiación se aar+an aarmantemente. $os moti&os de @ynet para prestar ese ser&icio si+uen sin estar demasiado caros, pero porta&oces de futuro dicen que "no hay nada de que preocuparse, !a!y", en un monótono acento austr6aco. @e especua con que @ynet no sea ms que un pretencioso des!ordamiento de !uffer. 1/8 - Brad 4o2 y Tom $o&e crean :!jecti&e-4, anunciando que "com!ina a se+uridad de memoria de 4 con a &eocidad de rempa+o de @mata". $os historiadores sospechan que eran dis%2icos. 1/83 - $arry Ga se queda dormido y a frente de $arry Ga cae so!re e tecado. * despertar, $arry Ga decide que a cadena de caracteres de monitor de $arry Ga no es aeatoria, sino un ejempo de un pro+rama en un en+uaje para disear e cua, Kios ha ee+ido a $arry Ga, su profeta. er. 1//0 - n comit% formado por @imon >eyton-Jones, >au Euda, >hiip Gader, *shton Futcher, y "= pue!o por e tratamiento %tico de os animaes" crea Ease, un en+uaje funciona, no estricto y puro. =ncuentra a+o de resistencia, de!ido a a compejidad de usar mónadas para controar os efectos ateraes. Gader intenta apacar a os cr6ticos e2picando que "una mónada no es ms que un monoide de a cate+or6a de os endofuntores, Nqu% pro!ema hayO". 1//1 - = pro+ramador hoand%s ?uido &an ;ossum &iaja a *r+entina para una misteriosa operación. * &o&er con una enorme cicatri# en e crneo, in&enta >ython, e+iones de se+uidores o decaran dictador &itaicio y anuncia a mundo que "sóo hay una forma de hacero". =n >oonia cunde e ner&iosismo. 1//7 - Puihiro "Mad Mat#" Matsumoto crea ;u!y para impedir un apocaipsis &a+amente insinuado que dejar6a *ustraia como como un desierto desierto po!ado po!ado por +uerreros +uerreros rapados rapados y Tina Tu Turner. rner. Ms tarde ";u!y on ;ais" ;ais" es e nue&o nom!re de en+uaje se+'n su &erdadero in&entor, Ka&id Eeinemeier Eansson. A=so de que Matsumoto in&entó un en+uaje amado ";u!y" nunca sucedió y es mejor quitaro de art6cuo - KEE 1//7 - Brendan =ich se fija en todos os errores cometidos en e diseo de otros en+uajes, aade a+unos de su cosecha y crea $i&e@cript. Ms tarde, en un intento para renta!ii#ar a popuaridad de Ja&a, e cam!ia e nom!re a Ja&a@cript. P aun ms tarde, en un esfuer#o de apro&echar a popuaridad de as afecciones cutneas, e en+uaje se renom!ra como =4M*@cript. 1// - James ?osin+ in&enta Ja&a. =s un en+uaje orientado a o!jetos, de in&ocación simpe, estticamente tipado, !asado en cases, con recoección de !asura y !astante ar+o de escri!ir, con herencia simpe de cases y herencia m'tipe de interfaces. @un procama a os cuatro &ientos o no&edoso de Ja&a. )001 - *nders Eejs!er+ in&enta 4. =s un en+uaje orientado a o!jetos, de in&ocación simpe, estticamente tipado, !asado en cases, con recoección de !asura y !astante ar+o de escri!ir, con herencia simpe de cases y herencia m'tipe de interfaces. Microsoft procama a os cuatro &ientos o no&edoso de 4. )00 - Martin :dersy, estando !orracho, &e un anuncio de mantequia de cacahuete ;eese so!re e chocoate y tiene una idea. 4rea @caa, un en+uaje que unifica as construcciones de os en+uajes funcionaes y os orientados a o!jetos. 4onsi+ue ca!rear a os partidarios de am!os tipos de en+uaje que decaran a un6sono a jihad.
Enlaces:
James-Iry - * !rief... of >ro+rammin+ $an+ua+es Fuentes:
Barrapunto >u!icado por eMancu a as 01H
* Historia de los Lenguajes de Programación.
Con la idea de facilitarnos las tareas que debemos de desempeñar los humanos, hemos venidoinventado diversas herramientas a lo largo de nuestra historia, que nos permiten tener unamejor calidad de vida.Los ordenadores son uno ms de los inventos del hombre, aunque debemos decir que lastecnolog!as para su fabricación " e#plotación han tenido un desarrollo sorprendente a partir dela segunda mitad del siglo $$. %sta herramienta por s! sola no es capa& de efectuar ningunatarea, es tan sólo un conjunto de cables " circuitos que necesitan recibir instrucción por partede los humanos para desempeñar alguna tarea. %l problema entonces, se puede fijar en'cómo vamos a poder hacer que un conjunto de circuitos desempeñen una determinada tarea" nos entreguen los resultados que nosotros esperamos(, es decir, 'de qu) manera se puedelograr la comunicación entre el hombre " el ordenador(.s! pues, tratando de dar una solución al problema planteado, surgieron los lenguajes deprogramación, que son como un lenguaje cualquiera, pero simplificado " con ciertas normas,para poder trasmitir nuestros deseos al ordenador.Por otro lado, como se sabe, un conjunto de circuitos no entender!a ning+n lenguaje quenosotros cono&camos, por ms sencillo que )ste pare&ca. Los circuitos en todo caso, sóloreconocen presencia o ausencia de energ!a, es decir que debemos hablarle a la mquina en supropio lenguaje presencia " ausencia de energ!a, - " /, o nuestro lenguaje deber de ser traducido a un lenguaje binario cu"o alfabeto es el - " el , mediante las herramientasdesarrolladas para llevar a cabo esta tarea, las cuales reciben el nombre de traductores, "como veremos ms adelante, los ha" de muchos tipos, dependiendo de caracter!sticas msespec!ficas del lenguaje a traducir " de la manera de llevar a cabo su traducción.Como "a habr)is entendido, para crear un lenguaje de programación, deberemos crear laherramienta que lo traduce, " es justamente de ellas, de las que hablaremos a continuación,para describir como han ido evolucionando en los +ltimos 0- años 1234% 506.
5789 :onrad ;use , un ingeniero lemn mientras trabajaba en los lpes de 2avaria,desarrolló el lenguaje Plan
5759 parece =hort Code, que viene a ser el primer lenguaje que fue usado en undispositivo de cómputo electrónico, aunque se debe decir que se trata de un lenguajetraducido a mano. 509>race Hopper , trabajando para ?emington ?and, comen&ó el trabajo de diseño del primer compilador conocido ampliamente, el @-, el cual, al ser liberado por lacompañ!a en 50A, lo hi&o con el nombre de B4H@B4C
50D9 lic< %. >lennie, durante su tiempo libre en la Eniversidad de Banchester,concibe un sistema de programación llamado E4FCFG%, que viene a ser uncompilador mu" rudimentario. 50A9 aparece F?4?I F?mula 4?Islating/ sistema traductor de fórmulasmatemticas. ue desarrollado por un equipo, al frente del cual se encontraba John2acFL " de la notación usada para la especificación sintctica de loslenguajes, conocida como 2I 2ac
ms adelante describiremos.Por lo pronto, puede decirse, que actualmente e#isten alrededor de D--lenguajes deprogramación 1:II%?=L%3 506 " continuamente, estn apareciendo otros ms nuevos, que prometen hacer mejor uso de los recursos computacionales " facilitar el trabajo de losprogramadores.4ratando de resumir un poco, presentaremos los siguientes cuadros evolutivos, dondeaparecen los lenguajes que por su uso " comerciali&ación, han resultado ser los mspopulares a lo largo de este medio siglo. 1L2? 5K6 1?E= -6 * TODO SOBRE LA PROGRAMACION
Los ordenadores no hablan nuestro idioma, son mauinas ! "omo tales, ne"esitan un len#ua$e es%e"i&"o %ensado %or el hombre %ara ellas' Adem(s, ne"esitan "onstantemente inter%retar todas las instru""iones ue re"iben' Dada la di&"ultad de "omuni"a"i)n insal*able entre el "om%utador ! el %ro#ramador, %ronto a%are"ieron len#ua$es de %ro#rama"i)n ue ha"en %osible la "omuni"a"i)n "on el mi"ro%ro"esador, utili+ando trminos ! s-mbolos rela"ionados "on el ti%o de %roblema ue se debe resol*er, mediante el em%leo de herramientas ue brinda la in.orm(ti"a' Estos len#ua$es %ermiten, %or un lado, es"ribir las o%era"iones ue son ne"esarias reali+ar %ara resol*er el %roblema de un modo %are"ido a "omo se es"ribir-a "on*en"ionalmente /es de"ir, reda"tar ade"uadamente el al#oritmo de resolu"i)n del %roblema0 !, %or el otro, se en"ar#a de tradu"ir el al#oritmo al len#ua$e m(uina /%ro"eso "ono"ido "omo "om%ila"i)n0 "on lo ue se le "on&ere al %ro#rama la "a%a"idad de "orre /ser e$e"utado0 en el ordenador' El ordenador es en realidad tan s)lo una m(uina *irtual, "a%a+ de resol*er todos los %roblemas ue los usuarios seamos "a%a"es de e1%resar mediante un al#oritmo /%ro#rama0' En la a"tualidad ha! mu"hos ti%os de len#ua$es de %ro#rama"i)n, "ada uno de ellos "on su %ro%ia #ram(ti"a, su terminolo#-a es%e"ial ! una sinta1is %arti"ular' Por e$em%lo, e1isten al#unos "reados es%e"ialmente %ara a%li"a"iones "ient-&"as o matem(ti"as #enerales /BASIC, 2ORTRAN, PASCAL, et"' 03 otros, en "ambio, se orientan al "am%o em%resarial ! al mane$o de te1tos ! &"heros, es de"ir, son en realidad .undamentalmente #estores de in.orma"i)n /COBOL, PL45, et"' 0, o mu! rela"ionados "on el len#ua$e m(uina del ordenador /"omo el C ! el ASSEMBLER0' Los ordenadores se %ro#ramaban en len#ua$e m(uina %ero las di&"ultades ue esto "onlle*aba, $unto "on la enorme .a"ilidad de "ometer errores, "u!a lo"ali+a"i)n era lar#a ! "om%le$a, hi"ieron "on"ebir, en la d"ada de los 67, la %osibilidad de usar len#ua$es simb)li"os' Los %rimeros en a%are"er .ueron los ensambladores, .undamentalmente "onsist-a en dar un nombre /mnem)ni"o0 a "ada ti%o de instru""i)n ! "ada dire""i)n /etiueta0' Al %rin"i%io s ha"ia el %ro#rama sobre %a%el !, des%us se tradu"-a a mano "on la a!uda de unas tablas, ! se introdu"-an en la m(uina en .orma numri"a, %ero %ronto a%are"ieron %ro#ramas ue se ensamblaban autom(ti"amente' DE2INICIONES Es "om%li"ado de&nir u es ! u no es un len#ua$e de %ro#rama"i)n' Se asume #eneralmente ue la tradu""i)n de las instru""iones a un ")di#o ue "om%rende la "om%utadora debe ser "om%letamente sistem(ti"a' Normalmente es la "om%utadora la ue reali+a la tradu""i)n' A "ontinua"i)n, *o! a reda"tar unos serie de de&ni"iones de los len#ua$es de %ro#rama"i)n'
8n len#ua$e de %ro#rama"i)n es una nota"i)n %ara es"ribir %ro#ramas, a tra*s de los "uales %odemos "omuni"arnos "on el hard9are ! dar as- las ordenes ade"uadas %ara la reali+a"i)n de un determinado %ro"eso' 8n len#ua$e esta de&nido %or una #ram(ti"a o "on$unto de re#las ue se a%li"an a un al.abeto "onstituido %or el "on$unto de s-mbolos utili+ados' Los distintos ni*eles de %ro#rama"i)n e1istentes nos %ermiten a""eder al hard9are, de tal .orma ue se#:n utili"emos un ni*el u otro, as- tendremos ue utili+ar un determinado len#ua$e li#ado a sus "orres%ondientes tradu"tores' Con$unto de normas ;lin#<-sti"as= /%alabras ! s-mbolos0 ue %ermiten es"ribir un %ro#rama ! ue ste sea entendido %or el ordenador ! %ueda ser trasladado a ordenadores similares %ara su .un"ionamiento en otros sistemas' Con$unto de instru""iones, ordenes ! s-mbolos re"ono"ibles %or aut)mata, a tra*s de su unidad de %ro#rama"i)n, ue le %ermite e$e"utar la se"uen"ia de "ontrol deseada' Al "on$unto de total de estas instru""iones, ordenes ! s-mbolos ue est(n dis%onibles se le llamar len#ua$es de %ro#rama"i)n del aut)mata' El %ro#rama esta .ormado %or un "on$unto de instru""iones, senten"ias, bloues .un"ionales ! #ra&smos ue indi"an las o%era"iones a reali+ar' Las instru""iones re%resentan la tarea m(s elemental de un %ro#rama> leer una entrada, reali+ar una o%era"i)n, a"ti*ar una salida, et"' La senten"ia re%resenta el m-nimo "on$unto de instru""iones o senten"ias ue reali+an una tarea o .un"i)n "om%le$a> en"ontrar el *alor de una .un"i)n l)#i"a en "ombina"i)n de *arias *ariables, "onsultar un "on$unto de "ondi"iones, et"' El bloue .un"ional es el "on$unto de instru""iones o senten"ias ue reali+an una tarea o .un"i)n "om%le$a> "ontadores, re#istros de des%la+amientos, trans.eren"ias de in.orma"i)n, et"' Todos estos elementos est(n rela"ionados entre s- mediante los s-mbolos o #ra&smos' Es un "on$unto de %alabras ! s-mbolos ue %ermiten al usuario #enerar "omandos e instru""iones %ara ue la "om%utadora los e$e"ute' Los len#ua$es de %ro#rama"i)n deben tener instru""iones ue %ertene"en a las "ate#or-as !a .amiliares de entrada4salida, "al"ulo4mani%ula"i)n, de te1tos, lo#i"a4"om%ara"i)n, ! alma"enamiento4re"u%era"i)n' ?ISTORIA Los %rimeros len#ua$es de %ro#rama"i)n sur#ieron de la idea de Charles Baba##e, la "ual se le o"urri) a este hombre a mediados del si#lo @I@' Era un %ro.esor matem(ti"o de la uni*ersidad de Cambrid#e e in*entor in#les, ue la %rin"i%io del si#lo @I@ %redi$o mu"has de las teor-as en ue se basan los a"tuales ordenadores' Consist-a en lo ue l denominaba la mauina anal-ti"a, %ero ue %or moti*os t"ni"os no %udo "onstruirse hasta mediados del si#lo @@' Con l "olaboro Ada Lo*edb!, la "ual es "onsiderada "omo la %rimera %ro#ramadora de la historia, %ues reali+o %ro#ramas %ara aulla su%uesta mauina de Baba##e, en tar$etas %er.oradas' Como la mauina no lle#o nun"a a "onstruirse, los %ro#ramas de Ada, l)#i"amente, tam%o"o lle#aron a e$e"utarse, %ero si su%onen un %unto de %artida de la %ro#rama"i)n, sobre todo si obser*amos ue en "uanto se em%e+) a %ro#ramar, los %ro#ramadores utili+aron las t"ni"as diseadas %or Charles Baba##e, ! Ada, ue "onsist-an entre otras, en la %ro#rama"i)n mediante tar$etas %er.oradas' A %esar de ello, Ada ha %ermane"ido "omo la %rimera %ro#ramadora de la historia' Se di"e %or tanto ue estos dos #enios de antao, se adelantaron un si#lo a su %o"a, lo "ual des"ribe la inteli#en"ia de la ue se hallaban dotados' En 5 el #obierno Brit(ni"o lo a%o!o %ara "rear el %ro!e"to de una m(uina de di.eren"ias, un dis%ositi*o me"(ni"o %ara e.e"tuar sumas re%etidas' Pero Baba##e se dedi"o al %ro!e"to de la m(uina anal-ti"a, abandonando la mauina de di.eren"ias, ue se %udiera %ro#ramar
"on tar$etas %er.oradas, #ra"ias a la "rea"i)n de Charles a"uard /.ran"s0' Este hombre era un .abri"ante de te$idos ! hab-a "reado un telar ue %od-a re%rodu"ir autom(ti"amente %atrones de te$idos, le!endo la in.orma"i)n "odi&"ada en %atrones de a#u$eros %er.orados en tar$etas de %a%el r-#ido' Enton"es Baba##e intento "rear la m(uina ue se %udiera %ro#ramar "on tar$etas %er.oradas %ara e.e"tuar "ualuier "(l"ulo "on una %re"isi)n de 7 d-#itos' Pero la te"nolo#-a de la %o"a no bastaba %ara ha"er realidad sus ideas' Si bien las ideas de Baba##e no lle#aron a materiali+arse de .orma de&niti*a, su "ontribu"i)n es de"isi*a, !a ue los ordenadores a"tuales res%onden a un esuema an(lo#o al de la m(uina anal-ti"a' En su diseo, la m(uina "onstaba de "in"o unidades b(si"as> 50 8nidad de entrada, %ara introdu"ir datos e instru""iones3 0 Memoria, donde se alma"enaban datos ! resultados intermedios3 0 8nidad de "ontrol, %ara re#ular la se"uen"ia de e$e"u"i)n de las o%era"iones3 60 8nidad Aritmti"oFL)#i"a, ue e.e"t:a las o%era"iones3 0 8nidad de salida, en"ar#ada de "omuni"ar al e1terior los resultados' Charles Babba#e, "ono"ido "omo el H%adre de la in.orm(ti"aH no %udo "om%letar en auella %o"a la "onstru""i)n del "om%utador ue hab-a soado, dado ue .altaba al#o .undamental> la ele"tr)ni"a' El "amino sealado de Babba#e, no .ue nun"a abandonado ! si#uindolo, se "onstru!eron los %rimeros "om%utadores' Cuando sur#i) el %rimer ordenador, el .amoso ENIAC /Ele"troni" Numeri"al Inte#rator And Cal"ulator0, su %ro#rama"i)n se basaba en "om%onentes .-si"os, o sea, ue se %ro#ramaba, "ambiando dire"tamente el ?ard9are de la mauina, e1a"tamente lo ue s ha"ia era "ambiar "ables de sitio %ara "onse#uir as- la %ro#rama"i)n de la mauina' La entrada ! salida de datos se reali+aba mediante tar$etas %er.oradas' LAS TENDENCIAS DE LOS LENG8AES DE PROGRAMACIN El estudio de los len#ua$es de %ro#rama"i)n a#ru%a tres intereses di.erentes3 el del %ro#ramador %ro.esional, el del diseador del len#ua$e ! del Im%lementador del len#ua$e' Adem(s, estos tres traba$os han de reali+arse dentro de las li#aduras ! "a%a"idades de la or#ani+a"i)n de una "om%utadora ! de las limita"iones .undamentales de la %ro%ia H"al"ulabilidadH' El termino Hel %ro#ramadorH es un tanto amor.o, en el sentido de ue "amuJa im%ortantes di.eren"ias entre distintos ni*eles ! a%li"a"iones de la %ro#rama"i)n' Claramente el %ro#ramador ue ha reali+ado un "urso de do"e semanas en COBOL ! lue#o entra en el "am%o del %ro"esamiento de datos es di.erente del %ro#ramador ue es"ribe un "om%ilador en Pas"al, o del %ro#ramador ue disea un e1%erimento de inteli#en"ia arti&"ial en LISP, o del %ro#ramador ue "ombina sus rutinas de 2ORTRAN %ara resol*er un %roblema de in#enier-a "om%le$o, o del %ro#ramador ue desarrolla un sistema o%erati*o multi%ro"esador en ADA' En este traba$o, intentare "lari&"ar estas distin"iones tratando di.erentes len#ua$es de %ro#rama"i)n en el "onte1to de "ada (rea de a%li"a"i)n di.erente' El Hdiseador del len#ua$eH es tambin un termino al#o nebuloso' Al#unos len#ua$es /"omo APL ! LISP0 .ueron diseados %or una sola %ersona "on un "on"e%to :ni"o, mientras ue otros /2ORTRAN ! COBOL0 son el %rodu"to de desarrollo de *arios aos reali+ados %or "omits de diseo de len#ua$es' El HIm%lementador del len#ua$eH es la %ersona o #ru%o ue desarrolla un "om%ilador o inter%rete %ara un len#ua$e sobre una mauina %arti"ular o ti%os de mauinas' Mas .re"uentemente, el %rimer "om%ilador %ara el len#ua$e K sobre la mauina @ es desarrollada %or la "or%ora"i)n ue manu.a"tura la mauina @ ' Por e$em%lo, ha! *arios "om%iladores de 2ortran en uso3 uno desarrollado %or IBM %ara una mauina IBM, otro desarrollado %or DEC %ara una mauina DEC, otro %or CDC, ! as- su"esi*amente' Las "om%a-as de so.t9are
tambin desarrollan "om%iladores ! tambin lo ha"en los #ru%os de in*esti#a"i)n de las uni*ersidades' Por e$em%lo, la uni*ersidad de aterloo desarrolla "om%iladores %ara 2ORTRAN K PASCAL, los "uales son :tiles en un entorno de %ro#rama"i)n de estudiantes debido a su su%erior "a%a"idad de dia#nosti"o ! *elo"idad de "om%ila"i)n' ?a! tambin mu"hos as%e"tos "om%artidos entre los %ro#ramadores, diseadores de un len#ua$e im%lementadores del mismo' Cada uno debe "om%render las ne"esidades ! li#aduras ue #obiernan las a"ti*idades de los otros dos' ?a!, al menos, dos .ormas .undamentales desde las ue %ueden *erse o "lasi&"arse los len#ua$es de %ro#rama"i)n> %or su ni*el ! %or %rin"i%ales a%li"a"iones' Adem(s, estas *isiones est(n "ondi"ionadas %or la *isi)n hist)ri"a %or la ue ha trans"urrido el len#ua$e' Adem(s, ha! "uatro ni*eles distintos de len#ua$e de %ro#rama"i)n' Los HLen#ua$es De"larati*osH son los mas %are"idos al "astellano o in#les en su %oten"ia e1%resi*a ! .un"ionalidad est(n en el ni*el mas alto res%e"to a los otros' Son .undamentalmente len#ua$es de ordenes, dominados %or senten"ias ue e1%resan HLo ue ha! ue ha"erH en *es de HComo ha"erloH' E$em%los de estos len#ua$es son los len#ua$es estad-sti"os "omo SAS ! SPSS ! los len#ua$es de b:sueda en base de datos, "omo NAT8RAL e IMS' Estos len#ua$es se desarrollaron "on la idea de ue los %ro.esionales %udieran asimilar mas r(%idamente el len#ua$e ! usarlo en su traba$o, sin ne"esidad de %ro#ramadores o %ra"ti"as de %ro#rama"i)n' Los len#ua$es de H Alto Ni*elH son los m(s utili+ados "omo len#ua$e de %ro#rama"i)n' Aunue no son .undamentalmente de"larati*os, estos len#ua$es %ermiten ue los al#oritmos se e1%resen en un ni*el ! estilo de es"ritura .("ilmente le#ible ! "om%rensible %or otros %ro#ramadores' Adem(s, los len#ua$es de alto ni*el tienen normalmente las "ara"ter-sti"as de H Trans%ortabilidadH' Es de"ir, est(n im%lementadas sobre *arias mauinas de .orma ue un %ro#rama %uede ser .("ilmente H Trans%ortado H /Trans.erido0 de una mauina a otra sin una re*isi)n sustan"ial' En ese sentido se llama HInde%endientes de la mauinaH' E$em%los de estos len#ua$es de alto ni*el son PASCAL, APL ! 2ORTRAN /%ara a%li"a"iones "ient-&"as0, COBOL /%ara a%li"a"iones de %ro"esamiento de datos0, SNOBOL/ %ara a%li"a"iones de %ro"esamiento de te1tos0, LISP ! PROLOG /%ara a%li"a"iones de inteli#en"ia arti&"ial0, C ! ADA /%ara a%li"a"iones de %ro#rama"i)n de sistemas0 ! PL4I /%ara a%li"a"iones de %ro%)sitos #enerales0' Los HLen#ua$es EnsambladoresH ! los HLen#ua$es MauinaH son de%endientes de la mauina' Cada ti%o de mauina, tal "omo A@ de di#ital, tiene su %ro%io len#ua$e mauina distinto ! su len#ua$e ensamblador aso"iado' El len#ua$e Ensamblador es sim%lemente una re%resenta"i)n simb)li"a del len#ua$e mauina aso"iado, lo "ual %ermite una %ro#rama"i)n menos tediosa ue "on el anterior' Sin embar#o, es ne"esario un "ono"imiento de la aruite"tura me"(ni"a sub!a"ente %ara reali+ar una %ro#rama"i)n e.e"ti*a en "ualuiera de estos ni*eles len#ua$es' Los si#uientes tres se#mentos del %ro#rama eui*alentes e1%onen las distin"iones b(si"as entre len#ua$es mauina, ensambladores de alto ni*el> Como muestra este e$em%lo, a mas ba$o ni*el de len#ua$e mas "er"a esta de las "ara"ter-sti"as de un ti%o e mauina %arti"ular ! m(s ale$ado de ser "om%rendido %or un humano ordinario' ?a! tambin una estre"ha rela"i)n / "orres%onden"ia 5>50 entre las senten"ias en len#ua$e ensamblador ! sus .ormas en len#ua$e mauina "odi&"ada' La %rin"i%al di.eren"ia au- es ue los len#ua$es ensambladores se utili+an s-mbolos /@, K, , A %ara H sumarH, M %ara Hmulti%li"a mientras ue se reuieren ")di#os numri"os /OC5A6, et"'0
%ara ue lo "om%renda la mauina' La %ro#rama"i)n de un len#ua$e de alto ni*el o en un len#ua$e ensamblador reuiere, %or tanto, al#:n ti%o de inter.a+ "on el len#ua$e mauina %ara ue el %ro#rama %ueda e$e"utarse' Las tres inter.a"es m(s "omunes> un Hensamblador=, un H"om%iladorH ! un Hinter%reteH' El ensamblador ! el "om%ilador tradu"en el %ro#rama a otro eui*alente en el len#ua$e @ de la mauina HresidenteH "omo un %aso se%arado antes de la e$e"u"i)n' Por otra %arte, el inter%rete e$e"uta dire"tamente las instru""iones en un len#ua$e K de alto ni*el, sin un %aso de %ro"esamiento %re*io' La "om%ila"i)n es, en #eneral, un %ro"eso m(s e&"iente ue la inter%reta"i)n %ara la ma!or-a de los ti%os de mauina' Esto se debe %rin"i%almente a ue las senten"ias dentro de un Hbu"leH deben ser reinter%retadas "ada *e+ ue se e$e"utan %or un inter%rete' Con un "om%ilador' Cada senten"ia es inter%retada ! lue#o tradu"ida a len#ua$e mauina solo una *e+' Al#unos len#ua$es son len#ua$es %rin"i%almente inter%retados, "omo APL, PROLOG ! LISP' El resto de los len#ua$es FF Pas"al, 2ORTRAN, COBOL, PL4I, SNOBOL, C, Ada ! ModulaF F son normalmente len#ua$es "om%ilados' En al#unos "asos, un "om%ilador estar( utili+able alternati*amente %ara un len#ua$e inter%retado /tal "omo LISP0 e in*ersamente /tal "omo el inter%rete SNOBOL6 de los laboratorios Bell0' 5 2re"uentemente la inter%reta"i)n es %re.erible a la "om%ila"i)n en un entorno de %ro#rama"i)n e1%erimental o de edu"a"i)n, donde "ada nue*a e$e"u"i)n de un %ro#rama im%li"ado un "ambio en el %ro%io te1to del %ro#rama' La "alidad de dia#nosis ! de%ura"i)n ue so%ortan los len#ua$es inter%retados es #eneralmente me$or ue la de los len#ua$es "om%ilados, %uesto ue los mensa$es de error se re&eren dire"tamente a senten"ias del te1to del %ro#rama ori#inal' Adem(s, la *enta$a de la e&"ien"ia ue se ad$udi"a tradi"ionalmente a los len#ua$es "om%ilados .rente a los inter%retados %uede %ronto ser eliminado, debido a la e*olu"i)n de las mauinas "u!os len#ua$es son ellos mismos5len#ua$es de alto ni*el' Como e$em%lo de estos est(n las nue*as mauinas LISP, las "uales han sido diseadas re"ientemente %or S!mboli"s ! @ero1 Cor%orations' Los len#ua$es de Pro#rama"i)n son tomados de di.erentes %ers%e"ti*as' Es im%ortante %ara un %ro#ramador de"idir "uales "on"e%tos emitir o "uales in"luir en la %ro#rama"i)n' Con .re"uen"ia el %ro#ramador es osado a usar "ombina"iones de "on"e%tos ue ha"en al len#ua$e HD8ROH de usar, de entender e im%lementar' Cada %ro#ramador tiene en mente un estilo %arti"ular de %ro#rama"i)n, la de"isi)n de in"luir u omitir "iertos ti%os de datos ue %ueden tener una si#ni&"ati*a inJuen"ia en la .orma en ue el Len#ua$e es usado, la de"isi)n de usar u omitir "on"e%tos de %ro#rama"i)n o modelos' E1isten "in"o estilos de %ro#rama"i)n ! son los si#uientes> Orientados a Ob$etos' Im%erati*a > Entrada, %ro"esamiento ! salidas de Datos' 2un"ional > H2un"ionesH, los datos son .un"iones, los resultados %ueden ser un *alor o una .un"i)n' L)#i"o > T, 2 Q o%era"iones l)#i"as /Inteli#en"ia Arti&"ial0'
Con"urrente > A:n esta en %ro"eso de in*esti#a"i)n' El %ro#ramador, diseador e im%lementador de un len#ua$e de %ro#rama"i)n deben "om%render la e*olu"i)n hist)ri"a de los len#ua$es %ara %oder a%re"iar %or ue %resentan "ara"ter-sti"as di.erentes' Por e$em%lo, los len#ua$es Hmas $)*enesH desa"onse$an /o %roh-ben0 el uso de las senten"ias GOTO "omo me"anismo de "ontrol in.erior, ! esto es "orre"to en el "onte1to de las &loso.-as a"tuales de in#enier-a del so.t9are ! %ro#rama"i)n estru"turada' Pero hubo un tiem%o en ue la GOTO, "ombinada "on la I2, era la :ni"a estru"tura de "ontrol dis%onible3 el %ro#ramador no dis%one de al#o "omo la "onstru""i)n ?ILE o un I2FT?ENFELSE %ara ele#ir' Por tanto, "uando se *e un len#ua$e "omo 2ORTRAN, el "ual tiene sus ra-"es en los "omien+os de la historia de los len#ua$es de %ro#rama"i)n, uno no debe sor%renderse de *er la anti#ua senten"ia GOTO dentro de su re%ertorio' Lo m(s im%ortante es ue la historia nos %ermite *er la e*olu"i)n de .amilias de len#ua$es de %ro#rama"i)n, *er la inJuen"ia ue e$er"er las aruite"turas ! a%li"a"iones de las "om%utadoras sobre el diseo de len#ua$es ! e*itar .uturos de.e"tos de diseo a%rendido las le""iones del %asado' Los ue estudian se han ele#ido debido a su ma!or inJuen"ia ! am%lio uso entre los %ro#ramadores, as- "omo %or sus distintas "ara"ter-sti"as de diseo e im%lementa"i)n' Cole"ti*amente "ubren los as%e"tos m(s im%ortantes "on los ue ha de en.rentarse el diseado de len#ua$es ! la ma!or-a de las a%li"a"iones "on las ue se en.renta el %ro#ramador' Para los le"tores ue estn interesados en "ono"er "on mas detalle la historia de los len#ua$es de %ro#rama"i)n re"omendamos las a"tas de una re"in "on.eren"ia /550 sobre este tema, editadas %or Ri"hard e1elblat' emos ue 2ORTRAN I es un as"endente dire"to de 2ORTRAN II, mientras ue 2ORTRAN, COBOL, ALGO 7, LISP, SNOBOL ! los len#ua$es ensambladores, inJu!eron en el diseo de PL4I' Tambin *arios len#ua$es est(n %re&$ados %or las letras ANS' Esto si#ni&"a ue el Ameri"an National Standards Institute ha ado%tado esa *ersi)n del len#ua$e "omo el est(ndar na"ional' 8na *e+ ue un len#ua$e esta estandari+ado, las mauinas ue im%lementan este len#ua$e deben "um%lir todas las es%e"i&"a"iones est(ndares, re.or+ando as- el m(1imo de trans%ortabilidad de %ro#ramas de una mauina a otra' La %oli"-a .ederal de no "om%rar mauinas ue no "um%lan la *ersi)n est(ndar de "ualuier len#ua$e ue so%orte tiende a H.ortale"erH el %ro"eso de estandari+a"i)n, %uesto ue el #obierno es, "on mu"ho, el ma!or "om%rador de "om%utadoras de la na"i)n' 2inalmente, la nota"i)n al#ebrai"a ordinaria, %or e$em%lo, inJu!o .uertemente en el diseo de 2ORTRAN ! ALGOL' Por otra %arte, el in#les inJu!o en el desarrollo del COBOL' El lambda "al"ulo de Chur"h dio los .undamentos de la nota"i)n .un"ional de LISP, mientras ue el al#oritmo de Maro* moti*o el estilo de re"ono"imiento de .ormas de SNOBOL' La aruite"tura de "om%utadoras de on Neumann, la "ual .ue una e*olu"i)n de la mauina m(s anti#ua de Turin#, es el modelo b(si"o de la ma!or-a de los diseos de "om%utadoras de las ultimas tres d"adas' Esta mauina no solo inJu!eron en los %rimeros len#ua$es sino ue tambin suministraron el esueleto o%era"ional sobre el ue e*olu"iono la ma!or-a de la %ro#rama"i)n de sistemas' 8na dis"usi)n m(s dire"ta de todos estos %rimeros modelos no est(n entre los ob$eti*os de este te1to' Sin embar#o, es im%ortante a%untar au- debido a su .undamental inJuen"ia en la e*olu"i)n de los %rimeros len#ua$es de %ro#rama"i)n, %or una %arte, ! %or su estado en el n:"leo de la teor-a de la "om%utadora, %or otra' Mas sobre este %unto, "ualuier al#oritmo ue %ueda des"ribirse en in#les o "astellano %uede es"ribirse i#ualmente "omo una mauina de Turin# /mauina de on Neumann0, un al#oritmo de Maro* o una .un"i)n re"ursi*a' Esta se""i)n, "ono"ida am%liamente "omo Htesis de Chur"hH, nos %ermite es"ribir al#oritmos en
distintos estilos de %ro#rama"i)n /len#ua$es0 sin sa"ri&"ar nin#una medida de #eneralidad, o %oten"ia de %ro#rama"i)n, en la transi"i)n'
CLASI2ICACION DE LOS LENG8AES DE PROGRAMACIN LENG8AE MUV8INA> El len#ua$e m(uina es el :ni"o ue entiende dire"tamente la "om%utadora, !a ue esta es"rito en len#ua$es dire"tamente inteli#ibles %or la m(uina /"om%utadora0, utili+a el al.abeto binario, ue "onsta de los dos :ni"os s-mbolos 7 ! 5, denominados bits /abre*iatura in#lesa de d-#itos binarios0' Sus instru""iones son "adenas binarias /"adenas o series de "ara"teres de d-#itos 7 ! 50 ue es%e"i&"an una o%era"i)n !, las %osi"iones /dire""i)n0 de memoria im%li"adas en la o%era"i)n se denominan instru""iones de m(uina o ")di#o mauina' 2ue el %rimer len#ua$e utili+ado en la %ro#rama"i)n de "om%utadoras, %ero de$o de utili+arse %or su di&"ultad ! "om%li"a"i)n, siendo sustituido %or otros len#ua$es m(s .("iles de a%render ! utili+ar, ue adem(s redu"en la %osibilidad de "ometer errores' El len#ua$e m(uina es el "ono"ido ")di#o binario' Generalmente, en la "odi&"a"i)n de los %ro#ramas se em%leaba el sistema he1ade"imal %ara sim%li&"ar el traba$o de es"ritura' Todas las instru""iones %re%aradas en "ualuier len#ua$e m(uina tienen %or lo menos dos %artes' La %rimera es el "omando u o%era"i)n, ue di"e a las "om%utadoras "ual es la .un"i)n ue *a a reali+ar' Todas las "om%utadoras tienen un ")di#o de o%era"i)n %ara "ada una de las .un"iones' La se#unda %arte de la instru""i)n es el o%erando, ue indi"a a la "om%utadora donde hallar o alma"enar los datos ! otras instru""iones ue se *an a mani%ular, el n:mero de o%er(ndoos de una instru""i)n *aria en distintas "om%utadoras' enta$as del len#ua$e m(uina> %osibilidad de "ar#ar /trans.erir un %ro#rama a la memoria0 sin ne"esidad de tradu""i)n %osterior, lo ue su%one una *elo"idad de e$e"u"i)n su%erior a "ualuier otro len#ua$e de %ro#rama"i)n' Des*enta$as del len#ua$e m(uina> di&"ultad ! lentitud en la "odi&"a"i)n' Po"a &abilidad' Gran di&"ultad %ara *eri&"ar ! %oner a %unto los %ro#ramas' Los %ro#ramas solo son e$e"utables en el mismo %ro"esador /CP80' En la a"tualidad, las des*enta$as su%eran a las *enta$as, lo ue ha"e %r("ti"amente no re"omendables a los len#ua$es m(uina' LENG8AES DE BAO NIEL /ensamblador0> Son m(s .("iles de utili+ar ue los len#ua$es m(uina, %ero al i#ual ue ellos, de%enden de la m(uina en %arti"ular' El len#ua$e de ba$o ni*el %or e1"elen"ia es el ensamblador' El len#ua$e ensamblador es el %rimer intento de sustituir el len#ua$e mauina %or otro m(s similar a los utili+ados %or las %ersonas' Este intenta desJe1ibili+ar la re%resenta"i)n de los di.erentes "am%os' Esa Je1ibilidad se "onsi#ue no es"ribiendo los "am%os en binario ! a%ro1imando la es"ritura al len#ua$e' A %rin"i%ios de la d"ada de los 7 ! "on el &n de .a"ilitar la labor de los %ro#ramadores, se desarrollaron ")di#os mnemot"ni"os %ara las o%era"iones ! dire""iones simb)li"as' Los ")di#os mnemot"ni"as son los s-mbolos al.abti"os del len#ua$e mauina' La "om%utadora si#ue utili+ando el len#ua$e mauina %ara %ro"esar los datos, %ero los %ro#ramas ensambladores tradu"en antes los s-mbolos de ")di#o de o%era"i)n es%e"i&"ados a sus eui*alentes en el len#ua$e mauina' En la a"tualidad los %ro#ramadores no asi#nan n:meros de dire""i)n reales a los datos simb)li"os, sim%lemente es%e"i&"an donde uieren ue se "oloue la %rimera lo"alidad del %ro#rama ! el %ro#rama ensamblador se en"ar#a de lo dem(s, asi#na lo"alidades tanto %ara las instru""iones "omo los datos' Estos %ro#ramas de
ensamble o ensambladores tambin %ermiten a la "om%utadora "on*ertir las instru""iones en len#ua$e ensamblador del %ro#ramador en su %ro%io ")di#o mauina' 8n %ro#rama de instru""iones es"rito en len#ua$e ensamblador %or un %ro#ramador se llama %ro#rama .uente' Des%us de ue el ensamblador "on*ierte el %ro#rama .uente en ")di#o mauina a este se le denomina %ro#rama ob$eto' Para los %ro#ramadores es m(s .("il es"ribir instru""iones en un len#ua$e ensamblador ue en ")di#o de len#ua$e mauina %ero es %osible ue se reuieran dos "orridas de "om%utadora antes de ue se %uedan utili+ar las instru""iones del %ro#rama .uente %ara %rodu"ir las salidas deseadas' El len#ua$e de ba$o ni*el es el len#ua$e de %ro#rama"i)n ue el ordenador %uede entender a la hora de e$e"utar %ro#ramas, lo ue aumenta su *elo"idad de e$e"u"i)n, %ues no ne"esita un intr%rete ue tradu+"a "ada l-nea de instru""iones' isto a mu! ba$o ni*el, los mi"ro%ro"esadores %ro"esan e1"lusi*amente seales ele"tr)ni"as binarias' Dar una instru""i)n a un mi"ro%ro"esador su%one en realidad en*iar series de unos ! "eros es%a"iadas en el tiem%o de una .orma determinada' Esta se"uen"ia de seales se denomina ")di#o m(uina' El ")di#o re%resenta normalmente datos ! n:meros e instru""iones %ara mani%ularlos' 8n modo m(s .("il de "om%render el ")di#o m(uina es dando a "ada instru""i)n un mnem)ni"o, "omo %or e$em%lo STORE, ADD o 8MP' Esta abstra""i)n da "omo resultado el ensamblador, un len#ua$e de mu! ba$o ni*el ue es es%e"-&"o de "ada mi"ro%ro"esador' Los len#ua$es de ba$o ni*el %ermiten "rear %ro#ramas mu! r(%idos, %ero ue son, a menudo, di.-"iles de a%render' M(s im%ortante es el he"ho de ue los %ro#ramas es"ritos en un ba$o ni*el sean altamente es%e"-&"os de "ada %ro"esador' Si se lle*a el %ro#rama a otra mauina se debe rees"ribir el %ro#rama desde el %rin"i%io' enta$as del len#ua$e ensamblador .rente al len#ua$e m(uina> ma!or .a"ilidad de "odi&"a"i)n !, en #eneral, su *elo"idad de "al"ulo, ahorran tiem%o ! reuieren menos aten"i)n a detalles' Se in"urren en menos errores ! los ue se "ometen son m(s .("iles de lo"ali+ar' Tanto el len#ua$e mauina "omo el ensamblador #o+an de la *enta$a de m-nima o"u%a"i)n de memoria ! m-nimo tiem%o de e$e"u"i)n en "om%ara"i)n "on el resultado de la "om%ila"i)n del %ro#rama eui*alente es"rito en otros len#ua$es' Los %ro#ramas en len#ua$e ensamblador son m(s .("iles de modi&"ar ue los %ro#ramas en len#ua$e m(uina' Des*enta$as del len#ua$e ensamblador> de%enden"ia total de la mauina lo ue im%ide la trans%ortabilidad de los %ro#ramas /%osibilidad de e$e"utar un %ro#rama en di.erentes m(uinas0' El len#ua$e ensamblador del PC es distinto del len#ua$e ensamblador del A%%le Ma"hintosh' La .orma"i)n de los %ro#ramadores es m(s "om%le$a ue la "orres%ondiente a los %ro#ramadores de alto ni*el, !a ue e1i#e no solo las t"ni"as de %ro#rama"i)n, sino tambin el "ono"imiento del interior de la mauina El %ro#ramador ha de "ono"er %er.e"tamente el hard9are del eui%o, !a ue mane$a dire"tamente las %osi"iones de memoria, re#istros del %ro"esador ! dem(s elementos .-si"os' Todas las instru""iones son elementales, es de"ir, en el %ro#rama se deben des"ribir "on el m(1imo detalle todas las o%era"iones ue se han de e.e"tuar en la mauina %ara la reali+a"i)n de "ualuier %ro"eso' Los len#ua$es ensamblador tienen sus a%li"a"iones mu! redu"idas, se "entran b(si"amente en a%li"a"iones de tiem%o real, "ontrol de %ro"esos ! de dis%ositi*os ele"tr)ni"os' LENG8AES DE ALTO NIEL> Estos len#ua$es son los mas utili+ado %or los %ro#ramadores' Est(n diseados %ara ue las
%ersonas es"riban ! entiendan los %ro#ramas de un modo mu"ho mas .("il ue los len#ua$es m(uina ! ensamblador' 8n %ro#rama es"rito en len#ua$e de alto ni*el es inde%endiente de la m(uina /las instru""iones no de%enden del diseo del hard9are o de una "om%utadora en %arti"ular0, %or lo ue estos %ro#ramas son %ortables o trans%ortables' Los %ro#ramas es"ritos en len#ua$e de alto ni*el %ueden ser e$e"utados "on %o"a o nin#una modi&"a"i)n en di.erentes ti%os de "om%utadoras' Son len#ua$es de %ro#rama"i)n en los ue las instru""iones en*iadas %ara ue el ordenador e$e"ute "iertas )rdenes son similares al len#ua$e humano' Dado ue el ordenador no es "a%a+ de re"ono"er estas ordenes, es ne"esario el uso de un intr%rete ue tradu+"a el len#ua$e de alto ni*el a un len#ua$e de ba$o ni*el ue el sistema %ueda entender' Por lo #eneral se %iensa ue los ordenadores son m(uinas ue reali+an tareas de "(l"ulos o %ro"esamiento de te1to' La des"ri%"i)n anterior es s)lo una .orma mu! esuem(ti"a de *er una "om%utadora' ?a! un alto ni*el de abstra""i)n entre lo ue se %ide a la "om%utadora ! lo ue realmente "om%rende' E1iste tambin una rela"i)n "om%le$a entre los len#ua$es de alto ni*el ! el ")di#o m(uina' Los len#ua$es de alto ni*el son normalmente .("iles de a%render %orue est(n .ormados %or elementos de len#ua$es naturales, "omo el in#ls' En BASIC, el len#ua$e de alto ni*el m(s "ono"ido, los "omandos "omo ;I2 CONTADORW57 T?EN STOP= %ueden utili+arse %ara %edir a la "om%utadora ue %are si CONTADOR es i#ual a die+' Por des#ra"ia %ara mu"has %ersonas esta .orma de traba$ar es un %o"o .rustrante, dado ue a %esar de ue las "om%utadoras %are"en "om%render un len#ua$e natural, lo ha"en en realidad de una .orma r-#ida ! sistem(ti"a' Los len#ua$es de alto ni*el, tambin denominados len#ua$es e*olu"ionados, sur#en "on %osterioridad a los anteriores /len#ua$e m(uina, len#ua$es de ba$o ni*el o ensamblador0 "on los si#uientes ob$eti*os, entre otros> Lo#rar inde%enden"ia de la mauina, %udiendo utili+ar un mismo %ro#rama en di.erentes eui%os "on la :ni"a "ondi"i)n de dis%oner de un %ro#rama tradu"tor o "om%ilador, ue es suministrado %or el .abri"ante, %ara obtener el %ro#rama e$e"utable en len#ua$e binario de la mauina ue se trate' Adem(s, no se ne"esita "ono"er el hard9are es%e"i&"o de di"ha mauina' A%ro1imarse al len#ua$e natural, %ara ue el %ro#rama se %ueda es"ribir ! leer de una .orma m(s sen"illa, eliminando mu"has de las %osibilidades de "ometer errores ue se daban en el len#ua$e mauina, !a ue se utili+an %alabras /en in#les0 en lu#ar de "adenas de s-mbolos sin nin#:n si#ni&"ado a%arente' In"luir rutinas de uso .re"uente, "omo las de entrada 4 salida, .un"iones matem(ti"as, mane$o de tablas, et"', ue uran en una es%e"ie de librer-a del len#ua$e, de manera ue se %uedan utili+ar siem%re ue se uiera sin ne"esidad de %ro#ramarlas "ada *e+' enta$as de los len#ua$es de alto ni*el> el tiem%o de .orma"i)n de los %ro#ramadores es relati*amente "orto "om%arado "on otros len#ua$es' La es"ritura de %ro#ramas se basa en re#las sint("ti"as similares a los len#ua$es humanos, nombres de las instru""iones tales "omo READ, RITE, PRINT, OPEN, et"' Las modi&"a"iones ! %uestas a %unto de los %ro#ramas son m(s .("iles' Redu""i)n del "osto de los %ro#ramas' Trans%ortabilidad' Permiten tener una me$or do"umenta"i)n' Son m(s .("iles de mantener' Des*enta$as de los len#ua$es de alto ni*el> in"remento del tiem%o de %uesta a %unto al ne"esitarse di.erentes tradu""iones del %ro#rama .uente %ara "onse#uir el %ro#rama de&niti*o' No se a%ro*e"han los re"ursos internos de la mauina ue se e1%lotan mu"ho
me$or en len#ua$es m(uina ! ensambladores' Aumento de la o"u%a"i)n de memoria' El tiem%o de e$e"u"i)n de los %ro#ramas es mu"ho ma!or' Se %uede de"ir ue el %rin"i%al %roblema ue %resentan los len#ua$es de alto ni*el es la #ran "antidad de ellos ue e1isten a"tualmente en uso, adem(s de las di.erentes *ersiones o diale"tos ue se han desarrollado de al#unos de ellos' Es di.-"il estable"er una "lasi&"a"i)n #eneral de los mismos, !a ue en "ualuiera ue se reali"e habr( len#ua$es ue %ertene+"an a mas de uno de los #ru%os estable"idos' 8na "lasi&"a"i)n mu! e1tendida, atendiendo a la .orma de traba$ar de los %ro#ramas ! a la &loso.-a "on ue .ueron "on"ebidos, es la si#uiente> Len#ua$es im%erati*os' 8tili+an instru""iones "omo unidad de traba$o de los %ro#ramas /Cobol, Pas"al, C, Ada0' Len#ua$es de"larati*os' Los %ro#ramas se "onstru!en mediante des"ri%"iones de .un"iones o e1%resiones l)#i"as /Lis%, Prolo#0' Len#ua$es orientados a ob$etos' El diseo de los %ro#ramas se basa mas en los datos ! su estru"tura' La unidad de %ro"eso es el ob$eto ! en el se in"lu!en los datos /*ariables0 ! las o%era"iones ue a"t:an sobre ellos /Smalltal, CQQ0' Len#ua$es orientados al %roblema' Diseados %ara %roblemas es%e"-&"os, %rin"i%almente de #esti)n, suelen ser #eneradores de a%li"a"iones' Len#ua$es naturales' Est(n desarroll(ndose nue*os len#ua$es "on el %rin"i%al ob$eti*o de a%ro1imar el diseo ! "onstru""i)n de %ro#ramas al len#ua$e de las %ersonas' Otra "lasi&"a"i)n ue se %uede ha"er es la de atendiendo al desarrollo de los len#ua$es desde la a%ari"i)n de las "om%utadoras, ue si#ue un "ierto %aralelismo "on las #enera"iones estable"idas en la e*olu"i)n de las mismas> Primera #enera"i)n' Len#ua$es mauina ! ensambladores' Se#unda #enera"i)n' Primeros len#ua$es de alto ni*el im%erati*o /2ROTRAN, COBOL0' Ter"era #enera"i)n' Len#ua$es de alto ni*el im%erati*o' Son los mas utili+ados ! si#uen *i#entes en la a"tualidad /ALGOL , PL4I, PASCAL, MOD8LA0' Cuarta #enera"i)n' Orientados b(si"amente a las a%li"a"iones de #esti)n ! al mane$o de bases de datos /NAT8RAL, SVL0' Vuinta #enera"i)n' Orientados a la inteli#en"ia arti&"ial ! al %ro"esamiento de los len#ua$es naturales /LISP, PROLOG0' Para la me$or "om%resi)n se har(n unas de&ni"iones> Pro#rama> es un "on$unto de instru""iones es"ritas en un len#ua$e de %ro#rama"i)n ue indi"an a la "om%utadora la se"uen"ia de %asos, %ara resol*er un %roblema' C)di#o .uente> esta "reado en al#:n len#ua$e de alto ni*el, %or lo ue es entendido 577X %or el ser humano' Este debe estar "om%lementado %or su do"umenta"i)n o manuales donde se indi"a el desarrollo l)#i"o del mismo'
C)di#o ob$eto> es "reado %or los "om%iladores ! nos sir*e "omo enla"e entre el %ro#rama .uente ! el e$e"utable' ALG8NOS LEG8AES DE PROGRAMACIN DE ALTO NIEL A "ontinua"i)n se %resentan *arios de los mas "ono"idos ! utili+ados, len#ua$es de alto ni*el' 2ORTRAN Abre*iatura de 2ORmula TRANslator /tradu"tor de .ormulas0, .ue de&nido alrededor del ao 5 en Estados 8nidos %or la "om%a-a IBM' Es l m(s anti#uo de los len#ua$es de alto ni*el' Antes de l, todos los %ro#ramas se es"rib-an en len#ua$e ensamblador o en len#ua$e m(uina' Es un len#ua$e es%e"iali+ado en a%li"a"iones t"ni"as ! "ient-&"as' Se "ara"teri+a %or su %oten"ia en los "(l"ulos matem(ti"os, %ero esta limitado en las a%li"a"iones de #esti)n, mane$o de ar"hi*os, tratamiento de "adenas de "ara"teres ! edi"i)n de in.ormes' Es un len#ua$e notorio, %or la .a"ilidad "on ue %ermite e1%resar una e"ua"i)n' Mu"has de sus "ara"ter-sti"as .ueron in"or%oradas mas tarde en el %rimer len#ua$e BASIC' 8na de sus *enta$as es ue es un len#ua$e "om%a"to ! es tambin am%liamente utili+ado %ara a%li"a"iones en los ne#o"ios ue no reuieren mane$o de #randes ar"hi*os de datos' ?asta 55 se mantu*o "omo mono%olio de IBM, %ero %osteriormente se .ue im%lementando en ordenadores de otros .abri"antes' A lo lar#o de su e1isten"ia han a%are"ido di.erentes *ersiones, entre las ue desta"a la ado%tada en 5 %or el ANSI /Ameri"an National Standards Institute0, en la ue se de&nieron nue*as re#las del len#ua$e ! se lo#ro la inde%enden"ia del mismo "on res%e"to a la m(uina3 es de"ir, "omen+o la %ortabilidad del len#ua$e' Esta *ersi)n se denomin) 2ORTRAN I o 2ORTRAN , ! el idioma se hi+o tan %o%ular en los aos 7, ue 2ORTRAN se *ol*i) el %rimer idioma en ser re#ulari+ado o&"ialmente en 5Y' En 5YY a%are"i) una nue*a *ersi)n mas e*olu"ionada ue se llamo 2ORTRAN o 2ORTRAN YY' Est( reJe$ada en el do"umento ANS @'F5Y> Pro#rammin# Lan#ua#e 2ORTRAN ! de&ne dos ni*eles del len#ua$e denominados 2ORTRAN YY "om%leto ! 2ORTRAN YY b(si"o, siendo el se#undo un sub"on$unto del %rimero' In"lu!e, adem(s, instru""iones %ara el mane$o de "adenas de "ara"teres ! de ar"hi*os, as- "omo otras %ara la utili+a"i)n de t"ni"as de %ro#rama"i)n estru"turada' Estas "ara"ter-sti"as ha"er ue el len#ua$e tambin sea *alido %ara determinadas a%li"a"iones de #esti)n' A mediados de los aos setenta se %ro%or"ionaron *irtualmente "ada "om%utadora, mini o main.rame, "on un sistema 2ORTRAN normal' Era %or "onsi#uiente %osible es"ribir %ro#ramas en 2ORTRAN en "ualuier sistema ! estar bastante se#uro ue estos %udieran mo*erse %ara traba$ar en "ualuier otro sistema bastante .("il' Esto, ! el he"ho ue %udieran %ro"esarse %ro#ramas de 2ORTRAN mu! e&"a+mente' La ultima normali+a"i)n del len#ua$e, 2RONTRAN 7, se en"uentra en el do"umento ANS @'5F55 en la ue se in"lu!en "ara"ter-sti"as "omo la re"ursi*idad, tratamiento %aralelo de tablas ! uso de memoria din(mi"a' Permite e1%resar los %ro#ramas de maneras ue se satis.a"en mas a un ambiente de la in.orm(ti"a moderna ! han uedado obsoletos mu"hos de los me"anismos ue eran a%ro%iados en 2ROTRAN YY' En 2ROTRAN 7 al#unos ras#os de 2ROTRAN YY han sido reem%la+ados %or ras#os me$ores, mas se#uros ! m(s e&"a"es, mu"hos de estos .ueron uitados del idioma 2ORTRAN ' El 2RONTRAN tiene la *enta$a de ser un len#ua$e "om%a"to ue sir*e mu! bien %ara satis.a"er las ne"esidades de los "ient-&"os ! los estad-sti"os de los ne#o"ios' COBOL Es el len#ua$e mas utili+ado en las a%li"a"iones de #esti)n, "reado en 57 %or un "omit denominado CODASKL /COn.eren"e on DAta SKstems Lan#ua#es0, %atro"inado %or el De%artamento de De.ensa de Estados 8nidos, a &n de dis%oner de un len#ua$e uni*ersal %ara
a%li"a"iones "omer"iales, "omo e1%resa su nombre /COmmnon Business Oriented Lan#ua#e0' A lo lar#o de su e1isten"ia ha su.rido di*ersas a"tuali+a"iones' Su %rimer est(ndar .ue a%robado %or el ANSI en 5' Posteriormente, en 5Y6, se ado%ta la norma ANS @'F5Y6, ue ha %erdurado hasta su ultima *ersi)n, COBOL ANSF, ue .a"ilita el diseo estru"turado de los %ro#ramas' Sus "ara"ter-sti"as m(s desta"ables son las si#uientes> se aseme$a al len#ua$e natural /in#ls0, es autodo"umentado ! o.re"e #randes .a"ilidades en el mane$o de ar"hi*os, as- "omo en la edi"i)n de in.ormes es"ritos' Puede em%lear trminos "om:nmente utili+ados en los ne#o"ios' Entre sus in"on*enientes est(n sus r-#idas re#las de .ormatos de es"ritura, la ne"esidad de es"ribir todos los elementos al m(1imo detalle, la e1tensi)n e1"esi*a en sus senten"ias, e in"luso du%li"a"i)n en al#unos "asos, ! la ine1isten"ia de .un"iones matem(ti"as' No obstante, se %uede a&rmar ue en la a"tualidad "ontinua siendo el len#ua$e mas utili+ado en las a%li"a"iones de #esti)n' PL4I 2ue "reado a "omien+os de los aos sesenta %or IBM %ara ser usado en sus eui%os del sistema 7' Ins%ir(ndose en los len#ua$es ALGOL, COBOL ! 2ORTRAN se desarrollo el PL4I /Pro#rammin# Lan#ua#e4I0 tomando las me$ores "ara"ter-sti"as de los anteriores ! aadiendo al#unas nue*as, "on el ob$eti*o de obtener un len#ua$e lo mas #eneral %osible en "uanto a su im%lementa"i)n, :til %ara a%li"a"iones t"ni"oF"ient-&"as, "omer"iales, de %ro"eso de te1tos, de bases de datos ! de %ro#rama"i)n de sistemas' Se trata de un len#ua$e de %ro#rama"i)n "om%le$o' Com%ilado ! estru"turado, es "a%a+ de #estionar errores ! de %ro"esar multitareas, ! se em%lea en entornos a"admi"os ! de in*esti#a"i)n' Entre sus no*edades esta su #ran libertad en el .ormato de es"ritura de los %ro#ramas> so%orta la %ro#rama"i)n estru"turada ! diseo modular' Es un len#ua$e Je1ible ! so&sti"ado' No obstante, no ha su%erado a sus %ro#enitores en sus a%li"a"iones es%e"i&"as, debido en %arte a su am%litud !, %or ello, al tamao de su "om%ilador ue hasta ahora solo se %od-a instalar en #randes eui%os' El elemento b(si"o de este %ro#rama es el enun"iado ue termina en %unto ! "oma' Los enun"iados se "ombinan en %ro"edimientos' 8n %ro"edimiento %uede re%resentar %or "om%leto a un %ro#rama %eueo o un ;bloue de "onstru""i)n= o modulo de un %ro#rama m(s "om%le$o' BASIC El len#ua$e BASIC .ue diseado %or los %ro.esores ohn G' Zemen! ! Thomas E' Zurt+ del Dartmouth Colle#e /Estados 8nidos0 en 5, "on el ob$eti*o %rin"i%al de %ro%or"ionar a los %rin"i%iantes un len#ua$e .("il de a%render, "omo se indi"a en su nombre Be#inner[s AllF %ur%ose S!mboli" Instru"tion Code /C)di#o de instru""iones simb)li"o de %ro%)sito #eneral %ara %rin"i%iantes0' Es un len#ua$e intera"ti*o mu! %o%ular ue tiene una a"e%ta"i)n debido a la .a"ilidad de su uso, es un idioma sim%le %ara a%render ! .("il de tradu"ir' Vue s intera"ti*o, %ermite la "omuni"a"i)n dire"ta entre el usuario ! el sistema de "om%uto durante la %re%ara"i)n ! uso de los %ro#ramas' Entre sus %rin"i%ales no*edades est(n las de ser un len#ua$e inter%retado ! de uso "on*ersa"ional, :til %ara a%li"a"iones t"ni"as ! de #esti)n' Esto, unido a la %o%ulari+a"i)n de
las mi"ro"om%utadoras ! "om%utadoras %ersonales, ha he"ho ue su utili+a"i)n sea ha!a e1tendido enormemente, a la *e+ ue ha %ro%i"iado el sur#imiento de una #ran di*ersidad de di*ersiones ue e1tienden ! se ada%tan a ne"esidades %arti"ulares el len#ua$e ori#inal' E1isten multitud de inter%retes ! "om%iladores del len#ua$e' PASCAL 2ue "reado %or el matem(ti"o sui+o Ni"laus irth en 5Y7, bas(ndose en el len#ua$e ALGOL, en "u!o diseo hab-a %arti"i%ado en los aos sesenta' Su nombre %ro*iene del &loso.o ! matem(ti"o .ran"s del si#lo @II, Blaise Pas"al, ue in*ento la %rimera mauina ti%o me"(ni"o %ara sumar' 2ue el %rimer #ran len#ua$e "reado des%us de haber sido am%liamente diseminados los "on"e%tos aso"iados "on la %ro#rama"i)n estru"turada' Aunue en %rin"i%io la idea del diseador era %ro%or"ionar un len#ua$e ade"uado %ara la ensean+a de los "on"e%tos ! t"ni"as de %ro#rama"i)n, "on el tiem%o ha lle#ado a ser un len#ua$e am%liamente utili+ado en todo ti%o de a%li"a"iones, ue %osee #randes .a"ilidades %ara la %ro#rama"i)n de sistemas ! diseo #ra&"o' A%orta los "on"e%tos de ti%o de datos, %ro#rama"i)n estru"turada ! diseo des"endente, entre otros, adem(s de haberse "on*ertido en %rede"esor de otros len#ua$es m(s modernos, "omo MOD8LAF ! ADA' C Este len#ua$e .ue "reado en 5Y %or Dennis Rit"hie a %artir del traba$o elaborado %or su "ole#a de los laboratorios Bell Tele%hone, Zen Thom%son' Estos hab-an diseado "on anterioridad el sistema o%erati*o 8NI@, ! su inten"i)n al desarrollar el len#ua$e C .ue la de "onse#uir un len#ua$e id)neo %ara la %ro#rama"i)n de sistemas ue .uese inde%endiente de la mauina, "on el "ual es"ribir su sistema 8NI@' Aunue, "omo a"abo de de"ir, .ue diseado ini"ialmente %ara la %ro#rama"i)n de sistemas, %osteriormente su uso se ha e1tendido a abla"iones t"ni"oF"ient-&"as, de bases de datos, de %ro"eso de te1tos, et"' En 57 B$arne Stroustru%, ins%irado en el len#ua$e SimulaY adi"ion) las "ara"ter-sti"as de la %ro#rama"i)n orientada a ob$etos in"lu!endo la *enta$a de una bibliote"a de .un"iones orientadas a ob$etos0 ! lo denomino C "on "lases' Para 5 di"ha denomina"i)n "ambio a la de CQQ' Con este nue*o en.oue sur#e la nue*a metodolo#-a ue aumenta las %osibilidades de la %ro#rama"i)n ba$o nue*os "on"e%tos' La utili+a"i)n o%tima de este len#ua$e se "onsi#ue dentro de su entorno natural, ue ese el sistema o%erati*o 8NI@, ! entre sus "ara"ter-sti"as desta"a el uso de %ro#rama"i)n estru"turada %ara resol*er tareas de ba$o ni*el, as- "omo la am%lia librer-a de rutinas de ue dis%one' El len#ua$e C re:ne "ara"ter-sti"as de %ro#rama"i)n intermedia entre los len#ua$es ensambladores ! los len#ua$es de alto ni*el3 "on #ran %oder-o basado en sus o%era"iones a ni*el de bits /%ro%ias de ensambladores0 ! la ma!or-a de los elementos de la %ro#rama"i)n estru"turada de los len#ua$es de alto ni*el, %or lo ue resulta ser el len#ua$e %re.erido %ara el desarrollo de so.t9are de sistemas ! a%li"a"iones %ro.esionales de la %ro#rama"i)n de "om%utadoras' MOD8LAF
El len#ua$e MOD8LA .ue diseado en 5YY ba$o la dire""i)n de Ni"laus irth, "reador tambin el len#ua$e PASCAL, "on la inten"i)n de in"luir las ne"esidades de la %ro#rama"i)n de sistemas ! dar res%uestas a las "riti"as re"ibidas res%e"to de las "aren"ias del len#ua$e PASCAL' En 5Y se reali+a una *ersi)n ue %asa a denominarse MOD8LAF ! ue %erdura en la a"tualidad' Adem(s de in"luir las "ara"ter-sti"as de su %rede"esor, este nue*o len#ua$e in"or%ora las %rin"i%ales "aren"ias de auel, "omo la %osibilidad de "om%ila"i)n se%arada, "rea"i)n de librer-as, %ro#rama"i)n "on"urrente, me$ora el mane$o de "adenas de "ara"teres, los %ro"edimientos de entrada4salida ! la #esti)n de la memoria, et"' adem(s, %osee #randes .a"ilidades %ara la %ro#rama"i)n de sistemas' Tambin, debido a sus "ualidades did("ti"as, ha sido am%liamente a"e%tado %or la "omunidad uni*ersitaria "omo herramienta id)nea %ara la ensean+a de la %ro#rama"i)n' ADA Es l ultimo intento de obtener un :ni"o len#ua$e %ara todo ti%o de a%li"a"iones, e in"luso los :ltimos a*an"es de t"ni"as de %ro#rama"i)n' Su diseo .ue en"ar#ado %or el De%artamento de De.ensa de Estados 8nidos, %ara su uso en ser*i"ios militares, a la em%resa ?one!9ellFBull des%us de una sele""i)n ri#urosa entre *arias %ro%uestas reali+adas sobre una serie de reuerimientos del len#ua$e ! de haber e*aluado ne#ati*amente *eintitrs len#ua$es e1istentes' De estos, se sele""ionaron "omo base %ara la "rea"i)n del nue*o len#ua$e el PASCAL, el ALGOL ! el PL4I' La estandari+a"i)n del len#ua$e se %ubli"o en 5 "on el nombre de ADA, en honor de la "onsiderada %rimera %ro#ramadora de la historia, Au#usta Ada B!ron, "ondesa de Lo*ela"e' Entre las "ara"ter-sti"as del len#ua$e se en"uentran la "om%ila"i)n se%arada, los ti%os abstra"tos de datos, %ro#rama"i)n "on"urrente, %ro#rama"i)n estru"turada, libertad de .ormatos de es"ritura, et"' Como %rin"i%al in"on*eniente %resenta su #ran e1tensi)n' Los es"ritores lo llamaron inJe1ible e ine&"iente, en tanto ue sus .a*ore"edores lo "onsideraban un #ran a*an"e en la te"nolo#-a del so.t9are' LISP En in.orm(ti"a, a"r)nimo de List Pro"essin#' 8n len#ua$e de %ro#rama"i)n %ara ordenadores o "om%utadoras orientado a la #enera"i)n de listas, desarrollado en 5F57 %or ohn M"Carth! ! usado %rin"i%almente %ara mani%ular listas de datos o de s-mbolos' El len#ua$e LISP "onstitu!) un "ambio radi"al "on res%e"to a los len#ua$es %ro"edurales /2ORTRAN, ALGOL0 ue se desarrollaban %or enton"es' El LISP es un len#ua$e inter%retado, en el ue "ada e1%resi)n es una lista de llamadas a .un"iones' Este len#ua$e se si#ue utili+ando "on .re"uen"ia en in*esti#a"i)n ! en "-r"ulos a"admi"os, ! .ue "onsiderado durante mu"ho tiem%o el len#ua$e modelo %ara la in*esti#a"i)n de la inteli#en"ia arti&"ial /IA0, aunue el Prolo# ha #anado terreno durante los :ltimos aos' LOGO En in.orm(ti"a, len#ua$e de %ro#rama"i)n de ordenadores o "om%utadoras, desarrollado en 5 %or Se!mour Pa%ert en el MIT, ue se usa .re"uentemente en la ensean+a de len#ua$e de %ro#rama"i)n a nios' 8na "ara"ter-sti"a im%ortante de Lo#o son los #r(&"os de tortu#a,
ue %ermiten al %ro#ramador ha"er dibu$os sim%les diri#iendo los mo*imientos de la tortu#a en la %antalla ha"ia adelante, ha"ia la dere"ha o la i+uierda' 8na *e+ ue dominan el entorno sen"illo del dibu$o, el %ro#ramador /normalmente un nio o una nia0 em%ie+a a des"ubrir las "ara"ter-sti"as m(s so&sti"adas del len#ua$e, ue est(n basadas .undamentalmente en el len#ua$e de %ro#rama"i)n LISP' Lo#o est( "onsiderado "omo un len#ua$e %ara la .orma"i)n, a %esar de ue al#unas em%resas intentaron ue tu*iera una ma!or a"e%ta"i)n en los "-r"ulos %ro.esionales de %ro#rama"i)n' RPG Re%ort Pro#ram O%erator .ue introdu"ido en 57 "omo un len#ua$e %ara du%li"ar r(%idamente el en.oue de %ro"eso utili+ado "on un eui%o de tar$eta %er.orada' Este len#ua$e .ue desarrollado %or IBM en 56' Su uso esta aun limitado sobre todo %ara las a%li"a"iones de ne#o"ios ue son %ro"esadas en %eueas "om%utadoras, #enerar in.ormes "omer"iales o de ne#o"ios' Como su nombre lo su#iere, el RPG esta diseado %ara #enerar los re%ortes de salida ue resultan del %ro"eso de a%li"a"iones de ne#o"ios' A %esar de las a%li"a"iones de a"tuali+a"i)n de ar"hi*os, el RPG es un len#ua$e de %ro%)sito limitado %orue los %ro#ramas ob$eto #enerados %or el "om%ilador de RPG si#uen sin des*ia"i)n, un "i"lo de %ro"esamiento b(si"o' 8na *enta$a del RPG es la relati*a .a"ilidad %ara a%renderlo ! usarlo' Dado ue la l)#i"a de la %ro#rama"i)n es &$a, e1isten menos re#las .ormales ue en otros len#ua$es' ALGOL El ALGOL /ALGOritmi" Lan#ua#e0 .ue %resentado en 5' 2ue el %rimer len#ua$e de %ro#rama"i)n de %ro"eso estru"turado de alto ni*el' 2ue orientado al uso de uienes %arti"i%an en %ro!e"tos "ient-&"os ! matem(ti"os' 8n #ru%o interna"ional de matem(ti"os euro%eos ! ameri"anos, %retend-an "rear un len#ua$e "om:n normali+ado ue les %ermitiera el inter"ambio de al#oritmos, aunue esta en desuso, .ue el %rimero ue in"or%oro "on"e%tos "la*es %ara la %ro#rama"i)n a"tual' APL Sus si#las si#ni&"an /A Pro#rammin# Lan#ua#e0' 8n Len#ua$e de Pro#rama"i)n' Este %ro#rama .ue desarrollado %or Zenneth In*erson en el ao 55 %ara resol*er %roblemas matem(ti"os' Este len#ua$e se "ara"teri+a %or su bre*edad ! %or su "a%a"idad de #enera"i)n de matri"es ! se utili+a en el desarrollo de modelos matem(ti"os' PILOT Pro#rammend Inuir! Lan#ua#e Or Tea"hin# /Consulta, len#ua$e o a%rendi+a$e de in*esti#a"i)n %ro#ramada0 "reado en 5' Este len#ua$e de %ro#rama"i)n es utili+ado .undamentalmente %ara "rear a%li"a"iones destinadas a instru""iones asistidas %or "om%utadoras' Se "ara"teri+a %or utili+ar un m-nimo de sinta1is' SMALLTALZ SMALLTALZ, Len#ua$e de Pro#rama"i)n orientado a ob$etos inte#rados "on un entorno de
desarrollo multi*entana' SMALLTALZ no es solo un hermoso len#ua$e de "om%uta"i)n orientado a ob$etos' El entorno de desarrollo mere"e similar *alora"i)n ! ha sido "o%iado mu"has *e"es, desde el Sistema O%erati*o de A%%le MS indo9s ! Borland Pas"al /en una memoria e1tensi)n0' Mu"hos "on"e%tos de SMALLTALZ "omo los bro9sers ! las t"ni"as de bro9sin# han en"ontrado ho! su rumbo en mu"has herramientas de desarrollo de la #enera"i)n @, desarrollado %or SMALLTALZ %oseen un .a"tor ;di*ertidoFdeFusar=' Los "ambios se #raban instant(neamente ! los mismos %ueden %robarse r(%idamente' SMALLTALZ .ue desarrollado dentro del Gru%o de In*esti#a"i)n del A%rendi+a$e en el Centro de In*esti#a"i)n de @ero1 en %alo Alto a "omien+os de los Y7' Las %rin"i%ales ideas de SMALLTALZ se le atribu!en #eneralmente a Alan a! "on ra-"es en Simula, LISP ! Set"hPad' Dan In#alls es"ribi) el ")di#o de las %rimeras *entanas sola%ables, los %o%Fu% men:s ! la "lase BitBlt' Adele Goldber# ! Da*e Robson es"ribieron los manuales de re.eren"ia %ara SMALLTALZ ! .ueron miembros "la*e del eui%o de desarrollo' 8n %ro#rama de li"en"iamiento de @ero1 ! @ero1 S%e"ial In.ormation S!stems' Sin embar#o la distribu"i)n #enerali+ada a la "omunidad de desarrollo no su"edi) hasta la .unda"i)n de una nue*a "om%a-a llamada Par"Pla"e S!stems In"' , Diri#ida %or Adele Goldber#' 8n se#undo SMALLTALZ /SMALLTALZ 60 .ue desarrollado %or Di#ital en los An#eles Cali.ornia' Este SMALLTALZ estaba diri#ido a "ubrir la ne"esidad de un %rodu"to %eueo, de alta *elo"idad, basado en PC' Ob$e"t Te"hnolo#! International In"' /OTI0 desarroll) un "on$unto de herramientas %ara %ro*eer el "ontrol de in*ersiones ! el mane$o de "onura"iones en #randes %ro!e"tos' IBM desarroll) la .amilia de %rodu"tos isualA#e %ara SMALLTALZ en "olabora"i)n "on Ob$e"t Te"hnolo#! /anti#uamente Par"PlaseFDi#ital0 e IBM %ermane"en "omo los distribuidores dominantes de entornos de desarrollos en SMALLTALZ' Al#unos nue*os SMALLTALZ se hallan en eta%a de desarrollo' 2ORT? Len#ua$e de "uarta #enera"i)n, "reado en 5Y7, es un len#ua$e estru"turado e inter%retado de .("il am%lia"i)n ! o.re"e una alta .un"ionalidad en un es%a"io redu"ido' Es un len#ua$e de alto ni*el del "ual deri*an en la a"tualidad "asi todos los len#ua$es em%leados en los robots' LENG8AE CQQ Se %ronun"ia ;"e %lus %lus=' 2ue desarrollada %or B$arme Stroustru% en los Bell Laboratories a %rin"i%ios de la d"ada de los 7' CQQ introdu"e la %ro#rama"i)n orientada al ob$eto en C' Es un len#ua$e e1tremadamente %oderoso ! e&"iente' CQQ es un su%er "on$unto de C, %ara a%render CQQ si#ni&"a a%render todo de C, lue#o a%render %ro#rama"i)n orientada al ob$eto ! el uso de stas "on CQQ' DELP?I Es un entorno de %ro#rama"i)n *isual orientado a ob$etos %ara desarrollo r(%ido de a%li"a"iones /RAD0 de %ro%)sito #eneral, in"lu!endo a%li"a"iones "liente4ser*idor' Del%hi es la *ersi)n de Del%hi %ara bits /del%hi 0, es de"ir son "asi los mismos, "on la :ni"a di.eren"ia ue Del%hi es mu"ho m(s me$orado, %or e$em%lo "ontiene un TeeChart, ue sir*e %ara los #r(&"os de ne#o"io'
Del%hi tiene las si#uiente "ara"ter-sti"as> Rendimiento F "on el me$or ! m(s r(%ido "om%ilador del mundo' Em%resa e Internet F solu"iones "liente ! ser*i"io Desarrollo de a%li"a"iones r(%idas /RAD0' Reusabilidad de "om%onentes, un *erdadero entorno orientado a ob$etos' Mane$o de Base de Datos es"alables' Aruite"tura multini*el abierta ! dimensionable' Disemina"i)n de in.orma"i)n de base de datos en la eb a una #ran *elo"idad' AA Es un len#ua$e de %ro#rama"i)n %ara "rear %ro#ramas se#uros, %ort(tiles, orientados a ob$etos intera"ti*os, %ara me$orar la entre#a de in.orma"i)n a tra*s de Internet, et"'
AASCRIPT Este len#ua$e de %ro#rama"i)n ori#inalmente .ue llamado LIESCRIPT, %ero lue#o .ue renombrado "on el nombre de AASCRIPT, "on la idea de "a%itali+ar la .ama de a*a, len#ua$e desarrollado %or Sun Mi"ros!stems' \ste es un "om%lemento ideal del len#ua$e ?TML, al %ermitir a la %(#ina reali+ar al#unas tareas %or si misma, sin ne"esidad de estar sobre"ar#ando el ser*idor del "ual de%ende3 AASCRIPT es un len#ua$e diseado es%e"ialmente %ara e$e"utarlo en internet' Entre estas tareas, %uede estar, %or e$em%lo, reali+ar al#unos "(l"ulos sim%les, .ormatear un te1to %ara ue sea le-do %or distintas %ersonas de manera distinta, %ro*eer de un medio de "onurar la *isuali+a"i)n de una %(#ina, reali+ar un %re"heueo de *alida"i)n en .ormulario antes de en*iarlo, et"' ?TML El len#ua$e ?TML, sir*e %ara reali+ar esas atra"ti*as %(#inas eb' Se trata de un sistema de mar"as ue %ermite enla+ar al mismo tiem%o te1to, sonidos ! #r(&"os dentro del mismo do"umento, "on otros dentro del ser*idor o in"luso "on otros ser*idores ' Es de"ir, es un editor %ara "ombinar te1tos, im(#enes e in"luso sonido ! ahora tambin im(#enes en mo*imiento' Es, en de&niti*a, la .orma de mane$ar ! %resentar la in.orma"i)n en la red' Para es"ribir do"umentos de hi%erte1to se ha desarrollado un nue*o .ormato de datos o len#ua$e llamado ?!%er Te1t Maru% Lan#ua#e /?TML0' Este len#ua$e %ermite dar indi"a"iones %re"isas al %ro#rama "liente de ")mo debe %resentarse el do"umento en %antalla o al ser im%reso' El len#ua$e ?TML es el usado a"tualmente %ara es"ribir te1tos ?!%ermediales en el 9eb' Tres normas .undamentales>
5'F ?TML sim%lemente te1to Lo %rimero es saber ue un do"umento ?TML es un ar"hi*o de te1to sim%le, lue#o, se %uede editar "on "ualuier editor de te1tos' 'F No im%ortan los Tabs ni los saltos de l-nea Los inter%retes ?TML no toman en "uenta las tabula"iones, los saltos de l-neas ni los es%a"ios en blan"o e1tra' Esto tiene *enta$as o des*enta$as' La %rin"i%al *enta$a es ue %ermite obtener resultados uni.ormes ! de buena %resenta"i)n de manera bastante .("il' La %rin"i%al des*enta$a es ue un do"umento ?TML, %or lo menos se debe usar los "omandos ]P^''' ]4P^ o ]BR^ %ara e*itar ue uede todo el te1to en una sola l-nea' 'F E1isten "ara"teres es%e"iales> ] menor ue, se usa %ara indi"ar el "omien+o de un "omando ?TML ^ma!or ue, se usa %ara indi"ar el trmino de un "omando ?TML' _ Am%ersand, se usa %ara es"ribir "ara"teres es%e"iales /s-mbolos matem(ti"os, "omer"iales, as- "omo el si#no menor ue ! el ma!or ue entre otros0 en un do"umento' Lo %rimero es "ono"er los "omandos ue debe "ontener todo do"umento ?TML de m(s de una l-nea de lar#o> EL COMANDO PURRA2O> El "omando ]P^''' ]4P^ se utili+a "omo un delimitador de %(rra.o en ?TML' Inserta autom(ti"amente un uiebre de l-nea al &nal del %(rra.o, ! %rodu"e un es%a"iamiento "on*eniente entre los di.erentes %(rra.os de un do"umento' Tambin en .orma adi"ional %ermite alinear el te1to al "entro, a la i+uierda o a la dere"ha' EL COMANDO V8IEBRE DE L`NEAS> El "omando ] BR^ %ermite ha"er un uiebre /salto0de l-nea' LOS COMANDOS DE ENCABEADO> Los te1tos en ?TML %oseen seis ni*eles de en"abe+ado' Por e$em%lo el ni*el 5 se usa %ara las di*isiones ma!ores de te1to, el ni*el de en"abe+ado se usa %ara las di*isiones m(s "hi"as de te1to' ESTR8CT8RA DE ?KPERTE@TO> E1isten dos %artes .undamentales de un do"umento ?TML' ENCABEADO> Se ini"ia mediante el "omando]?EAD^ ! se termina "on ]4?EAD^' Por lo #eneral se in"lu!en au- el t-tulo del do"umento, mediante el "omando ]TITLE^''' ]4TITLE^'
C8ERPO> Se ini"ia mediante el "omando ]BODK^ ! se termina "on el "omando' Dentro del "uer%o del do"umento se in"lu!en "ualuier "ar("ter im%rimible' Adem(s es im%ortante in"luir el "omando]ADDRESS^''' ]4ADDRESS^ al &nal del "uer%o %ero dentro de l' Dentro del ADDRESS se es"ribe el nombre del autor del do"umento, la or#ani+a"i)n a la ue %ertene"e, su dire""i)n del "orreo ele"tr)ni"o ! otra in.orma"i)n ue se "onsidere rele*ante' ?KPERTALZ H?!%erTalH es el len#ua$e desarrollado %or Dan inler %ara Bill Atinson, el "reador del H?!%erCardH %ara A%%leFMa"intosh' Est( orientado a la "rea"i)n de a%li"a"iones "on.orme al sistema de Hhi%erar"hi*osH /sistemas de &"has interrela"ionadas donde se .a"ilita el Hna*e#arH de un ar"hi*o a otro0' ?!%erTal es un buen e$em%lo de len#ua$e orientado a ob$etos' Este ti%o de len#ua$e "ombina la l)#i"a de"larati*a "on los al#oritmos /ea !a no es una se"uen"ia de instru""iones sino un "on$unto de ob$etos a#ru%ados en "on$untos, de&nidos mediante atributos ! a los "uales %ueden aso"iarse instru""iones' As-, en ?!%erCard, e1isten ar"hi*os /Hsta"sH o H stas "ontiene "am%os de datos ! botones' Todos son Hob$etosH ue Fsi bien mantienen entre s- una rela"i)n $er(rui"aF tienen aso"iados %auetes de instru""iones /Hunos de otros' Cada ob$eto %ertene"e a un "on$unto /"omo &"has o botones0 ue tiene HatributosH %ro%ios "omunes a todos sus miembros, ! "ada atributo tendr( un *alor "om:n o es%e"-&"o %ara "ada "aso' Para dar o bus"ar di"ho *alor inter*ienen H.a"etasH ue son instru""iones /%ro"edimientos0 aso"iadas' Perl Es un len#ua$e es%e"iali+ado en el %ro"esamiento de te1tos, %arti"ularmente e1traer ! *alidar las res%uestas a "uestionarios in"luidos en %(#inas 9eb' P?P Len#ua$e ue se a"o%la al ?TML /%(#inas 9eb0 %ara de&nir %ro"edimientos ue ha de reali+ar el ser*idor de 9eb, %or e$em%lo %ro"esar un .ormulario, en*iar o e1traer datos de una base de datos /a"o%l(ndose tambin "on un len#ua$e de ti%o SVL0, en*iar una u otra %(#ina 9eb se#:n determinadas "ondi"iones %re&$adas %or el %ro#ramador, et"' PROLOG Los %rimeros aos de la d"ada del Y7 son "ono"idos "omo un %er-odo de H"risis del so.t9areH, en ue se des"ubri) ue la "rea"i)n de buenos %ro#ramas in*olu"raba "ostos ma!ores ue los del hard9are ue los e$e"uta' Tambin se ha"-a %atente una "re"iente ne"esidad de %ro"esar H"ono"imientosH /al#o mu"ho m(s am%lio ! "om%le$o ue los datos "uantitati*os o meras Hse"uen"ias de "ara"teresH a los "uales se redu"en mu"hos len#ua$es de %ro#rama"i)n0' Esta "risis lle*) a in*esti#ar numerosas alternati*as, entre las "uales nue*os len#ua$es no basados en instru""iones al#or-tmi"as o %ro"edimientos' Si el hombre H%ro"esaH m(s in.orma"i)n %or in.eren"ia l)#i"a ue %or "(l"ulo, no %odr-a la m(uina ha"er lo mismo PROLOG /HPRO#rama"i)n en LOGi"as una res%uesta a esta "risis, %rodu"to del a*an"e de la l)#i"a moderna /de ti%o .un"ional0' Lo "rearon A' Colmenauer ! Ph' Roussel, "on la "olabora"i)n de R' Zo9alsi, simult(neamente en la 8ni*ersidad de Ai1FMarseille
2uentes de In.orma"i)n El "ontenido del %ost es de mi autor-a, !4o, es un re"o%ila"i)n de distintas .uentes'