II. HISTORIA DE LA COMPUTACIÓN

36
II. HISTORIA DE LA COMPUTACIÓN EN LA historia de la ciencia, hay ciertos momentos claves en los que el ingenio e inteligencia de ciertas personas, aunados a toda una situación social e ideológica propicias, les permiten percibir algo que nadie antes había sido capaz de ver. En muchas ocasiones esta revolución en los conceptos viene acompañada de innovaciones tecnológicas que constituyen grandes saltos en el desarrollo de nuevos aparatos. De esta manera, nos encontramos con que en general el avance científico- tecnológico tiene dos tipos de etapas: en la primera surge una idea o descubrimiento innovador muy importante, y la segunda comprende los tiempos durante los cuales se maduran y establecen las ideas. Durante estos periodos, se construyen aparatos cada vez más elaborados con base en estos principios. Este proceso continúa hasta que surge una nueva idea que permite de nueva cuenta un avance significativo. Con esta idea en mente, podríamos dividir la historia de la computación en varias etapas, cada una caracterizada por una revolución tecnológica importante. A continuación relataremos de manera muy general el desarrollo de la computación, desde sus orígenes hasta finales de los años ochenta. SISTEMAS NUMERALES :Puede decirse que la historia de la computación comienza cuando el hombre adquiere la necesidad de contar. Seguramente en un principio el hombre comenzó a contar con los dedos, para después hacerlo mediante marcas en el piso o utilizando piedras. Con la invención de la escritura, diferentes civilizaciones encontraron sendas maneras de contar y más tarde, de efectuar operaciones. La figura 6 nos muestra,

Transcript of II. HISTORIA DE LA COMPUTACIÓN

I I . H I S T O R I A D E L A C O M P U T A C I Ó N

EN LA historia de la ciencia, hay ciertos momentos clavesen los que el ingenio e inteligencia de ciertas personas,aunados a toda una situación social e ideológicapropicias, les permiten percibir algo que nadie anteshabía sido capaz de ver. En muchas ocasiones estarevolución en los conceptos viene acompañada deinnovaciones tecnológicas que constituyen grandes saltosen el desarrollo de nuevos aparatos. De esta manera, nosencontramos con que en general el avance científico-tecnológico tiene dos tipos de etapas: en la primerasurge una idea o descubrimiento innovador muy importante,y la segunda comprende los tiempos durante los cuales semaduran y establecen las ideas. Durante estos periodos,se construyen aparatos cada vez más elaborados con baseen estos principios. Este proceso continúa hasta quesurge una nueva idea que permite de nueva cuenta unavance significativo.

Con esta idea en mente, podríamos dividir la historia dela computación en varias etapas, cada una caracterizadapor una revolución tecnológica importante. A continuaciónrelataremos de manera muy general el desarrollo de lacomputación, desde sus orígenes hasta finales de los añosochenta.

SISTEMAS NUMERALES :Puede decirse que la historia de lacomputación comienza cuando el hombre adquiere lanecesidad de contar. Seguramente en un principio elhombre comenzó a contar con los dedos, para despuéshacerlo mediante marcas en el piso o utilizando piedras.Con la invención de la escritura, diferentescivilizaciones encontraron sendas maneras de contar y mástarde, de efectuar operaciones. La figura 6 nos muestra,

de una manera comparativa, sistemas numerales.

Figura 6. Esta figura nos muestra algunos sistemas numerales.

Figura 7. En la numeración maya un punto representa una unidad, unabarra corresponde a cinco unidades, y el número cero es representadopor una concha. Combinando estos signos pueden escribirse los númerosdel 0 al 19. Para designar Números mayores al 19 se utiliza el sistemade posiciones: de abajo hacia arriba, la n-ésima posición representa

unidades de n-ésimo orden.

Una de las escrituras más antiguas que se conoce es laegipcia. Esta civilización adoptó un sistema de contar dediez en diez, de manera que marcaban las unidades conlíneas verticales y las decenas con un signo similar a laU invertida. Otras culturas adoptaron sistemas máscomplicados; por ejemplo, los babilonios contaban de 60en 60, y aunque su sistema era muy poco práctico, se creeque de ellos provienen las bases del sistema actual decontar los minutos y los segundos.

Otra numeración antiguamente utilizada fue la romana, lacual era muy simple y permitía efectuar operacionesaritméticas aunque no con mucha sencillez. Aún perdura latradición de utilizarla en algunos contextos específicos;

por ejemplo, en las carátulas de los relojes, paradenominar los tomos o capítulos de los libros, paraescribir algunas fechas, etcétera.

Entre las culturas de América, es interesante señalar quelos mayas contaron con un sistema numeral vigesimal muyavanzado y utilizaron el cero aun antes que en Europa oAsia. La figura 7 nos muestra esta numeración.

Figura 8. En el sistema decimal se utiliza un criterio de posicionescon el cual cada dígito tiene un peso diferente, de acuerdo con unabase diez. Esta figura nos muestra la forma en que se construye el

número 1 968.

Podríamos continuar esta lista señalando más culturas yexplicando sus sistemas de numeración, sin embargo, tansólo queremos hacer hincapié en lo siguiente: la forma enque contamos actualmente, eso es, utilizando el sistemadecimal (arábico), no es ni la única posible ni la únicacorrecta, sino sólo una forma que hemos heredado denuestros antepasados y que ha sobrevivido por ser simpley adecuada para nosotros debido a que tenemos diez dedosen las manos. Los principios de esta numeración seilustran en la figura 8.

USO DE ARTEFACTOS PARA SUMAR

El siguiente paso en el desarrollo de la computación sedio con la invención de aparatos útiles para efectuaroperaciones matemáticas. El ábaco es la primeracalculadora o computadora de que tenemos noticias. Aunquese inventó hace aproximadamente 4 000 años, aún tiene unuso muy amplio en algunos países de Asia, debido a que setrata de una calculadora muy rápida y práctica, útil paraefectuar operaciones de adición, substracción,multiplicación y división. Este artefacto se muestra enla figura 9.

Muchos años tuvieron que pasar antes de que se lograranprogresos en el desarrollo de nuevas calculadoras. En1617, el escocés John Napier inventa los llamados huesos deNapier o tablas de multiplicar (de donde proviene el nombreutilizado hasta nuestros días). Éstos consisten de unaregla fija y otra móvil que se desliza sobre la primera,de manera que deja ver el producto de dos númeroscualesquiera (véase la figura 10). Posteriormente lastablas de Napier evolucionaron hasta llegar a la regla decálculo, la cual funciona con el mismo principio pero esútil para llevar a cabo operaciones de multiplicación,división y raíz cuadrada, entre otras. Debido a suportabilidad, este artefacto tuvo una gran acogida en elmundo occidental y fue de uso frecuente hasta hace pocosaños, cuando se generalizó el uso de las calculadoras debolsillo.

A mediados del siglo XVII se inicia una nueva era decalculadoras mecánicas cuando, en 1642, Blaise Pascal,quien sólo contaba con 19 años de edad, introduce unamáquina sumadora mecánica con el objeto de facilitar loscálculos de su padre (Figura 11). Esta máquina consistíaen un sistema con ruedas pequeñas acopladas entre sí yque, de derecha a izquierda correspondían a unidades,decenas, centenas, etcétera. Estas ruedas se encontrabandivididas en 10 partes iguales; de manera que paraefectuar una suma se hacían girar manualmente un númerode pasos acorde con el número que se deseaba introducir.La rotación completa de un círculo en la direcciónpositiva, causaba automáticamente que el círculo a suizquierda avanzara una posición. Para efectuarsustracciones el proceso era el inverso.

Figura 9. En el ábaco, cada barra horizontal contiene siete móvilesseparadas por una barra vertical. Aquéllas en el lado izquierdo valen

uno, y las del lado derecho valen cinco; el número cero estárepresentado cuando todas las cuentas están alejadas de la barra

central. Las sumas se efectúan al mover, hacia la barra central, lascuentas correspondientes a la cantidad que se desea sumar.

Algunos años más tarde, Leibniz inventa una máquinasimilar a la de Pascal pero más compleja, la cual podíasumar, restar, multiplicar y dividir. Es la computadora,ilustrada en la figura 12, se empleó extensivamente hastael advenimiento de las computadoras electrónicas.

LA ERA DE LA PROGRAMACIÓN SE INICIA

Los siguientes avances significativos se logran hasta elsiglo XIX, cuando Joseph Jacquard, quien era obrero enuna fábrica de sedas de Lyon, introduce la idea deprogramar máquinas mediante el uso de tarjetasperforadas. La invención de Jacquard consistió en untelar que utilizaba tarjetas perforadas para controlar demanera automática el diseño y los colores de los tejidos.Esta idea es adaptada a la computación, en la llamada"máquina analítica" (Figura 13), por un matemático inglésllamado Charles Babbage, quien vivió obsesionado con eldiseño y construcción de máquinas calculadoras. Másadelante hablaremos de esta máquina.

Figura 10. Esta figura muestra una variante de las "tablas demultiplicar", en la cual las tablas se ven substituidas por elementosque giran. Este aparato nunca llegó a funcionar satisfactoriamente.

Figura 11. Máquina de Pascal.

Figura 12. Diagrama que muestra un corte de la máquina de calcular deLeibniz.

Babbage hizo su primer esbozo de una máquina calculadoraa la que llamó máquina diferencial", en 1822. Sinembargo, constantemente tenía nuevas ideas que mejorabanel diseño original, por lo cual iba echando por tierratodo el trabajo realizado anteriormente. Es probable queesta situación hubiese continuado por muchos años, de noser por una discusión que tuvo con su mecánico, despuésde la cual este último desmontó el taller y partió contodos los diseños. En esta coyuntura, Babbage tiene queempezar un nuevo diseño, y así concibe una calculadoratotalmente nueva: su "máquina analítica", la cual habríade ser más fácil de construir y tendría mayor poder decálculo que la anterior. Así, diseña una computadoramecánica digital a la cual habrían de suministrárseledatos e instrucciones a seguir a través de tarjetasperforadas de acuerdo con un código. La computadora a suvez proporcionaría las soluciones también en forma deperforaciones en tarjeta. Como consecuencia, esta máquina"programable" ofrecía dos nuevas ventajas: i) por primeravez, una máquina sería capaz de utilizar durante uncálculo los resultados de otro anterior sin necesidad dereconfigurar la máquina, lo cual permitiría llevar a cabocálculos iterativos, y ii) habría la posibilidad de que la

computadora siguiese instrucciones alternas, dependiendode los resultados de una etapa anterior del cálculo.Babbage describió esta máquina como "la máquina que semuerde la cola".

Figura 13. El dispositivo que se muestra en esta figura, forma partede la máquina analítica de Babbage y nos da idea de su complicación;

está diseñado para efectuar la operación de leamirba

multiplicar ( o dividir) un número por una potencia dediez.

Los planes de Babbage eran crear una máquina de no menosde 20 cifras de capacidad y precisión de seis cifras.Probablemente, las debilidades más grandes de este diseñofueron el cuidado y precisión requeridos para suconstrucción. De manera que, aunque su diseñador dedicóel resto de su vida, y gran parte de su fortuna, a tratarde terminar esta máquina, sólo pudo hacer una versiónpequeña del modelo. De haberse construido, la máquinahubiese consistido de cerca de dos toneladas demaquinaria de relojería de latón y acero.

Para dar una idea al lector de la importancia de "lamáquina que se muerde la cola", diremos que hasta esemomento, cada vez que se quería efectuar una serie deoperaciones matemáticas, había que introducir, una a unay manualmente, todas las instrucciones y datos de laoperación conforme se iban necesitando. A cada paso lamáquina iba dando el resultado parcial de la operaciónespecífica efectuada, de manera que el "usuario" de lamáquina podía decidir cuál sería la siguiente operación.

LA ERA MODERNA DE LA COMPUTACIÓN

Con el desarrollo posterior de la electricidadaparecieron las llamadas computadoras electromecánicas, lascuales utilizaban solenoides e interruptores mecánicosoperados eléctricamente. La primera de ellas se creó en1944 y fue la llamada Mark I. Las instrucciones "secargaban" por medio de cinta de papel con perforaciones,y los datos se proporcionaban en tarjetas de cartón,también perforadas. Esta computadora teníaaproximadamente 15.5 m. de largo por 2.5 de altura, ymultiplicaba dos números en aproximadamente 3 segundos.Tres años más tarde, la computadora Mark II. era capaz dellevar a cabo la misma operación en menos de un cuarto desegundo; esto es, 12 veces más rápido.

Mientras estas computadoras analógicas2 eranconstruidas, se gestaba un nuevo concepto decomputadoras. Éstas eran las llamadas computadoras digitales,acerca de cuya paternidad existen gran cantidad dedisputas. Sin embargo, como narraremos a continuación, enuna batalla legal en las cortes de los Estados Unidos deAmérica se atribuyó el derecho a llamarse "inventor de lacomputadora digital" a John V. Atanasoff, un físicoestadounidense, hijo de un ingeniero eléctrico y unamaestra de álgebra.

Desde muy pequeño, Atanasoff encontró gran placer en elestudio del álgebra. Cuando tenía 10 años de edad, sumadre le dio un libro en el cual se explicaba cómocalcular números en otras bases diferentes a la basediez. Años más tarde, Atanasoff comentaría: "Cuandoinicié mi trabajo en computadoras, una de las cosas quetenía en mente era que tal vez las computadorastrabajarían mejor si utilizaran para sus cálculos algunaotra base que no fuese diez."

Más adelante, Atanasoff estudió ingeniería eléctrica ehizo estudios de posgrado en matemática y física, paraposteriormente llegar a ser profesor asociado de física ymatemáticas en la Universidad de Iowa. Una de lasmotivaciones de Atanasoff para trabajar en el diseño decomputadoras fue su gran frustración ante la incapacidadde sus alumnos para encontrar las soluciones de sistemasgrandes de ecuaciones diferenciales simultáneas; ya queconsideraba que el tiempo invertido en esta tarea lesimpedía dedicarse a otros problemas más interesantes.Dicho sea de paso, la solución de este problemamatemático era imposible de obtener utilizando las

calculadoras analógicas existentes en ese momento. Es enesta época cuando Atanasoff tuvo varias ideas muybrillantes que revolucionaron las máquinas calculadoras yque de hecho hicieron posible el inicio de la era modernade la computación. Estas ideas fueron las siguientes:

1) El remplazo de los relevadores electromecánicos por bulbos. Losrelevadores electromecánicos utilizados hasta ese momentoeran una especie de interruptores que podían abrirse ocerrarse cientos de veces por minuto. Dada la naturalezade este proceso, no podía llevarse a cabo con másrapidez. Por otro lado, los bulbos pueden prenderse yapagarse (conducen o dejan de conducir electrones),cientos de veces por segundo. Esto es, operan con unarapidez mucho mayor que los relevadores electromecánicos.

2) La substitución del sistema decimal por el sistema binario. Tanto loscircuitos electrónicos como los relevadoreselectromecánicos tienen dos estados posibles; esto es,pueden estar prendidos o apagados, lo cual puede estarrepresentado por ceros y unos, respectivamente. Esto haceque sea más natural para una computadora efectuarcálculos utilizando para ello un sistema numéricobinario.

3) La utilización de condensadores para construir dispositivos encargados deguardar información ("memorias"). Estos nuevos dispositivosestarían formados por un gran número de condensadores(también llamados capacitores), los cuales, al estarcargados o descargados, guardarían información, deacuerdo con un código binario. Sin embargo dado que esimposible lograr un aislamiento eléctrico perfecto deldispositivo, era de esperarse que la carga se "escaparía"en cuestión de milisegundos. Atanasoff ideó entonces unprocedimiento llamado refrescamiento de memoria, el cualconsiste en leer la información registrada en cada áreade la memoria e inmediatamente reescribirla en el mismolugar. Esta operación debería llevarse a cabo periódica yautomáticamente, a intervalos de tiempo regulares.

Durante los años subsecuentes, Atanasoff trabajó juntocon un estudiante en la construcción de un prototipo decomputadora que utilizara estos principios, y que fue dehecho la primera en hacer aritmética electrónicamente.Ésta fue la llamada ABC (Atanasoff-Berry Computer), lacual utilizaba 300 bulbos para los circuitos lógicos, ycapacitores para la regeneración automática de la

memoria. Por otro lado, mientras esto sucedía, Atanasofffirmó un convenio con la universidad en la que prestabasus servicios. En dicho documento, el inventor conveníaen ceder a la universidad la mitad de las regalíasobtenidas por su computadora. A su vez, la universidad secomprometía a tramitar la patente. Desafortunadamente, launiversidad nunca cumplió con su parte, aparentementedebido a negligencia y falta de confianza en esteproyecto por parte de las autoridades.

Fue en est época, mientras trabajaba en elperfeccionamiento de la ABC, que Atanasoff tuvo su primerencuentro con un experto en computadoras llamado JohnMauchly. Con esta persona tuvo largas discusiones acercadel tema que a ambos interesaba, le mostró los principiosde operación de su computadora y le pidió que guardara elsecreto de su existencia hasta que ésta estuviesepatentada. Fue entonces cuando estalló la segunda GuerraMundial; Atanasoff fue llamado entonces a colaborar conla Fuerza Naval de su país en un proyecto relacionado conla supervisión de pruebas acústicas de minas. Debido aestas circunstancias, se tuvo que abandonar el proyectode la computadora ABC, por lo cual ésta nunca superó laetapa de pruebas.

La primera máquina que llegó a estar en plena operaciónutilizando los principios ideados por Atanasoff fue lallamada ENIAC y fue ¡precisamente Mauchly! quien laconstruyó junto con otro colaborador llamado PresperEckert. Esta computadora tenía 19 000 bulbos, 1 500relevadores, cientos de miles de capacitores, resistorese inductores, y aproximadamente 500 000 conexionessoldadas. Por otro lado, consumía casi 200 kilovatios depotencia y llevaba a cabo una multiplicación en 2.8milisegundos (1 000 milisegundos = 1 segundo), esto es,¡mil veces más rápido que su predecesora, la computadoraMark II!

Aunque Mauchly sostenía que esta computadora eratotalmente diferente de la ABC, años más tarde la patentede la ENIAC fue invalidada. Después de una batalla dedemandas y contrademandas entre compañías constructorasde computadoras, por no pagar los derechos de patente,Atanasoff, apoyado por la IBM, inicio un juicio contra lapatente de la ENIAC. En este juicio, fue reconstruida laABC y se demostraron los principios que ésta utilizaba ensu funcionamiento. El 19 de octubre de 1973, 28 años

después de construida la ENIAC, el juez falló en favor deAtanasoff. Sin embargo, esta noticia no tuvo el impactoque era de esperar, debido a que ese mismo día salió a laluz el escándalo de Watergate.

En años subsecuentes ha habido un desarrollo acelerado delas computadoras electrónicas digitales: el invento deltransistor y el avance posterior en la electrónica hanlogrado una diferencia dramática en eficiencia y costos.Así se han logrado: un aumento en la rapidez con que seefectúan las operaciones matemáticas, un aumento en lacantidad de información que es posible manejar yalmacenar, la disminución del volumen de las máquinas, yla disminución de su costo de operación y mantenimiento.Para dar una idea de la magnitud de estos avances,diremos que una pequeña calculadora programable debolsillo tiene, hoy día, el mismo o un mayor poder parahacer cálculos que las voluminosas computadoras deprincipios de los años cincuenta, además de estar alalcance de casi cualquier bolsillo y tener un costo demantenimiento prácticamente nulo.

La historia reciente de la computación se ha dividido enlas llamadas generaciones de computadoras, cada una de lascuales está caracterizada por un desarrollo o unainnovación importante. A continuación haremos una brevereseña de estas etapas.

Primera generación:

bulbos

Ésta es la era de las computadoras construidas conbulbos; se inicia en 1951 con la primera computadoraindustrial, la llamada UNIVAC 1. Las computadoras de estageneración eran muy grandes y de funcionamiento costoso.Los bulbos eran de gran tamaño y consumían mucha energíaeléctrica, por lo que generaban mucho calor y se fundíancon frecuencia. Por lo anterior estas computadoras debíanser instaladas en cuartos con aire acondicionado, con elpropósito de mantener el sistema lo más frío posible paradisminuir la ocurrencia de fallas.

Segunda generación:

el transistor

La segunda generación de computadoras se inició, afinales de los años cincuenta, con el remplazo de losbulbos por transistores. Los transistores sondispositivos electrónicos útiles para generar, amplificary controlar señales eléctricas. Si comparamos los bulboscon los transistores, podemos ver que estos últimos sonmucho más pequeños, más confiables, generan menos calor yrequieren menos energía para su operación. Todo estocontribuyó a crear computadoras más pequeñas, baratas yconfiables. En esta época comenzó el auge de lascomputadoras desde el punto de vista comercial, secrearon muchas compañías dedicadas a su diseño yconstrucción.

Tercera generación:

las familias de computadoras

y los circuitos integrados

Las máquinas de la tercera generación se distinguen pordos aspectos importantes: por un lado, su componentefundamental lo constituyen los circuitos integrados, ypor otro, se forman las familias de computadorascaracterizadas por tener compatibilidad hacia arriba. Acontinuación hablaremos de estos dos puntos.

Los circuitos integrados están formados por un elementobase de silicio (chip), con un gran número detransistores y otras componentes integradas,interconectadas, que ocupan un espacio aproximado de 2.5cm de largo por 1.25 cm de ancho. El uso de estoscircuitos hizo a las computadoras más económicas,confiables, compactas y con un costo de operación muchomás bajo. Todo esto, con respecto a las computadoras degeneraciones anteriores.

Las familias de computadoras fueron creadas en un intento porlograr compatibilidad entre máquinas de modelosdiferentes, construidas por un mismo fabricante. Lascomputadoras de la segunda generación tenían el problemade que los programas escritos para máquinas pequeñas nopodían ser utilizados por máquinas más grandes (niviceversa), aunque ambas fuesen producidas por la mismafirma comercial. Al construirse máquinas compatibles sedio un paso muy importante desde el punto de vistacomercial y práctico, ya que permitió a pequeñas empresasen desarrollo el ir adquiriendo máquinas cada vez más

poderosas según el aumento de sus necesidades. De estamanera, los programas escritos para las máquinas pequeñaspodrían ejecutarse en máquinas más grandes de la mismafamilia, haciendo, en el peor de los casos, tan sólopequeñas modificaciones.

Cuarta generación:

el microprocesador

La cuarta generación de computadoras se caracteriza porel uso del microprocesador. Éste consiste en un solocircuito integrado, el cual contiene en su totalidad a launidad central de procesamiento (CPU), o cerebro de lacomputadora. En esta generación, el mayor logro consistióen hacer computadoras pequeñas, con mayor poder y menorvolumen y costo.

Quinta generación:

procesamiento en paralelo,

redes neuronales y

computadoras ópticas

Actualmente se trabaja en la creación de la quinta generaciónde computadoras. Esta nueva generación seguramenteincluirá dos cambios importantes. El primero consiste enun cambio fundamental en la manera de efectuar elprocesamiento de la información, y por tanto, implica eldiseño de arquitecturas conceptualmente diferentes.3 Elsegundo cambio que esperamos, consiste en el desarrollo yadaptación de nuevas tecnologías.

Las computadoras convencionales procesan la informaciónen serie, efectúan una instrucción después de otra. Comoconsecuencia, la mayor parte de la computadora y de susperiféricos están ociosos gran parte del tiempo mientrasesperan instrucciones del procesador central. Con elobjeto de proceso, han sido diseñadas grandes máquinas,llamadas supercomputadoras, cuyo propósito es llevar acabo el procesamiento de la información en paralelo; estoes, constan de varios elementos procesadores, cada uno delos cuales efectúa tareas de manera independiente ysimultánea. De esta forma, el trabajo se divide ensubtrabajos independientes, los cuales son asignados adiferentes elementos procesadores. Un ejemplo de estas

máquinas es la computadora modelo CRAY 1, la cual constade 64 elementos procesadores.

Estas supercomputadoras paralelas tienen un costo deproducción muy alto, que se refleja en su costo de usocomercial;4 de manera que existen muy pocas en elmundo. Debido a esto, en los Estados Unidos de América sehan organizado centros de supercomputación en los cualesse da servicio a un gran número de usuarios, a través dela línea telefónica.

Además de su elevado costo, este tipo de computaciónpresenta algunas inconveniencias: es difícil programaruna computación paralela, ya que el programador debefraccionar el problema en pequeñas tareas independientes,y optimizar la manera de asignarlas. Además, la mayorparte de los problemas no son paralelos por naturaleza; esdecir, no siempre es posible dividir un trabajo ensubtrabajos independientes, o hacerlo de maneraeficiente, pues algunos procesadores requieren de losresultados obtenidos por otros para poder continuar suscálculos. Como consecuencia, a menudo nos encontramos conque la más veloz supercomputadora opera casi a la mismavelocidad que un procesador en serie. Este problema esconocido como el cuello de botella de Neumann.

En los últimos años, ha aparecido un nuevo concepto en lacomputación, que probablemente proporcionará una solucióna algunos de los problemas recién indicados. Este nuevoconcepto, conocido con el nombre de redes neuronales, esradicalmente diferente al anterior: se utilizan elementoselectrónicos que emulan neuronas simplificadas, loscuales se conectan entre sí formando redes similares alas que se encuentran en el cerebro, aunque a una escalamucho menor. Recientemente, los investigadores dedicadosal desarrollo de las redes neuronales han logradoresultados sorprendentes, y todo parece indicar que, enel futuro, estos dispositivos podrán dotar a lascomputadoras de capacidades similares a las humanas parala solución de problemas complejos. Más adelanteexplicaremos las bases de las redes neuronales ydiscutiremos algunas de las perspectivas inmediatas encuanto a su aplicación a la computación.

El segundo cambio que creemos caracterizará a la quintageneración de computación consiste en el desarrollo yadaptación de nuevas tecnologías. No es posible continuar

reduciendo indefinidamente el tamaño de los circuitosintegrados, ni lograr que disipen menos energía, comotampoco es posible conseguir que los electrones setransporten con mayor rapidez. Si se desea hacer unamejora substancial, es necesario recurrir al desarrollo yadaptación de nuevas tecnologías que ofrezcan ventajassobre las actuales. En este terreno, se avecina la era delas computadoras ópticas, las cuales utilizarán fuentesde luz coherente (rayos láser), lentes, y fibras ópticaspara transportar a los fotones a lo largo de trayectoriasno rectas. Por consiguiente, funcionarán con base en eltransporte de fotones y no de electrones, como sucede enla actualidad. Por último, tal vez pronto veremosreflejado en las nuevas computadoras el hallazgo recientede materiales que son superconductores a temperaturasrelativamente altas (hasta ahora del orden de -150°C). Locual significa que si estos materiales se mantienen pordebajo de una cierta temperatura, sus electrones soncapaces de viajar sin disipar energía y por lo tanto, sinproducir calor.5

Programación HISTORIA

Los primeros lenguajes de programación surgieron de la ideade Charles Babagge, la cual se le ocurrió a este hombre a mediados del siglo XIX. Era un profesor matemático de la universidad de Cambridge e inventor inglés, que al principio del siglo XIX predijo muchas de las teorías en que se basan los actuales ordenadores. Consistía en lo que él denominaba la maquina analítica, pero que por motivos técnicos no pudo construirse hasta mediados del siglo XX. Con él colaboro Ada Lovedby, la cual es considerada como laprimera programadora de la historia, pues realizo programaspara aquélla supuesta máquina de Babagge, en tarjetas perforadas. Como 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 empezó a programar, los programadores utilizaron las técnicas diseñadas por Charles Babagge, 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. Se 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.En 1823 el gobierno Británico lo apoyo para crear el proyecto de una máquina de diferencias, un dispositivo mecánico para efectuar sumas repetidas. Pero Babagge se dedicó al proyecto de la máquina analítica, abandonando la máquina de diferencias, que se pudiera programar con tarjetas perforadas, gracias a la creación de Charles Jacquard (francés). Este hombre era un fabricante de tejidos y había creado un telar que podía reproducir automáticamente patrones de tejidos, leyendo la informacióncodificada en patrones de agujeros perforados en tarjetas de papel rígido. Entonces Babagge intento crear la máquina que se pudiera programar con tarjetas perforadas para efectuar cualquier cálculo con una precisión de 20 dígitos.Pero la tecnología de la época no bastaba para hacer realidad sus ideas. Si bien las ideas de Babagge no llegaron a materializarse de forma definitiva, su contribución es decisiva, ya que los ordenadores actuales responden a un esquema análogo al de la máquina analítica. En su diseño, la máquina constaba de cinco unidades básicas:

Unidad de entrada, para introducir datos e instrucciones. Memoria, donde se almacenaban datos y resultados

intermedios. Unidad de control, para regular la secuencia de ejecución

de las operaciones. Unidad Aritmético-Lógica, que efectúa las operaciones. Unidad de salida, encargada de comunicar al exterior los

resultados.Charles Babbage, conocido como el "padre de la informática"no pudo completar en aquella época la construcción del computador que había soñado, dado que faltaba algo fundamental: la electrónica. El camino señalado de Babbage,no fue nunca abandonado y siguiéndolo, se construyeron los primeros computadores.

Cuando surgió el primer ordenador, el famoso ENIAC (Electronic Numerical Integrator And Calculator), su programación se basaba en componentes físicos, o sea, que

se programaba, cambiando directamente el Hardware de la máquina, exactamente lo que sé hacia era cambiar cables de sitio para conseguir así la programación de la máquina. La entrada y salida de datos se realizaba mediante tarjetas perforadas.

DEFINICIÓNUn Lenguaje de Programación es un conjunto de reglas, notaciones, símbolos y/o caracteres que permiten a un programador poder expresar el procesamiento de datos y sus estructuras en la computadora. Cada lenguaje posee sus propias sintaxis. También se puede decir que un programa esun conjunto de órdenes o instrucciones que resuelven un problema específico basado en un Lenguaje de Programación.

CARACTERISTICAS Legibilidad: consiste en si el lenguaje tiene una sintaxis

sencilla, fáciles de leer y fáciles de compilar Ortogonalidad: permite combinar en una sola instrucción

diversas características del lenguaje, de esta manera se consiguen programas más cortos y más compactos.

Naturalidad para la aplicación: consiste en el lenguaje proporcione herramientas adecuadas para el fin para el que está pensado.

Soporte a la abstracción: Solucionar tipos de problemas y no problemas concretos. Debe permitir que el programador puedacrear funciones y procedimientos.

Entorno de programación: Los lenguajes han de ir acompañados de un entorno donde programar.

Portabilidad de los programas: Es un lenguaje que permite crear programas que funcionen en cualquier maquina pertenezca a la plataforma que quiera, distinto fabricante, etc.

TENDENCIAS DE LOS LENGUAJES DE PROGRAMACIÓNEl estudio de los lenguajes de programación agrupa tres intereses diferentes; el del programador profesional, el del diseñador del lenguaje y del Implementador del lenguaje.Además, estos tres trabajos han de realizarse dentro de lasligaduras y capacidades de la organización de una computadora y de las limitaciones fundamentales de la

propia "calculabilidad". El término "el programador" es un tanto amorfo, en el sentido de que camufla importantes diferencias entre distintos niveles y aplicaciones de la programación. Claramente el programador que ha realizado uncurso de doce semanas en COBOL y luego entra en el campo del procesamiento de datos es diferente del programador queescribe un compilador en Pascal, o del programador que diseña un experimento de inteligencia artificial en LISP, odel programador que combina sus rutinas de FORTRAN para resolver un problema de ingeniería complejo, o del programador que desarrolla un sistema operativo multiprocesador en ADA.En este trabajo, intentare clarificar estas distinciones tratando diferentes lenguajes de programación en el contexto de cada área de aplicación diferente. El "diseñador del lenguaje" es también un término algo nebuloso. Algunos lenguajes (como APL y LISP) fueron diseñados por una sola persona con un concepto único, mientras que otros (FORTRAN y COBOL) son el producto de desarrollo de varios años realizados por comités de diseño de lenguajes.Los lenguajes de " Alto Nivel" son los más utilizados como lenguaje de programación. Aunque no son fundamentalmente declarativos, estos lenguajes permiten que los algoritmos se expresen en un nivel y estilo de escritura fácilmente legible y comprensible por otros programadores. Además, loslenguajes de alto nivel tienen normalmente las características de " Transportabilidad". Es decir, están implementadas sobre varias máquinas de forma que un programa puede ser fácilmente " Transportado " (Transferido) de una maquina a otra sin una revisión sustancial. En ese sentido se llama "Independientes de la maquina". Ejemplos de estos lenguajes de alto nivel son PASCAL, APL y FORTRAN (para aplicaciones científicas), COBOL (para aplicaciones de procesamiento de datos), SNOBOL(para aplicaciones de procesamiento de textos), LISP y PROLOG (para aplicaciones de inteligencia artificial), C y ADA (para aplicaciones de programación de sistemas) y PL/I (para aplicaciones de propósitos generales).Los "Lenguajes Ensambladores" y los "Lenguajes Maquina" sondependientes de la máquina. Cada tipo de máquina, tal como VAX de digital, tiene su propio lenguaje maquina distinto y

su lenguaje ensamblador asociado. El lenguaje Ensamblador es simplemente una representación simbólica del lenguaje maquina asociado, lo cual permite una programación menos tediosa que con el anterior. Sin embargo, es necesario un conocimiento de la arquitectura mecánica subyacente para realizar una programación efectiva en cualquiera de estos niveles lenguajes.

PARADIGMAS EN LENGUAJES DE PROGRAMACIONExisten diversos lenguajes y paradigmas de programación para facilitar la tarea de programación en diferentes ámbitos. Por ejemplo, la programación orientada a objetos es un paradigma dirigido al mejoramiento en la calidad del software por medio de la observación de aspectos tales comola corrección, robustez, extensibilidad, compatibilidad y sobre todo la reusabilidad del software.La programación lógica, por su parte, es un paradigma orientado a la expresión de los problemas en términos lógicos para su posterior solución por métodos de inferencia y técnicas lógicas.En la práctica, cada paradigma de programación es implementado a través de diversos lenguajes. Solo como un ejemplo, la programación orientada a objetos encuentra recipientes en lenguajes JAVA, C++, Eiffel, Objetive c, etc.TENDENCIAS ACTUALESLa evolución de los lenguajes de programación continúa, tanto en la industria como en investigación. Algunas de lastendencias actuales incluyen:Aumentar el soporte para la programación funcional en lenguajes importantes utilizados comercialmente, incluida la programación funcional pura para hacer el código más fácil de razonar y de paralelizar (tanto en macro como en micro-niveles).Construir lenguajes para apoyar la programación concurrentey distribuida.Mecanismos para añadir al lenguaje verificación en cuanto aseguridad y confiabilidad: chequeo sintáctico extendido, control de flujo de información, seguridad de hilos.Mecanismos alternativos de modularidad: mixins, delegados, aspectos.

Desarrollo de software orientado a componentes.Mayor énfasis en cuanto a distribución y movilidad.Integración con bases de datos, incluyendo XML y bases de datos relacionales.Programación Orientada a Aspectos (AOP).Lenguajes que soporten programar sobre los procesadores de la GPU en paralelo, como OpenCL.

CLASIFICACIÓN DE LOS LENGUAJES DE PROGRAMACIÓNLos lenguajes de programación son clasificados de muchas formas, dentro de estas se encuentran:CLASIFICACIÓN SEGÚN NIVEL DE ABSTRACCIÓNLos lenguajes de bajo nivel:Son lenguajes de programación que se acercan al funcionamiento de una computadora. El lenguaje de más bajo nivel es, por excelencia, el código máquina. A éste le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros de memoria de la computadora de forma directa.Los lenguajes de medio nivel:Hay lenguajes de programación que son considerados por algunos expertos como lenguajes de medio nivel (como es el caso del lenguaje C) al tener ciertas características que los acercan a los lenguajes de bajo nivel pero teniendo, almismo tiempo, ciertas cualidades que lo hacen un lenguaje más cercano al humano y, por tanto, de alto nivel.Los lenguajes de alto nivel:Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés. En BASIC, el lenguaje de alto nivel más conocido, los comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si CONTADORes igual a 10. Por 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.

CLASIFICACIÓN SEGÚN PARADIGMAParadigma imperativo:

Describe la programación como una secuencia instrucciones ocomandos que cambian el estado de un programa. El código máquina en general está basado en el paradigma imperativo. Su contrario es el paradigma declarativo. En este paradigmase incluye el paradigma procedimental (procedural) entre otros.Paradigma declarativo:No se basa en el cómo se hace algo (cómo se logra un objetivo paso a paso), sino que describe (declara) cómo es algo. En otras palabras, se enfoca en describir las propiedades de la solución buscada, dejando indeterminado el algoritmo (conjunto de instrucciones) usado para encontrar esa solución. Es más complicado de implementar que el paradigma imperativo, tiene desventajas en la eficiencia, pero ventajas en la solución de determinados problemas.

Paradigma estructurado:La programación estructurada se basa en una metodología de desarrollo de programas llamada refinamientos sucesivos: Seplantea una operación como un todo y se divide en segmentosmás sencillos o de menor complejidad. Una vez terminado todos los segmentos del programa, se procede a unificar lasaplicaciones realizadas por el pool de programadores.

Paradigma orientado a objetos:La programación orientada a objetos, intenta simular el mundo real a través del significado de objetos que contiene

características y funciones. Los lenguajes orientados a objetos se clasifican como lenguajes de quinta generación.

Paradigma funcional:Este paradigma concibe a la computación como la evaluación de funciones matemáticas y evita declarar y cambiar datos. En otras palabras, hace hincapié en la aplicación de las funciones y composición entre ellas, más que en los cambiosde estados y la ejecución secuencial de comandos (como lo hace el paradigma procedimental). Permite resolver ciertos problemas de forma elegante y los lenguajes puramente funcionales evitan los efectos secundarios comunes en otro tipo de programaciones.

Paradigma lógico:Se basa en la definición de reglas lógicas para luego, a través de un motor de inferencias lógicas, responder preguntas planteadas al sistema y así resolver los problemas.

LOGICALa programación lógicalos programas se consideran como una serie de aserciones lógicas. De esta forma, el conocimientose representa mediantereglas, tratándose de sistemas declarativos.

PROLOG

CLASIFICACIÓN SEGÚN LA FORMA DE EJECUCIÓN Lenguaje compilados:

Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que

la computadora entienda (lenguaje máquina con código binario). Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el código.

Lenguaje interpretados:Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanenteel código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producción futura, el programador sólo carga el programafuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado enel sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposicióndel programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el código objeto para utilizarlo posteriormente.

LENGUAJES DE PROGRAMACIÓN FORTRAN

Definición:Es un lenguaje de programación para el desarrollo de aplicaciones matemáticas y científicas, fue el primer lenguaje de programación de alto nivel. Estos lenguajes de alto nivel tienen entre otras las ventajas que pueden utilizarse en cualquier computadora y son más afines al lenguaje humanoEn 1991 surge FORTRAN90, un desarrollo mayor del idioma pero que incluye todos los elementos de FORTRAN77 para facilitar la compatibilidad. Finalmente, en 1997, surge FORTRAN95 o High Performance Fortran (HPF).

Figura 01: programa en FORTRAN SIMULA

Definición:Es un lenguaje de programación orientada a objetos (OOP). Fue el primero de los lenguajes orientado a objetos. Variosaños después de su desarrollo, casi todos los lenguajes

modernos comenzaron a utilizar sus principios de orientación a objetos. Así fue como se popularizaron términos como clases, objetos, instancias, herencia, polimorfismo, etc.Historia:Simula fue desarrollado por los noruegos Ole Johan Dahl y Kristen Nygaard en mayo de 1967, buscaban un lenguaje adecuado para la simulación de eventos discretos (su nombrees una contracción de Simularían Languaje).

Su primer compilador estuvo disponible en 1964, para la serie 1100 de UNIVAC, si bien hasta 1967 no adquirió una amplia funcionalidad. En la actualidad hay disponibles diversas versiones freeware de su compilador.Hoy en día, los creadores de Simula han desarrollado un nuevo lenguaje de programación, llamado Beta, que generaliza todas las construcciones del lenguaje en una única idea denominada patrón.

LOGODefinición:Logo es un lenguaje derivado de Lisp. Su característica más conocida es el uso de los llamados «gráficos de tortuga», un sistema muy intuitivo de realizar gráficos.El Logo es uno de los pocos lenguajes de programación que utiliza el código en español. Es un lenguaje de alto nivel,funcional y estructurado, muy fácil de aprender, por ello se utiliza mucho en el aprendizaje de niños y jóvenes.Historia:El Logo es un lenguaje de programación que nace en los años60. Su creador fue el matemático Seymour Papert, que creo la primera versión de este lenguaje en el año 1967.

El Logo se creó con el fin de ser accesible a principiantes, pero a la vez ser capaz de conseguir elaborar programas sofisticados y complejos hechos por expertos programadores.

MODULADefinición:Es un descendente del lenguaje de programación pascalHistoria:Se desarrolló en suiza a finales de 1970 por Niklauswirth, la misma persona que diseño pascal. La principal innovaciónde modula más de pascal es un sistema de módulos, que se utiliza para agrupar conjuntos de las declaraciones respectivas en las unidades de programa, de ahí el nombre de modula.

CDefinición:Más conocido para desarrollar software de sistemas y aplicaciones. Es un lenguaje muy eficiente en este campo. El lenguaje de programación C está disponible multitud de plataformas diferentes, mucho más que cualquier otro lenguaje. Además, en principio, el lenguaje de programaciónC fue creado para fomentar la programación independientemente de la máquina.Característica:Es un lenguaje simple, flexible porque permite programar con multitud de estilos, el lenguaje de programación C te impide programar operaciones sin sentido, un reducido conjunto de palabras clave, tiene acceso a memoria de bajo nivel, permite que los datos relacionados se combinen y se manipulen como un todo, etc.

TURBO PASCALDefinición:Es un sistema de desarrollo de software que incluye un compilador y un entorno de desarrollo integrado (IDE) para el lenguaje de programación Pascal, desarrollado por Borland y liderado por Philippe Kahn.Fue lanzado en 1983 para MS-DOS, CP/M, CP/M-86 y, posteriormente, para Microsoft Windows, fue durante mucho tiempo la versión más extendida del lenguaje Pascal. También hubo una versión de corta vida para Apple Macintosh.Historia:

Desarrollado a principios de los años 70 por Nyklaus Wirth,en la Universidad Técnica de Zurich, Suiza; para enseñar programación estructurada. Hay muchas originadas a partir de este primer desarrollo. Ejemplo: Turbo Pascal 7.0 de la compañía Borland.El nombre fue elegido en honor de Blaise Pascal (1623-1662), un brillante científico y matemático francés entre cuyos logros se encuentra la primera máquina calculadora mecánica en el mundo

BASICDefinición:Es un lenguaje de programación que se creó con fines pedagógicos, era el lenguaje que utilizan las microcomputadoras de los años 80. Actualmente sigue siendo muy conocido y tienen muchísimos dialectos muy diferentes al original.El BASIC es un lenguaje de programación muy amplio, con unasintaxis fácil, estructura sencilla y un buen conjunto de operadores. No es un lenguaje específico, es polivalente, potente, se aprende rápidamente, en poco tiempo cualquier usuario es capaz de utilizar casi la totalidad de su código.Historia:Los creadores del BASIC fueron John Goerge Kemeny y Thomas Eugene Kurtz en el año 1964. Fue inventado para permitir a los estudiantes escribir programas usando terminales de computador de tiempo compartido. Con el BASIC se quiso hacer un lenguaje de programación mucho más sencillo que los que existían por aquel entonces. Los principios que originaron la creación del BASIC eran: que fuese fácil de usar por todos, crear un lenguaje de programación de propósito general, que se le pudiese incorporar características avanzadas y siguiese siendo de fácil uso para los principiantes, ser interactivo, que los mensajes de error fuesen claros, que respondiese rápidamente a los programas pequeños, que no fuese necesario tener conocimiento del hardware de la computadora, y que protegiese al usuario del sistema operativo.

LISPDefinición:

En informática, acrónimo de List Processing. Un lenguaje deprogramación para ordenadores o computadora orientada a la generación de listas. El LISP es un lenguaje interpretado, en el que cada expresión es una lista de llamadas a funciones. Este lenguaje se sigue utilizando con frecuenciaen investigación y en círculos académicos, y fue considerado durante mucho tiempo el lenguaje modelo para lainvestigación de la inteligencia artificial (IA), aunque elProlog ha ganado terreno durante los últimos años.Historia:Desarrollado en 1959-1960 por John McCarthy y usado principalmente para manipular listas de datos o de símbolos. El lenguaje LISP constituyó un cambio radical conrespecto a los lenguajes procedurales (FORTRAN, ALGOL) que se desarrollaban por entonces

COBOLDefinición:(Common Business Oriented Languaje = lenguaje orientado a negocios comunes). Se ha usado mucho desde los años 60 en aplicaciones de computadoras aplicadas a la administración.Es considerado un lenguaje de fácil aprendizaje. Los programas deben contener cuatro secciones: identificación, entorno, datos y procedimientos. Una herencia de sus lejanos orígenes es el uso de una convención basada en las columnas (por ejemplo, las sentencias deben estar entre lascolumnas 12 y 72), aunque versiones modernas pueden usarse de otra forma.Historia:Se inventó en los años 60. Nació con el objetivo de ser un lenguaje de programación versátil, que pudiese ser usado encualquier computador.En los años 60 era muy difícil que el software creado para una máquina concreta sirviese para otra diferente. Porque la mayoría de estas computadoras eran incompatibles entre sí. Con el Cobol se quería conseguir este lenguaje de programación que fue compatible con los principales modelosde computadoras.Se quería además conseguir con este nuevo lenguaje de programación que estuviese destinado a los negocios, concretamente a lo que conocemos como informática de gestión. Así nació el Cobol, como un lenguaje de

programación compatible con la mayoría de las computadoras y destinado principalmente a la gestión.

ALGOLDefinición:(ALGOritmic Language) Fue el primer lenguaje de programación de proceso estructurado de alto nivel. Fue orientado al uso de quienes participan en proyectos científicos y matemáticos.Historia:Fue presentado en 1958. Un grupo internacional de matemáticos europeos y americanos, pretendían crear un lenguaje común normalizado que les permitiera el intercambio de algoritmos, aunque está en desuso, fue el primero que incorporo conceptos claves para la programaciónactual.

PASCALDefinición:Es el lenguaje más sencillo que posibilita el acceso a la informática teórica: descomposición modular, recursividad, punteros, etc.Historia:El lenguaje Pascal aparece por primera vez en 1971, diseñado por el profesor Niklaus Wirth con el objetivo de facilitar el aprendizaje de la programación a sus alumnos. Pascal fue muy utilizado en la década de los 80 y los 90, yes el precursor de lenguajes como Delphi.

CPLDefinición:Combined Programming Language(CPL) fue un lenguaje de programación desarrollado conjuntamente entre el Laboratorio de Matemática en la Universidad de Cambridge y la Unidad Computación de la Universidad de Londres durante la década de 1960. El esfuerzo colaborativo fue el responsable por el "combinado" en el nombre del lenguaje (anteriormente el nombre era Cambridge Programming Languaje). En 1963 estaba siendo implementado en la computadora Titan, en Cambridge, y en la computadora Atlas,en Londres.Este lenguaje estuvo fuertemente influenciado por ALGOL 60 pero, en vez de ser extremadamente pequeño, elegante y simple, CPL era grande, moderadamente elegante y complejo.

Fue intencional por el bien de la programación científica (en la manera de FORTRAN y ALGOL) y también para la programación comercial (en la manera de COBOL). De hecho, puede ser visto como un esfuerzo similar a PL/I en esta manera, o esfuerzos posteriores como Ada.CPL resultó mucho para las pequeñas computadoras y las inmaduras tecnologías de compilación de la época. Compiladores propiamente funcionales fueron escritos probablemente alrededor de la década del 70, pero el lenguaje nunca fue muy popular y pareció haber desaparecidosin rastros en la misma década.Un lenguaje posterior basado en CPL, llamado BCPL (por Basic CPL, aunque originalmente Bootstrap CPL) fue un lenguaje mucho más simple diseñado principalmente como un lenguaje para programación de sistemas, particularmente para escribir compiladores. BCPL influenció, vía el lenguaje B, al lenguaje de programación C, uno de los más importantes lenguajes hasta la fecha

C++Definición:El C++ es un lenguaje orientado a objetos al que se le añadieron características y cualidades de las que carecía el lenguaje C.Historia:Fue creado en los años 80 por Bjarne Stroustrup basando en el lenguaje C. Para 1983 dicha denominación cambió a la de C++.De esta forma nació el C++ y como sucedía con el C depende mucho del hardware, tiene una gran potencia en la programación a bajo nivel, y se le añadieron elementos que nos permiten programar a alto nivel. El C++ es uno de los lenguajes más potentes porque nos permite programar a alto y a bajo nivel, pero a su vez es difícil de aprender porquees necesario hacerlo casi todo manualmente.El nombre fue propuesto por Rick Masciatti, al utilizarse C++ fuera de los laboratorios donde se creó. Con el nombre de C++ que quiso dar a entender que el C++ es una extensióndel lenguaje C.

AWKDefinición:Es un lenguaje de programación diseñado para el análisis y procesamiento ya sean ficheros o flujo de datos.

AWK es ejemplo de un lenguaje de programación que usa ampliamente el tipo de datos de listas asociativas (es decir, listas indexadas por cadenas clave), y expresiones regulares.Historia:El nombre AWK deriva de las iniciales de los apellidos de sus autores: Alfred Aho, Peter Weinberger, y Brian Kernighan. awk, cuando está escrito todo en minúsculas, hace referencia al programa de Unix que interpreta programas escritos en el lenguaje de programación AWK.AWK fue una de las primeras herramientas en aparecer en Unix y ganó popularidad como una manera de añadir funcionalidad a las tuberías de Unix. La implementación de alguna versión del lenguaje AWK es estándar en casi todo sistema operativo tipo Unix moderno. AWK es mencionado en las Single UNIX Specification (especificaciones básicas de UNIX) como una de las utilidades necesarias de todo sistemaoperativo Unix. Se pueden instalar implementaciones de AWK en casi todos los demás sistemas operativos.

PERLDefinición:Un lenguaje de programación diseñado por Larry Wall en 1987. Perl toma características del lenguaje C, del lenguaje interpretado bourne shell, AWK, sed, Lisp y, en ungrado inferior, de muchos otros lenguajes de programación.Estructuralmente, Perl está basado en un estilo de bloques como los del C o AWK, y fue ampliamente adoptado por su destreza en el procesado de texto y no tener ninguna de laslimitaciones de los otros lenguajes de script.Historia:Larry Wall comenzó a trabajar en Perl en 1987 mientras trabajaba como programador en Unisys. El lenguaje se expandió rápidamente en los siguientes años. Perl 2, publicado en 1988, aportó un mejor motor de expresiones regulares. Perl 3, publicado en 1989, añadió soporte para datos binarios Hasta 1991 la única documentación de Perl era una simple (ycada vez más larga) página de manual Unix. En 1991 se publicó Programming Perl (el libro del camello) y se convirtió en la referencia de facto del lenguaje. Al mismo tiempo, el número de versión de Perl saltó a 4, no por

marcar un gran cambio en el lenguaje, sino por identificar a la versión que estaba documentada en el libro.Perl 4 trajo consigo una serie de lanzamientos de mantenimiento, culminando en Perl 4.036 en 1993. En este punto, Larry Wall abandonó Perl 4 para comenzar a trabajar en Perl 5. Perl 4 se quedaría en esa versión hasta hoy.El desarrollo de Perl 5 continuó en 1994. La lista de correo perl5-porters se estableció en mayo de 1994 para coordinar el trabajo de adaptación de Perl 5 a diferentes plataformas. Es el primer foro para desarrollo, mantenimiento y adaptación de Perl 5.Perl 5 fue publicado el 17 de octubre de 1994. Fue casi unacompleta reescritura del intérprete y añadió muchas nuevas características al lenguaje, incluyendo objetos, referencias, paquetes y módulos. A destacar, los módulos proveen de un mecanismo para extender el lenguaje sin modificar el intérprete. Esto permitió estabilizar su núcleo principal, además de permitir a los programadores dePerl añadirle nuevas características.El 26 de octubre de 1995, se creó el Comprehensive Perl Archive Network (CPAN). CPAN es una colección de sitios web que almacenan y distribuyen fuentes en Perl, binarios, documentación, scripts y módulos.En 2008, Perl 5 continua siendo mantenido. Características importantes y algunas construcciones esenciales han sido añadidas, incluyendo soporte Unicode, Hilos (threads), un soporte importante para la programación orientada a objetosy otras mejoras.

VISUAL BASICDefinición:Es uno de los lenguajes de programación que utiliza una interfaz visual es decir que nos permite programar en un entorno gráfico, nos permite realizar un gran número de tareas sin escribir código, simplemente realizando operaciones con el ratón sobre la pantalla de la computadora.Este lenguaje de programación es uno de los que más interésdespiertan entre los programadores. Porque este lenguaje deprogramación, el Visual Basic, le facilita la realización de tareas complejas en poco tiempo y a los que están comenzado a programar con Visual Basic ven como son capaces

de realizar pequeños programas al poco tiempo de haber comenzado a estudiar este lenguaje de programación.Historia:El Visual Basic es un lenguaje de programación que provienedel BASIC. La primera versión de este lenguaje de programación Visual Basic fue presentada en el año 1991. Laintención de este primer programa era simplificar la programación utilizando un entorno de trabajo claro que permitiera crear interfaces gráficas facilitando así la programación.Las sintaxis que utiliza este lenguaje de programación proviene del conocido BASIC, pero completada con comandos ycódigos de otros lenguajes más modernos. Este lenguaje de programación Visual Basic tiene un apartado dedicado a la Programación Orientada a Objetos.Es un lenguaje muy apropiado para el manejo de bases de datos. Muchas empresas lo utilizan para la gestión de sus bases de datos porque su utilización es sencilla y abundan los programadores de este lenguaje.

VISUAL BASIC SCRIPTDefinición:Es un lenguaje interpretado por el Windows Scripting Host de Microsoft. Su sintaxis refleja su origen como variación del lenguaje de programación Visual Basic. Ha logrado un apoyo significativo por parte de los administradores de Windows como herramienta de automatización, ya que, conjunta y paralelamente a las mejoras introducidas en los sistemas operativos Windows donde opera fundamentalmente, permite más margen de actuación y flexibilidad que el lenguaje batch (o de proceso por lotes)Historia:Desarrollado a finales de los años 1970 para el MS-DOS

PYTHONDefinición:Es un lenguaje de programación moderno, está orientado a objetos, es muy sencillo de usar a la vez potente y de código abierto.El Python nos permite separar el programa en módulos, este lenguaje tiene una gran variedad de módulos estándar que sepueden utilizar para programar, o incluso como una base para aprender a programar en Python.

El Python es un lenguaje interpretado lo que ahorra muchísimo tiempo en la creación de programas puesto que no es preciso compilar su código. El intérprete que usa el Python se puede utilizar de modo interactivo lo que nos permite experimentar con este lenguaje mientras programamos.Este lenguaje es un lenguaje de programación que permite que podamos programar en varios estilos: Programación orientada a objetos, programación estructurada, programación funcional y programación orientada a aspectos.A esto se le conoce como lenguaje de programación multiparadigma.Historia:

DELPHIDefinición:Es un lenguaje de programación que se creó con el propósitode agilizar la creación de software basándolo en una programación visual. En el Delphi se utiliza una versión más actual del Pascal conocida como Object Pascal como lenguaje de programación.El Delphi es un lenguaje muy versátil se usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo, establecer comunicación entre un servidor web y un programa, aplicaciones de consola, conectividad con bases de datos, para realizar aplicaciones visuales, etc.Con el Delphi podemos programar tanto controladores como servidores de automatización. También podemos utilizar en el Delphi componentes visuales de otros lenguajes de programación.Este lenguaje produce aplicaciones en código máquina, por lo que la computadora las interpreta inmediatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajes de programación.Historia:Es producido comercialmente por la empresa estadounidense aberform, adquirida en Mayo de 2008 por Embarcadero Technologies, una empresa del grupo Thoma Cressey Bravo, enuna suma que ronda los 30 millones de dólares. En sus diferentes variantes, permite producir archivos ejecutablespara Windows, Linux y la plataforma .NET.

JAVA SCRIPT

Definición:Es un lenguaje de programación interpretado, lo que significa que no necesita ser compilado. Proviene del Java y se utiliza principalmente para la creación de páginas web. El JavaScript es una mezcla entre el Java y el HTML.Historia:Su creador fue Brendan Eich. Al principio se le llamo Mocha, más tarde LiveScript, hasta que en el año 1995 se lellamo JavaScript.Pero debemos saber que el JavaScript es un lenguaje muy diferente del Java. El JavaScript aunque es un lenguaje de programación orientado a objetos no tiene herencia, al contrario del Java que si la tiene, sino que el JavaScript es más bien un lenguaje orientado a eventos.Otra diferencia entre ambos lenguajes es que mientras con el Java podemos crear aplicaciones autónomas como son los applets (programas que podemos incluir en las páginas web),el JavaScript es un lenguaje que se incorpora dentro de la página web, formando parte del código HTML sin el que no puede existir.Estos dos lenguajes tienen en común gran parte de su sintaxis, su estructura, establecen jerarquía de objetos para poder definir sus propiedades, etc. Tienen muchos elementos comunes con los lenguajes C y C++.Podemos incluir el código del JavaScript en cualquier página web o documento HTML, desde el punto de vista cliente como servidor en documentos PHP, Asp, etc. Este código va incluido dentro de las etiquetas de HTML, de estamanera:

Interpretar el significado epistemológico de la palabraprogramación, deducimos de forma considerada que hacereferencia al concepto programa, en latín es “programma”determinando que se entiende como las diversas actividadesque son planeadas para poder actuar de manera organizada,pero también destacamos que dicha palabra proviene delverbo en latín, de “Prografo”, que es “antes y escribir” seadecua de forma excelente a los programas de computación yaque son “órdenes pre-escritas”.

Pero que es la programación para la Real Academia Española,es la “acción y efecto de programar”. Si el interés esdestacar una definición mayormente actualizada.

Para saber cómo el concepto de programación fuedesarrollando y modificándose para mejorar su aplicaciónprimeramente hay que deducir que es la programaciónneurolingüística la misma se considera como la aptitudpráctica para orientar de forma organizada la notoriedad oel éxito de las personas. Primeramente su utilizaciónsolamente se usaba en áreas más precisamente terapéuticospero sus excelentes resultados permitieron ser adaptadas yponerlas de manifiesto en diferentes ámbitos profesionales,ayudando y beneficiando en amplia medida al individuo.

Destacando dicho concepto dentro del ámbito de la cienciatecnológica comienza a aplicarse dicha concepción parapoder de forma óptima programar una computadora.

Primeramente era más común utilizar una programación linealo secuencial, se realizaban varios pasos consecutivos juntocon estructuras consecutivas, pero su poca flexibilidad,producto de ser una forma lineal, terminaba siendocomplicada y dificultosa la tarea y requería un mayordesgaste del tiempo, debido a ello se dio lugar a una nuevaopción conocida como programación estructurada el fin deesta, es separar las partes más dificultosas en segmentospero independiente dichos módulos se comunican entre sí.

Pero el avance de la programación continuo para dar lugar ala reconocida programación orientada a objetos, se intentasimplificar la labor de manera organizada, entonces sedividen los programas en mínimas unidades lógicas decódigos, dichos códigos son considerados objetos, o sea queestos de forma independiente se relacionan entre síproporcionando mensajes. De esta forma se logra rapidez ysimplicidad para obtener resultados óptimos sumamenteligados al concepto epistemológico de la palabra en sí.