Los Primeros lenguajes de programación

Los primeros lenguajes de programación preceden a la computadora moderna. En un inicio los lenguajes eran códigos.

La máquina del telar de Jacquard, creada en 1801, utilizaba los orificios en tarjetas perforadas para representar los movimientos de un brazo de la máquina de tejer, con el objetivo de generar patrones decorativos automáticamente.

Durante un período de nueve meses entre 1842 y 1843, Ada Lovelace tradujo las memorias del matemático italiano Luigi Menabrea acerca de la nueva máquina propuesta por Charles Babbage, la Máquina Analítica. Con estos escritos, ella añadió unas notas en las cuales especificaba en detalle un método para calcular los números de Bernoulli con esta máquina.

En la década de 1940 fueron creadas las primeras computadoras modernas, con alimentación eléctrica. La velocidad y capacidad de memoria limitadas forzaron a los programadores a escribir programas, en lenguaje ensamblador muy afinados. Finalmente se dieron cuenta de que la programación en lenguaje ensamblador requería de un gran esfuerzo intelectual y era muy propensa a errores.

En 1948, Konrad Zuse publicó un artículo acerca de su lenguaje de programación Plankalkül. Sin embargo, no fue implementado en su vida y sus contribuciones fueron aisladas de otros desarrollos.

Entre algunos lenguajes importantes que fueron desarrollados en este período se encuentran:

  • 1943 – Plankalkül (Respetad a Konrad), diseñado, pero sin implementar durante medio siglo
  • 1943 – se crea el sistema de codificación ENIAC.
  • 1949 – 1954 — una serie de conjuntos de instrucciones nemotécnicas, como la de ENIAC, comenzando en 1949 con C-10 para BINAC (que luego evolucionaría en UNIVAC). Cada conjunto de instrucciones estaba destinado a un fabricante específico

Las décadas de 1950 y 1960

En los cincuenta, los tres primeros lenguajes de programación modernos, cuyos descendientes aún continúan siendo utilizados, son:

  • FORTRAN (1955), creado por John Backus.
  • LISP (1958), creado por John McCarthy.
  • COBOL (1959), creado por el Short Range Committee, altamente influenciado por Grace Hopper.

Otro hito a finales de 1950 fue la publicación, por un comité Americano y Europeo de científicos de la computación, de un nuevo “lenguaje para algoritmos”; el Reporte de ALGOL 60 (“ALGOrithmic Language”). Este reporte consolidó muchas ideas que estaban circulando en aquel entonces, y proporcionó dos innovaciones importantes para los lenguajes de programación:

  • Estructuras de bloques anidadas: las secuencias de código y las declaraciones asociadas se pueden agrupar en bloques sin tener que pertenecer explícitamente a procedimientos separados;
  • Ámbito léxico: un bloque puede tener sus propias variables, procedimientos y funciones, invisible al código fuera de dicho bloque, por ejemplo, ocultamiento de información.

Otra innovación, relacionada con esto, fue cómo el lenguaje fue descrito:

  • Una notación matemática exacta, Backus-Naur Form (BNF), fue utilizada para describir la sintaxis del lenguaje. Todos los subsecuentes lenguajes de programación han utilizado una variante de BNF para describir la porción libre del contexto de su sintaxis.

Algol 60 influenció particularmente en el diseño de lenguajes posteriores, de los cuales algunos se hicieron más populares. Los grandes sistemas de Burroughs fueron diseñados para ser programados en un subconjunto extendido de Algol.

Las ideas fundamentales de Algol se continuaron, produciendo Algol 68:

  • la sintaxis y la semántica se hizo aún más ortogonal, con rutinas anónimas, un sistema de tipificación recursiva con funciones de orden superior, etc.;
  • y no sólo la parte libre del contexto, sino que tanto la sintaxis como la semántica del lenguaje completo fueron definidos formalmente, en términos de una gramática de Van Wijngaarden, un formalismo diseñado específicamente para este propósito.

Las variadas pero poco usadas características de Algol 68 (por ejemplo, bloques simultáneos y paralelos) y su complejo sistema de atajos sintácticos y coerciones automáticas de tipo lo hicieron impopular entre los ejecutores y se ganó una reputación de ser difícil. Niklaus Wirth salió del comité de diseño para crear el sencillo lenguaje Pascal.

Algunos de los lenguajes importantes que fueron desarrollados en este período incluyen:

  • 1951 – Regional Assembly Language
  • 1952 – Autocoder
  • 1954 – IPL (precursor de LISP)
  • 1955 – FLOW-MATIC (precursor de COBOL)
  • 1957 – FORTRAN (primer compilador)
  • 1957 – COMTRAN (precursor de COBOL)
  • 1958 – LISP
  • 1959 – FACT (precursor de COBOL)
  • 1959 – COBOL
  • 1959 – RPG
  • 1962 – APL
  • 1962 – Simula
  • 1962 – SNOBOL
  • 1963 – CPL (precursor de C)
  • 1964 – BASIC
  • 1964 – PL/I
  • 1967 – BCPL (precursor de C)

1968-1979: estableciendo paradigmas fundamentales

El período comprendido entre finales de 1960 y finales de 1970 trajo un gran florecimiento de lenguajes de programación. La mayoría de los paradigmas de lenguajes de programación más importantes y actualmente en uso se inventaron en este período:

  • Simula, inventado en la década de 1960 por Nygaard y Dahl como un superconjunto de Algol 60, fue el primer lenguaje diseñado para apoyar la programación orientada a objetos.
  • C, en principio un lenguaje de programación de sistemas, fue desarrollado por Dennis Ritchie y Ken Thompson en los Laboratorios Bell entre 1969 y 1973.
  • Smalltalk (mediados de los 70) proporcionaron un completo diseño de un lenguaje orientado a objetos.
  • Prolog, diseñado en 1972 por Colmerauer, Roussel y Kowalski, fue el primer lenguaje de programación lógica.
  • ML construyó un sistema de tipos polimórfico (inventado por Robin Milner en 1973) en el tope de Lisp, pionero en los lenguajes funcionales de programación con tipado estático.

Cada uno de estos lenguajes generó toda una familia de descendientes, y los lenguajes más modernos cuentan al menos uno de ellos en su ascendencia.

En los años 60 y 70 también suscitó un debate considerable sobre los méritos de la “programación estructurada”, que esencialmente significaba programación sin el uso de GOTO. Este debate estaba estrechamente relacionado con el diseño del lenguaje: algunos lenguajes no incluían GOTO, lo que obligó a la programación estructurada en el programador. Aunque el debate se recrudecía acaloradamente en ese momento, casi todos los programadores están de acuerdo en que, incluso en lenguajes que ofrecen GOTO, es una mala práctica de programación usarlo, excepto en raras circunstancias. Como resultado de ello, las generaciones posteriores de diseñadores de lenguajes han encontrado el debate sobre programación estructurada tedioso e incluso desconcertante.

Algunos lenguajes importantes que se desarrollaron en este período fueron:

  • 1968 – Logo
  • 1969 – B (precursor C)
  • 1970 – Pascal
  • 1970 – Forth
  • 1972 – C
  • 1972 – Smalltalk
  • 1972 – Prolog
  • 1973 – ML
  • 1975 – Scheme
  • 1978 – SQL (inicialmente sólo un lenguaje de consulta, posteriormente ampliado con construcciones de programación)
  • 1978 – Modula-2

Entradas relacionadas

Dejar un Comentario