Vous êtes sur la page 1sur 9

INSTITUTO TECNOLGICO DE ALVARADO

HISTORIA DEL LENGUAJE DE


PROGRAMACION

CARRERA: INGENIERIA INDUSTRIAL


MATERIA: ALGORITMOS Y LENGUAJES DE
PROGRAMACION

ING:GUSTAVO ZAMORANO GRANDA

ALUMNO: ANGEL DE DIOS CONTRERAS

HISTORIA DEL LENGUAJE DE PROGRAMACIN


Los primeros lenguajes de programacin preceden a la computadora moderna. En un inicio los
lenguajes eran cdigos.La mquina del telar de Jacquard, creada en 1801, utilizaba los orificios en
tarjetas perforadas para representar los movimientos de un brazo de la mquina de tejer, con el
objetivo de generar patrones decorativos automticamente.Durante un perodo de nueve meses
entre 1842 y 1843, Ada Lovelace tradujo las memorias del matemtico italiano Luigi Menabrea
acerca de la nueva mquina propuesta por Charles Babbage, la Mquina Analtica. Con estos
escritos, ella aadi unas notas en las cuales especificaba en detalle un mtodo para calcular los
nmeros de Bernoulli con esta mquina, el cual es reconocido por muchos historiadores como el
primer programa de computadora del mundo.Herman Hollerith se percat de que poda codificar la
informacin en tarjetas perforadas cuando observ a los conductores de trenes codificar la
apariencia de los tickets del tren con la posicin de los agujeros perforados en estos. En 1890
Hollerith codific los datos del censo en tarjetas perforadas.
Los primeros cdigos de computadora estaban especializados segn sus aplicaciones. En las
primeras dcadas del siglo 20, los clculos numricos estaban basados en los nmeros decimales.
Eventualmente se fueron dando cuenta que la lgica poda ser representada con nmeros, no slo
con palabras. Por ejemplo, Alonzo Church fue capaz de expresar el clculo lambda a travs de
frmulas. La mquina de Turing estableci las bases para almacenar programas como datos en la
arquitectura de von Neuman de una computadora. Sin embargo, a diferencia del clculo lambda, el
cdigo de Turing no servira satisfactoriamente como base para lenguajes de ms alto nivel- su
principal uso es en el anlisis riguroso en la complejidad algortmica.Como muchos primeros en la
historia, el primer lenguaje de programacin moderno es difcil de identificar. Desde un inicio, las
restricciones de hardware definan el lenguaje. Las tarjetas perforadas permitan 80 columnas, pero
algunas de estas seran utilizadas para una clasificacin de cada tarjeta. FORTRAN inclua algunas
palabras reservadas provenientes del ingls, como IF, GOTO (go to) y CONTINUE. El uso del
tambor magntico para la memoria implicaba que los programas informticos tuvieran que estar
intercalados con las rotaciones del tambor. Por lo tanto los programas eran muy dependientes del
hardware.
Para algunas personas, lo que sera el primer lenguaje de programacin moderno depende de
cunto poder y legibilidad humana se requera antes de que se concediera el estado de "lenguaje
de programacin". Tanto el telar de Jacquard como la Mquina Diferencial de Babbage, tenan
lenguajes muy simples y extremadamente limitados para describir las acciones que estas
mquinas realizaran. Se puede incluso considerar los agujeros perforados en los rollos de pianola
como un limitado lenguaje de dominio especfico, a pesar de no estar diseado para el consumo
humano.En la dcada de 1940 fueron creadas las primeras computadoras modernas, con
alimentacin elctrica. La velocidad y capacidad de memoria limitadas forzaron a los
programadores a escribir programas en lenguaje ensamblador muy afinados. Finalmente se dieron
cuenta que la programacin en lenguaje ensamblador requera de un gran esfuerzo intelectual y
era muy propensa a errores.En 1948, Konrad Zuse public un artculo acerca de su lenguaje de
programacin Plankalkl. 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 perodo se encuentran:

1943 - Plankalkl (Konrad Zuse), diseado, pero sin implementar durante medio siglo

1943 - el sistema de codificacin ENIAC.

1949 - 1954 -- una serie de conjuntos de instrucciones nemotcnicas, como la de ENIAC,


comenzando en 1949 con C-10 para BINAC (que luego evolucionara en UNIVAC). Cada
conjunto de instrucciones estaba destinado a un fabricante especfico.

En los cincuenta, los tres primeros lenguajes de programacin modernos, cuyos descendientes an
continan siendo utilizados, son:

FORTRAN (1955), creado por John Backus et al.;

LISP (1958), creado por John McCarthy et al.;

COBOL (1959), creado por el Short Range Committee, altamente influenciado por Grace
Hopper.

Otro hito a finales de 1950 fue la publicacin, por un comit Americano y Europeo de cientficos de
la computacin, 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 programacin:

Estructuras de bloques anidadas: las secuencias de cdigo y las declaraciones asociadas


se pueden agrupar en bloques sin tener que pertenecer explcitamente a procedimientos
separados;

mbito lxico: un bloque puede tener sus propias variables, procedimientos y funciones,
invisible al cdigo fuera de dicho bloque, por ejemplo, ocultamiento de informacin.

Otra innovacin, relacionada con esto, fue cmo el lenguaje fue descrito:

Una notacin matemtica exacta, Backus-Naur Form (BNF), fue utilizada para describir la
sintaxis del lenguaje. Todos los subsecuentes lenguajes de programacin han utilizado una
variante de BNF para describir la porcin libre del contexto de su sintaxis.

Algo en los 60 influenci particularmente en el diseo de lenguajes posteriores, de los cuales


algunos se hicieron ms populares. Los grandes sistemas de Burroughs fueron diseados para ser
programados en un subconjunto extendido de Algol.
Las ideas fundamentales de Algol se continuaron, produciendo Algol 68:

la sintaxis y la semntica se hizo an ms ortogonal, con rutinas annimas, un sistema de


tipificacin recursiva con funciones de orden superior, etc.;

y no slo la parte libre del contexto, sino que tanto la sintaxis como la semntica del
lenguaje completo fueron definidos formalmente, en trminos de una gramtica de Van
Wijngaarden, un formalismo diseado especficamente para este propsito.

Las variadas pero poco usadas caractersticas de Algol 68 (por ejemplo, bloques simultneos y
paralelos) y su complejo sistema de atajos sintcticos y coerciones automticas de tipo lo hicieron
impopular entre los ejecutores y se gan una reputacin de ser difcil. Niklaus Wirth sali del comit
de diseo para crear el sencillo lenguaje Pascal.

Algunos de los lenguajes importantes que fueron desarrollados en este perodo incluyen:

1951 - Regional Assembly Language

1952 - Autocode

1954 - IPL (precursor de LISP)

1955 - FLOW-MATIC (precursor de COBOL)

1957 - FORTRAN (primer compilador)

1957 - COMTRAN (precursor de COBOL)

1958 - LISP

1958 - ALGOL 58

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)

El perodo comprendido entre finales de 1960 y finales de 1970 trajo un gran florecimiento de
lenguajes de programacin. La mayora de los paradigmas de lenguajes de programacin ms
importantes y actualmente en uso se inventaron en este perodo:

Simula, inventado en la dcada de 1960 por Nygaard y Dahl como un superconjunto de


Algol 60, fue el primer lenguaje diseado para apoyar la programacin orientada a objetos.

C, en principio un lenguaje de programacin 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 diseo de un lenguaje


orientado a objetos.

Prolog, diseado en 1972 por Colmerauer, Roussel y Kowalski, fue el primer lenguaje de
programacin lgica.

ML construy un sistema de tipos polimrfico (inventado por Robin Milner en 1973) en el


tope de Lisp, pionero en los lenguajes funcionales de programacin con tipado esttico.

Cada uno de estos lenguajes gener toda una familia de descendientes, y los lenguajes ms
modernos cuentan al menos uno de ellos en su ascendencia.En los aos 60 y 70 tambin suscit
un debate considerable sobre los mritos de la "programacin estructurada", que esencialmente
significaba programacin sin el uso de GOTO. Este debate estaba estrechamente relacionado con
el diseo del lenguaje: algunos lenguajes no incluan GOTO, lo que oblig a la programacin
estructurada en el programador. Aunque el debate se recrudeca acaloradamente en ese momento,
casi todos los programadores estn de acuerdo en que, incluso en lenguajes que ofrecen GOTO,
es una mala prctica de programacin usarlo, excepto en raras circunstancias. Como resultado de
ello, las generaciones posteriores de diseadores de lenguajes han encontrado el debate sobre
programacin estructurada tedioso e incluso desconcertante.
Algunos lenguajes importantes que se desarrollaron en este perodo fueron:

1968 - Logo

1969 - B (precursor C)

1970 - Pascal

1970 - Forth

1972 - C

1972 - Smalltalk

1972 - Prolog

1973 - ML

1975 - Scheme

1978 - SQL (inicialmente slo un lenguaje de consulta, posteriormente ampliado con


construcciones de programacin)

La dcada de 1980 fueron aos de consolidacin relativa en los lenguajes imperativos. En vez de
inventar nuevos paradigmas, se comenz a trabajar a partir de las ideas inventadas en la dcada
anterior. C++ combinaba la programacin orientada a objetos y la programacin de sistemas. El
gobierno de Estados Unidos estandariz Ada, un lenguaje de programacin de sistemas destinado
a ser utilizado por contratistas de defensa. En Japn y en otras partes, se gastaron enormes sumas
investigando los llamados lenguajes de programacin de quinta generacin que incorporaban
construcciones de la programacin lgica. La comunidad de los lenguajes funcionales llevaron a
cabo la estandarizacin de ML y Lisp. La investigacin en Miranda, un lenguaje funcional, con

evaluacin perezosa, comenz a tomar fuerza en esta dcada.Una nueva tendencia importante en
el diseo de lenguajes era un mayor enfoque en la programacin de sistemas a gran escala a
travs del uso de mdulos, una organizacin a gran escala de unidades de cdigo. Modula, Ada, y
ML desarrollaron sistemas de mdulos notables en la dcada de 1980. Los sistemas de mdulos
eran relacionados con frecuencia con construcciones de programacin genricas, que seran, en
esencia, mdulos parametrizados (vase tambin polimorfismo en programacin orientada a
objetos).
Aunque no aparecan nuevos paradigmas de lenguajes de programacin imperativos, muchos
investigadores expandieron las ideas de los lenguajes anteriores y las adaptaron a nuevos
contextos. Por ejemplo, los lenguajes de los sistemas Argus y Emerald adaptaron la programacin
orientada a objetos para sistemas distribuidos.La dcada de 1980 tambin trajo avances en la
implementacin de lenguajes de programacin. El movimiento de RISC en la arquitectura de
computadoras postulaba que el hardware deba estar diseado para los compiladores ms que
para los programadores de ensamblador humanos. Con la ayuda de las mejoras en la velocidad
del procesador, permitiendo tcnicas de compilacin cada vez ms agresivas, el movimiento RISC
despert un mayor inters en la tecnologa de compilacin de los lenguajes de alto nivel.
Las tecnologas de los lenguajes continuaron sobre estas lneas entrando en la dcada de 1990.
Algunos lenguajes importantes que se desarrollaron en este perodo son:

1980 - C++ (C con clases, el nombre cambi en Julio de 1983)

1983 - Ada

1984 - Common Lisp

1984 - MATLAB

1985 - Eiffel

1986 - Objective-C

1986 - Erlang

1987 - Perl

1988 - Tcl

1988 - Mathematica

1989 - FL (Backus);

El rpido crecimiento de Internet en la dcada de 1990 fue el siguiente gran acontecimiento


histrico para los lenguajes de programacin. Con la apertura de una plataforma totalmente nueva
para los sistemas informticos, Internet cre una oportunidad adoptar nuevos lenguajes. En
particular, el lenguaje de programacin Java se hizo popular debido a su pronta integracin con el
navegador web Netscape Navigator, y varios lenguajes de scripting alcanzaron un amplio uso en el
desarrollo de aplicaciones personalizadas para servidores web. La dcada de 1990 no vio ninguna
novedad fundamental en los lenguajes imperativos, pero s mucha recombinacin y la maduracin

de viejas ideas. Esta era comenz la difusin de los lenguajes funcionales. Una filosofa de
conduccin grande era la productividad del programador. Surgieron muchos lenguajes de
aplicaciones de desarrollo rpido (RAD), los cuales usualmente venan con un IDE, recolector de
basura, y eran descendientes de lenguajes anteriores. Todos estos lenguajes eran orientados a
objeto. Estos incluan Object Pascal, Visual Basic y Java. Java, en particular, recibi mucha
atencin. Pero ms radicales e innovadores que los lenguajes de RAD eran los nuevos lenguajes
de script. Estos no descendan directamente de otros lenguajes y ofrecieron nuevas sintaxis e
incorporacin ms liberal de otras caractersticas. Muchos consideran estos lenguajes de script
ms productivos que los lenguajes de RAD, aunque esto se debe a menudo a que es ms difcil
escribir y mantener largos programas que pequeos programas simples. Sin embargo, no es
menos cierto que los programas de script llegaron para convertirse en los ms prominentes en la
conexin con la Web.
Algunos lenguajes importantes que se desarrollaron en este perodo son:

1990 - Haskell

1991 - Python

1991 - Visual Basic

1991 - HTML (lenguaje de marcado de hipertexto)

1993 - Ruby

1993 - Lua

1994 - CLOS (parte del ANSI Common Lisp)

1995 - Java

1995 - Delphi (Object Pascal)

1995 - JavaScript

1995 - PHP

1996 - WebDNA

1997 - Rebol

1999 - D

La evolucin de los lenguajes de programacin contina, tanto en la industria como en


investigacin. Algunas de las tendencias actuales incluyen:

Aumentar el soporte para la programacin funcional en lenguajes importantes utilizados


comercialmente, incluida la programacin funcional pura para hacer el cdigo ms fcil de
razonar y de paralelizar (tanto en macro como en micro-niveles).

Construir lenguajes para apoyar la programacin concurrente y distribuida.

Mecanismos para aadir al lenguaje verificacin en cuanto a seguridad y confiabilidad:


chequeo sintctico extendido, control de flujo de informacin, seguridad de hilos.

Mecanismos alternativos de modularidad: mixins, delegados, aspectos.

Desarrollo de software orientado a componentes.

Metaprogramacin, la reflexin o el acceso al rbol de sintaxis abstracta.

Mayor nfasis en cuanto a distribucin y movilidad.

Integracin con bases de datos, incluyendo XML y bases de datos relacionales.

Soporte para Unicode para que el cdigo fuente (texto del programa) no se limite slo a los
caracteres contenidos en el conjunto de caracteres ASCII, permitiendo, por ejemplo, el uso
de caracteres no latinos basados en guiones o signos de puntuacin extendidos.

XML para interfaz grfica (XUL, XAML).

El cdigo abierto como una filosofa de desarrollo de lenguajes, incluyendo la coleccin de


compiladores de GNU y lenguajes recientes, como Python, Ruby, y Squeak.

Programacin Orientada a Aspectos (AOP).

Lenguajes que soporten programar sobre los procesadores de la GPU en paralelo, como
OpenCL.

Algunos lenguajes importantes desarrollados durante este perodo incluyen:

2000 - ActionScript

2001 - C#

2001 - Visual Basic .NET

2002 - F#

2003 - Groovy

2003 - Scala

2003 - Factor

2007 - Clojure

2009 - Go

2011 - Dart

Vous aimerez peut-être aussi