Importancia y Evolución del Lenguaje Ensamblador INTRODUCCIÓN Los ordenadores no hablan nuestro idioma, son máquinas y como tales, necesitan un lenguaje específico pensado por el hombre para ellas. Además, necesitan constantemente constantemente interpretar todas las instrucciones que reciben. Dada la dificultad de comunicación insalvable entre el computador y el programador, pronto aparecieron lenguajes de programación que hacen posible la comunicación con el microprocesador, utiliando t!rminos y símbolos relacionados con el tipo de problema que se debe resolver, mediante el empleo de herramientas que brinda la informática. "stos lenguajes permiten, por un lado, escribir las operaciones que son necesarias realiar para resolver el problema de un modo parecido a como se escribiría convencionalmente #es decir, redactar adecuadamente el algoritmo de resolución del problema$ y, por el otro, se encarga de traducir el algoritmo al lenguaje máquina #proceso conocido como compilación$ con lo que se le confiere al programa la capacidad de correr #ser ejecutado$ en el ordenador. "l ordenador es en realidad tan sólo una máquina virtual, capa de resolver todos los problemas que los usuarios seamos capaces de e%presar mediante un algoritmo #programa$. "n la actualidad hay muchos tipos de lenguajes de programación, cada uno de ellos con su propia gramática, su terminología especial y una sinta%is particular. &or ejemplo, e%isten algunos creados especialmente para aplicaciones científicas o matemáticas generales #'A()*, +--A/, &A(*AL, &A(*AL, etc. $0 otros, en cambio, se orientan al campo empresarial y al manejo de te%tos y ficheros, es decir, son en realidad fundamentalmente gestores de información #*'L, &L12, etc. $, o muy relacionados con el lenguaje máquina del ordenador #como el * y el A(("3'L"-$. Los ordenadores se programaban en lenguaje máquina pero las dificultades que esto conllevaba, junto con la enorme facilidad de cometer errores, cuya localiación era larga y compleja, hicieron concebir, en la d!cada de los 45, la posibilidad de usar lenguajes simbólicos. Los primeros en aparecer fueron los ensambladores, fundamentalmente consistía en dar un nombre #mnemónico$ a cada tipo de instrucción y cada dirección d irección #etiqueta$. Al principio s! hacia el pr ograma sobre papel y, despu!s se traducía a mano con la ayuda de unas tablas, y se introducían en la máquina en forma num!rica, pero pronto aparecieron programas que se ensamblaban automáticamente.
DEFINICIONES "s complicado definir qu! es y qu! no es un lenguaje de programación. (e asume generalmente que la traducción de las instrucciones a un código que comprende la computadora debe ser completamente sistemática. /ormalmente es la computadora la que realia la traducción.
A continuación, continuación, voy a redactar unos serie serie de definiciones de los lenguajes de programación. programación. 6n lenguaje de programación es una notación para escribir programas, a trav!s de los cuales podemos comunicarnos con el hard7are y dar así las ordenes adecuadas para la realiación de un determinado proceso. 6n lenguaje esta definido por una gramática o conjunto de reglas que se aplican a un alfabeto constituido por el conjunto d e símbolos utiliados. Los distintos niveles de programación e%istentes nos permiten acceder al hard7are, de tal forma que seg8n utilicemos un nivel u otro, así tendremos que utiliar un determinado lenguaje ligado a sus correspondientes traductores. *onjunto de normas 9ling:ísticas; #palabras y símbolos$ que permiten escribir un programa y que !ste sea entendido por el ordenador y pueda ser trasladado a ordenadores similares para su funcionamiento en otros sistemas. *onjunto de instrucciones, ordenes y símbolos reconocibles por a utómata, a trav!s de su unidad de programación, que le permite ejecutar la secuencia de control deseada. Al conjunto de total de estas instrucciones, ordenes y símbolos que están disponibles se le llamar lenguajes de programación del autómata. "l programa esta formado por un conjunto de instrucciones, sentencias, bloques funcionales y grafismos que indican las operaciones a realiar. Las instrucciones representan la tarea más elemental de un programa< leer una entrada, realiar una operación, activar una salida, etc. La sentencia representa el mínimo conjunto de instrucciones o sentencias que realian una tarea o función compleja< encontrar el valor de una función lógica en combinación de varias variables, consultar un conjunto de condiciones, etc. "l bloque funcional es el conjunto de instrucciones o sentencias que realian una tarea o función compleja< contadores, registros de desplaamientos, transferencias de información, etc. odos odos estos elementos están relacionados entre sí mediante los símbolos o grafismos. "s un conjunto de palabras y símbolos que permiten al usuario generar ge nerar comandos e instrucciones para que la computadora los e jecute. Los lenguajes de programación deben tener instrucciones que pertenecen a las categorías ya familiares de entrada1salida, calculo1manipulación, de te%tos, logica1comparación, y almacenamiento1recuperación.
HISTORIA Los primeros lenguajes de programación surgieron de la idea de *harles 'abagge, la cual se le ocurrió a este hombre a mediados del siglo =)=. "ra un profesor matemático de la universidad de *ambridge e inventor ingles, que la principio del siglo =)= predijo muchas de las teorías en que se basan los actuales ordenadores. *onsistía en lo que !l denominaba la maquina analítica, pero que por motivos t!cnicos no pudo construirse hasta mediados del siglo ==. *on !l colaboro Ada Lovedby, la cual es considerada como la primera programadora de la historia, pues realio programas para aqu!lla supuesta maquina de 'abagge, en tarjetas perforadas. *omo la maquina no llego nunca a construirse, los programas de Ada, lógicamente, tampoco llegaron a ejecutarse, pero si suponen un punto de partida de la programación, sobre todo si observamos que en cuanto se empeó a programar, los
programadores utiliaron las t!cnicas dise>adas por *harles 'abagge, y Ada, que consistían entre otras, en la programación mediante tarjetas perforadas. A pesar de ello, Ada ha permanecido como la primera programadora de la historia. (e dice por tanto que estos dos genios de anta>o, se adelantaron un siglo a su !poca, lo cual describe la inteligencia de la que se hallaban dotados. "n 2?@ el gobierno 'ritánico lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico para efectuar sumas repetidas. &ero 'abagge se dedico al proyecto de la máquina analítica, abandonando la maquina de diferencias, que se pudiera programar con tarjetas perforadas, gracias a la creación de *harles Bacquard #franc!s$. "ste hombre era un fabricante de tejidos y había creado un telar que podía reproducir automáticamente patrones de tejidos, leyendo la información codificada en patrones de agujeros perforados en tarjetas de papel rígido. "ntonces 'abagge intento crear la máquina que se pudiera programar con tarjetas perforadas para efectuar cualquier cálculo con una precisión de @5 dígitos. &ero la tecnología de la !poca no bastaba para hacer realidad sus ideas. (i bien las ideas de 'abagge no llegaron a materialiarse de forma definitiva, su contribución es decisiva, ya q ue los ordenadores actuales responden a un esquema análogo al de la máquina analítica. "n su dise>o, la máquina constaba de cinco unidades básicas< 2$ 6nidad de entrada, para introducir datos e instrucciones0 @$ 3emoria, donde se almacenaban datos y resultados intermedios0 $ 6nidad de control, para regular la secuencia de ejecución de las operaciones0 4$ 6nidad Aritm!ticoCLógica, que efect8a las operaciones0 $ 6nidad de salida, encargada de comunicar al e%terior los resultados. *harles 'abbage, conocido como el Epadre de la informáticaE no pudo completar en aquella !poca la construcción del computador que había so>ado, dado que faltaba algo fundamental< la electrónica. "l camino se>alado de 'abbage, no fue nunca abandonado y sigui!ndolo, se construyeron los primeros computadores. *uando surgió el primer ordenador, el famoso "/)A* #"lectronic /umerical )ntegrator And *alculator$, su programación se basaba en componentes físicos, o sea, que se programaba, cambiando directamente el Fard7are de la maquina, e%actamente lo que s! hacia era cambiar cables de sitio para conseguir así la programación de la maquina. La entrada y salida de datos se realiaba mediante tarjetas perforadas.
LAS TENDENCIAS DE LOS LEN!A"ES DE #$O$A%ACI&N "l estudio de los lenguajes de programación agrupa tres intereses diferentes0 el del programador profesional, el del dise>ador del lenguaje y del )mplementador del lenguaje. Además, estos tres trabajos han de realiarse dentro de las ligaduras y capacidades de la organiación de una computadora y de las limitaciones fundamentales de la propia EcalculabilidadE. "l termino Eel programadorE es un tanto a morfo, en el sentido de que camufla importantes diferencias entre distintos niveles y aplicaciones de la programación. *laramente el programador que ha realiado un curso de doce semanas en *'L y luego entra en el campo del procesamiento de datos es diferente del programador que escribe un compilador en &ascal, o del programador que dise>a un e%perimento de inteligencia artificial en L)(&, o del programador que combina sus rutinas d e +--A/ para resolver un problema de
ingeniería complejo, o del programador que desarrolla un sistema operativo multiprocesador en ADA. "n este trabajo, intentare clarificar estas distinciones tratando diferentes lenguajes de programación en el conte%to de cada área de aplicación diferente. "l Edise>ador del lenguajeE es tambi!n un termino algo nebuloso. Algunos lenguajes #como A&L y L)(&$ fueron dise>ados por una sola persona con un concepto 8nico, mientras que otros #+--A/ y *'L$ son el producto de desarrollo de varios a>os realiados por comit!s de dise>o de lenguajes. "l E)mplementador del lenguajeE es la persona o grupo que desarrolla un compilador o interprete para un lenguaje sobre una maquina particular o tipos de maquinas. 3as frecuentemente, el primer compilador para el lenguaje G sobre la maquina = es desarrollada por la corporación que manufactura la maquina = . &or ejemplo, hay varios compiladores de +ortran en uso0 uno desarrollado por )'3 para una maquina )'3, otro desarrollado por D"* para una maquina D"*, otro por *D*, y así sucesivamente. Las compa>ías de soft7are tambi!n desarrollan compiladores y tambi!n lo hacen los grupos de investigación de las universidades. &or ejemplo, la universidad de Haterloo desarrolla compiladores para +--A/ G &A(*AL, los cuales son 8tiles en un entorno de programación de estudiantes debido a su superior capacidad de diagnostico y velocidad de compilación. Fay tambi!n muchos aspectos compartidos entre los programadores, dise>adores de un lenguaje implementadores del mismo. *ada uno debe comprender las necesidades y ligaduras que gobiernan las actividades de los otros dos. Fay, al menos, dos formas fundamentales desde las que pueden verse o clasificarse los lenguajes de programación< por su nivel y por principales aplicaciones. Además, estas visiones están condicionadas por la visión histórica por la que ha transcurrido el lenguaje. Además, hay cuatro niveles distintos de lenguaje de programación. Los ELenguajes DeclarativosE son los mas parecidos al castellano o ingles en su potencia e%presiva y funcionalidad están en el nivel mas alto respecto a los otros. (on fundamentalmente lenguajes de ordenes, dominados por sentencias que e%presan ELo que hay que hacerE en ves de E*omo hacerloE. "jemplos de estos lenguajes son los lenguajes estadísticos como (A( y (&(( y los lenguajes de b8squeda en base de datos, como /A6-AL e )3(. "stos lenguajes se desarrollaron con la idea de que los profesionales pudieran asimilar mas rápidamente el lenguaje y usarlo en su trabajo, sin necesidad de programadores o practicas de programación. Los ELenguajes "nsambladoresE y los ELenguajes 3aquinaE son dependientes de la maquina. *ada tipo de maquina, tal como IA= de digital, tiene su propio lenguaje maquina distinto y su lenguaje ensamblador asociado. "l lenguaje "nsamblador es simplemente una representación simbólica del lenguaje maquina asociado, lo cual permite una programación menos tediosa que con el anterior. (in embargo, es necesario un conocimiento de la arquitectura mecánica subyacente para realiar una programación efectiva en cual quiera de estos niveles lenguajes. Los siguientes tres segmentos del programa equivalentes e%ponen las distinciones básicas entre lenguajes maquina, ensambladores de alto nivel<
*omo muestra este ejemplo, a mas bajo nivel de lenguaje mas cerca esta de las características de un tipo e maquina particular y más alejado de ser comprendido por un humano ordinario. Fay tambi!n una estrecha relación # correspondencia 2<2$ entre las sentencias en lenguaje ensamblador y sus formas en lenguaje maquina codificada. La principal diferencia aquí es que los lenguajes ensambladores se utilian símbolos #=, G, J, A para E sumarE, 3 para EmultiplicarE$, mientras que se requieren códigos num!ricos #*2A4, etc.$ para que lo comprenda la maquina. La programación de un lenguaje de alto nivel o en un lenguaje ensamblador requiere, por tanto, alg8n tipo de interfa con el lenguaje maquina para que el programa pueda ejecutarse. Las tres interfaces más comunes< un Eensamblador;, un EcompiladorE y un EinterpreteE. "l ensamblador y el compilador traducen el programa a otro equivalente en el lenguaje = de la maquina EresidenteE como un paso separado antes de la ejecución. &or otra parte, el interprete ejecuta directamente las instrucciones en un lenguaje G de alto nivel, sin un paso de procesamiento previo. La compilación es, en general, un proceso más eficiente que la interpretación para la mayoría de los tipos de maquina. "sto se debe principalmente a que las sentencias dentro de un EbucleE deben ser reinterpretadas cada ve que se ejecutan por un interprete. *on un compilador. *ada sentencia es interpretada y luego traducida a lenguaje maquina solo una ve. Algunos lenguajes son lenguajes principalmente interpretados, como A&L, &-LK y L)(&. "l resto de los lenguajes CC &ascal, +--A/, *'L, &L1), (/'L, *, Ada y 3odulaC@ C son normalmente lenguajes compilados. "n algunos casos, un compilador estará utiliable alternativamente para un lenguaje interpretado #tal como L)(&$ e inversamente #tal como el interprete (/'L4 de los laboratorios 'ell$. 2 Los lenguajes de &rogramación son tomados de diferentes perspectivas. "s importante para un programador decidir cuales conceptos emitir o cuales incluir en la programación. *on frecuencia el programador es osado a usar combinaciones de conceptos que hacen al lenguaje ED6-E de usar, de entender e implementar. *ada programador tiene en mente un estilo particular de programación, la decisión de incluir u omitir ciertos tipos de datos que pueden tener una significativa influencia en la forma en que el Lenguaje es usado, la decisión de usar u omitir conceptos de programación o modelos. "%isten cinco estilos de programación y son los siguientes< 2. rientados a bjetos. @. )mperativa < "ntrada, procesamiento y salidas de Datos. . +uncional < E+uncionesE, los datos son funciones, los resultados pueden ser un valor o una función. 4. Lógico < , +M N operaciones lógicas #)nteligencia Artificial$.
. *oncurrente < A8n esta en proceso de investigación. "l programador, dise>ador e implementador de un lenguaje de programación deben comprender la evolución histórica de los lenguajes para poder apreciar por que presentan características diferentes. &or ejemplo, los lenguajes Emas jóvenesE desaconsejan #o prohíben$ el uso de las sentencias K como mecanismo de control inferior, y esto es correcto en el conte%to de las filosofías actuales de ingeniería del soft7are y programación estructurada. &ero hubo un tiempo en que la K, combinada con la )+, era la 8nica estructura de control disponible0 el programador no dispone de algo como la construcción HF)L" o un )+CF"/C"L(" para elegir. &or tanto, cuando se ve un lenguaje como +--A/, el cual tiene sus raíces en los comienos de la historia de los lenguajes de programación, uno no debe sorprenderse de ver la antigua sentencia K dentro de su repertorio.
CLASI'ICACION DE LOS LEN!A"ES DE #$O$A%ACI&N LENGUAJE MÁQUINA: "l lenguaje máquina es el 8nico que entiende directamente la computadora, ya que esta escrito en lenguajes directamente inteligibles por la máquina #computadora$, utilia el alfabeto binario, que consta de los dos 8nicos símbolos 5 y 2, denominados bits #abreviatura inglesa de dígitos binarios$. (us instrucciones son cadenas binarias #cadenas o series de caracteres de dígitos 5 y 2$ que especifican una operación y, las posiciones #dirección$ de memoria implicadas en la operación se denominan instrucciones de máquina o código maquina. +ue el primer lenguaje utiliado en la programación de computadoras, pero dejo de utiliarse por su dificultad y complicación, siendo sustituido por otros lenguaj es más fáciles de aprender y utiliar, que además reducen la posibilidad de cometer errores. "l lenguaje máquina es el conocido código binario. Keneralmente, en la codificación de los programas se empleaba el sistema he%adecimal para simplificar el trabajo de escritura. odas las instrucciones preparadas en cualquier lenguaje máquina tienen por lo menos dos partes. La primera es el comando u operación, que dice a las computadoras cual es la función que va a realiar. odas las computadoras tienen un código de operación para cada una de las funciones. La segunda parte de la instrucción es el operando, que indica a la computadora donde hallar o almacenar los datos y otras instrucciones que se van a manipular, el n8mero de operándoos de una instrucción varia en distintas computadoras. Ientajas del lenguaje máquina< posibilidad de cargar #transferir un programa a la memoria$ sin necesidad de traducción posterior, lo que supone una velocidad d e ejecución superior a cualquier otro lenguaje de programación. Desventajas del lenguaje máquina< dificultad y lentitud en la codificación. &oca fiabilidad. Kran dificultad para verificar y poner a punto los programas. Los programas solo son ejecutables en el mismo procesador #*&6$. "n la actualidad, las desventajas superan a las ventajas, lo que hace prácticamente no recomendables a los leng uajes máquina.
LENGUAJES DE BAJO NIVEL (ensamba!"#$: (on más fáciles de utiliar que los lenguajes máquina, pero al igual que ellos, dependen de la máquina en particular. "l lenguaje de bajo nivel por e%celencia es el ensamblador. "l lenguaje ensamblador es el primer intento de sustituir el lenguaje maquina por otro más similar a los utiliados por las personas. "ste intenta desfle%ibiliar la representación de los diferentes campos. "sa fle%ibilidad se consigue no escribiendo los campos en binario y apro%imando la escritura al lenguaje. A principios de la d!cada de los 5 y con el fin de facilitar la labor de los programadores, se desarrollaron códigos mnemot!cnicos para las operaciones y direcciones simbólicas. Los códigos mnemot!cnicas son los símbolos alfab!ticos del lenguaje maquina. La computadora sigue utiliando el lenguaje maquina para procesar los datos, pero los programas ensambladores traducen antes los símbolos de código de operación especificados a sus equivalentes en el lenguaje maquina. "n la actualidad los programadores no asignan n8meros de dirección reales a los datos simbólicos, simplemente especifican donde quieren que se coloque la primera localidad del programa y el programa ensamblador se encarga de lo demás, asigna localidades tanto para las instrucciones como los datos. "stos programas de ensamble o ensambladores tambi!n permiten a la computadora convertir las instrucciones en lenguaje ensamblador del programador en su propio código maquina. 6n programa de instrucciones escrito en lenguaje ensamblador por u n programador se llama programa fuente. Despu!s de que el ensamblador convierte el programa fuente en código maquina a este se le denomina programa objeto. &ara los programadores es más fácil escribir instrucciones en un lenguaje ensamblador que en código de lenguaje maquina pero es posible que se requieran dos corridas de computadora antes de que se puedan utiliar las instrucciones del programa fuente para producir las salidas deseadas.
LENGUAJES DE ALTO NIVEL: "stos lenguajes son los mas utiliado por los programadores. "stán dise>ados para que las personas escriban y entiendan los programas de un modo mucho mas fácil que los lenguajes máquina y ensamblador. 6n programa escrito en lenguaje de alto nivel es independiente de la máquina #las instrucciones no dependen del dise>o del hard7are o de una computadora en particular$, por lo que estos programas son portables o transportables. Los programas escritos en lenguaje de alto nivel pueden ser ejecutados con poca o ninguna modificación en diferentes tipos de computadoras. (on lenguajes de programación en los que las instrucciones enviadas para que el ordenador ejecute ciertas órdenes son similares al lenguaje humano. Dado que el ordenador no es capa de reconocer estas ordenes, es necesario el uso de un int!rprete que traduca el lenguaje de alto nivel a un lenguaje de bajo nivel que el sistema pueda entender. &or lo general se piensa que los ordenadores son máquinas que realian tareas de cálculos o procesamiento de te%to. La descripción anterior es sólo una forma muy esquemática de ver una computadora. Fay un alto nivel de abstracción entre lo que se pide a la computadora y lo
que realmente comprende. "%iste tambi!n una relación compleja entre los lenguajes de alto nivel y el código máquina. Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el ingl!s. "n 'A()*, el lenguaje de alto nivel más conocido, los comandos como 9)+ */AD-O25 F"/ (&; pueden utiliarse para pedir a la computadora que pare si */AD- es igual a die. &or desgracia para muchas personas esta forma de trabajar es un poco frustrante, dado que a pesar de que las computadoras parecen comprender un lenguaje natural, lo hacen en realidad de una forma rígida y sistemática. (e puede decir que el principal problema que presentan los lenguajes de alto nivel es la gran cantidad de ellos que e%isten actualmente en uso, además de las diferentes versiones o dialectos que se han desarrollado de algunos de ellos. "s difícil establecer una clasificación general de los mismos, ya que en cualquiera que se realice habrá lenguajes que pertenecan a mas de uno de los grupos establecidos. 6na clasificación muy e%tendida, atendiendo a la forma de trabajar de los programas y a la filosofía con que fueron concebidos, es la siguiente< •
•
•
•
•
Lenguajes imperativos . Utilizan instrucciones como unidad de trabajo de los programas (Cobol, Pascal, C, Ada). Lenguajes declarativos . Los programas se construyen mediante descripciones de funciones o expresiones lgicas (Lisp, Prolog). Lenguajes orientados a objetos. !l dise"o de los programas se basa mas en los datos y su estructura. La unidad de proceso es el objeto y en el se incluyen los datos (#ariables) y las operaciones $ue act%an sobre ellos (&malltal', C). Lenguajes orientados al problema . ise"ados para problemas espec*+cos, principalmente de gestin, suelen ser generadores de aplicaciones. Lenguajes naturales. !stn desarrollndose nue#os lenguajes con el principal objeti#o de aproximar el dise"o y construccin de programas al lenguaje de las personas.
tra clasificación que se puede hacer es la de atendiendo al desarrollo de los lenguajes desde la aparición de las computadoras, que sigue un cierto paralelismo con las generaciones establecidas en la evolución de las mismas< •
•
•
•
Primera generación. Lenguajes ma$uina y ensambladores. Segunda generación. Primeros lenguajes de alto ni#el imperati#o (-/0A1, C/2/L). Tercera generación. Lenguajes de alto ni#el imperati#o. &on los mas utilizados y siguen #igentes en la actualidad (AL3/L 4, PL56, PA&CAL, 7/ULA). Cuarta generación. /rientados bsicamente a las aplicaciones de gestin y al manejo de bases de datos (1A0UAL, &8L).
•
Quinta generación. /rientados a la inteligencia arti+cial y al procesamiento de los lenguajes naturales (L6&P, P/L/3).
&ara la mejor compresión se harán unas definiciones<
%#"ama: es un conjunto de instrucciones escritas en u n lenguaje de programación que indican a la computadora la secuencia de pasos, para resolver un problema. C'!&" )*en+e: esta creado en alg8n lenguaje de alto nivel, por lo que es entendido 255P por el ser humano. "ste debe estar complementado por su documentación o manuales donde se indica el desarrollo lógico del mismo. C'!&" "b,e+": es creado por los compiladores y nos sirve como enlace entre el programa fuente y el ejecutable. ALGUNOS LEGUAJES DE %ROGRAMACIÓN DE ALTO NIVEL A continuación se presentan varios de los mas conocidos y utiliados, lenguajes de alto nivel.
FORTRAN Abreviatura de +-mula -A/slator #traductor de formulas$, fue definido alrededor del a>o 2Q en "stados 6nidos por la compa>ía )'3. "s !l más antiguo de los lenguajes de alto nivel. Antes de !l, todos los programas se escribían en lenguaje ensamblador o en lenguaje máquina. "s un lenguaje especialiado en aplicaciones t!cnicas y científicas. (e caracteria por su potencia en los cálculos matemáticos, pero esta limitado en las aplicaciones de gestión, manejo de archivos, tratamiento de cadenas de caracteres y edición de informes. "s un lenguaje notorio, por la facilidad con que permite e%presar una ecuación. 3uchas de sus características fueron incorporadas mas tarde en el primer lenguaje 'A()*. 6na de sus ventajas es que es un lenguaje compacto y es tambi!n ampliamente utiliado para aplicaciones en los negocios que no requieren manejo de grandes archivos de datos. Fasta 2QR2 se mantuvo como monopolio de )'3, pero posteriormente se fue implementando en ordenadores de otros fabricantes. A lo largo de su e%istencia han aparecido diferentes versiones, entre las que destaca la adoptada en 2QRR por el A/() #American /ational (tandards )nstitute$, en la que se definieron nuevas reglas del lenguaje y se logro la independencia del mismo con respecto a la máquina0 es decir, comeno la portabilidad del lenguaje. "sta versión se denominó +--A/ )I o +--A/ RR, y el idioma se hio tan popular en los a>os R5, que +--A/ RR se volvió el primer idioma en ser regulariado oficialmente en 2QS@. "n 2QSS apareció una nueva versión mas evolucionada que se llamo +--A/ I o +--A/ SS. "stá reflejada en el documento A/( =.QC2QS?< &rogramming Language +--A/ y define dos niveles del lenguaje denominados +--A/ SS completo y +--A/ SS básico, siendo el segundo un subconjunto del primero. )ncluye, además, instrucciones para el manejo de cadenas de caracteres y de archivos, así como otras para la utiliación de t!cnicas de programación estructurada. "stas características hacer que el lenguaje tambi!n sea valido para determinadas aplicaciones de gestión. A mediados de los a>os setenta se proporcionaron virtualmente cada computadora, mini o mainframe, con un sistema +--A/ RR normal.
COBOL
"s el lenguaje mas utiliado en las aplicaciones de gestión, creado en 2QR5 por un comit! denominado *DA(GL #*nference on DAta (Gstems Languages$, patrocinado por el Departamento de Defensa de "stados 6nidos, a fin de disponer de un lenguaje universal para aplicaciones comerciales, como e%presa su nombre #*mmnon 'usiness riented Language$. A lo largo de su e%istencia ha sufrido diversas actualiaciones. (u primer estándar fue aprobado por el A/() en 2QR?. &osteriormente, en 2QS4, se adopta la norma A/( =.@C 2QS4, que ha perdurado hasta su ultima versión, *'L A/(C?, que facilita el dise>o estructurado de los programas. (us características más destacables son las siguientes< se asemeja al lenguaje natural #ingl!s$, es autodocumentado y ofrece grandes facilidades en el manejo de archivos, así como en la edición de informes escritos. &uede emplear t!rminos com8nmente utiliados en los negocios. "ntre sus inconvenientes están sus rígidas reglas de formatos de escritura, la necesidad de escribir todos los elementos al má%imo detalle, l a e%tensión e%cesiva en sus sentencias, e incluso duplicación en algunos casos, y la ine%istencia de funciones matemáticas. /o obstante, se puede afirmar que en la actualidad continua siendo el lenguaje mas utiliado en las aplicaciones de gestión.
%L-I +ue creado a comienos de los a>os sesenta por )'3 para ser usado en sus equipos del sistema R5. )nspirándose en los lenguajes ALKL, *'L y +--A/ se desarrollo el &L1) #&rogramming Language1)$ tomando las mejores características de los anteriores y a>adiendo algunas nuevas, con el objetivo de obtener un lenguaje lo mas general posible en cuanto a su implementación, 8til para aplicaciones t!cnicoCcientíficas, comerciales, de proceso de te%tos, de bases de datos y de programación de sistemas. (e trata de un lenguaje de programación complejo. *ompilado y estructurado, es capa de gestionar errores y de procesar multitareas, y se emplea en entornos acad!micos y de investigación. "ntre sus novedades esta su gran libertad en el formato de escritura de los programas< soporta la programación estructurada y dise>o modular. "s un lenguaje fle%ible y sofisticado. /o obstante, no ha superado a sus progenitores en sus aplicaciones especificas, debido en parte a su amplitud y, por ello, al tama>o de su compilador que hasta ahora solo se podía instalar en grandes equipos. "l elemento básico de este programa es el enunciado que termina en punto y coma. Los enunciados se combinan en procedimientos. 6n procedimiento puede representar por completo a un programa peque>o o un 9bloque de construcción; o modulo de un programa más complejo.
BASIC "l lenguaje 'A()* fue dise>ado por los profesores Bohn K. Temeny y homas ". Turt del Dartmouth *ollege #"stados 6nidos$ en 2QR, con el objetivo principal de proporcionar a los principiantes un lenguaje fácil de aprender, como se indica en su nombre 'eginnerUs AllC purpose (ymbolic )nstruction *ode #*ódigo de instrucciones simbólico de propósito general
para principiantes$. "s un lenguaje interactivo muy popular que tiene una aceptación debido a la facilidad de su uso, es un idioma simple para aprender y fácil de traducir. Vue s! interactivo, permite la comunicación directa entre el usuario y el sistema de computo durante l a preparación y uso de los programas. "ntre sus principales novedades están las de ser un lenguaje interpretado y de uso conversacional, 8til para aplicaciones t!cnicas y de gestión. "sto, unido a la populariación de las microcomputadoras y computadoras personales, ha hecho que su utiliación sea haya e%tendido enormemente, a la ve que ha propiciado el surgimiento de una gran diversidad de diversiones que e%tienden y se adaptan a necesidades particulares el lenguaje original. "%isten multitud de interpretes y compiladores del lenguaje.
%ASCAL +ue creado por el matemático suio /icWlaus Hirth en 2QS5, basándose en el lenguaje ALKL, en cuyo dise>o había participado en los a>os sesenta. (u nombre proviene del filosofo y matemático franc!s del siglo =I)), 'laise &ascal, que invento la primera maquina tipo mecánico para sumar. +ue el primer gran lenguaje creado despu!s de haber sido ampliamente diseminados los conceptos asociados con la programación estructurada. Aunque en principio la idea del dise>ador era proporcionar un lenguaje adecuado para la ense>ana de los conceptos y t!cnicas de programación, con el tiempo ha llegado a ser un lenguaje ampliamente utiliado en todo tipo de aplicaciones, que posee grandes facilidades para la programación de sistemas y dise>o grafico. Aporta los conceptos de tipo de datos, programación estructurada y dise>o descendente, entre otros, además de haberse convertido en predecesor de otros lenguajes más modernos, como 3D6LAC@ y ADA.
C "ste lenguaje fue creado en 2QS@ por Dennis -itchie a partir del trabajo elaborado por su colega de los laboratorios 'ell elephone, Ten hompson. "stos habían dise>ado con anterioridad el sistema operativo 6/)=, y su intención al desarrollar el lenguaje * fue la de conseguir un lenguaje idóneo para la programación de sistemas que fuese independiente de la maquina, con el cual escribir su sistema 6/)=. Aunque, como acabo de decir, fue dise>ado inicialmente para la programación de sistemas, posteriormente su uso se ha e%tendido a ablaciones t!cnicoCcientíficas, de bases de datos, de proceso de te%tos, etc. "n 2Q?5 'jarne (troustrup, inspirado en el lenguaje (imulaRS adicionó las características de la programación orientada a objetos incluyendo la ventaja de una biblioteca de funciones orientadas a objetos$ y lo denomino * con clases. &ara 2Q? dicha denominación cambio a la de *NN. *on este nuevo enfoque surge la nueva metodología que aumenta las posibilidades de la programación bajo nuevos conceptos. La utiliación optima de este lenguaje se consigue dentro de su entorno natural, que ese el sistema operativo 6/)=, y entre sus características destaca el uso de programación estructurada para resolver tareas de bajo nivel, así como la amplia librería de rutinas de que
dispone. "l lenguaje * re8ne características de programación intermedia entre los lenguajes ensambladores y los lenguajes de alto nivel0 con gran poderío basado en sus operaciones a nivel de bits #propias de ensambladores$ y la mayoría de los elementos de la programación estructurada de los lenguajes de alto nivel, por lo que resulta ser el lenguaje preferido para el desarrollo de soft7are de sistemas y aplicaciones profesionales de la programación de computadoras.
MODULA./ "l lenguaje 3D6LA fue dise>ado en 2QSS bajo la dirección de /icWlaus Hirth, creador tambi!n el lenguaje &A(*AL, con la intención de incluir las necesidades de la programación de sistemas y dar respuestas a las criticas recibidas respecto de las carencias del lenguaje &A(*AL. "n 2QSQ se realia una versión que pasa a denominarse 3D6LAC@ y que perdura en la actualidad. Además de incluir las características de su predecesor, este nuevo lenguaje incorpora las principales carencias de aquel, como la posibilidad de compilación separada, creación de librerías, programación concurrente, mejora el manejo de cadenas d e caracteres, los procedimientos de entrada1salida y la gestión de la memoria, etc. además, posee grandes facilidades para la programación de sistemas. ambi!n, debido a sus cualidades didácticas, ha sido ampliamente aceptado por la comunidad universitaria como herramienta idónea para la ense>ana de la programación.
ADA "s !l ultimo intento de obtener un 8nico lenguaje para todo tipo de aplicaciones, e incluso los 8ltimos avances de t!cnicas de programación. (u dise>o fue encargado por el Departamento de Defensa de "stados 6nidos, para su uso en servicios militares, a la empresa Foney7ellC 'ull despu!s de una selección rigurosa entre varias propuestas realiadas sobre una serie de requerimientos del lenguaje y de haber evaluado negativamente veintitr!s lenguajes e%istentes. De estos, se seleccionaron como base para la creación del nuevo lenguaje el &A(*AL, el ALKL y el &L1). La estandariación del lenguaje se publico en 2Q? con el nombre de ADA, en honor de la considerada primera programadora de la historia, Augusta Ada 'yron, condesa de Lovelace. "ntre las características del lenguaje se encuentran la compilación separada, los tipos abstractos de datos, programación concurrente, programación estructurada, libertad de formatos de escritura, etc. *omo principal inconveniente presenta su gran e%tensión. Los escritores lo llamaron infle%ible e ineficiente, en tanto que sus favorecedores lo consideraban un gran avance en la tecnología del soft7are.
LIS% "n informática, acrónimo de List &rocessing. 6n lenguaje de programación para ordenadores o computadoras orientado a la generación de listas, desarrollado en 2QQC2QR5 por Bohn
3c*arthy y usado principalmente para manipular listas de datos o de símbolos. "l lenguaje L)(& constituyó un cambio radical con respecto a los lenguajes procedurales #+--A/, ALKL$ que se desarrollaban por entonces. "l L)(& es un lenguaje interpretado, en el que cada e%presión es una lista de llamadas a funciones. "ste lenguaje se sigue utiliando con frecuencia en investigación y en círculos acad!micos, y fue considerado durante mucho tiempo el lenguaje modelo para la investigación de la inteligencia artificial #)A$, aunque el &rolog ha ganado terreno durante los 8ltimos a>os.
LOGO "n informática, lenguaje de programación de or denadores o computadoras, desarrollado en 2QR? por (eymour &apert en el 3), que se usa frecuentemente en la ense>ana de lenguaje de programación a ni>os. 6na característica importante de Logo son los gráficos de tortuga, que permiten al programador hacer dibujos simples dirigiendo los movimientos de la tortuga en la pantalla hacia adelante, hacia la derecha o la iquierda. 6na ve que dominan el entorno sencillo del dibujo, el programador #normalmente un ni>o o una ni>a$ empiea a descubrir las características más sofisticadas del lenguaje, que están basadas fundamentalmente en el lenguaje de programación L)(&. Logo está considerado como un lenguaje para la formación, a pesar de que algunas empresas intentaron que tuviera una mayor aceptación en los círculos profesionales de programación.
R%G -eport &rogram perator fue introducido en 2QR5 como un lenguaje para duplicar rápidamente el enfoque de proceso utiliado con un equipo de tarjeta perforada. "ste lenguaje fue desarrollado por )'3 en 2QR4. (u uso esta aun limitado sobre todo para las aplicaciones de negocios que son procesadas en peque>as computadoras, generar informes comerciales o de negocios. *omo su nombre lo sugiere, el -&K esta dise>ado para generar los reportes de salida que resultan del proceso de aplicaciones de negocios. A pesar de las aplicaciones de actualiación de archivos, el -&K es un lenguaje de propósito limitado porque los programas objeto generados por el compilador de -&K siguen sin desviación, un ciclo de procesamiento básico. 6na ventaja del -&K es la relativa facilidad para aprenderlo y usarlo. Dado que la lógica de la programación es fija, e%isten menos reglas formales que en otros lenguajes.
ALGOL "l ALKL #ALKritmic Language$ fue presentado en 2Q?. +ue el primer lenguaje de programación de proceso estructurado de alto nivel. +ue orientado al uso de quienes participan en proyectos científicos y matemáticos. 6n grupo internacional de matemáticos europeos y americanos, pretendían crear un lenguaje com8n normaliado que les permitiera el intercambio de algoritmos, aunque esta en desuso, fue el primero que incorporo conceptos claves para la programación actual.
A%L
(us siglas significan #A &rogramming Language$. 6n Lenguaje de &rogramación. "ste programa fue desarrollado por Tenneth )nverson en el a>o 2QR2 para resolver problemas matemáticos. "ste lenguaje se caracteria por su brevedad y por su capacidad de generación de matrices y se utilia en el desarrollo de modelos matemáticos.
%ILOT &rogrammend )nquiry Language r eaching #*onsulta, lenguaje o aprendiaje de investigación programada$ creado en 2QRQ. "ste lenguaje de programación es utiliado fundamentalmente para crear aplicaciones destinadas a instrucciones asistidas por computadoras. (e caracteria por utiliar un mínimo de sinta%is.
SMALLTAL0 (3ALLALT, Lenguaje de &rogramación orientado a objetos integrados con un entorno de desarrollo multiventana. (3ALLALT no es solo un hermoso lenguaje de computación orientado a objetos. "l entorno de desarrollo merece similar valoración y ha sido copiado muchas veces, desde el (istema perativo de Apple 3( Hindo7s y 'orland &ascal #en una memoria e%tensión$. 3uchos conceptos de (3ALLALT como los bro7sers y las t!cnicas de bro7sing han encontrado hoy su rumbo en muchas herramientas de desarrollo de la generación =, desarrollado por (3ALLALT poseen un factor 9divertidoCdeCusar;. Los cambios se graban instantáneamente y los mismos pueden probarse rápidamente. (3ALLALT fue desarrollado dentro del Krupo de )nvestigación del Aprendiaje en el *entro de )nvestigación de =ero% en palo Alto a comienos de los S5. Las principales ideas de (3ALLALT se le atribuyen generalmente a Alan Way con raíces en (imula, L)(& y (Wetch&ad. Dan )ngalls escribió el código de las primeras ventanas solapables, los popCup men8s y la clase 'it'lt. Adele Koldberg y Dave -obson escribieron los manuales de referencia para (3ALLALT y fueron miembros clave del equipo de desarrollo. 6n programa de licenciamiento de =ero% y =ero% (pecial )nformation (ystems. (in embargo la distribución generaliada a la comunidad de desarrollo no sucedió hasta la fundación de una nueva compa>ía llamada &arc&lace (ystems )nc. , Dirigida por Adele Koldberg.
FORTH Lenguaje de cuarta generación, creado en 2QS5, es un lenguaje estructurado e interpretado de fácil ampliación y ofrece una alta funcionalidad en un espacio reducido. "s un lenguaje de alto nivel del cual derivan en la actualidad casi todos los lenguajes empleados en los robots.
LENGUAJE C11
(e pronuncia 9ce plus plus;. +ue desarrollada por 'jarme (troustrup en los 'ell Laboratories a principios de la d!cada de los ?5. *NN introduce la programación orientada al objeto en *. "s un lenguaje e%tremadamente poderoso y eficiente. *NN es un super conjunto de *, para aprender *NN significa aprender todo de *, luego aprender programación orientada al objeto y el uso de !stas con *NN.
DEL%HI "s un entorno de programación visual orientado a objetos para desarrollo rápido de aplicaciones #-AD$ de propósito general, incluyendo a plicaciones cliente1servidor. Delphi es la versión de Delphi para @ bits #delphi $, es decir son casi los mismos, con la 8nica diferencia que Delphi es mucho más mejorado, por ejemplo contiene un ee*hart, que sirve para los gráficos de negocio. Delphi tiene las siguientes características< endimiento 9 con el mejor y ms rpido compilador del mundo.
•
•
!mpresa e 6nternet 9 soluciones cliente y ser#icio
•
esarrollo de aplicaciones rpidas (A).
•
eusabilidad de componentes, un #erdadero entorno orientado a objetos.
•
7anejo de 2ase de atos escalables.
•
Ar$uitectura multini#el abierta y dimensionable.
•
iseminacin de informacin de base de datos en la :eb a una gran #elocidad.
JAVA "s un lenguaje de programación para crear programas seguros, portátiles, orientados a objetos interactivos, para mejorar la entrega de información a trav!s de )nternet, etc.
JAVASCRI%T "ste lenguaje de programación originalmente fue llamado L)I"(*-)&, pero luego fue renombrado con el nombre de BAIA(*-)&, con la idea de capitaliar la fama de Bava, lenguaje desarrollado por (un 3icrosystems. Xste es un complemento ideal del lenguaje
F3L, al permitir a la página realiar algunas tareas por si misma, sin necesidad de estar sobrecargando el servidor del cual depende0 BAIA(*-)& es un lenguaje dise>ado especialmente para ejecutarlo en internet. "ntre estas tareas, puede estar, por ejemplo, realiar algunos cálculos simples, formatear un te%to para que sea leído por distintas personas de manera distinta, proveer de un medio de configurar la visualiación de una página, realiar un prechequeo de validación en formulario antes de enviarlo, etc.
HTML "l lenguaje F3L, sirve para realiar esas atractivas páginas Heb. (e trata de un sistema de marcas que permite enlaar al mismo tiempo te%to, sonidos y gráficos dentro del mismo documento, con otros dentro del servidor o incluso con otros servidores HHH. "s decir, es un editor para combinar te%tos, imágenes e incluso sonido y ahora tambi!n imágenes en movimiento. "s, en definitiva, la forma de manejar y presentar la información en la red. &ara escribir documentos de hiperte%to se ha d esarrollado un nuevo formato de datos o lenguaje llamado Fyper e%t 3arWup Language #F3L$. "ste lenguaje permite dar indicaciones precisas al programa cliente de cómo debe presentarse el documento en p antalla o al ser impreso. "l lenguaje F3L es el usado actualmente para escribir te%tos Fypermediales en el 7eb. res normas fundamentales< 2.C F3L simplemente te%to Lo primero es saber que un documento F3L es un archivo de te%to simple, luego, se puede editar con cualquier editor de te%tos. @.C /o importan los abs ni los saltos de línea Los interpretes F3L no toman en cuenta las tabulaciones, los saltos de líneas ni los espacios en blanco e%tra. "sto tiene ventajas o desventajas. La principal ventaja es que permite obtener resultados uniformes y de buena presentación de manera bastante fácil. La principal desventaja es que un documento F3L, por lo menos se debe usar los comandos Y&Z... Y1&Z o Y'-Z para evitar que quede todo el te%to en una sola línea. .C "%isten caracteres especiales< •
; menor $ue, se usa para indicar el comienzo de un comando <07L
•
=mayor $ue, se usa para indicar el t>rmino de un comando <07L.
•
? Ampersand, se usa para escribir caracteres especiales (s*mbolos matemticos, comerciales, as* como el signo menor $ue y el mayor $ue entre otros) en un documento.
Lo primero es conocer los comandos que debe contener todo documento F3L de más de una línea de largo< "L *3A/D &[--A+< "l comando Y&Z... Y1&Z se utilia como un delimitador de párrafo en F3L. )nserta automáticamente un quiebre de línea al final del párrafo, y produce un espaciamiento conveniente entre los diferentes párrafos de un documento. ambi!n en forma adicional permite alinear el te%to al centro, a la iquierda o a la derecha. "L *3A/D V6)"'-" D" L\/"A(< "l comando Y '-Z permite hacer un quiebre #salto$de línea. L( *3A/D( D" "/*A'"JAD< Los te%tos en F3L poseen seis niveles de encabeado. &or ejemplo el nivel 2 se usa para las divisiones mayores de te%to, el nivel de encabeado R se usa para las divisiones más chicas de te%to. "(-6*6-A D" FG&"-"=< "%isten dos partes fundamentales de un documento F3L. "/*A'"JAD: (e inicia mediante el comandoYF"ADZ y se termina con Y1F"ADZ. &or lo general se incluyen aquí el título del documento, mediante el comando Y)L"Z... Y1)L"Z. *6"-&< (e inicia mediante el comando Y'DGZ y se termina con el comando. Dentro del cuerpo del documento se incluyen cualquier carácter imprimible. Además es importante incluir el comandoYADD-"((Z... Y1ADD-"((Z al final del cuerpo pero dentro de !l. Dentro del ADD-"(( se escribe el nombre del autor del documento, la organiación a la que pertenece, su dirección del correo electrónico y otra información que se considere relevante.
H2%ERTAL0 EFyperalWE es el lenguaje desarrollado por Dan HinWler para 'ill AtWinson, el creador del EFyper*ardE para AppleC3acintosh. "stá orientado a la creación de aplicaciones conforme al
sistema de EhiperarchivosE #sistemas de fichas interrelacionadas donde se facilita el EnavegarE de un archivo a otro$. FyperalW es un buen ejemplo de lenguaje orientado a objetos. "ste tipo de lenguaje combina la lógica declarativa con los algoritmos #Iea E%ROLOG E$. 6n programa ya no es una secuencia de instrucciones sino un conjunto de objetos agrupados en conjuntos, definidos mediante atributos y a los cuales pueden asociarse instrucciones. Así, en Fyper*ard, e%isten archivos #EstacWsE o EpilasE$ que agrupan fichas #EcardsE$, y cada una de !stas contiene campos de datos y botones. odos son EobjetosE que Csi bien mantienen entre sí una relación jerárquicaC tienen asociados paquetes de instrucciones #EscriptsE$ independientes unos de otros. *ada objeto pertenece a un conjunto #como fichas o botones$ que tiene EatributosE propios comunes a todos sus miembros, y cada atributo tendrá un valor com8n o específico para cada caso. &ara dar o buscar dicho valor intervienen EfacetasE que son instrucciones #procedimientos$ asociadas.
%e# "s un lenguaje especialiado en el procesamiento de te%tos, particularmente e%traer y validar las respuestas a cuestionarios incluidos en páginas 7eb.
%H% Lenguaje que se acopla al HTML #páginas 7eb$ para definir procedimientos que ha de realiar el servidor de 7eb, por ejemplo procesar un formulario, enviar o e%traer datos de una base de datos #acoplándose tambi!n con un lenguaje de tipo SQL$, enviar una u otra página 7eb seg8n determinadas condiciones prefijadas por el programador, etc.
%ROLOG Los primeros a>os de la d!cada del S5 son conocidos como un período de Ecrisis del soft7areE, en que se descubrió que la creación de buenos programas involucraba costos mayores que los del hard7are que los ejecuta. ambi!n se hacía patente una creciente necesidad de procesar EconocimientosE #algo mucho más amplio y complejo que los datos cuantitativos o meras Esecuencias de caracteresE a los cuales se reducen muchos lenguajes de programación$. "sta crisis llevó a investigar numerosas alternativas, entre las cuales nuevos lenguajes no basados en instrucciones algorítmicas o procedimientos. (i el hombre EprocesaE más información por inferencia lógica que por cálculo, ]no podría la máquina hacer lo mismo^ &-LK #E&-gramación en LKicaE$ es una respuesta a esta crisis, producto del avance de la lógica moderna #de tipo funcional$. Lo crearon A. *olmenauer y &h. -oussel, con la colaboración de -. To7alsWi, simultáneamente en la 6niversidad de Ai%C3arseille #+rancia$ y "dimburgo #Kran 'reta>a$. (e basa en el cálculo de predicados de primer orden y en el
principio de resolución de -obinson. "n ve de ser algorítmico #EproceduralE en ingl!s, t!rmino sin traducción$, es decir concebido como un conjunto de instrucciones que la máquina debe ejecutar en forma secuencial, es EdeclarativoE, es decir basado en definiciones #de EhechosE o EreglasE, como se e%plica más abajo$.
SQL Lenguaje desarrollado especialmente para facilitar la consulta de bases de datos #'D$, acotando progresivamente la b8squeda #de ahí el nombre de E(equential Vuery LanguageE$. "%isten hoy numerosas aplicaciones de administración de bases de datos que recurren al (VL #Las más conocidas, potentes C y caras C son racle e )nformi%$. Foy se pueden acoplar las bases de datos a hiperte%tos #páginas 7eb$, para lo cual las buenas aplicaciones ya traen módulos que hacen la cone%ión. "l lenguaje %H% del cual hablamos más arriba tambi!n sirve para definir procedimientos de inserción y de consulta de datos en 'D que funcionan con (VL.
AS% (u nombre es Active (erver &ages. "s un lenguaje independiente, dise>ado por 3icrosoft para la codificación eficiente de los scripts de los servidores, que fueron dise>ados para ser ejecutados por un servidor Heb en respuesta a la petición de un 6-L de un usuario. Los scripts de A(& son similares a otros scripts de servidores con los que puedes estar familiariado, que son utiliados en otras p lataformas, como &erl, &ython, etc.
EVOLUCION DE LOS LENGUAJES DE %ROGRAMACIÓN periodo 6n@uencias
Lenguajes
BD 9
Lenguajes ensamblador
/rdenadores primiti#os
Lenguajes experimentales de alto ni#el BE 9 ED
/rdenadores pe$ue"os,
-/0A1
caros y lentos
AL3/L 4 y ED
Cintas magn>ticas
C/2/L
Compiladores e interpretes L6&P /ptimizacin del cdigo BE 9 E
/rd. grandes y caros
-/0A1 6F
iscos 7agn>ticos
C/2/L E !xtendido
&istemas operati#os
AL3/L ED e#isado
Leng. de propsito general
&1/2/L APL ( como notacin slo)
BEE 9 GD
/rdenadores de diferentes
PL56
tama"os, #elocidades, costes
-/0A1 EE (estandard)
&istemas de almacenamiento
C/2/L E (estandard)
masi#o de datos (caros)
AL3/L E4
&./. multitarea e
&1/2/LH
interacti#os
&67ULA EG
Compil. con optimizacin
2A&6C
Leng. estandard ,
APL5IED
@exibles y generales BG 9 G
7icro ordenadores &istemas de
PA&CAL
almacenamiento masi#o de datos pe$ue"os
C/2/L GH
y baratos
PL 56
Progr. estructurada 6ngenier*a del softJare Leng. sencillos BGE 9 4D
/rd. baratos y potentes
AA
&istemas distribuidos
-/0A1 GG
Prog. tiempo9real
P/L/3
Prog. interacti#a
C
Abstraccin de datos Prog. con +abilidad y fcil mantenimiento
odo este desarrollo de las computadoras y de los lenguajes de programación, suele divisarse por generaciones y el criterio que se determinó para determinar el cambio de generación no está muy bien definido, pero resulta aparente que deben cumplirse al menos los siguientes requisitos< •
La forma en $ue estn construidas.
•
-orma en $ue el ser Kumano se comunica con ellas.
%#me#a Gene#a3'n
"n esta generación había un gran desconocimiento de las capacidades de las computadoras, puesto que se realió un estudio en esta !poca que determinó que con veinte computadoras se saturaría el mercado de los "stados 6nidos en el campo de procesamiento de datos. "sta generación abarco la d!cada de los cincuenta. G se conoce como la primera generación. "stas máquinas tenían las siguientes características< •
!stas m$uinas estaban construidas por medio de tubos de #ac*o.
•
!ran programadas en lenguaje de m$uina.
"n esta generación las máquinas son grandes y costosas #de un costo apro%imado de ciento de miles de dólares$. "n 2Q2 aparece la 6/)IA* #/)IersAl *omputer$, fue la primera computadora comercial, que disponía de mil palabras de memoria central y podían leer cintas magn!ticas, se utilió para procesar el censo de 2Q5 en los "stados 6nidos. "n las dos primeras generaciones, las unidades de entrada utiliaban tarjetas perforadas, retomadas por Ferman Follerith #2?R5 C 2Q@Q$, quien además fundó una compa>ía que con el paso del tiempo se conocería como )'3 #)nternational 'ussines 3achines$. Despu!s se desarrolló por )'3 la I(% )*+ de la cual se entregaron 2? unidades entre 2Q y 2QS. &osteriormente, la compa>ía -emington -and fabricó el modelo 225, que competía con la S52 en el campo científico, por lo que la )'3 desarrollo la S5@, la cual presentó problemas en memoria, debido a esto no duró en el mercado. La computadora más e%itosa de la primera generación fue la )'3 R5, de la cual se produjeron varios cientos. "sta computadora que usaba un esquema de memoria secundaria llamado tambor magn!tico, que es el antecesor de los discos actuales. tros modelos de computadora que se pueden situar en los inicios de la segunda generación son< la 6/)IA* ?5 y Q5, las )'3 S54 y S5Q, 'urroughs @@5 y 6/)IA* 225.
Se&*n!a Gene#a3'n *erca de la d!cada de 2QR5, las computadoras seguían evolucionando, se reducía su tama>o y crecía su capacidad de procesamiento. ambi!n en esta !poca se empeó a definir la forma de comunicarse con las computadoras, que recibía el nombre de programación de sistemas. Las características de la segunda generación son las siguientes< •
!stn construidas con circuitos de transistores.
•
&e programan en nue#os lenguajes llamados lenguajes de alto ni#el.
"n esta generación las computadoras se reducen de tama>o y son de menor costo. Aparecen muchas compa>ías y las computadoras eran bastante avanadas para su !poca como la serie 555 de 'urroughs y la ALA( de la 6niversidad de 3anchester. Algunas de estas computadoras se programaban con cintas perforadas y otras más por medio de cableado en un tablero. Los programas eran hechos a la medida por un equipo de e%pertos< analistas, dise>adores, programadores y operadores que se manejaban como una orquesta para resolver los problemas y cálculos solicitados por la administración. "l usuario final de la información no tenía contacto directo con las computadoras. "sta situación en un principio se produjo en las primeras computadoras personales, pues se requería saberlas EprogramarE #alimentarle instrucciones$ para obtener resultados0 por lo tanto su uso estaba limitado a aquellos audaces pioneros que gustaran de pasar un buen n8mero de horas escribiendo instrucciones, EcorriendoE el programa resultante y verificando y corrigiendo los errores o bugs que aparecieran. Además, para no perder el EprogramaE resultante había que EguardarloE #almacenarlo$ en una grabadora de astte, pues en esa !poca no había discos fle%ibles y mucho menos discos duros para las &*0 este procedimiento podía tomar de 25 a 4 minutos, seg8n el programa. "l panorama se modificó totalmente con la aparición de las computadoras personales con mejore circuitos, más memoria, unidades de disco fle%ible y sobre todo con la aparición de programas de aplicación general en donde el usuario compra el programa y se pone a trabajar. Aparecen los programas procesadores de palabras como el c!lebre Hord (tar, la impresionante hoja de cálculo #spreadsheet$ Iisicalc y otros más que de la noche a la ma>ana cambian la imagen de la &*. "l sort7are empiea a tratar de alcanar el paso del hard7are. &ero aquí aparece un nuevo elemento< el usuario. "l usuario de las computadoras va cambiando y evolucionando con el tiempo. De estar totalmente desconectado a ellas en las máquinas grandes pasa la &* a ser piea clave en el dise>o tanto del hard7are como del soft7are. Aparece el concepto de human interface que es la relación entre el usuario y su computadora. (e habla entonces de h ard7are ergonómico #adaptado a las dimensiones humanas para reducir el cansancio$, dise>os de pantallas antirreflejos y teclados que descansen la mu>eca. *on respecto al soft7are se inicia una verdadera carrera para encontrar la manera en que el usuario pase menos tiempo capacitándose y entrenándose y más tiempo produciendo. (e ponen al alcance programas con men8s #listas de opciones$ que orientan en todo momento al usuario #con el consiguiente aburrimiento de los usuarios e%pertos$0 otros programas ofrecen toda una artillería de teclas de control y teclas de funciones #atajos$ para efectuar toda suerte de efectos en el trabajo #con la consiguiente desorientación de los usuarios novatos$. (e ofrecen un sinn8mero de cursos prometiendo que en pocas semanas hacen de cualquier persona un e%perto en los programas comerciales. &ero el problema EconstanteE es que ninguna solución para el uso de los programas es EconstanteE. *ada nuevo programa requiere aprender nuevos controles, nuevos trucos, nuevos men8s. (e empiea a sentir que la relación usuarioC&* no está acorde con los desarrollos del equipo y de la potencia de los programas. Face falta una relación amistosa entre el usuario y la &*. Las computadoras de esta generación fueron< la &hilco @2@ #esta compa>ía se retiró del mercado en 2QR4$ y la 6/)IA* 34R5, la *ontrol Data *orporation modelo 2R54, seguida por la serie 555, la )'3 mejoró la S5Q y sacó al mercado la S5Q5, la /ational *ash -egister empeó a producir máquinas para proceso de datos de tipo comercial, introdujo el modelo /*- 2.
La -adio *orporation of America introdujo el modelo 52, que manejaba el lenguaje *'L, para procesos administrativos y comerciales. Despu!s salió al mercado la -*A R52.
Te#3e#a &ene#a3'n *on los progresos de la electrónica y los avances de comunicación con las computadoras en la d!cada de los 2QR5, surge la tercera generación de las computadoras. (e inaugura con la )'3 R5 en abril de 2QR4. Las características de esta generación fueron las siguientes< •
&u fabricacin electrnica esta basada en circuitos integrados.
•
&u manejo es por medio de los lenguajes de control de los sistemas operati#os.
La )'3 produce la serie R5 con los modelos @5, @@, 5, 45, 5, R, RS, S, ?, Q5, 2Q que utiliaban t!cnicas especiales del procesador, unidades de cinta de nueve canales, paquetes de discos magn!ticos y otras características que ahora son estándares #no todos los modelos usaban estas t!cnicas, sino que estaba dividido por aplicaciones$. "l sistema operativo de la serie R5, se llamó ( que contaba con varias configuraciones, incluía un conjunto de t!cnicas de manejo de memoria y del procesador que pronto se convirtieron en estándares. @ "n 2QR4 *D* introdujo la serie R555 con la computadora RR55 que se consideró durante algunos a>os como la más rápida. "n la d!cada de 2QS5, la )'3 produce la serie S5 #modelos 22, 2@, 2, 24, 2?, 2R?$. 6/)IA* compite son los modelos 225? y 2225, máquinas en gran escala0 mientras que *D* produce su serie S555 con el modelo SR55. "stas computadoras se caracterian por ser muy potentes y veloces. A finales de esta d!cada la )'3 de su serie S5 produce los modelos 52, 5, 442. 'urroughs con su serie R555 produce los modelos R55 y RS55 de avanado dise>o, que se reemplaaron por su serie S555. Foney C Hell participa con su computadora D&( con varios modelos. A mediados de la d!cada de 2QS5, aparecen en el mercado las computadoras de tama>o mediano, o minicomputadoras que no son tan costosas como las grandes #llamadas tambi!n como main,rames que significa tambi!n, gran sistema$, pero disponen de gran capacidad de procesamiento. Algunas minicomputadoras fueron las siguientes< la &D& C ? y la &D& C 22 de Digital "quipment *orporation, la IA= #Iirtual Address e=tended$ de la misma compa>ía, los
modelos /IA y "*L)&(" de Data Keneral, la serie 555 y Q555 de Fe7lett C &acWard con varios modelos el R y el 4, la Hang y Foney C Hell C'ull, (iemens de origen alemán, la )*L fabricada en )nglaterra. "n la 6nión (ovi!tica se utilió la 6( #(istema 6nificado, -yad$ que ha pasado por varias generaciones.
C*a#+a Gene#a3'n Aquí aparecen los microprocesadores que es un gran adelanto de la microelectrónica, son circuitos integrados de alta densidad y con una velocidad impresionante. Las microcomputadoras con base en estos circuitos son e%tremadamente peque>as y baratas, por lo que su uso se e%tiende al mercado industrial. Aquí nacen las computadoras personales que han adquirido proporciones enormes y que han influido en la sociedad en general sobre la llamada -revolución in,orm.tica- 4 "n 2QSR (teve HoniaW y (teve Bobs inventan la primera microcomputadora de uso masivo y más tarde forman la compa>ía conocida como la Apple que fue la segunda compa>ía más grande del mundo, antecedida tan solo por )'30 y esta por su parte es a8n de las cinco compa>ías más grandes del mundo. "n 2Q?2 se vendieron ?55 55 computadoras personales, al siguiente subió a 2 455 555. "ntre 2Q?4 y 2Q?S se vendieron alrededor de R5 millones de computadoras personales, por lo que no queda duda que su impacto y penetración han sido enormes. *on el surgimiento de las computadoras personales, el soft7are y los sistemas que con ellas de manejan han tenido un considerable avance, porque han hecho más interactiva la comunicación con el usuario. (urgen otras aplicaciones como los procesadores de palabra, las hojas electrónicas de cálculo, paquetes gráficos, etc. ambi!n las industrias del (oft7are de las computadoras personales crecen con gran rapide, Kary Tildall y Hilliam Kates se dedicaron durante a>os a la creación de sistemas operativos y m!todos para lograr una utiliación sencilla de las microcomputadoras #son los creadores de *&13 y de los productos de 3icrosoft$. /o todo son microcomputadoras, por su puesto, las minicomputadoras y los grandes sistemas contin8an en desarrollo. De hecho las máquinas peque>as rebasaban por mucho la capacidad de los grandes sistemas de 25 o 2 a>os antes, que requerían de instalaciones costosas y especiales, pero sería equivocado suponer que las grandes computadoras han desaparecido0 por el contrario, su presencia era ya ineludible en prácticamente todas las esferas de control gubernamental, militar y de la gran industria. Las enormes computadoras de las series *D*, *-AG, Fitachi o )'3 por ejemplo, eran capaces de atender a varios cientos de millones de operaciones por segundo.
Q*n+a Gene#a3'n "n vista de la acelerada marcha de la microelectrónica, la sociedad industrial se ha dado a la tarea de poner tambi!n a esa altura el desarrollo del soft7are y los sistemas con que se manejan las computadoras. (urge la competencia internacional por el dominio del mercado de la computación, en la que se perfilan dos líderes que, sin embargo, no han podido alcanar el nivel que se desea< la capacidad de comunicarse con la computadora en un lenguaje más cotidiano y no a trav!s de códigos o lenguajes de control especialiados. Bapón lanó en 2Q? el llamado Eprograma de la quinta generación de computadorasE, con los objetivos e%plícitos de producir máquinas con innovaciones re ales en los criterios mencionados. G en los "stados 6nidos ya está en actividad un programa en desarrollo que persigue objetivos semejantes, que pueden resumirse de la siguiente manera< •
•
Procesamiento en paralelo mediante ar$uitecturas y dise"os especiales y circuitos de gran #elocidad. 7anejo de lenguaje natural y sistemas de inteligencia arti+cial.
"l futuro previsible de la computación es muy interesante, y se puede esperar que esta ciencia siga siendo objeto de atención prioritaria de gobiernos y de la sociedad en conjunto.