SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
03/09/12                                              Nombre de la primera página

                                                                                                                  Usted se ha identificado como Javier Noboa (Salir)




                                                                                                    Inicio       Cursos         Noticias           Participantes

      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


       Navegación

       Página Principal                                              EVOLUCIÓN DE LOS LENGUAJES DE
         Área personal
         Páginas del sitio                                                  PROGRAMACIÓN.
         Mi perfil
                                                         Vamos a llevar a cabo una introducción muy general sobre la evolución
         Mis cursos
                                                         de los lenguajes en informática, para entrar posteriormente y más a
            poo14s
                                                         fondo, en describir la aparición, los principios teóricos y la evolución
               Participantes
                                                         de la Programación Orientada al Objeto.
               General
               Tema 1                                    Esta introducción debe ser una visión general y claraLa evolución de
                   Elementos de la                       los lenguajes de programación la podemos analizar desde tres
                   POO
                                                         perspectivas:
                   Encapsulamiento
                   Sensores de                               Evolución en cuanto a la tecnología
                   movimiento                                Evolución en cuanto a la conceptualización
                   Wiki -                                    Evolución en cuanto al enfoque
                   Evolución de
                   los lenguajes
                   de
                   programación
                      Nuevo                                           Ver   Editar    Comentarios     Historia   Mapa     Archivos
                      Ver
                      Editar
                      Comentarios
                                                                                                                                                Versión imprimible
                      Historia
                      Mapa                                                          Nombre de la primera página
                      Archivos
                   Identifiquemos
                   clases
                   C# J# Java                                         BIENVENIDOS A LA WIKI DE 4 SEMESTRE ING.SISTEMAS
                   Arreglos de
                   objetos                                                                  "UNIANDES"
                   Laboratorio -
                   Clases
                   Laboratorio -
                   Encapsulamiento
                   Prueba
                   Qué es un
                   Wiki???
               Tema 2
               Tema 3
               Tema 4
            pv23s


       Ajustes

           Administración del
           curso

           Ajustes de mi perfil
                                                                       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
190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255                                                                                                                    1/10
03/09/12                                              Nombre de la primera página

                                         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 que
                                         planeen desenvolverse en dicho campo, ya que tiene cuando menos dos beneficios tangibles: Conocer el estado
                                         promedio del arte y evitar cometer errores ya cometidos. Así es más fácil tomar las decisiones correctas y
                                         sobrevivir sin esfuerzo a muchas modas que estridentemente proclaman la reinvención del hilo negro. Como dijo el
                                         filó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, sin
                                         embargo las primeras computadoras mecánicas y eléctricas no contaban con un lenguaje de programación tal
                                         como lo conocemos ahora, la mayoría de ellas era construida para llevar a cabo una tarea específica; por lo tanto la
                                         forma de programarla era particular a cada computadora. Fue en el año de 1945 cuando el matemático Jhon Von
                                         Neumann[1] fascinado por las posibilidades de ENIAC[2], elaboró un estudio que demostró que una computadora
                                         podía tener una estructura física muy simple y fija, y aun así ser capaz de ejecutar cualquier tipo de programa
                                         mediante 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 programa
                                         almacenado 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úmeros
                                         binarios). 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 y
                                         caracteres especiales.

                                         Segunda Generación

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

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

190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255                                                                                                             2/10
03/09/12                                              Nombre de la primera página

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

                                         Tercera Generación




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

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

                                         Entre los lenguajes de Tercera Generación se Incluyen:

                                               FORTRAN
                                               COBOL
                                               BASIC
                                               PASCAL
                                               C Y C++
                                               JAVA



                                         Shortcode

                                         En 1949,aparece el primer lenguaje que se usó en computadoras electrónicas: “Shortcode”, requería que el
                                         programador 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 primer
                                         compilador, 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 aun
                                         actualmente: 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ía
                                         en 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 la
                                         aparició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 de
                                         procesamiento 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ón
                                         lo mismo que hizo Euclídes por la geometría, demostrar como con unos cuantos operadores y una notación para
                                         funciones 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

190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255                                                                                                          3/10
03/09/12                                              Nombre de la primera página

                                         que creo un modelo de programación que ha demostrado ser superior, tanto que podemos decir que en la
                                         actualidad existen dos grandes modelos de programación el de C y el de Lisp, y podemos notar que los lenguajes
                                         del 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 la
                                         manera 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 fue
                                         muy 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; que
                                         fuera fácil de aprender para gente que no tuviera formación en ciencias de la computación. Sus únicos tipos de
                                         datos fueron cadenas y números. Lo que le dio la característica de poder agruparlos en arreglos sencillos, de modo
                                         que los datos podían ser organizados y seguidos de una mejor manera. Las sentencias de COBOL se parecen
                                         mucho a las usadas por el idioma inglés, haciendo que fuera fácil de aprender. Todo esto con la finalidad de que los
                                         negocios promedio lo pudieran aprender y usar.



                                         Cuarta Generación

                                         Lenguajes de Propósito Especial: Posteriormente, usando estos lenguajes, se han redactado programas
                                         destinados a facilitar un número variado de operaciones en campos de aplicación específicos como simulación de
                                         fenómenos físicos, manipulación de datos estadísticos, etc. Los más avanzados y flexibles de estos programas
                                         son 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, el
                                         programador 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 descripciones
                                         de unidades denominadas objetos, que encapsulan los datos (almacenados en variables) y las operaciones que
                                         actúan sobre ellos (que indican el comportamiento del objeto). El lenguaje más usado dentro de este tipo es el
                                         C++.

                                         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 este
                                         tipo 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.

190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255                                                                                                             4/10
03/09/12                                              Nombre de la primera página

                                         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 de
                                         ordenadores, el objetivo de estos sistemas es "pensar" y anticipar la necesidad del usuario.



                                             Cronología.

                                          FECHA          LENGUAJE       ACONTECIMIENTO


                                                                        Job Backus propone el desarrollo de un nuevo
                                          1953           FORTRAN
                                                                        lenguaje


                                                                        Un equipo de IBM comienza a trabajar en el
                                          1954           FORTRAN
                                                                        FORTRAN


                                          1957           FORTRAN        IBM desarrolla la primera versión


                                                                        El profesor John McCarthy y sus alumnos
                                          1959           LISP           desarrolla el LISP



                                                                        Se reúnen representantes europeos y de EEUU
                                          1960           ALGOL
                                                                        para la creación de un nuevo lenguaje


                                          1960           COBOL          Fue creado COBOL


                                                                        Se publica el libro de Kenneth Iverson “A
                                          1962           APL
                                                                        Programming Language


                                          Mediado                       El APL es implantado por IBM en una versión
                                                         APL
                                          de los 60                     conocida como APL/360


                                          1965           BASIC          Aparece BASIC


                                          1966           FORTRAN        Aparece el FORTRA IV


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


                                          Finales
                                                         APL            Está disponible para el mercado en general
                                          de los 60


                                          1970           PASCAL         Niklaus Wirth diseña PASCAL


                                                                        Se desarrolla en la Universidad de Aix-Marsailles
                                          1972           PROLOG
                                                                        en Francia.


                                          1972           C              Dennis Ritchie crea el lenguaje C.


                                          1977           FORTRAN        Aparece el FORTRAN 77


                                          Finales
                                                         MODULA-2       Niklaus Wirth dirige el desarrollo de MODULA-2
                                          de los 70


                                          Principio
                                                         C++            Se desarrolla el lenguaje C++
                                          de los 80

190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255                                                                                                         5/10
03/09/12                                              Nombre de la primera página


                                          1985           CLIPPER        Se crea CLIPPER


                                          1986           CLIPPER        Aparece CLIPPER AUTUMN'86


                                          1987           CLIPPER        CLIPPER SUMMER'87


                                          1990           FORTRAN        Aparece el FORTRAN 90


                                          Principios     JAVA           James Gosling y su equipo comienzan a
                                          90                            desarrollar 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 que
                                         Internet es el objetivo claro de todas las empresas y usuarios particulares. Teniendo en cuenta que la programación
                                         está orientada a dar servicio a estas dos áreas, que son las que más dinero mueven, podemos observar como cada
                                         vez 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 de
                                         los 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 rodar
                                         a todo el conjunto en un avance continuo, ya que cuando uno de los elementos queda “atascado” son los otros los
                                         que 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 vamos
                                         a incluir el propio y el de técnicas de Programación con Funciones también llamado procedural, ya que ambos se
                                         hallan íntimamente relacionados, no creemos, que se pueda concebir la programación estructurada sin el uso
                                         masivo de funciones).

                                          La programación en ensamblador es lineal, es decir, las instrucciones se ejecutan en el mismo orden en que las
                                         escribimos. Podemos, sin embargo, alterar este orden haciendo saltos desde una instrucción a otro lugar del
                                         programa 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
190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255                                                                                                            6/10
03/09/12                                              Nombre de la primera página

                                         programador a retener en su cabeza permanentemente todo el código escrito hasta un momento determinado para
                                         poder seguir escribiendo el programa; además a la hora de leerlo, el programador se pierde con facilidad porque
                                         debe 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
                                         en mostrar los números del 1 a 10. Lo explicaremos en pseudo-código (exponer los pasos a realizar en lenguaje
                                         natural, en lugar de hacerlo en alguno de los lenguajes de programación existentes) para que resulte más
                                         comprensible:

                                         Programación lineal

                                          Cada línea de programa debe ir precedida de un identificador (una etiqueta) para poder referenciarla, para este
                                         ejemplo 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 red
                                         neuronal del cerebro, si usted ha visto alguna vez una foto de estas, no lo habrá olvidado: en esa maraña de
                                         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 programas
                                         má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, si
                                         trato ese proceso como un subprograma al que llamo cada vez que lo necesito, y cada vez que lo llamo puedo
                                         cambiar ese factor, estaré reduciendo el margen de error, al reducir el número de líneas que necesito en mi
                                         programa, ya que no tengo que repetir todas esas líneas cada vez que quiera realizar el proceso, con una sola línea
                                         de llamada al subprograma será suficiente; además, de haber algún fallo en este proceso el error queda
                                         circunscrito al trozo de código de la función.



                                                                                EVOLUCIÓN EN CUANTO AL ENFOQUE




                                             Programación procedural
                                             Programación declarativa
                                             Programación orientada a objetos
                                             Orientados al problema.



                                         Programación Procedural


190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255                                                                                                            7/10
03/09/12                                              Nombre de la primera página

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

                                         Un procedimiento podrá ser invocado muchas veces desde otras partes del programa con el fin de aislar la tarea en
                                         cuestió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 los
                                         pasados como parámetros desde el programa principal o desde otros procedimientos. De esta forma, podemos
                                         dividir 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 en
                                         los cuales se le indica a la computadora qué es lo que se desea obtener o qué es lo que se está buscando, por
                                         ejemplo: Obtener los nombres de todos los empleados que tengan más de 32 años. Eso se puede lograr con un
                                         lenguaje declarativo como SQL.

                                         La programación declarativa es una forma de programación que implica la descripción de un problema dado en
                                         lugar 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án
                                         formados por sentencias que ordenan que se quiere hacer. Generalmente, estos lenguajes suelen ser generadores
                                         de aplicaciones que permiten automatizar en la medida de lo posible la tarea de desarrollo de software de
                                         aplicaciones 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 y
                                         cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas
                                         características.

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

                                         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 restantes
                                         partes.

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

                                         RECOLECCION DE BASURA: la recolección de basura es la técnica por la cual el entorno de objetos se encarga
                                         de destruir automáticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin
                                         ninguna referencia a ellos. Esto significa que el programador no debe preocuparse por la asignación o liberación de
                                         memoria, 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)




190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255                                                                                                            8/10
03/09/12                                              Nombre de la primera página

                                         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 mayor
                                         innovación técnica se marca la diferencia del ritmo de desarrollo entre ambos y de trascendencia que existe entre
                                         los conceptos genéricos de evolución y revolución. Durante la mayor parte de la historia de la humanidad, el ritmo
                                         de dichas innovaciones fue lento, sin embargo, a partir de la segunda guerra mundial la humanidad ha
                                         experimentado 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, algunas
                                             aves 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 camino
                                             para la primera etapa: la herramienta. Una herramienta proporciona una ventaja mecánica en el cumplimiento
                                             de una tarea física, y debe ser alimentada por la energía humana o animal. Permiten cosas imposibles de
                                             lograr sólo con el cuerpo humano, como ver detalles visuales diminutos con una sencilla lente o un
                                             sofisticado 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, procesamiento
                                             y almacenamiento de todo tipo de fluidos o granos, con un cubo de agua, un odre o un barril para el vino, o
                                             una 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áquina
                                             alimentada por energía no humana ni animal, es una herramienta que sustituye el elemento humano de
                                             esfuerzo físico, y requiere de un operador sólo a su función de control. Las máquinas se extendieron con la
                                             revolución industrial, aunque el barco o los molinos de viento, y otros tipos de máquinas que responden a
                                             esta 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 que
                                             elimina el elemento de control humano con un algoritmo automático. Ejemplos de máquinas que presentan
                                             estas características son los relojes digitales, conmutadores telefónicos automáticos, marcapasos, y los
                                             programas de ordenador.

                                         Tecnología, energía y límites del desarrollo
                                         La 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 las
                                         energías alternativas) demandadas en cantidades crecientes por el desarrollo tecnológico y económico ha
                                         producido la crisis energética que desde los años 1970 viene cuestionando la posibilidad del mantenimiento del
                                         actual modelo de desarrollo, sumado a otros efectos nocivos, tanto por el desarrollo desigual, como por sus
                                         consecuencias medioambientales (contaminación, calentamiento global, etc.).

                                         Evolución en cuanto a la conceptualización- JUAN ALARCON
                                         La programación en ensamblador es lineal, es decir, las instrucciones se ejecutan en el mismo orden en que las
                                         escribimos. Podemos, sin embargo, alterar este orden haciendo saltos desde una instrucción a otro lugar del
                                         programa 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
                                         programador a retener en su cabeza permanentemente todo el código escrito hasta un momento determinado para
                                         poder seguir escribiendo el programa; además a la hora de leerlo, el programador se pierde con facilidad porque
                                         debe 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 en
                                         mostrar los números del 1 a 10. Lo explicaremos en pseudo-código (exponer los pasos a realizar en lenguaje
                                         natural, en lugar de hacerlo en alguno de los lenguajes de programación existentes) para que resulte más
                                         comprensible:

                                         Programación lineal

                                         Cada línea de programa debe ir precedida de un identificador (una etiqueta) para poder referenciarla, para este
                                         ejemplo 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 red
                                         neuronal del cerebro, si usted ha visto alguna vez una foto de estas, no lo habrá olvidado: en esa maraña de

190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255                                                                                                              9/10
03/09/12                                              Nombre de la primera página

                                         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 programas
                                         má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, si
                                         trato ese proceso como un subprograma al que llamo cada vez que lo necesito, y cada vez que lo llamo puedo
                                         cambiar ese factor, estaré reduciendo el margen de error, al reducir el número de líneas que necesito en mi
                                         programa, ya que no tengo que repetir todas esas líneas cada vez que quiera realizar el proceso, con una sola línea
                                         de llamada al subprograma será suficiente; además, de haber algún fallo en este proceso el error queda
                                         circunscrito 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 es
                                         también una evoluciónconceptual, pero ésta es tan profunda que supone un cambio
                                         drástico en cuanto al modo de concebir eltratamiento de la programación.En este
                                         sentido, y dependiendo del autor a quien se consulte, existen dos o tres
                                         enfoques diferentes:

                                         Programación Procedural

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

                                         Programación Declarativa

                                         Los lenguajes más conocidos que
                                         existen hasta ahora, PROLOG, son todos procedurales, éstees declarativo.ProLog es acrónimo
                                         de Programming in LOGIC. Este lenguaje fue desarrollado en la universidad deMarsella hacia 1970 por Alan
                                         Clomerauer 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 de
                                         programación es una técnica de
                                         programación no es, obviamente, un lenguaje, pero puede aplicarse a cualquier lenguaje. Además es un conjunto
                                         de reglas a
                                         seguir para hacernos la tarea de programar más fácil.

                                         Un lenguaje de programación, es
                                         un conjunto de instrucciones entendibles directamente o traducibles al lenguaje
                                         del ordenador

                                         ¿Qué es la OOP?

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




                                                                                                                                                    Marcas:


                                                                     Usted se ha identificado como Javier Noboa (Salir)
                                                                                poo14s




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

Mais conteúdo relacionado

Destaque

Colegio nacional nicolás esguerra
Colegio nacional nicolás esguerraColegio nacional nicolás esguerra
Colegio nacional nicolás esguerrachecho98
 
Studie zur Personalentwicklung - Teamfit
Studie zur Personalentwicklung - TeamfitStudie zur Personalentwicklung - Teamfit
Studie zur Personalentwicklung - TeamfitPeter Wolff
 
Bürogestaltung nach Feng Shui Kriterien
Bürogestaltung nach Feng Shui KriterienBürogestaltung nach Feng Shui Kriterien
Bürogestaltung nach Feng Shui KriterienFengshui und Geomantie
 
Bonos prelaunch - pdf
Bonos prelaunch - pdfBonos prelaunch - pdf
Bonos prelaunch - pdfunetenet
 
Socialbar Bonn 12.07.2010 Präsentation
Socialbar Bonn 12.07.2010 PräsentationSocialbar Bonn 12.07.2010 Präsentation
Socialbar Bonn 12.07.2010 Präsentation2aid.org
 
Anexo recreación y aprovechamiento tiempo libre
Anexo recreación y aprovechamiento  tiempo libreAnexo recreación y aprovechamiento  tiempo libre
Anexo recreación y aprovechamiento tiempo libremilena1016
 
Plan de negocio ada limas
Plan de negocio ada limasPlan de negocio ada limas
Plan de negocio ada limasAda Limas
 
Ensamblaje de una pc -
Ensamblaje de una pc  -Ensamblaje de una pc  -
Ensamblaje de una pc -karolayRB
 
Isce barrancabermeja
Isce barrancabermejaIsce barrancabermeja
Isce barrancabermejamilena1016
 
Ppt energias julio 23
Ppt  energias  julio 23Ppt  energias  julio 23
Ppt energias julio 23gpintito7
 

Destaque (19)

Ifm grenzstandsensoren-lmt-2014
Ifm grenzstandsensoren-lmt-2014Ifm grenzstandsensoren-lmt-2014
Ifm grenzstandsensoren-lmt-2014
 
Colegio nacional nicolás esguerra
Colegio nacional nicolás esguerraColegio nacional nicolás esguerra
Colegio nacional nicolás esguerra
 
Studie zur Personalentwicklung - Teamfit
Studie zur Personalentwicklung - TeamfitStudie zur Personalentwicklung - Teamfit
Studie zur Personalentwicklung - Teamfit
 
Tiempo joven6
Tiempo joven6Tiempo joven6
Tiempo joven6
 
Breitband-Verfuegbarkeit Deutschland
Breitband-Verfuegbarkeit DeutschlandBreitband-Verfuegbarkeit Deutschland
Breitband-Verfuegbarkeit Deutschland
 
Bürogestaltung nach Feng Shui Kriterien
Bürogestaltung nach Feng Shui KriterienBürogestaltung nach Feng Shui Kriterien
Bürogestaltung nach Feng Shui Kriterien
 
MCh2
MCh2MCh2
MCh2
 
Niif13 2011valor razonable
Niif13 2011valor razonableNiif13 2011valor razonable
Niif13 2011valor razonable
 
Bonos prelaunch - pdf
Bonos prelaunch - pdfBonos prelaunch - pdf
Bonos prelaunch - pdf
 
Socialbar Bonn 12.07.2010 Präsentation
Socialbar Bonn 12.07.2010 PräsentationSocialbar Bonn 12.07.2010 Präsentation
Socialbar Bonn 12.07.2010 Präsentation
 
Ppt celular
Ppt celularPpt celular
Ppt celular
 
Anexo recreación y aprovechamiento tiempo libre
Anexo recreación y aprovechamiento  tiempo libreAnexo recreación y aprovechamiento  tiempo libre
Anexo recreación y aprovechamiento tiempo libre
 
Kupferrohre sparen Energie und Geld
Kupferrohre sparen Energie und GeldKupferrohre sparen Energie und Geld
Kupferrohre sparen Energie und Geld
 
Plan de negocio ada limas
Plan de negocio ada limasPlan de negocio ada limas
Plan de negocio ada limas
 
Ensamblaje de una pc -
Ensamblaje de una pc  -Ensamblaje de una pc  -
Ensamblaje de una pc -
 
Clases de computadores
Clases de computadoresClases de computadores
Clases de computadores
 
Diarf
DiarfDiarf
Diarf
 
Isce barrancabermeja
Isce barrancabermejaIsce barrancabermeja
Isce barrancabermeja
 
Ppt energias julio 23
Ppt  energias  julio 23Ppt  energias  julio 23
Ppt energias julio 23
 

Semelhante a Evolución de los lenguajes de programación

Semelhante a Evolución de los lenguajes de programación (20)

El Sustantivo
El SustantivoEl Sustantivo
El Sustantivo
 
Inicio del curso de ITICs
Inicio del curso de ITICsInicio del curso de ITICs
Inicio del curso de ITICs
 
Plantilla Plan Unidad
Plantilla Plan UnidadPlantilla Plan Unidad
Plantilla Plan Unidad
 
Plan de Clase. Sustantivo
Plan de Clase. SustantivoPlan de Clase. Sustantivo
Plan de Clase. Sustantivo
 
Linea del tiempo
Linea del tiempo Linea del tiempo
Linea del tiempo
 
P1 gabriel vega-2
P1 gabriel vega-2P1 gabriel vega-2
P1 gabriel vega-2
 
natalia rodriguez meneses
natalia rodriguez menesesnatalia rodriguez meneses
natalia rodriguez meneses
 
natalia rodriguez meneses
 natalia rodriguez meneses natalia rodriguez meneses
natalia rodriguez meneses
 
Libros Digitales.
Libros Digitales.Libros Digitales.
Libros Digitales.
 
Introducción a java
Introducción a javaIntroducción a java
Introducción a java
 
Recursos tecnológicos para la redacción ielj 2011
Recursos tecnológicos para la redacción ielj 2011Recursos tecnológicos para la redacción ielj 2011
Recursos tecnológicos para la redacción ielj 2011
 
SECUENCIA 2 SEMESTRE 3
SECUENCIA 2 SEMESTRE 3SECUENCIA 2 SEMESTRE 3
SECUENCIA 2 SEMESTRE 3
 
SECUENCIA 3 SEMESTRE 1
SECUENCIA 3 SEMESTRE 1SECUENCIA 3 SEMESTRE 1
SECUENCIA 3 SEMESTRE 1
 
SEC1111
SEC1111SEC1111
SEC1111
 
Talleres
TalleresTalleres
Talleres
 
Cómo hacer una tesis con SoL
Cómo hacer una tesis con SoLCómo hacer una tesis con SoL
Cómo hacer una tesis con SoL
 
Actividad # 5
Actividad # 5Actividad # 5
Actividad # 5
 
Lenguajes de programación i
Lenguajes de programación   iLenguajes de programación   i
Lenguajes de programación i
 
OVA Y AVA
OVA Y AVAOVA Y AVA
OVA Y AVA
 
Teoría de la computación presentación
Teoría de la computación presentaciónTeoría de la computación presentación
Teoría de la computación presentación
 

Evolución de los lenguajes de programación

  • 1. 03/09/12 Nombre de la primera página Usted se ha identificado como Javier Noboa (Salir) Inicio Cursos Noticias Participantes 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 Navegación Página Principal EVOLUCIÓN DE LOS LENGUAJES DE Área personal Páginas del sitio PROGRAMACIÓN. Mi perfil Vamos a llevar a cabo una introducción muy general sobre la evolución Mis cursos de los lenguajes en informática, para entrar posteriormente y más a poo14s fondo, en describir la aparición, los principios teóricos y la evolución Participantes de la Programación Orientada al Objeto. General Tema 1 Esta introducción debe ser una visión general y claraLa evolución de Elementos de la los lenguajes de programación la podemos analizar desde tres POO perspectivas: Encapsulamiento Sensores de Evolución en cuanto a la tecnología movimiento Evolución en cuanto a la conceptualización Wiki - Evolución en cuanto al enfoque Evolución de los lenguajes de programación Nuevo Ver Editar Comentarios Historia Mapa Archivos Ver Editar Comentarios Versión imprimible Historia Mapa Nombre de la primera página Archivos Identifiquemos clases C# J# Java BIENVENIDOS A LA WIKI DE 4 SEMESTRE ING.SISTEMAS Arreglos de objetos "UNIANDES" Laboratorio - Clases Laboratorio - Encapsulamiento Prueba Qué es un Wiki??? Tema 2 Tema 3 Tema 4 pv23s Ajustes Administración del curso Ajustes de mi perfil 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 190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255 1/10
  • 2. 03/09/12 Nombre de la primera página 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 que planeen desenvolverse en dicho campo, ya que tiene cuando menos dos beneficios tangibles: Conocer el estado promedio del arte y evitar cometer errores ya cometidos. Así es más fácil tomar las decisiones correctas y sobrevivir sin esfuerzo a muchas modas que estridentemente proclaman la reinvención del hilo negro. Como dijo el filó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, sin embargo las primeras computadoras mecánicas y eléctricas no contaban con un lenguaje de programación tal como lo conocemos ahora, la mayoría de ellas era construida para llevar a cabo una tarea específica; por lo tanto la forma de programarla era particular a cada computadora. Fue en el año de 1945 cuando el matemático Jhon Von Neumann[1] fascinado por las posibilidades de ENIAC[2], elaboró un estudio que demostró que una computadora podía tener una estructura física muy simple y fija, y aun así ser capaz de ejecutar cualquier tipo de programa mediante 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 programa almacenado 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úmeros binarios). 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 y caracteres especiales. Segunda Generación Lenguajes de Ensambladores: El lenguaje ensamblador constituye el primer intento de sustitución del lenguaje máquina por uno más cercano al usado por los humanos. Este acercamiento a las personas se plasma en las siguientes aportaciones: Uso de una notación simbólica o nemotécnica para representar los códigos de operación 190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255 2/10
  • 3. 03/09/12 Nombre de la primera página direccionamiento simbólico Se permite el uso de comentarios entre las líneas de instrucciones, haciendo posible la redacción de programas más legibles. Tercera Generación Lenguajes de Alto Nivel: Son llamados porque se asemejan mas al lenguaje que utiliza los seres humanos a comunicarse. Fueron desarrolladas con la finalidad de facilitar el proceso de programación Entre los lenguajes de Tercera Generación se Incluyen: FORTRAN COBOL BASIC PASCAL C Y C++ JAVA Shortcode En 1949,aparece el primer lenguaje que se usó en computadoras electrónicas: “Shortcode”, requería que el programador 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 primer compilador, 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 aun actualmente: 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ía en 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 la aparició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 de procesamiento 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ón lo mismo que hizo Euclídes por la geometría, demostrar como con unos cuantos operadores y una notación para funciones 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 190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255 3/10
  • 4. 03/09/12 Nombre de la primera página que creo un modelo de programación que ha demostrado ser superior, tanto que podemos decir que en la actualidad existen dos grandes modelos de programación el de C y el de Lisp, y podemos notar que los lenguajes del 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 la manera 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 fue muy 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; que fuera fácil de aprender para gente que no tuviera formación en ciencias de la computación. Sus únicos tipos de datos fueron cadenas y números. Lo que le dio la característica de poder agruparlos en arreglos sencillos, de modo que los datos podían ser organizados y seguidos de una mejor manera. Las sentencias de COBOL se parecen mucho a las usadas por el idioma inglés, haciendo que fuera fácil de aprender. Todo esto con la finalidad de que los negocios promedio lo pudieran aprender y usar. Cuarta Generación Lenguajes de Propósito Especial: Posteriormente, usando estos lenguajes, se han redactado programas destinados a facilitar un número variado de operaciones en campos de aplicación específicos como simulación de fenómenos físicos, manipulación de datos estadísticos, etc. Los más avanzados y flexibles de estos programas son 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, el programador 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 descripciones de unidades denominadas objetos, que encapsulan los datos (almacenados en variables) y las operaciones que actúan sobre ellos (que indican el comportamiento del objeto). El lenguaje más usado dentro de este tipo es el C++. 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 este tipo 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. 190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255 4/10
  • 5. 03/09/12 Nombre de la primera página 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 de ordenadores, el objetivo de estos sistemas es "pensar" y anticipar la necesidad del usuario. Cronología. FECHA LENGUAJE ACONTECIMIENTO Job Backus propone el desarrollo de un nuevo 1953 FORTRAN lenguaje Un equipo de IBM comienza a trabajar en el 1954 FORTRAN FORTRAN 1957 FORTRAN IBM desarrolla la primera versión El profesor John McCarthy y sus alumnos 1959 LISP desarrolla el LISP Se reúnen representantes europeos y de EEUU 1960 ALGOL para la creación de un nuevo lenguaje 1960 COBOL Fue creado COBOL Se publica el libro de Kenneth Iverson “A 1962 APL Programming Language Mediado El APL es implantado por IBM en una versión APL de los 60 conocida como APL/360 1965 BASIC Aparece BASIC 1966 FORTRAN Aparece el FORTRA IV 1968 ALGOL Se implementó una nueva versión multi-proposito Finales APL Está disponible para el mercado en general de los 60 1970 PASCAL Niklaus Wirth diseña PASCAL Se desarrolla en la Universidad de Aix-Marsailles 1972 PROLOG en Francia. 1972 C Dennis Ritchie crea el lenguaje C. 1977 FORTRAN Aparece el FORTRAN 77 Finales MODULA-2 Niklaus Wirth dirige el desarrollo de MODULA-2 de los 70 Principio C++ Se desarrolla el lenguaje C++ de los 80 190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255 5/10
  • 6. 03/09/12 Nombre de la primera página 1985 CLIPPER Se crea CLIPPER 1986 CLIPPER Aparece CLIPPER AUTUMN'86 1987 CLIPPER CLIPPER SUMMER'87 1990 FORTRAN Aparece el FORTRAN 90 Principios JAVA James Gosling y su equipo comienzan a 90 desarrollar 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 que Internet es el objetivo claro de todas las empresas y usuarios particulares. Teniendo en cuenta que la programación está orientada a dar servicio a estas dos áreas, que son las que más dinero mueven, podemos observar como cada vez 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 de los 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 rodar a todo el conjunto en un avance continuo, ya que cuando uno de los elementos queda “atascado” son los otros los que 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 vamos a incluir el propio y el de técnicas de Programación con Funciones también llamado procedural, ya que ambos se hallan íntimamente relacionados, no creemos, que se pueda concebir la programación estructurada sin el uso masivo de funciones). La programación en ensamblador es lineal, es decir, las instrucciones se ejecutan en el mismo orden en que las escribimos. Podemos, sin embargo, alterar este orden haciendo saltos desde una instrucción a otro lugar del programa 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 190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255 6/10
  • 7. 03/09/12 Nombre de la primera página programador a retener en su cabeza permanentemente todo el código escrito hasta un momento determinado para poder seguir escribiendo el programa; además a la hora de leerlo, el programador se pierde con facilidad porque debe 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 en mostrar los números del 1 a 10. Lo explicaremos en pseudo-código (exponer los pasos a realizar en lenguaje natural, en lugar de hacerlo en alguno de los lenguajes de programación existentes) para que resulte más comprensible: Programación lineal Cada línea de programa debe ir precedida de un identificador (una etiqueta) para poder referenciarla, para este ejemplo 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 red neuronal del cerebro, si usted ha visto alguna vez una foto de estas, no lo habrá olvidado: en esa maraña de 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 programas má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, si trato ese proceso como un subprograma al que llamo cada vez que lo necesito, y cada vez que lo llamo puedo cambiar ese factor, estaré reduciendo el margen de error, al reducir el número de líneas que necesito en mi programa, ya que no tengo que repetir todas esas líneas cada vez que quiera realizar el proceso, con una sola línea de llamada al subprograma será suficiente; además, de haber algún fallo en este proceso el error queda circunscrito al trozo de código de la función. EVOLUCIÓN EN CUANTO AL ENFOQUE Programación procedural Programación declarativa Programación orientada a objetos Orientados al problema. Programación Procedural 190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255 7/10
  • 8. 03/09/12 Nombre de la primera página La mayor parte de los lenguajes de alto nivel soportan la creación de procedimientos, que son trozos de código que realizan una tarea determinada. Un procedimiento podrá ser invocado muchas veces desde otras partes del programa con el fin de aislar la tarea en cuestió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 los pasados como parámetros desde el programa principal o desde otros procedimientos. De esta forma, podemos dividir 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 en los cuales se le indica a la computadora qué es lo que se desea obtener o qué es lo que se está buscando, por ejemplo: Obtener los nombres de todos los empleados que tengan más de 32 años. Eso se puede lograr con un lenguaje declarativo como SQL. La programación declarativa es una forma de programación que implica la descripción de un problema dado en lugar 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án formados por sentencias que ordenan que se quiere hacer. Generalmente, estos lenguajes suelen ser generadores de aplicaciones que permiten automatizar en la medida de lo posible la tarea de desarrollo de software de aplicaciones 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 y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. ENCAPSULAMIENTO: Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión de los componentes del sistema. 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 restantes partes. HERENCIA: La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple. RECOLECCION DE BASURA: la recolección de basura es la técnica por la cual el entorno de objetos se encarga de destruir automáticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el programador no debe preocuparse por la asignación o liberación de memoria, 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) 190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255 8/10
  • 9. 03/09/12 Nombre de la primera página 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 mayor innovación técnica se marca la diferencia del ritmo de desarrollo entre ambos y de trascendencia que existe entre los conceptos genéricos de evolución y revolución. Durante la mayor parte de la historia de la humanidad, el ritmo de dichas innovaciones fue lento, sin embargo, a partir de la segunda guerra mundial la humanidad ha experimentado 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, algunas aves 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 camino para la primera etapa: la herramienta. Una herramienta proporciona una ventaja mecánica en el cumplimiento de una tarea física, y debe ser alimentada por la energía humana o animal. Permiten cosas imposibles de lograr sólo con el cuerpo humano, como ver detalles visuales diminutos con una sencilla lente o un sofisticado 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, procesamiento y almacenamiento de todo tipo de fluidos o granos, con un cubo de agua, un odre o un barril para el vino, o una 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áquina alimentada por energía no humana ni animal, es una herramienta que sustituye el elemento humano de esfuerzo físico, y requiere de un operador sólo a su función de control. Las máquinas se extendieron con la revolución industrial, aunque el barco o los molinos de viento, y otros tipos de máquinas que responden a esta 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 que elimina el elemento de control humano con un algoritmo automático. Ejemplos de máquinas que presentan estas características son los relojes digitales, conmutadores telefónicos automáticos, marcapasos, y los programas de ordenador. Tecnología, energía y límites del desarrollo La 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 las energías alternativas) demandadas en cantidades crecientes por el desarrollo tecnológico y económico ha producido la crisis energética que desde los años 1970 viene cuestionando la posibilidad del mantenimiento del actual modelo de desarrollo, sumado a otros efectos nocivos, tanto por el desarrollo desigual, como por sus consecuencias medioambientales (contaminación, calentamiento global, etc.). Evolución en cuanto a la conceptualización- JUAN ALARCON La programación en ensamblador es lineal, es decir, las instrucciones se ejecutan en el mismo orden en que las escribimos. Podemos, sin embargo, alterar este orden haciendo saltos desde una instrucción a otro lugar del programa 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 programador a retener en su cabeza permanentemente todo el código escrito hasta un momento determinado para poder seguir escribiendo el programa; además a la hora de leerlo, el programador se pierde con facilidad porque debe 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 en mostrar los números del 1 a 10. Lo explicaremos en pseudo-código (exponer los pasos a realizar en lenguaje natural, en lugar de hacerlo en alguno de los lenguajes de programación existentes) para que resulte más comprensible: Programación lineal Cada línea de programa debe ir precedida de un identificador (una etiqueta) para poder referenciarla, para este ejemplo 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 red neuronal del cerebro, si usted ha visto alguna vez una foto de estas, no lo habrá olvidado: en esa maraña de 190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255 9/10
  • 10. 03/09/12 Nombre de la primera página 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 programas má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, si trato ese proceso como un subprograma al que llamo cada vez que lo necesito, y cada vez que lo llamo puedo cambiar ese factor, estaré reduciendo el margen de error, al reducir el número de líneas que necesito en mi programa, ya que no tengo que repetir todas esas líneas cada vez que quiera realizar el proceso, con una sola línea de llamada al subprograma será suficiente; además, de haber algún fallo en este proceso el error queda circunscrito 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 es también una evoluciónconceptual, pero ésta es tan profunda que supone un cambio drástico en cuanto al modo de concebir eltratamiento de la programación.En este sentido, y dependiendo del autor a quien se consulte, existen dos o tres enfoques diferentes: Programación Procedural Casi todos los lenguajes que conocemos trabajan de forma procedural. Java, C, Pascal, BASIC, Cobol,Fortran, APL, RPG, Clipper, etc.En ellos, debemos establecer, hechos (datos), reglas para el manejo de esos datos y de decisión y tenemos que decirle al lenguaje cómo alcanzar el objetivo que se persigue. Es decir, donde buscar la información, cómo manipularla, cuando parar, etc. Si usted es programador de algún lenguaje procedural, todo esto le parecerá obvio, pero no funciona así con los lenguajes declarativos. Programación Declarativa Los lenguajes más conocidos que existen hasta ahora, PROLOG, son todos procedurales, éstees declarativo.ProLog es acrónimo de Programming in LOGIC. Este lenguaje fue desarrollado en la universidad deMarsella hacia 1970 por Alan Clomerauer 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 de programación es una técnica de programación no es, obviamente, un lenguaje, pero puede aplicarse a cualquier lenguaje. Además es un conjunto de reglas a seguir para hacernos la tarea de programar más fácil. Un lenguaje de programación, es un conjunto de instrucciones entendibles directamente o traducibles al lenguaje del ordenador ¿Qué es la OOP? No es:Un sistema de comunicación con los programas basados en ratones, ventanas, iconos, etc. Puesto que,normalmente, los lenguajes de OOP suelen presentar estas características y puesto que habitualmente estos entornos suelen desarrollarse con técnicas de OOP. Marcas: Usted se ha identificado como Javier Noboa (Salir) poo14s 190.152.113.82/lggz/moodle/mod/wiki/view.php?id=255 10/10