Linea Del Tiempo de Los Lenguajes de Programacion Imperativos
September 22, 2022 | Author: Anonymous | Category: N/A
Short Description
Download Linea Del Tiempo de Los Lenguajes de Programacion Imperativos...
Description
LINEA DEL TIEMPO DE LOS LENGUAJES DE PROGRAMACION IMPERATIVOS IMPERATIVOS
-----------------------------------------------------1 953 FORTRAN Job Backus propone el desarrollo de un nuevo lenguaje ----------------------------------------------------- 1954 FORTRAN Un equipo de IBM comienza a trabajar en el FORTRAN ----------------------------------------------------- 1957 FORTRAN IBM desarrolla la primera versión ----------------------------------------------------- 1959 LISP El profesor John McCarthy y sus alumnos desarrolla el LISP ----------------------------------------------------- 1960 ALGOL Se reúnen representantes europeos y de EEUU para la creación de un nuevo lenguaje ----------------------------------------------------- 1960 COBOL Fue creado COBOL ----------------------------------------------------- 1962 APL Se publica el libro de Kenneth Iverson A Programming Language -------------------------------------------- Mediado de los 60 APL El APL es implantado por IBM en una versión conocida como APL/360 ----------------------------------------------------- 1965 BASIC Aparece BASIC ----------------------------------------------------- 1966 FORTRAN Aparece el FORTRA IV ----------------------------------------------------- 1968 ALGOL Se implemento una nueva versión multi−proposito --------------------------------------------- Finales de los 60 APL Está disponible para el mercado en general ----------------------------------------------------- 1970 PASCAL Niklaus Wirth diseña PASCAL ----------------------------------------------------- 1972 PROLOG Se desarrolla en la Universidad de Aix−Marsailles en Francia. ----------------------------------------------------- 1972 C el lenguaje C. Dennis Ritchie crea
----------------------------------------------------- 1977 FORTRAN Aparece el FORTRAN 77 ---------------------------------------------- Finales de los 70 MODULA−2 Niklaus Wirth dirige el desarrollo desarrollo de MODULA−2 -------------------------------------------- Principio de los 80 C++ Se desarrolla el lenguaje C++ ----------------------------------------------------- 1985 CLIPPER Se crea CLIPPER ----------------------------------------------------- 1986 CLIPPER Aparece CLIPPER AUTUMN'86 ----------------------------------------------------- 1987 CLIPPER CLIPPER SUMMER'87 ----------------------------------------------------- 1988 CLIPPER Gatsoft Clipper Summer'88 ----------------------------------------------------- 1990 FORTRAN Aparece el FORTRAN 90 ------------------------------------------------ Principios 90 JAVA James Gosling y su equipo comienzan a desarrollar JAVA ----------------------------------------------------- 1993 Visual C++ Se desarrolla el lenguaje Visual C++ ----------------------------------------------------- 1994 DELPHI
Aparece la primera ---------------------------------------------------1995 versión JAVA Se lanza al mercado JAVA ----------------------------------------------------- 1999 DELPHI Aparece Delphi 5.0 Para windows 98 NT/2000
Ejemplos de lenguajes imperativos o procedural PASCAL
Pascal es un lenguaje de programación desarrollado por el profesor suizo Niklaus Wirth entre los años 1968 y 1969 y publicado en 1970. Su objetivo era crear un lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando la programación estructurada y estructuración de datos. Sin embargo con el tiempo su utilización excedió el ámbito académico para convertirse en una herramienta para la creación de aplicaciones de todo tipo. El nombre de Pascal fue escogido en honor al matemático Blaise Pascal. Pascal. Ejemplo: Raíz cuadrada program raiz(input, output); uses wincrt; (*Obtener la raíz cuadrada de un número real x cualquiera.*)
var x, y: real; respuesta: string; begin
writeln('** Calcular la raíz cuadrada de 12 **'); writeln('Entrar x (> 0): '); readln(x); y := sqrt(abs(x)); (* Raíz cuadrada del valor absoluto de x para evitar raíces imaginarias *) writeln; if (x
FORTRAN
Es un lenguaje de programación alto nivel de propósito 2 3 general,, procedimental e imperativo, que está especialmente adaptado al cálculo general numérico y a la computación científica. Desarrollado originalmente por IBM en 1957 para el equipo IBM 704, y usado para aplicaciones científicas y de ingeniería, el FORTRAN vino a dominar estasiglo área en de áreas la programación el principio y ha la estado en uso numérica continuo por más de medio de cómputodesde intensivo tales como predicción del tiempo, análisis de elementos finitos, dinámica de fluidos computacional (CFD), física computacional, y química computacional. El FORTRAN (una palabra compuesta, derivada de The IBM Mathematical Formula Translating System) abarca un linaje de versiones, cada una de las cuales evolucionó para añadir extensiones al lenguaje mientras que usualmente retenía compatibilidad con las versiones previas. Ejemplo: Subrutina sgemm (BLAS-3) c Programa en fortran77 que resuelve un producto de c dos matrices, usando BLAS program mul_mat implicit none c c Declaracion de variables integer K, LDA,LDB,LDC, M, N parameter (K = 4) parameter (M = 3) parameter (N = 2) parameter (LDA = M) parameter (LDB = K) parameter (LDC = M) real A(LDA,K), ALPHA, B(LDB,N), BETA, C(LDC,N) integer I,J c c Inicializa los arreglos A, B con los sig. valores: c c 1 2 6 -1 2 1 c A = 2 -1 1 1 B = -1 3 c 3 -2 2 -3 1 1 c 3 -2 data A / 1.0, 2.0, 3.0, data B / 2.0, -1.0, 1.0, 3.0, 1.0, 3.0, 1.0, -2.0 / c print 1000 ALPHA = 1.0 BETA = 0.0 c c Invocacion de la rutina SGEMM de BLAS call SGEMM('No transpuesta de A','No transpuesta de B', M, N, K, $ ALPHA, A, LDA, B, LDB, BETA,C, LDC) print 1040 print 1030, ((C(I,J), J=1,N), I=1,M) 1000 format (1X, 'A:') 1010 format (4(3X, F5.1)) 1020 format (/1X, 'B:') 1030 format (2(3X, F5.1)) 1040 format (/1X, 'AB:') End
PERL Perl es un lenguaje de programación diseñado por Larry Wall en 1987. Perl toma características del lenguaje C, del lenguaje interpretado shell (sh), (sh), AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de programación.
Larry Wall comenzó a trabajar en Perl en 1987 mientras trabajaba como programador 1
en Unisys de y anunció versión se 1.0expandió en el grupo de noticias 18 de diciembre 1987. Ellalenguaje rápidamente en comp.sources.misc los siguientes años.elPerl 2, publicado en 1988, aportó un mejor motor de expresiones regulares. Perl 3, publicado en 1989, añadió soporte para datos binarios. Hasta 1991 la única documentación de Perl era una simple (y cada vez más larga) página de manual Unix. En 1991 se publicó publicó Programming Perl (el libro del camello) y se convirtió en la referencia de facto del lenguaje. Al mismo tiempo, el número de versión de Perl saltó a 4, no por marcar un gran cambio en el lenguaje, sino por identificar a la versión que estaba documentada en el libro. Perl 4 trajo consigo una serie de lanzamientos de mantenimiento, culminando en Perl 4.036 en 1993. En este punto, Larry Wall abandonó Perl 4 para comenzar a trabajar en Perl 5. Perl 4 se quedaría en esa versión hasta hoy. El desarrollo de Perl 5 continuó en 1994. La lista de correo perl5-porters se estableció en mayo de 1994 para coordinar el trabajo de adaptación de Perl 5 a diferentes plataformas. Es el primer foro para desarrollo, mantenimiento y adaptación de Perl 5. Perl 5 fue publicado el 17 de octubre de 1994. Fue casi una completa reescritura del intérprete y añadió muchas nuevas características al lenguaje, incluyendo objetos, referencias, paquetes y módulos. A destacar, los módulos proveen de un mecanismo para extender el lenguaje sin modificar el intérprete. El 26 de octubre de 1995, se creó el Comprehensive Perl Archive Network (CPAN). CPAN es una colección de sitios web que almacenan y distribuyen fuentes en Perl, binarios, documentación, scripts y módulos. En 2008, Perl 5 continua siendo mantenido Ejemplo: #! /usr/bin/perl -w # Busca ficheros de tipo .pdf y muestra su tamaño use Cwd; opendir(DIR,&cwd) or die "No se puede abrir el directorio $dirActual: $!\n"; my @indice= readdir(DIR) or die "No se puede leer $dirActual: $!\n"; closedir(DIR); foreach $f (@indice) { next unless ( $f =~ /\.pdf$/ ); } system("wc $f");
ALGOL
Se denomina ALGOL (o Algol) a un lenguaje de programación. La voz es un acrónimo de las palabras inglesas Algorithmic Language (lenguaje algorítmico). Fue muy popular en las universidades durante los años 60, pero no llegó a cuajar como lenguaje de utilización comercial. Sin embargo, Algol influyó profundamente en varios lenguajes posteriores que sí alcanzaron gran difusión, como Pascal, C y Ada. Ada. Hacia 1965 dos corrientes se distinguieron sobre el tema de un sucesor para Algol. Como resultado se definieron los lenguajes Algol W que es un lenguaje minimalista, rápidamente implementado y distribuido y, por otra parte, Algol 68 que para la época está en la frontera entre un lenguaje para programar en él y un lenguaje para investigar sobre él. Ejemplo:
proc absmax=(ref[]real a)real: begin int i, k; real y:=0; comment De la matriz a se toma el elemento con el valor absoluto mayor y se coloca en y. x Los subíndices del elemento se colocan en i y k; comment i:= k:= 1⌊a; for p from
1⌊a by 1 to 1 ⌈a
do
for q from 2⌊a by 1 to 2 ⌈a do if abs a[p, q] > y then y:= abs a[p, q]; i:= p; k:= q fi od od; y end
APL Programing Language, Processing APL ( A P también conocido como Array Language desde hace algunos años) es un un lenguaje de programación interpretado
desarrollado por por Kenneth Iverson, de de IBM, a finales de los años 60. Es un lenguaje muy conciso, con una sintaxis muy sencilla. Está orientado a trabajos con matrices, con la que se pueden hacer todo tipo de operaciones lógicas o matemáticas. Incluso se pueden definir nuevas operaciones matriciales. Es de una potencia tremenda. Una sola sentencia puede traducirse en miles de ellas en otros lenguajes, como por ejemplo Fortran. Como ejemplo, el lenguaje de simulación de circuitos, SIAL, ocupaba cerca de 25 000 sentencias en Fortran-Assembler Fortran-Assembler y, al ser reescrito en APL, todo el programa se podía imprimir en dos folios. folios .1 Por otra parte, a pesar de ser un lenguaje de tan alto nivel, también es capaz de manipular a escala de bits y tiene interfaces con lenguajes de programación de bajo nivel (C, ensamblador...) mediante los llamados procesadores auxiliares. Tiene la propiedad de que desde una rutina se puede crear, compilar y ejecutar, en tiempo de ejecución, otras, lo que lo hace muy apropiado para la fabricación de compiladores e intérpretes. Sus problemas radican en que: 1. Necesita teclado especial para poner los operadores lógicos y simbólicos. 2. Los programas escritos en APL son tan concisos que son difíciles de documentar y de comprender. Entre sus aplicaciones más conocidas está su uso en la película Tron de Walt Disney para la generación de los efectos especiales, especiales,2 y en el sistema Deep Blue de IBM que venció a Kasparov al ajedrez. Sucesores del APL
Kenneth Iverson, posteriormente, estuvo al frente del desarrollo de un lenguaje de programación que presentaban como el sucesor de APL, llamado J. Una de las características particulares de J es lo que se ha dado en denominar programación funcional tácita; donde se considera que para expresar programas no es necesario nombrar variables, ni parámetros a funciones (Estos conceptos de programación tácita han sido incorporados al lenguaje Logo en la biblioteca LogoFE). En J, la variedad de las rutinas que en APL se llaman operadores es mucho mayor.
Lua Lua es un un lenguaje de programación imperativo, estructurado y bastante ligero que fue
diseñado como un lenguaje lenguaje interpretado con una una semánticaextendible. El nombre significa "luna" en en portugués y gallego. Lua fue creado en 1993 por Roberto Ierusalimschy, Luiz Henrique de Figueiredo y Waldemar Celes, miembros del Grupo de Tecnología en Computación Gráfica (Tecgraf) en la Pontificia Universidad Católica de Río de Janeiro . Las versiones de Lua anteriores a la 5.0 fueron distribuidas bajo una licencia similar a la BSD, de la versión 5.0 en adelante se utiliza la licencia MIT, compatible con la GPL. GPL. Lua ha sido usado en muchas aplicaciones comerciales y no comerciales, cuyo número incrementa cada año. Características Lua es un lenguaje de extensión, suficientemente compacto para usarse en diferentes plataformas. En lua las variables no tienen tipo, sólo los datos y pueden ser lógicos, enteros, números de coma flotante o cadenas. Estructuras de datos como vectores, conjuntos, tablas hash, listas y registros pueden ser representadas utilizando la única estructura de datos de Lua: la tabla. Codigos de ejemplo print("Hello World!")
A continuación se muestra un un comentario comentario -- Un comentario en Lua empieza con doble guion hasta la siguente línea --
[[ También se pueden hacer comentarios de dos o mas líneas entre corchetes ]]
Construción de tablas table = {} table[1] = "Cadena de caracteres" table['pi'] = 3.141592 table.hello = "hello world"
Uso de tablas print(table[1]) -- Cadena de caracteres print(table.pi) -- 3.141592 print(table['hello']) -- hello world
MODULA Modula-2 es un lenguaje de programación cuyo autor es Niklaus Wirth, autor también del lenguaje Pascal. Pascal.
Como novedad respecto a este último lenguaje, introduce el concepto de módulo, y de encapsulación. Del código contenido en un módulo, sólo se facilita una interfaz pública denominada módulo de definición, permaneciendo el resto oculto (encapsulado) para un desarrollador ajeno, lo que facilita el mantenimiento de dichas estructuras de programación a la vez que imposibilita la modificación de las mismas a cualquiera que no posea el código de su módulo de implementación. Este concepto de módulo constituye el antecedente de las clases u objetos que se observan en el concepto moderno de Programación Orientada a Objetos (POO); sin embargo, la incapacidad de declarar múltiples instancias de los módulos, así como la ausencia de todo tipo de herencia, impiden afirmar que Modula-2 sea un lenguaje orientado a objetos propiamente dicho. Modula-2 se utiliza principalmente en las universidades por su excelente adaptación a la enseñanza de lenguajes estructurados, pero en el ámbito laboral su difusión ha sido escasa frente al predominio de C, lo que ha contribuido a crear un distanciamiento entre universidad y mercado laboral. Existen compiladores de Modula-2 como Mocka o GNU Modula-2 (para GNU/Linux y resto de sistemas soportados por GCC), GCC), FST (para MS-DOS) MS-DOS) oNative XDS (para Windows) entre otros. Ejemplo: MODULE Floyd; FROM InOut IMPORT WriteLn, WriteString, ReadInt, WriteInt; VAR N: INTEGER; I: INTEGER; L: INTEGER; U: INTEGER; (*N es el rango del triángulo, I es el contador, L representa la linea y U al último número de la linea*) BEGIN WriteString("Dime un número: "); ReadInt(N); WriteLn; L:=1; U:=1; FOR I:=1 TO N DO IF I>U THEN WriteLn; L:=L+1; U:=U+L END; WriteInt(I,5) END; IF N>0 THEN WriteLn END END Floyd.
ADA
Fue diseñado con la seguridad en mente y con una filosofía orientada a la reducción de errores comunes y difíciles de descubrir. Para ello se basa en un tipado muy fuerte y en chequeos en tiempo de ejecución (desactivables en beneficio del rendimiento). La sincronización de tareas se realiza mediante la primitiva rendezvous. rendezvous. Ada se usa principalmente en entornos en los que se necesita una gran seguridad y fiabilidad como la defensa, la aeronáutica (Boeing o Airbus), la gestión del tráfico aéreo (como Indra en España) y la industria aeroespacial entre otros. El lenguaje fue diseñado bajo encargo del Departamento de Defensa de los Estados Unidos (DoD). Durante los años 1970, este departamento tenía proyectos en una infinidad de lenguajes y estaba gastando mucho dinero en software. Para solucionarlo se buscó un lenguaje único que cumpliese unas ciertas normas recogidas en el documento Steelman. Steelman. Después de un estudio de los lenguajes existentes en la época se decidió que ninguno las cumplía totalmente, por lo que se hizo un concurso público al que se presentaron cuatro equipos, cuyas propuestas se nombraron con un color: Rojo (Intermetrics), Verde (CII Honeywell Bull), Azul (SofTEch)Verde y Amarillo (SRI en mayo de 1979 se seleccionó la propuesta diseñada por International). Jean Ichbiah deFinalmente CII Honeywell Bull, y se le dio el nombre de Ada. Esta propuesta era un sucesor de un lenguaje anterior de este equipo llamado LIS y desarrollado durante los años 1970. 1970. El nombre se eligió en conmemoración de lady Ada Augusta Byron (1815-1852) Condesa de Lovelace, hija del poeta Lord George Byron, a quien se considera la primera programadora de la Historia, por su colaboración y relación con Charles Babbage, creador de la máquina analítica. analítica. El lenguaje se convirtió en un estándar de ANSI en 1983 (ANSI/MIL-STD 1815) y un estándar ISO en 1987 (ISO-8652:1987). Hola Mundo Éste es el típico "Hola Mundo" Mundo" escrito en Ada: with Ada.Text_IO; procedure Hola_Mundo is
begin Ada.Text_IO.Put("¡Hola, mundo!"); end Hola_Mundo;
CLIPPER Clipper es un lenguaje de programación procedural e imperativo creado en 1985 por Nantucket Corporation y vendido posteriormente a Computer Associates, la que lo comercializó como CA-Clipper. En un principio Clipper se creó como un compilador para el sistema gestor intérprete de bases de datos dBase III (de hecho versiones estacionales de Nantucket incluían una etiqueta que lo indicaba así), pero con lastiempo el el producto evolucionó y maduró, convirtiéndose en un lenguaje compilado más poderoso que el original, no sólo por sus propias implementaciones sino también por las ampliaciones desarrolladas por terceros en C, Ensamblador y Pascal, de los que fue heredando características. Esto lo convirtió en la herramienta líder de desarrollo de aplicaciones de bases de datos relacionales bajo sistema operativo MS-DOS, sobre todo programas de gestión, contabilidad y facturación (SAGE-SP, (SAGE-SP, líder del mercado español, lo usa para ContaPlus y FacturaPlus), FacturaPlus), agendas comerciales y programas de tarificación (aproximadamente el 80% de las compañías de seguros de España lo utilizaron en los programas de sus agentes).
Características A diferencia de otros lenguajes xBase, Clipper nunca contó con un modo intérprete, similar al de dBase. Sus utilidades para manejo de base de datos, tales como la de creación de tablas (DBU), se entregaban con el código fuente escrito en Clipper e incluido, el usuario podía adaptarlas a sus necesidades si quería. Se aportaban también muchas rutinas escritas en C y Ensamblador a las que el usuario podía acudir, incluso ampliar y crear bibliotecas de pre-enlace completas. El lenguaje en sí era poderoso, contando con una gran cantidad de sentencias, funciones, administración de memoria y variables que permitían al programador desarrollos muy flexibles y eficientes; en forma razonablemente rápida. También el paquete incluía un completo "manual en línea navegable", que se cargaba en memoria RAM, a requerimiento del programador, y se accedía por la sola presión de un par de teclas. Las primeras versiones se denominan versiones estacionales por hacer referencia a una estación del año en sus nombres oficiales. Todas ellas se nominaban como compiladores dBase. Estas fueron:
Nantucket Clipper Winter'84 - lanzada el el 25 de mayo de de 1985
en 1985 Nantucket Clipper Summer'85 - lanzada en
Nantucket Clipper Winter'85 - lanzada el el 29 de enero de de 1986
Nantucket Clipper Autumn'86 - lanzada el el 31 de octubre de de 1986
el 21 de diciembre de de 1987 Nantucket Clipper Summer'87 - lanzada el
el 16 de marzo de de 1988 Gatsoft Clipper Summer'88 - lanzada el
Clipper 5 Clipper 5.0 supone un salto cualitativo del lenguaje, aunque comienza mal. Dada la creciente popularidad (Summer 87 ha sido utilizada hasta el año 2000 como herramienta de desarrollo), se decide centrarse más en ampliar el lenguaje que en ser un compilador mejorado de dBase. Se implementan así los pseudoobjetos y otras mejoras... pero el producto lanza con numerosos mucho bugs quemás hacen que el La público retraigade y siga usando lase versión Summer87, estable. 5.01 objetivo corrige semuchos los problemas, pero no será hasta la 5.2 que se produzca el vuelque masivo de los desarrolladores. Las versiones 5 de Nantucket son: Nantucket Clipper 5.00 - lanzada en en 1990 Nantucket Clipper 5.01 - lanzada el el 15 de abril de de 1991 Nantucket Clipper 5.01 Rev.129 - lanzada el el 31 de marzo de de 1992
La multinacional americana Computer Associates adquiere Nantucket y se lanza a mejorar el producto afianzando las características heredadas de C, en particular el tipo de datos code-block(literalmente bloque de código, un híbrido entre las macros de dBase, la evaluación de cadenas de caracteres y los punteros de funciones). Otra de las mejoras procedentes de la versión 5.0 es el sistema "Replaceable Database Drivers" (RDD o drivers reemplazables de base de datos), que permiten con una sola sentencia cambiar entre diferentes normas de base de datos.
CA Clipper 5.20 - lanzada el el 15 de febrero de de 1993
el 15 de marzo de de 1993 CA-Clipper 5.2a - lanzada el
CA Clipper 5.2b - lanzada el el 25 de junio de de 1993
CA-Clipper 5.2c - lanzada el el 6 de agosto de de 1993
CA Clipper 5.2d - lanzada el el 25 de marzo de de 1994
CA-Clipper 5.2e - lanzada el el 7 de febrero de de 1995
el 26 de junio de de 1995 CA Clipper 5.30 - lanzada el
CA Clipper 5.3a - lanzada el el 20 de mayo de de 1996
CA Clipper 5.3b - lanzada el el 20 de mayo de de 1997
Programación en Clipper Un sencillo hola mundo: mundo: ? "¡Hola Mundo!"
Una máscara simple de entrada de base de datos: datos: USE Cliente SHARED NEW
cls @
1, 0 SAY "ClitNum" GET Cliente->CliNum PICT "999999" VALID Cliente-
>CliNum > 0 @
3, 0 SAY "Contacto" GET Cliente->Contacto VALID !empty(Cliente->Contacto)
@
4, 0 SAY "Direccion" GET Cliente->Direccion
READ
BIBLIOGRAFIA: wikipedia. (28 de septiembre de 2011). wikipedia la enciclopedia libre. Obtenido de es.wikipedia.org KEMENY, J., & KURTZ, T. (1986). Structured BASIC programming. New York, USA. PHP. (9 de diciembre de 2007). News Archives 2007 (en inglés). Obtenido de es.wikipedia.com
View more...
Comments