Una historia de lenguajes de programación de computadoras
Desde la invención del motor de diferencia de Charles Babbage en 1822, las computadoras han requerido un medio para instruirlos a realizar una tarea específica. Esto significa que se conoce como lenguaje de programación. Los lenguajes de computadora se compusieron primero de una serie de pasos para conectar un programa en particular; estos se transformaron en una serie de pasos introducidos en la computadora y luego ejecutados; Más tarde, estos lenguajes adquirieron características avanzadas como la ramificación lógica y la orientación a objetos. Los lenguajes informáticos de los últimos cincuenta años se han presentado en dos etapas, los primeros idiomas principales y los segundos idiomas principales, que se utilizan actualmente.
Al principio, el motor de diferencia de Charles Babbage solo se podía hacer para ejecutar tareas cambiando los engranajes que ejecutaban los cálculos. Por lo tanto, la primera forma de lenguaje de computadora fue el movimiento físico. Eventualmente, el movimiento físico fue reemplazado por señales eléctricas cuando el gobierno de los EE. UU. Construyó el ENIAC en 1942. Siguió muchos de los mismos principios del motor de Babbage y, por lo tanto, solo se pudo “programar” preajustando interruptores y reconectando todo el sistema para cada nuevo ” programa “o cálculo. Este proceso resultó ser muy tedioso.
En 1945, John Von Neumann estaba trabajando en el Instituto de Estudios Avanzados. Desarrolló dos conceptos importantes que afectaron directamente la ruta de los lenguajes de programación de computadoras. El primero fue conocido como “técnica de programa compartido” (Jeremy Meyers punto com – Las aventuras en curso de un niño de Nueva York reinventándose en Atlanta). Esta técnica indica que el hardware de la computadora real debe ser simple y no necesita estar conectado a mano para cada programa. En cambio, se deben usar instrucciones complejas para controlar el hardware simple, lo que permite que se reprograme mucho más rápido.
- ¿Cómo explicaría la importancia de la invención del número cero?
- ¿Cuán históricamente precisa es la película Bajirao Mastani (película de 2015)?
- ¿Por qué no ha habido un esfuerzo por cambiar el nombre de Indiana, ya que vino del error de Colón?
- ¿Qué representan los símbolos en la armadura Samurai?
- ¿Qué país puede afirmar ser la democracia continua más antigua del mundo?
El segundo concepto también fue extremadamente importante para el desarrollo de lenguajes de programación. Von Neumann lo llamó “transferencia de control condicional” (Jeremy Meyers punto com – Las aventuras en curso de un niño de Nueva York reinventándose en Atlanta). Esta idea dio lugar a la noción de subrutinas, o pequeños bloques de código a los que se podría saltar en cualquier orden, en lugar de un solo conjunto de pasos ordenados cronológicamente para que la computadora los tome. La segunda parte de la idea afirmaba que el código de la computadora debería poder ramificarse en base a declaraciones lógicas como IF (expresión) ENTONCES, y en bucle como con una declaración FOR. La “transferencia de control condicional” dio lugar a la idea de “bibliotecas”, que son bloques de código que pueden reutilizarse una y otra vez. (Actualizado el 1 de agosto de 2004: por esta época, Konrad Zuse, un alemán, estaba inventando sus propios sistemas informáticos de forma independiente y desarrolló muchos de los mismos conceptos, tanto en sus máquinas como en el lenguaje de programación Plankalkul. Por desgracia, su trabajo no se hizo ampliamente conocido hasta mucho más tarde.
Para obtener más información, consulte este sitio web: Página en epemag.com , o las entradas en Wikipedia: Konrad Zuse y Plankalkul .)
En 1949, unos años después del trabajo de Von Neumann, apareció el lenguaje Short Code (InformationWeek News Connects The Business Technology Community). Fue el primer lenguaje de computadora para dispositivos electrónicos y requirió que el programador cambiara sus declaraciones a 0 y 1 a mano. Aún así, fue el primer paso hacia los idiomas complejos de hoy. En 1951, Grace Hopper escribió el primer compilador, A-0 (InformationWeek News Connects The Business Technology Community). Un compilador es un programa que convierte las declaraciones del lenguaje en 0 y 1 para que la computadora las entienda. Esto condujo a una programación más rápida, ya que el programador ya no tenía que hacer el trabajo a mano.
En 1957, el primero de los principales idiomas apareció en forma de FORTRAN. Su nombre significa FORmula TRANslating system. El lenguaje fue diseñado en IBM para computación científica. Los componentes eran muy simples y proporcionaban al programador acceso de bajo nivel a las computadoras internas. Hoy, este lenguaje se consideraría restrictivo ya que solo incluía declaraciones IF, DO y GOTO, pero en ese momento, estos comandos fueron un gran paso adelante. Los tipos básicos de datos en uso hoy comenzaron en FORTRAN, que incluían variables lógicas (VERDADERO o FALSO) y números enteros, reales y de doble precisión.
Aunque FORTAN era bueno en el manejo de números, no era tan bueno en el manejo de entrada y salida, lo que más le importaba a la informática empresarial. La informática empresarial comenzó a despegar en 1959, y debido a esto, se desarrolló COBOL. Fue diseñado desde cero como el lenguaje para hombres de negocios. Sus únicos tipos de datos eran números y cadenas de texto. También permitió que estos se agruparan en matrices y registros, para que los datos pudieran rastrearse y organizarse mejor. Es interesante observar que un programa COBOL se construye de manera similar a un ensayo, con cuatro o cinco secciones principales que se integran en un conjunto elegante. Las declaraciones de COBOL también tienen una gramática muy parecida al inglés, por lo que es bastante fácil de aprender. Todas estas características fueron diseñadas para facilitar que la empresa promedio lo aprenda y lo adopte.
(Actualizado el 11 de agosto de 2004) En 1958, John McCarthy, del MIT, creó el lenguaje LISt Processing (o LISP). Fue diseñado para la investigación de Inteligencia Artificial (IA). Debido a que fue diseñado para un campo especializado, la versión original de LISP tenía una sintaxis única: esencialmente ninguna. Los programadores escribieron código en árboles de análisis, que generalmente son intermediarios generados por el compilador entre una sintaxis superior (como en C o Java) y un código de nivel inferior. Otra diferencia obvia entre este idioma (en forma original) y otros idiomas es que el tipo de datos básico y único es la lista; A mediados de la década de 1960, LISP adquirió otros tipos de datos. Una lista LISP se denota por una secuencia de elementos encerrados entre paréntesis. Los propios programas LISP están escritos como un conjunto de listas, de modo que LISP tiene la capacidad única de modificarse y, por lo tanto, crecer por sí mismo. La sintaxis de LISP se conocía como “Cambridge Polish”, ya que era muy diferente de la lógica booleana estándar (Wexelblat, 177):
- x V y – Cambridge Polish, lo que se usó para describir el programa LISP
- O (x, y) – notación de prefijo entre paréntesis, lo que se usó en el programa LISP
- x OR y – lógica booleana estándar
LISP sigue en uso hoy en día debido a su naturaleza altamente especializada y abstracta.
El lenguaje Algol fue creado por un comité para uso científico en 1958. Su mayor contribución es ser la raíz del árbol que ha llevado a lenguajes como Pascal, C, C ++ y Java. También fue el primer idioma con una gramática formal, conocida como Backus-Naar Form o BNF ( McGraw-Hill Encyclopedia of Science and Technology , 454). Aunque Algol implementó algunos conceptos novedosos, como la llamada recursiva de funciones, la próxima versión del lenguaje, Algol 68, se volvió hinchada y difícil de usar (InformationWeek News Connects The Business Technology Community). Esto condujo a la adopción de lenguajes más pequeños y compactos, como Pascal.
Pascal se inició en 1968 por Niklaus Wirth. Su desarrollo se debió principalmente a la necesidad de una buena herramienta de enseñanza. Al principio, los diseñadores de idiomas no tenían esperanzas de que disfrutara de una adopción generalizada. En cambio, se concentraron en desarrollar buenas herramientas para la enseñanza, tales como un sistema de depuración y edición y soporte para máquinas de microprocesadores tempranos comunes que estaban en uso en instituciones de enseñanza.
Pascal fue diseñado en un enfoque muy ordenado, combinaba muchas de las mejores características de los idiomas en uso en ese momento, COBOL, FORTRAN y ALGOL. Al hacerlo, se limpiaron muchas de las irregularidades y declaraciones extrañas de estos idiomas, lo que ayudó a ganar usuarios (Bergin, 100-101). La combinación de características, entrada / salida y características matemáticas sólidas, lo convirtieron en un lenguaje altamente exitoso. Pascal también mejoró el tipo de datos “puntero”, una característica muy poderosa de cualquier lenguaje que lo implemente. También agregó una declaración CASE, que permitió que las instrucciones se ramificaran como un árbol de tal manera:
CASO expresión de possible-expression-value-1 : sentencias para ejecutar … possible-expression-value-2 : sentencias para ejecutar … END
Pascal también ayudó al desarrollo de variables dinámicas, que podrían crearse mientras se ejecutaba un programa, a través de los comandos NEW y DISPOSE. Sin embargo, Pascal no implementó matrices dinámicas, o grupos de variables, lo que resultó ser necesario y condujo a su caída (Bergin, 101-102).
Wirth más tarde creó un sucesor de Pascal, Modula-2, pero para cuando apareció, C estaba ganando popularidad y usuarios a un ritmo rápido.
C fue desarrollado en 1972 por Dennis Ritchie mientras trabajaba en Bell Labs en Nueva Jersey. La transición en el uso de los primeros idiomas principales a los idiomas principales de hoy ocurrió con la transición entre Pascal y C. Sus antepasados directos son B y BCPL, pero sus similitudes con Pascal son bastante obvias. Todas las características de Pascal, incluidas las nuevas, como la declaración CASE, están disponibles en C. C utiliza punteros ampliamente y fue creado para ser rápido y poderoso a costa de ser difícil de leer. Pero debido a que solucionó la mayoría de los errores que tenía Pascal, se ganó a los antiguos usuarios de Pascal con bastante rapidez.
Ritchie desarrolló C para el nuevo sistema Unix que se está creando al mismo tiempo. Debido a esto, C y Unix van de la mano. Unix le brinda a C características tan avanzadas como variables dinámicas, multitarea, manejo de interrupciones, bifurcación y fuerte entrada de salida de bajo nivel. Debido a esto, C se usa muy comúnmente para programar sistemas operativos como Unix, Windows, MacOS y Linux.
A fines de los años setenta y principios de los ochenta, se estaba desarrollando un nuevo método de programación. Era conocido como Programación Orientada a Objetos, u OOP. Los objetos son datos que el programador puede empaquetar y manipular. A Bjarne Stroustroup le gustó este método y desarrolló extensiones para C conocidas como “C con clases”. Este conjunto de extensiones se desarrolló en el lenguaje C ++ con todas las funciones, que se lanzó en 1983.
C ++ fue diseñado para organizar la potencia bruta de C usando OOP, pero mantener la velocidad de C y poder ejecutarse en muchos tipos diferentes de computadoras. C ++ se usa con mayor frecuencia en simulaciones, como juegos. C ++ proporciona una forma elegante de rastrear y manipular cientos de instancias de personas en ascensores o ejércitos llenos de diferentes tipos de soldados. Es el idioma de elección en los cursos de informática AP de hoy.
A principios de la década de 1990, la televisión interactiva era la tecnología del futuro. Sun Microsystems decidió que la televisión interactiva necesitaba un lenguaje especial y portátil (puede ejecutarse en muchos tipos de máquinas). Este lenguaje finalmente se convirtió en Java. En 1994, el equipo del proyecto Java cambió su enfoque a la web, que se estaba convirtiendo en “lo bueno” después de que la televisión interactiva fallara. Al año siguiente, Netscape obtuvo la licencia de Java para su navegador de Internet, Navigator. En este punto, Java se convirtió en el lenguaje del futuro y varias compañías anunciaron aplicaciones que se escribirían en Java, ninguna de las cuales entró en uso.
Aunque Java tiene objetivos muy elevados y es un ejemplo de libro de texto de un buen lenguaje, puede ser el “lenguaje que no lo era”. Tiene serios problemas de optimización, lo que significa que los programas escritos en él se ejecutan muy lentamente. Y Sun ha perjudicado la aceptación de Java al participar en batallas políticas sobre él con Microsoft. Pero Java puede terminar como el lenguaje de instrucción del mañana, ya que está realmente orientado a objetos e implementa técnicas avanzadas como la verdadera portabilidad del código y la recolección de basura.
Visual Basic a menudo se enseña como primer lenguaje de programación hoy, ya que se basa en el lenguaje BÁSICO desarrollado en 1964 por John Kemeny y Thomas Kurtz. BASIC es un lenguaje muy limitado y fue diseñado para personas que no son informáticas. Las declaraciones se ejecutan principalmente de forma secuencial, pero el control del programa puede cambiar en función de las declaraciones IF..THEN y GOSUB que ejecutan un determinado bloque de código y luego regresan al punto original en el flujo del programa.
Microsoft ha extendido BASIC en su producto Visual Basic (VB). El corazón de VB es el formulario o la ventana en blanco en la que arrastra y suelta componentes como menús, imágenes y barras deslizantes. Estos elementos se conocen como “widgets”. Los widgets tienen propiedades (como su color) y eventos (como clics y clics dobles) y son fundamentales para construir cualquier interfaz de usuario en cualquier idioma. VB se usa con mayor frecuencia hoy en día para crear interfaces rápidas y simples para otros productos de Microsoft, como Excel y Access, sin necesidad de mucho código, aunque es posible crear aplicaciones completas con él.
Perl a menudo se ha descrito como la “cinta adhesiva de Internet”, porque se usa con mayor frecuencia como motor para una interfaz web o en scripts que modifican archivos de configuración. Tiene funciones de coincidencia de texto muy fuertes que lo hacen ideal para estas tareas. Perl fue desarrollado por Larry Wall en 1987 porque las herramientas Unix sed y awk (utilizadas para la manipulación de texto) ya no eran lo suficientemente fuertes como para satisfacer sus necesidades. Dependiendo de a quién le pregunte, Perl significa lenguaje práctico de extracción e informes o basura patológicamente ecléctica.
Los lenguajes de programación han estado en desarrollo durante años y lo seguirán siendo durante muchos años. Comenzaron con una lista de pasos para conectar una computadora para realizar una tarea. Estos pasos finalmente llegaron al software y comenzaron a adquirir nuevas y mejores funciones. Los primeros idiomas principales se caracterizaron por el simple hecho de que estaban destinados a un propósito y a un solo propósito, mientras que los idiomas de hoy se diferencian por la forma en que están programados, ya que pueden usarse para casi cualquier propósito. Y quizás los idiomas del mañana serán más naturales con la invención de las computadoras cuánticas y biológicas.
Ref: Una historia de lenguajes de programación de computadoras