-
ANTECEDENTES
Estos fuerón las bases de los lenguajes de programación. -
EL PADRE DE LA COMPUTACIÓN
Charles Babbage, matemático y científico de la computación británico. Diseñó y desarrolló parcialmente una calculadora mecánica capaz de calcular tablas de funciones numéricas por el método de diferencias. También diseñó, pero nunca construyó, la máquina analítica para ejecutar programas de tabulación o computación; por estos inventos se le considera como una de las primeras personas en concebir la idea de lo que hoy llamaríamos una computadora -
ALGORITMO PARA UNA CALCULADORA MECÁNICA (PRIMERA PROGRAMADORA DE ORDENADORES)
La matematica y escritora Ada Lovelace cuya fama le viene principalmente por su trabajo sobre la máquina calculadora mecánica de uso general de Charles Babbage, la denominada máquina analítica. Entre sus notas sobre la máquina se encuentra lo que se reconoce hoy como el primer algoritmo destinado a ser procesado por una máquina, por lo que se la considera como la primera programadora de ordenadores. -
INVENCIÓN DEL LENGUAJE ENSAMBLADOR
Mauricio V. Wilkes, inventó en la Universidad de Cambridge el lenguaje ensamblador. El cual consistía en asignar nombres a las instrucciones del procesador, así como a registros, crear macros y utilizar variables, que en el fondo es como ponerle nombres a las direcciones de memoria, etc. De esta forma, los programas ya no consistían en una sucesión de unos y ceros sino en listados de texto mucho más legibles para los ojos de un programador humano. -
CREADORA DEL PRIMER COMPILADOR
Grace Murray Hopper científica de la computación y militar estadounidense con grado de contraalmirante. Es pionera en el mundo de las ciencias de la computación y fue la primera programadora que utilizó el Mark I. Entre las décadas de los 50 y 60 desarrolló el primer compilador para un lenguaje de programación así como también propició métodos de validación. Popularizó la idea de una máquina independiente de los lenguajes de programación, lo que derivó en el desarrollo de COBOL. -
FORTRAN(FORmula TRANslating System)
John Backus y con su equipo inventan en IBM el lenguaje FORTRAN.
Primer lenguaje de alto nivel, se centró en el cálculo numérico, limitando en los usos de gestión, manejo de archivos, tratamiento de cadenas de caracteres y edición de informes. Usaba tarjetas perforadas de 80 caracteres de ancho, y su sistema de procesado de instrucciones era secuencial. Algunas versiones fueron: FORTRAN ll, III, IV, V, 66, 77, 90,95 Y 2003.
Lenguajes que se derivaron de él son ALGOL y Basic. -
ALGOL (ALGorithmic Oriented Language)
Desarrolladopor un comité internacional para crear un lenguaje de programación internacional e independiente de la máquina. Utiliza bloques de declaraciones entre parentesis y fue el primer lenguaje en emplear los términos BEGIN y END para delimitarlos. ALGOL 58 incorporó ciclos, hasta entonces los programas eran de estructura plana, secuencial, como los realizados en ensamblador. Algunas versiones ALGOL 58(AL), 60 y 68. Lenguajes que se derivaron de él son Pascal, Modula 2, Simula. -
LENGUAJE DE PROGRAMACIÓN LISP (LISt Processor) Y ADQUISICIÓN DEL TERMINO INTELIGENCIA ARTIFICIAL
John McCarthy y equpio inventarón Lisp de tipo multiprograma, con una inconfundible y útil sintaxis basada en la notación polaca. Creado como una notación matemática práctica para los programas de computadora, se convirtió en el lenguaje de programación en la investigación de la inteligencia artificial (AI). Lisp fue pionero en ideas en ciencias de computación, incluyendo las estructuras de datos de árbol, el manejo de almacenamiento automático, tipos dinámicos, y el compilador auto contenido. -
COBOL (COmmon Business-Oriented)
Fue dotado de capacidades de autodocumentación y una buena gestión de archivos y los tipos de datos, a través de la sentencia PICTURE para la definición de campos estructurados., Emplea por defecto números en base diez, la sintaxis fue creada parecida al idioma inglés. Creado con el objetivo de ser usado en cualquier ordenador. En el código que se ve de la programación del cyborg de la película Terminator (1984), algunas de las sentencias están escritas en Cobol. -
APL (A Programing Language)
Es un lenguaje de programación y se originó a partir de la notación matemática desarrollada por Kenneth Iverson. Es un lenguaje aplicativo, similar a un lenguaje funcional. Utiliza operadores parametrizables. Su sintaxis está basada en (pocos) "operadores" y utiliza un conjunto especial de caracteres. Básicamente guage, por que su conjunto de operaciones se fundamente en un álgebra lineal abstracta. Por lo que es idóneo para trabajar con vectores y matrices, tiene un repertorio de operadores. -
SIMULA
Es un lenguaje de programación orientada a objetos(POO), fue el primero de este tipo que incluyó el concepto de clase. Varios años después de su desarrollo, casi todos los lenguajes modernos comenzaron a utilizar sus principios de orientación a objetos. Así fue como se popularizaron términos como clases, objetos, instancias, herencia, polimorfismo, etc. Hoy en día, los creadores de Simula han desarrollado un nuevo lenguaje de programación, llamado Beta.Lenguajes Derivados de él: Smalltalk y C++. -
SNOBOL (StriNg Oriented symBOlic Language)
es un lenguaje de programación de computadoras de muy alto nivel que surgió en la década de los 60 en los Laboratorios Bell merced al equipo formado por David J. Farber, Ralph E. Griswold e Ivan P. Polonsky. fue unode los lenguajes orientados a cadenas de texto y de entre ellos uno de los más exitosos. (v.g.: COMIT y TRAC). Lenguaje de manipulación de texto en las disciplinas humanísticas. -
CPL (Combined Programming Language)
Lenguaje de programación desarrollado conjuntamente entre el Laboratorio de Matemática en la Universidad de Cambridge y la Unidad Computación de la Universidad de Londres. En 1963 estaba siendo implementado en la computadora Titan, en Cambridge, y en la computadora Atlas, en Londres. En vez de ser extremadamente pequeño, elegante y simple, CPL era grande, moderadamente elegante y complejo. CPL resultó mucho para las pequeñas computadoras y las inmaduras tecnologías de compilación de la época. -
BASIC (Beginner's All-purpose Symbolic Instruction Code)
Código simbólico de instrucciones de alto nivel con propósito general para principiantes. Fue diseñado por John George Kemeny y Thomas Eugene Kurtz en el Dartmouth College en New Hampshire, Estados Unidos, como un medio para facilitar la programación en ordenadores a estudiantes y profesores que no fueran de ciencias. En aquella época casi todo el uso de los computadores requería codificar software hecho a medida, el cual quedaba restringido a personas con formación de científicos y matemáticos. -
LOGO
Lenguaje de programación de alto nivel, en parte funcional, en parte estructurado de muy fácil aprendizaje. Fue diseñado con fines didácticos por Danny Bobrow, Wally Feurzeig, Seymour Papert y Cynthia Solomon, los cuales se basaron en las características del lenguaje Lisp. Fue creado con la finalidad de usarlo para enseñar programación y puede usarse para enseñar la mayoría de principales conceptos de la programación, ya que proporciona soporte para manejo de listas, archivos y entrada/salida. -
B
Lenguaje de programación desarrollado en los Bell Labs, predecesor del lenguaje de programación C. Fue mayoritariamente un trabajo de Kenneth L. Thompson con contribuciones de Dennis M. Ritchie publicado por primera vez en el año 1969. fue esencialmente una simplificación del lenguaje BCPL, eliminando cualquier componente que Thompson considerase prescindible de forma que cupiese en la memoria de las minicomputadoras de la época. -
PL/I (Programming Language I)
Propuesto por IBM para responder a las necesidades de las aplicaciones científicas y comerciales, disponible en plataformas de utilidad general IBM 360 y más adelante IBM 370. Este lenguaje tenía características que más adelante adoptaría el lenguaje C y algunas de C++. Los usuarios no lo adoptarón a pesar de sus múltiples innovaciones como multiprocesamiento, recursión, estructuras de control modernas, asignación dinámica de espacio para estructuras de datos, procedimientos genéricos, etc. -
PASCAL
Lenguaje creado por el profesor suizo Niklaus Wirth, caracteriza por ser un lenguaje de programación estructurado fuertemente tipado. El código está dividido en porciones fácilmente legibles llamadas funciones o procedimientos. El tipo de dato de todas las variables debe ser declarado previamente para que su uso quede habilitado. Pascal fue el lenguaje primario de alto nivel utilizado para el desarrollo en el Apple Lisa, y en los primeros años del Macintosh. -
C
Lenguaje originalmente desarrollado por Dennis Ritchieen en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL. C es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas, también se utiliza para crear aplicaciones. Se trata de un lenguaje de tipos de datos estáticos, débilmente tipificado, de medio nivel, ya que dispone de las estructuras típicas de los lenguajes de alto nivel. -
SCHEME
Lenguaje funcional si bien impuro pues sus estructuras de datos no son inmutables y un dialecto de Lisp. Fue desarrollado por Guy L. Steele y Gerald Jay Sussman. La filosofía de Scheme es minimalista y su objetivo no es acumular un gran número de funcionalidades, sino evitar las debilidades y restricciones que hacen necesaria su adición, proporciona el mínimo número posible de nociones primitivas, construyendo todo lo demás a partir de un reducido número de abstracciones. -
MODULA-2
Lenguaje de programación cuyo autor es Niklaus Wirth. 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. -
SMALLTALK
Es un lenguaje reflexivo de programación, orientado a objetos y con tipado dinámico. Metafóricamente, se puede considerar que un Smalltalk es un mundo virtual donde viven objetos que se comunican entre sí, mediante el envío de mensajes. Está compuesto por una máquina virtual un archivo llamado Imagen, una biblioteca de objetos reusables puede funcionar como un sistema en tiempo de ejecución. -
OBJECTIVE-C
Lenguaje de programación orientado a objetos creado como un superconjunto de C para que implementase un modelo de objetos parecido al de Smalltalk. Originalmente fue creado por Brad Cox y la corporación StepStone, fue adoptado como lenguaje de programación de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC. Actualmente se usa como un lenguaje principal de programación para Mac OS X, iOS y GNUstep, además de Swift. -
C++
Diseñadopor Bjarne Stroustrup cuya intención de su creación fue el extender al lenguaje de programación C mecanismos que permiten la manipulación de objetos. Desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido. Posteriormente se añadieron facilidades de programación genérica, que se sumaron a los paradigmas de programación estructurada y programación orientada a objetos. Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma. -
SITUACIÓN ACTUAL
-
MATLAB (MATrix LABoratory)
Es una herramienta de software matemático que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje M). Está disponible para las plataformas Unix, Windows, Mac OS X y GNU/Linux .
Entre sus prestaciones básicas se hallan: la manipulación de matrices, la representación de datos y funciones, la implementación de algoritmos, la creación de interfaces de usuario (GUI) y la comunicación con programas en otros lenguajes y con otros dispositivos hardware. -
EIFFEL
Lenguaje de programación orientado a objetos que sigue el estándar ISO diseñado por Bertrand Meyer. En las características claves del lenguaje incluyen: diseño por contrato, gestión de memoria automática, herencia, incluyendo la herencia múltiple, programación genérica con y sin restricciones, seguridad ausencia de tipos, o protección estática contra las llamadas a referencias a nul, Rutinas de ejecución única se ejecutan solo una vez para objetos compartidos y la inicialización descentralizada. -
SQL(Structured Query Language)
Es un lenguaje específico del dominio que da acceso a un sistema de gestión de bases de datos relacionales. Una de sus características es el manejo del álgebra y el cálculo relacional que permiten efectuar consultas con el fin de recuperar, de forma sencilla, información de bases de datos, así como hacer cambios en ellas. Incluye la inserción de datos, consultas, actualizaciones y borrado, la creación y modificación de esquemas y el control de acceso a los datos. -
ERLANG
Lenguaje de programación concurrente (u orientado a la concurrencia) y un sistema de ejecución que incluye una máquina virtual BEAM y bibliotecas OTP. Es un lenguaje funcional, con evaluación estricta, asignación única, y tipado dinámico. Fue diseñado en la compañía Ericsson para realizar aplicaciones distribuidas, tolerantes a fallos, soft-real-time y de funcionamiento ininterrumpido. -
PERL
Lenguaje de programación diseñado por Larry Wall, toma características del lenguaje C, del lenguaje interpretado bourne shell (sh), AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de programación. Estructuralmente, Perl está basado en un estilo de bloques como los del C o AWK, y fue ampliamente adoptado por su destreza en el procesado de texto y no tener ninguna de las limitaciones de los otros lenguajes de script. -
HASKELL
Lenguaje de programación estandarizado multi-propósito puramente funcional con semánticas no estrictas y fuerte tipificación estática. Las características más interesantes de Haskell incluyen el soporte para tipos de datos y funciones recursivas, listas, tuplas, guardas y encaje de patrones. La combinación de las mismas pueden resultar en algunas funciones casi triviales cuya versión en lenguajes imperativos pueden llegar a resultar extremadamente tediosas de programar. -
PYTHON
Lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible.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. Posee una licencia de código abierto, denominada Python Software Foundation License,que es compatible con la Licencia pública general de GNU. -
CLOS (Common Lisp Object System)
Sistema de resolución múltiple. Esto significa que los métodos se pueden distinguir según los tipos de todos los argumentos. Muchos lenguajes OO son de resolución simple, sus métodos sólo se distinguen con el primer argumento. Los métodos en CLOS se agrupan en funciones genéricas, colecciones de métodos con el mismo nombre y estructura de argumentos, pero con argumentos de tipos diferentes. Permite combinar los diferentes métodos asociados a una función genérica bajo diferentes estrategias. -
PERSPECTIVA
Sin duda el nacimiento de estos lenguajes de programación en la actualidad han tenido gran impacto ya que se siguen utilizando debido a su mejora constante, los cuales se quedaran durante bastante tiempo mejorando el futuro. -
RUBY
Lenguaje de programación interpretado, reflexivo y orientado a objetos, creado por el programador japonés Yukihiro Matsumoto. Caracteristicas: Orientado a objetos, Cuatro niveles de ámbito de variable: global, clase, instancia y local,
Manejo de excepciones, iteradores y clausuras o closures (pasando bloques de código), expresiones regulares nativas similares a las de Perl a nivel del lenguaje, Posibilidad de redefinir los operadores (sobrecarga de operadores), recolección de basura automática. -
JAVASCRIPT
Lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico. Se utiliza principalmente en su forma del lado del cliente implementado como parte de un navegador web permitiendo mejoras en interfaz de usuario y páginas web dinámicasaunque existe una forma de JavaScript del lado del servidor, el en aplicaciones externas a la web, por ejemplo en documentos PDF, aplicaciones de escritorio -
JAVA
Desarrollado por James Gosling, de Sun Microsystems.
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. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo. Lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. -
C#
Lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que después fue aprobado como un estándar por la ECMA (ECMA-334) e ISO (ISO/IEC 23270). C# es uno de los lenguajes de programación diseñados para la infraestructura de lenguaje común.
Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET, similar al de Java, aunque incluye mejoras derivadas de otros lenguajes. -
F#
Lenguaje de programación multiparadigma de código abierto, para la plataforma .NET, que conjunta la programación funcional con las disciplinas imperativa y orientada a objetos, actualmente está siendo desarrollado por Microsoft, es un lenguaje fuertemente tipado que utiliza inferencia de tipos. Como resultado, los tipos no necesitan estar declarados explícitamente por el programador; estos serán deducidos por el compilador durante el proceso de compilación. -
GROOVY
Lenguaje de programación orientado a objetos implementado sobre la plataforma Java. Groovy usa una sintaxis muy parecida a Java, comparte el mismo modelo de objetos, de hilos y de seguridad. Desde Groovy se puede acceder directamente a todas las API existentes en Java. El bytecode generado en el proceso de compilación es totalmente compatible con el generado por el lenguaje Java para la Java Virtual Machine (JVM), por tanto puede usarse directamente en cualquier aplicación Java. -
SCALA
Lenguaje de programación multi-paradigma diseñado para expresar patrones comunes de programación en forma concisa, elegante y con tipos seguros. Integra sutilmente características de lenguajes funcionales y orientados a objetos. La implementación actual corre en la máquina virtual de Java y es compatible con las aplicaciones Java existentes. Orientación a objetos, Lenguaje funcional, Tipificado estático y Extensibilidad. -
CLOJURE
Diseñado por Rich Hickey.
Es un lenguaje de programación de propósito general dialecto de Lisp. Hace un énfasis especial en el paradigma funcional, con el objetivo (entre otros) de eliminar la complejidad asociada a la programación concurrente. Clojure puede ser ejecutado sobre la Máquina Virtual de Java y la máquina virtual de la plataforma .NET, así como compilado a JavaScript. -
DART
Lenguaje de programación de código abierto, desarrollado por Google. 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. y está diseñado para integrarse con los Frameworks Cocoa y Cocoa Touch, puede usar cualquier biblioteca programada en ObjectiveC y llamar funciones de C. Es posible desarrollar código en Swift compatible con ObjectiveC bajo ciertas condiciones. Swift tiene la intención de ser un lenguaje seguro, de desarrollo rápido y conciso. Usa el compilador LLVM incluido en Xcode 6. -
CONCLUSIÓN
Con el tiempo las computadoras han ido evolucionando y los lenguajes de programación han ido mejorando para brindar una mayor facilidad a las personas de crear sus propias aplicaciones y programas. Al principio estos eran demasiado difíciles de entender puesto que estos eran desarrollados para que las maquinas los entendieran directamente, eran muy abstractos y se encargaban de mandar señales al hardware para hacer los procesos, estos lenguajes son conocidos como de bajo nivel. -
CONCLUSIÓN
En la actualidad los lenguajes se han hecho mucho más amigables gracias a la creación del compilador ya que este se encargan de traducir el código del usuario para que sea comprendido por la máquina. Los lenguajes son hoy en día mucho más compresibles para los humanos ya que son menos abstractos y muy sencillos de aprender, a estos se les denomina de alto nivel. Sin olvidar que algunos lenguajes se derivan de otros y que el desarrollo de software a ido mucho mas haya que la creación de hardware. -