Sesión
6.3:
Historia de los
Lenguajes de Programación
Dr. Alberto A. Del Barrio García
Índice
• Definición
• Prehistoria
• II GM y Posguerra
• Década de los 50: Fortran, COBOL, LISP y ALGOL
• Década de los 60: BASIC
• Década de los 70: C • Década de los 80 • Década de los 90 12/05/2014 Sesión 6.2: Dispositiv os de Almacenamien to de Da to s a tr av és de la His toria 2
Definición
• Un lenguaje de programación es un lenguaje formal diseñado
para expresar procesos que pueden ser llevados a cabo por
máquinas como las computadoras.
• Pueden usarse para crear programas que controlen el
comportamiento físico y lógico de una máquina, para expresar
algoritmos con precisión, o como modo de comunicación
humana (wikipedia)
• Programar es decirle al hardware lo que tiene que hacer
• Dependiendo del nivel de abstracción con el que
programemos, tendremos acceso directo/indirecto a distintas partes del hardware
12/05/2014 Sesión 6.2: Dispositiv os de Almacenamien to de Da to s a tr av és de la His toria 3
Clasificación
12/05/2014 Sesión 6.2: Dispositiv os de Almacenamien to de Da to s a tr av és de la His toria 4LENGUAJE
MÁQUINA
LENGUAJES
DE
BAJO
NIVEL
(ensamblador)
La Prehistoria de la
Programación
• Basile Bouchon y Jean‐Baptiste Falcon usan tarjetas
perforadas para controlar sus telares (1725)
• Jacquard (1801)
• Korsakov desarrolla máquinas que buscan patrones utilizando
tarjetas perforadas (1832)
• Augusta Ada King (aka. Ada Lovelace) desarrolló un método
para calcular los números de Bernoulli basándose en la
Máquina Analítica de Babbage (1842‐1843)
• Se considera el primer programa de la Historia
• Herman Hollerith codificó información en tarjetas perforadas
(1890) 12/05/2014 Sesión 6.2: Dispositiv os de Almacenamien to de Da to s a tr av és de la His toria 5
II GM y Posguerra
• Plakalkül (Plan Calculus) fue desarrollado por Zuse para el Z3 (1943‐
1945)
• Primer lenguaje de alto nivel
• No implementado hasta 1998
• Short Code, de John Mauchly (1949)
• Lenguaje matemático que tenía que ser traducido a lenguaje
máquina (manualmente) antes de ejecutarlo
• Primer lenguaje para un computador electrónico
• Autocode (años 50), de Alick Glennie
• Primer lenguaje de alto nivel compilado
• Primer compilador desarrollado para el Mark I (1952), de la Univ. de
Manchester
• Variantes desarrolladas para EDSAC 2, Atlas I
• Arithmetic Language version 0 (A0), primer compilador de la Historia
(1951, Grace Hopper) 12/05/2014 Sesión 6.2: Dispositiv os de Almacenamien to de Da to s a tr av és de la His toria 6
Década de los 50: Fortran
• Formula Translating System (Fortran), inventado por John
Backus et al. (1954) para IBM
• Uno de los inventores del BNF (Backus‐Naur Form o Backus
Normal Form), metalenguaje de descripción de lenguajes
• Lenguaje más cercano al natural que el ensamblador
• Diseñado especialmente para cálculos científicos
• Se sigue usando: Fortran I, II, III, 1401 IBM Fortran, IV, 66, 77,
90, 95, 2003, 2008, 2015 … 12/05/2014 Sesión 6.2: Dispositiv os de Almacenamien to de Da to s a tr av és de la His toria 7
Década de los 50: COBOL
• COmmon Business‐Oriented Language (COBOL) es diseñado
por la Conference on Data Systems Languages (CODASYL) en
1958
• Basado en FLOW‐MATIC, evolución de A0 también de Grace
Hopper, y usado en el UNIVAC I
• Usado en negocios, finanzas y muchos gobiernos
• Todavía se usa: COBOL 60, 61, 65, 68, 74, 85, 2002, 20XX,
COBOL orientado a objetos, etc.
12/05/2014 Sesión 6.2: Dispositiv os de Almacenamien to de Da to s a tr av és de la His toria 8
Década de los 50
• LISt Processing (LISP), inventado en 1958 por John McCarthy e
implementado por Steve Russell en el IBM 704
• Notación matemática similar al lambda cálculo de Alonzo Church
• Muy utilizado en aplicaciones de Inteligencia Artificial
• ALGOritmic Language (ALGOL)
• Desarrollado conjuntamente por informáticos europeos y
americanos en la ETH de Zurich (1958)
• Entre ellos Backus y Naur
• Introduce bloques (begin … end) y funciones anidadas
• Mejora a Fortran, COBOL y LISP. La mayoría de los lenguajes
modernos descienden de ALGOL
• ALGOL‐58 fue la primera implementación, por Fiedrich L. Bauer et
al.
• Otras implementaciones de ilustres como: Dijkstra, Hoare, etc.
12/05/2014 Sesión 6.2: Dispositiv os de Almacenamien to de Da to s a tr av és de la His toria 9
Década de los 60: BASIC
• Beginner's All‐purpose Symbolic Instruction Code (BASIC), diseñado por J.G. Kemeny y T.E. Kurtz (1964) en el Dartmouth College (New
Hampshire, EEUU)
• Su idea era que pudiera ser usado no solo por científicos y
matemáticos
• Basado en Fortran II y con influencias de ALGOL 60
• El compilador era gratuito para que BASIC se expandiera rápidamente
• Muchos minicomputadores empiezan a utilizar dialectos de BASIC
• Mercado de los videojuegos
• En la década de los 70 se populariza su uso en microprocesadores
• Altair BASIC (1975, Bill Gates y Paul Allen, MITS)
• Apple II (1977) • PET Commodore, TRS‐80 12/05/2014 Sesión 6.2: Dispositiv os de Almacenamien to de Da to s a tr av és de la His toria 10
Década de los 60: BASIC
12/05/2014 Sesión 6.2: Dispositiv os de Almacenamien to de Da to s a tr av és de la His toria 11Década de los 70: C
• Desarrollado por Dennis Ritchie en AT&T Bell Labs entre 1969
y 1973
• Evolución de Basic Combined Programming Language (BCPL,
Martin Richards, 1966) y B (Ken Thompson y Dennis Ritchie,
1969)
• Permite programación estructurada (bloques, subrutinas, etc.)
recursión
• Uno de los lenguajes más utilizados de la Historia
• Múltiples estándares: K&R (Kernighan y Ritchie), ANSI
(American National Standards Institute), ISO (International
Organization for Standardization), C99, C11
• De él descienden C++, C#, Java, Javascript, Perl, Python,
Verilog, etc. y el C‐shell de UNIX
12/05/2014 Sesión 6.2: Dispositiv os de Almacenamien to de Da to s a tr av és de la His toria 12
Década de los 70: C
12/05/2014 Sesión 6.2: Dispositiv os de Almacenamien to de Da to s a tr av és de la His toria 13C
C++
JAVA
Década de los 80
• Tendencia RISC
• Se apuesta por el desarrollo de compiladores
• GNU GCC (1987) • Lenguajes • C++ (C orientado a objetos, 1980) • Ada (1983) • Common LISP (1984) • MATLAB (1984) • Erlang (1986) • Perl (1987) • TCL (1988) 12/05/2014 Sesión 6.2: Dispositiv os de Almacenamien to de Da to s a tr av és de la His toria 14
Década de los 90
• La explosión de internet infuye en el desarrollo de los
lenguajes
• Se apuesta por facilitar el trabajo al programador
• Entornos de desarrollo muy visuales (IDE, Integrated Development Environment)
• Garbage Collectors
• Programación Orientada a Objetos
• Lenguajes
• Haskell (1990)
• Python, Visual Basic (1991)
• Java, Javascript, PHP (1995) 12/05/2014 Sesión 6.2: Dispositiv os de Almacenamien to de Da to s a tr av és de la His toria 15
12/05/2014 Sesión 6.2: Dispositiv os de Almacenamien to de Da to s a tr av és de la His toria 16