10
03/09/12 Nombre de la primera página 1/10 190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255 Página Principal Mis cursos poo14s Tema 1 Wiki - Evolución de los lenguajes de programación Nombre de la primera página Ver Buscar wikis Participantes Noticias Cursos Inicio Usted se ha identificado como Javier Noboa (Salir) EVOLUCIÓN DE LOS LENGUAJES DE PROGRAMACIÓN. Vamos a llevar a cabo una introducción muy general sobre la evolución de los lenguajes en informática, para entrar posteriormente y más a fondo, en describir la aparición, los principios teóricos y la evolución de la Programación Orientada al Objeto. Esta introducción debe ser una visión general y claraLa evolución de los lenguajes de programación la podemos analizar desde tres perspectivas: Evolución en cuanto a la tecnología Evolución en cuanto a la conceptualización Evolución en cuanto al enfoque Versión imprimible Nombre de la primera página BIENVENIDOS A LA WIKI DE 4 SEMESTRE ING.SISTEMAS "UNIANDES" EVOLUCIÓN DE LOS LENGUAJES DE PROGRAMACIÓN. Nombres de Colaboradores: Daniel Ubilluz, Jenyfer Utitiaja, Diego Sanchez, Moisés Andrade ,Alexis Díaz , Alan López, Luis Cambal, Eduardo Díaz, Alexis pilco, Javier Noboa, Henry Cambal, Jean Carlos Editar Comentarios Historia Mapa Archivos Navegación Página Principal Páginas del sitio Mi perfil Mis cursos poo14s Participantes General Tema 1 Tema 2 Tema 3 Tema 4 pv23s Ajustes Administración del curso Ajustes de mi perfil Área personal Elementos de la POO Encapsulamiento Sensores de movimiento Wiki - Evolución de los lenguajes de programación Nuevo Ver Editar Comentarios Historia Mapa Archivos Identifiquemos clases C# J# Java Arreglos de objetos Laboratorio - Clases Laboratorio - Encapsulamiento Prueba Qué es un Wiki??? Ver

Evolución de los lenguajes de programación

Embed Size (px)

Citation preview

Page 1: Evolución de los lenguajes de programación

03/09/12 Nombre de la primera página

1/10190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255

Página Principal ► Mis cursos ► poo14s ► Tema 1 ► Wiki - Evolución de los lenguajes de programación ► Nombre de la primera página ► Ver

Buscar wikis

ParticipantesNoticiasCursosInicio

Usted se ha identificado como Javier Noboa (Salir)

EVOLUCIÓN DE LOS LENGUAJES DEPROGRAMACIÓN.

Vamos a llevar a cabo una introducción muy general sobre la evoluciónde los lenguajes en informática, para entrar posteriormente y más afondo, en describir la aparición, los principios teóricos y la evoluciónde la Programación Orientada al Objeto.

Esta introducción debe ser una visión general y claraLa evolución delos lenguajes de programación la podemos analizar desde tresperspectivas:

Evolución en cuanto a la tecnologíaEvolución en cuanto a la conceptualizaciónEvolución en cuanto al enfoque

Versión imprimible

Nombre de la primera página

BIENVENIDOS A LA WIKI DE 4 SEMESTRE ING.SISTEMAS

"UNIANDES"

EVOLUCIÓN DE LOS LENGUAJES DE PROGRAMACIÓN.

Nombres de Colaboradores: Daniel Ubilluz, Jenyfer Utitiaja, Diego Sanchez, Moisés Andrade ,AlexisDíaz , Alan López, Luis Cambal, Eduardo Díaz, Alexis pilco, Javier Noboa, Henry Cambal, Jean Carlos

Editar Comentarios Historia Mapa Archivos

Navegación

Página Principal

Páginas del sitio

Mi perfil

Mis cursos

poo14s

Participantes

General

Tema 1

Tema 2

Tema 3

Tema 4

pv23s

Ajustes

Administración delcurso

Ajustes de mi perfil

Área personal

Elementos de laPOO

Encapsulamiento

Sensores demovimiento

Wiki -Evolución delos lenguajesdeprogramación

Nuevo

Ver

Editar

Comentarios

Historia

Mapa

Archivos

Identifiquemosclases

C# J# Java

Arreglos deobjetos

Laboratorio -Clases

Laboratorio -Encapsulamiento

Prueba

Qué es unWiki???

Ver

Page 2: Evolución de los lenguajes de programación

03/09/12 Nombre de la primera página

2/10190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255

Toa y el resto de compañeros de 4 semestre de Ing.Sistemas .

EVOLUCIÓN EN CUANTO A LA TECNOLOGÍA

Introducción

Conocer la historia del desarrollo de cualquier campo del saber humano es de gran importancia para aquellos queplaneen desenvolverse en dicho campo, ya que tiene cuando menos dos beneficios tangibles: Conocer el estadopromedio del arte y evitar cometer errores ya cometidos. Así es más fácil tomar las decisiones correctas ysobrevivir sin esfuerzo a muchas modas que estridentemente proclaman la reinvención del hilo negro. Como dijo elfilósofo español Gorge Santayana “El que no conoce la historia está condenado a repetirla”.

Es comúnmente aceptado que la historia de la computación moderna comienza con Charles Babbage, en 1822, sinembargo las primeras computadoras mecánicas y eléctricas no contaban con un lenguaje de programación talcomo lo conocemos ahora, la mayoría de ellas era construida para llevar a cabo una tarea específica; por lo tanto laforma de programarla era particular a cada computadora. Fue en el año de 1945 cuando el matemático Jhon VonNeumann[1] fascinado por las posibilidades de ENIAC[2], elaboró un estudio que demostró que una computadorapodía tener una estructura física muy simple y fija, y aun así ser capaz de ejecutar cualquier tipo de programamediante un control correcto, sin la necesidad de modificar la computadora para esto.

A partir de esta innovación de Von Neunmann, que en conjunto se conoce como la técnica de programaalmacenado es que se inicia la era de los lenguajes de programación.

Los primeros lenguajes y las cinco generaciones de Lenguaje de Programación

Primera Generación

De Maquina: Son los Lenguajes más básicos. Estos lenguajes se representan por bytes (que son númerosbinarios). Estos valores pueden corresponder a que la electricidad esté encendida o apagada .

A partir de estos dos estados se forman los esquemas de codificación que permiten generar letras, números ycaracteres especiales.

Segunda Generación

Lenguajes de Ensambladores: El lenguaje ensamblador constituye el primer intento de sustitución del lenguajemáquina por uno más cercano al usado por los humanos. Este acercamiento a las personas se plasma en lassiguientes aportaciones:

Uso de una notación simbólica o nemotécnica para representar los códigos de operación

Page 3: Evolución de los lenguajes de programación

03/09/12 Nombre de la primera página

3/10190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255

direccionamiento simbólicoSe permite el uso de comentarios entre las líneas de instrucciones, haciendo posible la redacción deprogramas más legibles.

Tercera Generación

Lenguajes de Alto Nivel: Son llamados porque se asemejan mas al lenguaje que utiliza los seres humanos acomunicarse.

Fueron desarrolladas con la finalidad de facilitar el proceso de programación

Entre los lenguajes de Tercera Generación se Incluyen:

FORTRANCOBOLBASICPASCALC Y C++JAVA

Shortcode

En 1949,aparece el primer lenguaje que se usó en computadoras electrónicas: “Shortcode”, requería que elprogramador convirtiera (compilara) su programa a 0's y 1's de manera manual.

A-0

Fue hasta el año de 1951, que Grace Hopper[3] trabajando para Remington Rand, comienza a desarrollar el primercompilador, lo que trajo consigo una programación más rápida.

Fortran

Es en el año de 1957 cuando aparece el primero de los grandes lenguajes de programación de uso aunactualmente: FORTRAN, que proviene de Fórmula TRANslating system.

Fue desarrollado por IBM para cómputo científico, el líder del proyecto fue John Backus, que después contribuiríaen ALGOL.

El lenguaje original solo incluía FOR, DO y GOTO. También definió los tipos de datos básicos: TRUE, FALSE,integer, real, double precisión.

El lenguaje original era bueno manejando números, pero malo manejando entrada y salida, lo cual propicio laaparición de otros lenguajes orientados a negocios.

LISP

En el año de 1958, el profesor John McCarthy[4] del M.I.T. comenzó a desarrollar la teoría de un lenguaje deprocesamiento de listas. En 1959 aparece públicamente la primer implementación llamada LISP 1.5.

En 1960 McCarthy publica un histórico articulo[5] acerca de los fundamentos de LISP que hizo por la programaciónlo mismo que hizo Euclídes por la geometría, demostrar como con unos cuantos operadores y una notación parafunciones es posible construir un lenguaje de programación completo[6].

Es importante hacer notar que McCarthy no solo marco un hito en la historia los lenguajes de programación sino

Page 4: Evolución de los lenguajes de programación

03/09/12 Nombre de la primera página

4/10190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255

que creo un modelo de programación que ha demostrado ser superior, tanto que podemos decir que en laactualidad existen dos grandes modelos de programación el de C y el de Lisp, y podemos notar que los lenguajesdel modelo C tratan de parecerse cada vez más a Lisp.

ALGOL

En el año de 1958 un comité crea la especificación del lenguaje ALGOL, la tenia la particularidad de no definir lamanera de manejar entrada y salida, dejando esta parte libre a cada implementación.

Es en 1960 cuando aparece el lenguaje ALGOL 6.0 el primer lenguaje estructurado en bloques. Este lenguaje fuemuy popular en el segundo lustro de los 60's.

Su principal contribución es ser la raíz del árbol que ha producido lenguajes tales como pascal, C, C++, y Java.

COBOL

En 1959, Conference on Data Systems and Languages (CODASYL) crea COBOL, un lenguaje para negocios; quefuera fácil de aprender para gente que no tuviera formación en ciencias de la computación. Sus únicos tipos dedatos fueron cadenas y números. Lo que le dio la característica de poder agruparlos en arreglos sencillos, de modoque los datos podían ser organizados y seguidos de una mejor manera. Las sentencias de COBOL se parecenmucho a las usadas por el idioma inglés, haciendo que fuera fácil de aprender. Todo esto con la finalidad de que losnegocios promedio lo pudieran aprender y usar.

Cuarta Generación

Lenguajes de Propósito Especial: Posteriormente, usando estos lenguajes, se han redactado programasdestinados a facilitar un número variado de operaciones en campos de aplicación específicos como simulación defenómenos físicos, manipulación de datos estadísticos, etc. Los más avanzados y flexibles de estos programasson las planillas electrónicas u hojas de cálculo y los programas de administración de archivos o bases de datos.

Tipos

En función de la forma de programar.

Lenguajes procedurales.

FORTRAN, BASIC, PASCAL, ADA, MODULA-2

Lenguajes declarativos.

En este caso, el proceso por el cual se ejecuta el programa no aparece de forma explícita en el programa, elprogramador no tiene que indicar el proceso detallado de cómo realizar la tarea.

Orientados a objetos.

El diseño de los programas se centra más en los datos y su estructura. Los programas consisten en descripcionesde unidades denominadas objetos, que encapsulan los datos (almacenados en variables) y las operaciones queactúan sobre ellos (que indican el comportamiento del objeto). El lenguaje más usado dentro de este tipo es elC++.

Orientados al problema.

Están diseñados para problemas específicos, principalmente de gestión.

Según su campo de aplicación.

Aplicaciones científicas.

FORTAN y PASCAL

Aplicaciones en procesamiento de datos.

Lenguajes aptos para este tipo de aplicaciones son COBOL y SQL.

Aplicaciones de tratamiento de textos.

Estas aplicaciones están asociadas al manejo de textos en lenguaje natural. Un lenguaje muy adecuado para estetipo de aplicaciones es el C.

Aplicaciones en inteligencia artificial.

Los lenguajes más populares dentro del campo de la inteligencia artificial son LISP y PORLOG

Aplicaciones de programación de sistemas.

En este campo se incluirían la programación de software de interfaz entre el usuario y el hardware, ADA, MODULA-2 y C.

Page 5: Evolución de los lenguajes de programación

03/09/12 Nombre de la primera página

5/10190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255

Lenguajes de Internet.

HTML, JAVA, Perl, PHP.

Quinta Generación

Lenguajes Naturales

Esta generación incluye la inteligencia artificial y sistemas expertos. En lugar de solo ejecutar un conjunto deordenadores, el objetivo de estos sistemas es "pensar" y anticipar la necesidad del usuario.

Cronología.

FECHA LENGUAJE ACONTECIMIENTO

1953 FORTRANJob Backus propone el desarrollo de un nuevolenguaje

1954 FORTRANUn equipo de IBM comienza a trabajar en elFORTRAN

1957 FORTRAN IBM desarrolla la primera versión

1959 LISPEl profesor John McCarthy y sus alumnosdesarrolla el LISP

1960 ALGOLSe reúnen representantes europeos y de EEUUpara la creación de un nuevo lenguaje

1960 COBOL Fue creado COBOL

1962 APLSe publica el libro de Kenneth Iverson “AProgramming Language

Mediadode los 60

APLEl APL es implantado por IBM en una versiónconocida como APL/360

1965 BASIC Aparece BASIC

1966 FORTRAN Aparece el FORTRA IV

1968 ALGOL Se implementó una nueva versión multi-proposito

Finalesde los 60

APL Está disponible para el mercado en general

1970 PASCAL Niklaus Wirth diseña PASCAL

1972 PROLOGSe desarrolla en la Universidad de Aix-Marsaillesen Francia.

1972 C Dennis Ritchie crea el lenguaje C.

1977 FORTRAN Aparece el FORTRAN 77

Finalesde los 70

MODULA-2 Niklaus Wirth dirige el desarrollo de MODULA-2

Principiode los 80

C++ Se desarrolla el lenguaje C++

Page 6: Evolución de los lenguajes de programación

03/09/12 Nombre de la primera página

6/10190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255

1985 CLIPPER Se crea CLIPPER

1986 CLIPPER Aparece CLIPPER AUTUMN'86

1987 CLIPPER CLIPPER SUMMER'87

1990 FORTRAN Aparece el FORTRAN 90

Principios90

JAVA James Gosling y su equipo comienzan adesarrollar JAVA

1993 Visual C++ Se desarrolla el lenguaje Visual C++

1994 DELPHI Aparece la primera versión

1995 JAVA Se lanza al mercado JAVA

1999 DELPHI Aparece Delphi 5.0 para windows 98 NT/2000

Tendencias de cara al futuro

Todos los lenguajes de programación actuales coinciden en una tendencia clara hacia las comunicaciones, ya queInternet es el objetivo claro de todas las empresas y usuarios particulares. Teniendo en cuenta que la programaciónestá orientada a dar servicio a estas dos áreas, que son las que más dinero mueven, podemos observar como cadavez los lenguajes de programación e Internet están más ligados.

Al igual que los lenguajes de programación dependen de la demanda de empresas y usuarios, estos dependen delos servicios que les proporcione la programación.

Con esto solo quiero indicar que se ha formado un círculo vicioso (aunque cabría decir beneficioso) que hace rodara todo el conjunto en un avance continuo, ya que cuando uno de los elementos queda “atascado” son los otros losque tiran de el con fuerza.

Evolución en cuanto a la conceptualización

El primer avance en metodología de programación, vino con la Programación Estructurada (en este concepto vamosa incluir el propio y el de técnicas de Programación con Funciones también llamado procedural, ya que ambos sehallan íntimamente relacionados, no creemos, que se pueda concebir la programación estructurada sin el usomasivo de funciones).

La programación en ensamblador es lineal, es decir, las instrucciones se ejecutan en el mismo orden en que lasescribimos. Podemos, sin embargo, alterar este orden haciendo saltos desde una instrucción a otro lugar delprograma distinto a la instrucción que le sigue a la que se estaba procesando.

El BASIC tradicional también trabaja de este modo. Este sistema de trabajo es complicado, ya que obliga al

Page 7: Evolución de los lenguajes de programación

03/09/12 Nombre de la primera página

7/10190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255

programador a retener en su cabeza permanentemente todo el código escrito hasta un momento determinado parapoder seguir escribiendo el programa; además a la hora de leerlo, el programador se pierde con facilidad porquedebe ir saltando continuamente de unos trozos de código a otros.

Veamos un ejemplo típico de cómo se abordaría una misma tarea desde las dos perspectivas. La tarea consisteen mostrar los números del 1 a 10. Lo explicaremos en pseudo-código (exponer los pasos a realizar en lenguajenatural, en lugar de hacerlo en alguno de los lenguajes de programación existentes) para que resulte máscomprensible:

Programación lineal

Cada línea de programa debe ir precedida de un identificador (una etiqueta) para poder referenciarla, para esteejemplo hemos utilizado números, aunque podría utilizarse cualquier otro identificador:

1. Hacer una variable igual a 0

2. Sumar 1 a esa variable

3. Mostrar la variable

4. Si la variable es 100 -> terminar, Si_no -> saltar a 1:

Programación estructurada

Hacer una variable igual a 0

Mientras que sea menor que 100 -> sumar 1 y mostrarla

Lo que se intenta, es de que el programador pueda hacer programas cada vez más extensos sin

Perder se en un entramado de líneas de código interdependientes. Un programa en estilo lineal se parece a la redneuronal del cerebro, si usted ha visto alguna vez una foto de estas, no lo habrá olvidado: en esa maraña deneuronas y conexiones nerviosas no hay quien se entienda, y si no que se lo pregunten a los neurofisiología.

Para evitar esto, junto con la programación estructurada aparece un concepto que nos permite abarcar programasmás amplios con menor esfuerzo: la de función.

La idea es muy simple: muchas veces realizo procesos que se repiten y en los que sólo cambia algún factor, sitrato ese proceso como un subprograma al que llamo cada vez que lo necesito, y cada vez que lo llamo puedocambiar ese factor, estaré reduciendo el margen de error, al reducir el número de líneas que necesito en miprograma, ya que no tengo que repetir todas esas líneas cada vez que quiera realizar el proceso, con una sola líneade llamada al subprograma será suficiente; además, de haber algún fallo en este proceso el error quedacircunscrito al trozo de código de la función.

EVOLUCIÓN EN CUANTO AL ENFOQUE

Programación proceduralProgramación declarativaProgramación orientada a objetosOrientados al problema.

Programación Procedural

Page 8: Evolución de los lenguajes de programación

03/09/12 Nombre de la primera página

8/10190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255

La mayor parte de los lenguajes de alto nivel soportan la creación de procedimientos, que son trozos de código querealizan una tarea determinada.

Un procedimiento podrá ser invocado muchas veces desde otras partes del programa con el fin de aislar la tarea encuestión y, una vez que finaliza su ejecución, retorna al punto del programa desde donde se realizó la llamada.Además, cada procedimiento tendrá su propio conjunto de datos, aunque podrá acceder a datos globales y a lospasados como parámetros desde el programa principal o desde otros procedimientos. De esta forma, podemosdividir nuestro problema en problemas más pequeños, y así, llevar la complejidad a un nivel manejable.

Programación Declarativa

Se les conoce como lenguajes declarativos en ciencias computacionales a aquellos lenguajes de programación enlos cuales se le indica a la computadora qué es lo que se desea obtener o qué es lo que se está buscando, porejemplo: Obtener los nombres de todos los empleados que tengan más de 32 años. Eso se puede lograr con unlenguaje declarativo como SQL.

La programación declarativa es una forma de programación que implica la descripción de un problema dado enlugar de proveer una solución para dicho problema

Existen varios tipos de lenguajes declarativos:

Los lenguajes lógicos, como Prolog.Los lenguajes algebraicos, como Maude y SQL.Los lenguajes funcionales, como Haskell

Programación Orientada al Objeto

Son lenguajes imperativos basados en clases (algunos, llamados mixtos soportan también el modelo procedural)

Orientados al problema.

Están diseñados para problemas específicos, principalmente de gestión. En estos lenguajes, los programas estánformados por sentencias que ordenan que se quiere hacer. Generalmente, estos lenguajes suelen ser generadoresde aplicaciones que permiten automatizar en la medida de lo posible la tarea de desarrollo de software deaplicaciones de gestión

CARACTERÍSTICAS DE LA POO

ABSTRACCION: denota las características esenciales de un objeto, donde se capturan sus comportamientos.Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar ycambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estascaracterísticas.

ENCAPSULAMIENTO: Significa reunir a todos los elementos que pueden considerarse pertenecientes a unamisma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión de los componentes delsistema.

MODULARIDAD: Propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos),cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantespartes.

HERENCIA: La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos serdefinidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) sucomportamiento sin tener que volver a implementarlo. Cuando un objeto hereda de más de una clase se dice quehay herencia múltiple.

RECOLECCION DE BASURA: la recolección de basura es la técnica por la cual el entorno de objetos se encargade destruir automáticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sinninguna referencia a ellos. Esto significa que el programador no debe preocuparse por la asignación o liberación dememoria, ya que el entorno la asignará al crear un nuevo objeto y la liberará cuando nadie lo esté usando.

EVOLUCIÓN HACIA LA OOP

Simula (Nygaard, 60s)Smalltalk (Xerox PARC, 70s)Eiffel (Meyer, 80s)C++ (Stroustrup, 80s)Java (Sun Microsystems, 90s)C# (Microsoft, 00s)

Page 9: Evolución de los lenguajes de programación

03/09/12 Nombre de la primera página

9/10190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255

Evolución en cuanto a la tecnología - JEAN CARLOS TOA

El concepto es confluente con el de Revolución tecnológica, puesto que sólo durante los períodos de mayorinnovación técnica se marca la diferencia del ritmo de desarrollo entre ambos y de trascendencia que existe entrelos conceptos genéricos de evolución y revolución. Durante la mayor parte de la historia de la humanidad, el ritmode dichas innovaciones fue lento, sin embargo, a partir de la segunda guerra mundial la humanidad haexperimentado un crecimiento exponencial en el uso y desarrollo de la tecnología.

El período pretecnológico, en el que todas las especies animales (aparte de la especie humana, algunasaves y primates) siguen hoy en día, era un período no racional de los primeros homínidos prehistóricos

La aparición de la tecnología, que ha sido posible por el desarrollo de la facultad racional, hallando el caminopara la primera etapa: la herramienta. Una herramienta proporciona una ventaja mecánica en el cumplimientode una tarea física, y debe ser alimentada por la energía humana o animal. Permiten cosas imposibles delograr sólo con el cuerpo humano, como ver detalles visuales diminutos con una sencilla lente o unsofisticado microscopio; la manipulación de objetos pesados (con máquinas complejas como una grúa,simples, como una polea, o con instrumentos tan sencillos como una cesta); o el transporte, procesamientoy almacenamiento de todo tipo de fluidos o granos, con un cubo de agua, un odre o un barril para el vino, ouna vasija de cerámica para el aceite.

La segunda etapa tecnológica fue la creación de la máquina. Restringiendo este concepto al de la máquinaalimentada por energía no humana ni animal, es una herramienta que sustituye el elemento humano deesfuerzo físico, y requiere de un operador sólo a su función de control. Las máquinas se extendieron con larevolución industrial, aunque el barco o los molinos de viento, y otros tipos de máquinas que responden aesta definición, son muy anteriores.

La tercera, y última etapa de la evolución tecnológica es el autómata. El autómata es una máquina queelimina el elemento de control humano con un algoritmo automático. Ejemplos de máquinas que presentanestas características son los relojes digitales, conmutadores telefónicos automáticos, marcapasos, y losprogramas de ordenador.

Tecnología, energía y límites del desarrolloLa utilización de distintas formas (como la electricidad, el movimiento, la luz o el calor) y fuentes de energía(combustibles fósiles -como el carbón, el petróleo y el gas natural-, la energía hidráulica, la energía nuclear o lasenergías alternativas) demandadas en cantidades crecientes por el desarrollo tecnológico y económico haproducido la crisis energética que desde los años 1970 viene cuestionando la posibilidad del mantenimiento delactual modelo de desarrollo, sumado a otros efectos nocivos, tanto por el desarrollo desigual, como por susconsecuencias medioambientales (contaminación, calentamiento global, etc.).

Evolución en cuanto a la conceptualización- JUAN ALARCONLa programación en ensamblador es lineal, es decir, las instrucciones se ejecutan en el mismo orden en que lasescribimos. Podemos, sin embargo, alterar este orden haciendo saltos desde una instrucción a otro lugar delprograma distinto a la instrucción que le sigue a la que se estaba procesando.

El BASIC tradicional también trabaja de este modo. Este sistema de trabajo es complicado, ya que obliga alprogramador a retener en su cabeza permanentemente todo el código escrito hasta un momento determinado parapoder seguir escribiendo el programa; además a la hora de leerlo, el programador se pierde con facilidad porquedebe ir saltando continuamente de unos trozos de código a otros.

Veamos un ejemplo típico de cómo se abordaría una misma tarea desde las dos perspectivas. La tarea consiste enmostrar los números del 1 a 10. Lo explicaremos en pseudo-código (exponer los pasos a realizar en lenguajenatural, en lugar de hacerlo en alguno de los lenguajes de programación existentes) para que resulte máscomprensible:

Programación lineal

Cada línea de programa debe ir precedida de un identificador (una etiqueta) para poder referenciarla, para esteejemplo hemos utilizado números, aunque podría utilizarse cualquier otro identificador:

1. Hacer una variable igual a 0

2. Sumar 1 a esa variable

3. Mostrar la variable

4. Si la variable es 100 -> terminar, Si_no -> saltar a 1:

Programación estructurada

Hacer una variable igual a 0

Mientras que sea menor que 100 -> sumar 1 y mostrarla

Lo que se intenta, es de que el programador pueda hacer programas cada vez más extensos sin

Perder se en un entramado de líneas de código interdependientes. Un programa en estilo lineal se parece a la redneuronal del cerebro, si usted ha visto alguna vez una foto de estas, no lo habrá olvidado: en esa maraña de

Page 10: Evolución de los lenguajes de programación

03/09/12 Nombre de la primera página

10/10190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255

poo14s

Usted se ha identificado como Javier Noboa (Salir)

neuronas y conexiones nerviosas no hay quien se entienda, y si no que se lo pregunten a los neurofisiología.

Para evitar esto, junto con la programación estructurada aparece un concepto que nos permite abarcar programasmás amplios con menor esfuerzo: la de función.

La idea es muy simple: muchas veces realizo procesos que se repiten y en los que sólo cambia algún factor, sitrato ese proceso como un subprograma al que llamo cada vez que lo necesito, y cada vez que lo llamo puedocambiar ese factor, estaré reduciendo el margen de error, al reducir el número de líneas que necesito en miprograma, ya que no tengo que repetir todas esas líneas cada vez que quiera realizar el proceso, con una sola líneade llamada al subprograma será suficiente; además, de haber algún fallo en este proceso el error quedacircunscrito al trozo de código de la función.

Evolución en cuanto al enfoque (Mylena Rodriguez)

La evolución de los lenguajes de programación, en cuanto a enfoque estambién una evoluciónconceptual, pero ésta es tan profunda que supone un cambiodrástico en cuanto al modo de concebir eltratamiento de la programación.En estesentido, y dependiendo del autor a quien se consulte, existen dos o tresenfoques diferentes:

Programación Procedural

Casi todos los lenguajes queconocemos trabajan de forma procedural. Java, C, Pascal, BASIC, Cobol,Fortran,APL, RPG, Clipper, etc.En ellos, debemos establecer, hechos (datos), reglaspara el manejo de esos datos y de decisión y tenemos quedecirle al lenguaje cómo alcanzar el objetivo que se persigue. Es decir, dondebuscar la información, cómo manipularla, cuando parar, etc. Si usted esprogramador de algún lenguaje procedural, todo esto le parecerá obvio, pero nofunciona así con los lenguajes declarativos.

Programación Declarativa

Los lenguajes más conocidos queexisten hasta ahora, PROLOG, son todos procedurales, éstees declarativo.ProLog es acrónimode Programming in LOGIC. Este lenguaje fue desarrollado en la universidad deMarsella hacia 1970 por AlanClomerauer y sus colegas. Prolog, se basa en manipulaciones lógicas, utiliza la lógica proposicional-lógica de predicados- para realizar sus deducciones.

Programación Orientada al Objeto

OOP es un conjunto de técnicas, la diferencia entre técnica y lenguaje deprogramación es una técnica deprogramación no es, obviamente, un lenguaje, pero puede aplicarse a cualquier lenguaje. Además es un conjuntode reglas aseguir para hacernos la tarea de programar más fácil.

Un lenguaje de programación, esun conjunto de instrucciones entendibles directamente o traducibles al lenguajedel ordenador

¿Qué es la OOP?

No es:Un sistemade comunicación con los programas basados en ratones, ventanas, iconos, etc.Puesto que,normalmente, los lenguajes de OOP suelen presentar estas característicasy puesto que habitualmente estos entornos suelen desarrollarse con técnicas deOOP.

Marcas: