-
Se desarrolla el primer ordenador digital
Las instrucciones que se ejecutaban eran códigos numéricos, lenguaje de máquina., esto es engorroso, entonces surgen los ensamblador. Al inicio el programa se escribía mediante claves y luego se traducía manualmente al lenguaje de máquina. Cuando esto lo hizo la misma máquina, a este trabajo se le llamó ensamblar el programa. -
John Backus
John Backus dirige una investigación en IBM en un lenguaje algebraico -
Lenguaje ensamblador
El lenguaje ensamblador es el lenguaje de programación utilizado para escribir programas informáticos de bajo nivel, y constituye la representación más directa del Código máquina específico para cada arquitectura de computadoras legible por un programador. Aun hoy se utiliza en la programación de handler o manipuladores de dispositivos de hardware. -
Primer compilador de la historia
El primer compilador de la historia es el A-0 viendo ella lo tedioso que era programar en la famosa computadora Mark I, apostó por poder ingresar código que pudiera ser interpretado en cualquier máquina y llego a la conclusión que en vez de programar a tan bajo nivel, era necesario un intermediario, por ende su propio compilador. -
FORTRAN
Después de los logros de Hopper, se ve la necesidad de utilizar lenguajes de alto nivel, hombres que investigaron como Jhon Backups acerca de interpretes en el año 1954, pudo surgir el lenguaje de programación: FORTRAN (FORMULAE TRANSLATOR), el cual consistía en recibir códigos sobre ecuaciones matemáticas en tarjetas perforadas y lograr ejecutarlas a velocidad de lenguaje de
máquina. -
Algol 58
Ya que FORTRAN tardo 18 años en desarrollarse, sin mencionarse que este mismo lenguaje solo funcionaba en hardware de IBM aparece Chomsky. F. Bauer de la Universidad de Munich, que trabaja con algoritmos sencillos. Logra trabajar junto con Backups y con ello produce ALGOL 58 (1958), el cual podrá trabajar en forma estructurada o en bloques. -
Automatas
En el año 1959 Strong dio una propuesta para dar solución al problema de no poder ejecutar código en cualquier maquina. Entonces propuso una solución de dividir en dos partes todo el proceso de compilación.
Front End: Esta parte es la que analiza el programa fuente, se ejecuta primero
Back End: Esta parte se encarga de escribir el código objeto para la máquina, se ejecuta de último. -
Rabin y Scott
Rabin y Scott proponen el empleo de AFD y AFN para el reconocimiento lexicográfico de los lenguajes -
Parsing Fortran
Sheridan describe un método de parsing de FORTRAN para introducir paréntesis en una expresión -
ALGOL 60
En los 60’s se estudia el paso de parámetros por nombre, valor y referencia y se incluyen los procedimientos recursivos para Algol 60
Se desarrolla la localización dinámica de datos -
Parametros
se estudia el paso de parámetros por nombre, valor y referencia y se incluyen los procedimientos recursivos para Algol 60
Se desarrolla la localización dinámica de datos -
Parsing
se usa por primera vez un parsing descendente recursivo -
LISP
El primer compilador auto-alojado (excluyendo ensambladores) fue escrito para Lisp por Tim Hart y Mike Levin en el MIT en 1962. Ellos escribieron un compilador de Lisp en Lisp, probándolo en un intérprete de Lisp existente. Mejoraron tanto el compilador hasta el punto de que se pudiera compilar en su propio código fuente, esto fue llamado auto-alojado. -
BASIC
Por su sencillez, es, sin duda, el más difundido, aplicándose tanto en tareas de gestión como en aplicaciones científicas -
GLC
se estudia y definen las GLC, los parsers predictivos y la eliminación de recursividad izquierda -
C
Por su sencillez, es, sin duda, el más difundido, aplicándose tanto en tareas de gestión como en aplicaciones científicas -
Analisis lexico y sintactico
Aparecen los primeros programas que automatizan los procesos de análisis léxico y sintáctico. Aparece PASCAL, utilizado para la programación estructurada. -
LEX
aparece LEX generador automático de analizadores léxicos a partir de expresiones regulares bajo UNIX -
YACC
Johnson crea YACC para UNIX (generador de analizadores sintácticos). Ahora un compilador de divide en varias fases -
C++
Permiten la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido. -
Small C
Se consolida y prolifera el concepto de asignación y liberación de memoria dinámica. La programación orientada a objetos es extensamente utilizada y madura. -
Laticce
Fue la primer compilador para el IBM Personal Computer -
PASCAL
Borland lanzó al mercado su compilador PASCAL -
TURBO basic
Turbo Basic es un compilador de BASIC desarrollado por Borland en 1987. Se caracteriza por tener funciones gráficas. Fue uno de los últimos BASIC antes de la aparición de Visual Basic. Tiene la característica de ser compatible con el QuickBASIC de Microsoft, hasta el punto de que un libro de referencia del Turbo Basic se puede usar perfectamente para programar en QuickBasic. -
Turbo c
Turbo C era un entorno de desarrollo integrado y compilador desarrollado por Borland para programar en lenguaje C.Fue el compilador más popular para desarrollar en C en entornos MS-DOS -
IDE
Surgen los ambientes de desarrollo, los lenguajes interpretados comienza a ganar terreno en aplicaciones de Internet y el código intermedio se vuelve a poner de moda. -
Phyton
Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico y es multiplataforma. -
Visual Basic
Este lenguaje de programación es un dialecto de BASIC, con importantes agregados. Su primera versión fue presentada en 1991, con la intención de simplificar la programación utilizando un ambiente de desarrollo. -
Ruby
Combina una sintaxis inspirada en Python y Perl con características de programación orientada a objetos similares a Smalltalk. Comparte también funcionalidad con otros lenguajes de programación como Lisp, Lua, Dylan y CLU. Ruby es un lenguaje de programación interpretado en una sola pasada y su implementación oficial es distribuida bajo una licencia de software libre. -
Java
es un lenguaje de programación de propósito general, concurrente, orientado a objetos, que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. -
JavaScript
implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas -
PHP
Fue uno de los primeros lenguajes de programación del lado del servidor que se podían incorporar directamente en un documento HTML en lugar de llamar a un archivo externo que procese los datos. El código es interpretado por un servidor web con un módulo de procesador de PHP que genera el HTML resultante. -
D
Se origina como un rediseño de C++, con un enfoque más pragmático, pero no es un lenguaje puramente derivado del anterior. D ha mantenido algunas características de C++ y también está influido por otros conceptos de otros lenguajes como Java, C# y Eiffel. -
C sharp
Ya existe un compilador implementado que provee el marco Mono - DotGNU, el cual genera programas para distintas plataformas como Windows Microsoft, Unix, Android, iOS, Windows Phone, Mac OS y GNU/Linux. -
GO
Go es un lenguaje de programación compilado, concurrente, imperativo, estructurado, orientado a objetos —de una manera bastante especial— y con recolector de basura que de momento está soportado en diferentes tipos de sistemas UNIX, incluidos Linux, FreeBSD y Mac OS X. -
DART
El objetivo de Dart no es reemplazar JavaScript como el principal lenguaje de programación web en los navegadores web, sino ofrecer una alternativa más moderna. El espíritu del lenguaje puede verse reflejado en las declaraciones de Lars Bak, ingeniero de software de Google, que define a Dart como un “lenguaje estructurado pero flexible para programación Web”. -
Swift
Es un lenguaje de programación multiparadigma creado por Apple enfocado en el desarrollo de aplicaciones para iOS y macOS. Fue presentado en WWDC 20147 y está diseñado para integrarse con los Frameworks Cocoa y Cocoa Touch, puede usar cualquier biblioteca programada en Objective-C y llamar a funciones de C.