Lenguajes: Historia, Códigos Fuente y Compiladores

 

fuentes

Definiciones

  • Un ordenador/Computador: Es una máquina que procesa datos
  • Una instrucción: Es la tarea más simple que puede ejecutar un computador, como por ejemplo sumar dos números o mover un registro.
  • Programa: Un conjunto de instrucciones e hacen algo cuando se ejecuta o se corre el programa.

Objetivo de un Programa: Obtener datos, procesarlos y dar un resultado.

Compiladores.png

Esto es algo muy común en computación, es conocido (al menos por mi) como la idea de la caja negra:

Caja Negra

Una caja negra es una idea muy útil, por ejemplo para entender como funciona el internet tal vez alguien te lo explique usando HTML y PHP , pero ..¿Cómo funciona un hipervínculo?  ¿Cómo es que se conecta una computadora a otra sin cables? De eso no tenemos ni puta idea.

Y no te sientas mal por no saber algo, este mundo es complejo y es muy difícil entenderlo todo, por eso usamos la idea de la caja negra, por ejemplo en software hay funciones, por ejemplo printf que para casi todos es una caja negra.

¿Cómo funciona printf ? Nunca lo sabremos o no nos importa.

Compiladores-2.png

Le decimos que lo haga y lo hace. Eso es común en computación, la idea de que ciertas cosas son obvias, como los axiomas en mate.


Códigos y Compiladores

Un código es la forma en la que tenemos para que la computadora haga lo que queremos.

Código Maquina

apple_ii_monitor

  • Utiliza unos y ceros
  • Los procesadores ejecutan instrucciones en binario

Pero claro, el problema es que alguien le tiene que decir a los ordenadores que hacer, y ese alguien son seres humanos y digamos que no son muy buenos en crear códigos o leerlos si solo son un montón de números.

…Ahora imagínate para encontrar un bug : o


Código Fuente

El código fuente es una forma de traducir las ordenes que e damos una computadora a un lenguaje mas entendible para los humanos. De modo que en vez de trabar en el leguaje hecho para la máquina trabajábamos en un hecho para personas.

A lo largo del tiempo se han hecho distintos códigos para trabajar con ordenadores:

Ensamblador

suma.png

El problema con ensamblador es que cualquier operación compleja como sumar o multiplicar requería de muchas instrucciones que también acaban convirtiéndose en repetitivas.

Lenguajes de Alto Nivel

nivel.png

Se trabaja de una manera mucho mas cómoda como puedes ver, entonces para resumir:

Lenguajes de Alto Nivel

  • Intenta ser lo más independiente del procesador posible.
  • Yo digo como quiero que sea mi programa, como lo ejecute el procesador es otra historia.
  • Cualquier maquina puede ejecutar el código.

Lenguajes de Bajo Nivel

  • Trabaja cerca del procesador y permite sacarle todo el provecho al hardware.
  • Puede dar problemas cuando intento cambiar a otra máquina a ejecutarlo.

¿Cómo hace la maquina para entender el lenguaje de alto nivel?

Pues justo eso lo hace a través de un compilador, esa es la clave. Compilador.

Es decir esos códigos fuentes los transforma en un código maquina que la computadora puede entender.

codigo.png

La gran ventaja que nos dan los compiladores ademas que permiten la potabilidad, pues saben las instrucciones indicadas para cada máquina.

Captura de pantalla 2017-01-29 a las 8.26.19 p.m..png


Historia de los Lenguajes

Así como el Hardware (las cosas que puedes golpear) el software también a cambiado a lo largo de los años, a evolucionado. Y mucho.

Antes de 1940

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.

En 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.

ada.jpg

¡Eso es programar con estilo!

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, el cual es reconocido por muchos historiadores como el primer programa de computadora del mundo.

Para algunas personas, lo que sería el primer lenguaje de programación moderno depende de cuánto poder y legibilidad humana se requería antes de que se concediera el estado de “lenguaje de programación”.

Tanto el telar de Jacquard como la Máquina Diferencial de Babbage, tenían lenguajes muy simples y extremadamente limitados para describir las acciones que estas máquinas realizaran.


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): Basado en algo procedimiento de las matemáticas
  • LISP (1958)
  • COBOL (1959): Basado en el uso de finanzas

cobol1

Ensamblador

Se genera como un lenguaje de tipo bajo que usa palabras por ejemplo: Add – 011101110

Y mediante un programa llamado ensamblador se traducía estas palabras a los códigos correspondientes. A partir de aquí surgen dos grandes caminos:

CISC

  • Gran cantidad de instrucciones
  • Son los más usados actualmente y son los procesadores de escritorio

RISC

  • Usados con pocas instrucciones
  • Gran eficiencia de energía
  • Tiene la subfamilia ARM usado en dispositivos móviles

Década de 1890

La década de 1980 fueron años de consolidación relativa en los lenguajes imperativos. En vez de inventar nuevos paradigmas, se comenzó a trabajar a partir de las ideas inventadas en la década anterior. C++ combinaba la programación orientada a objetos y la programación de sistemas.

c.png


La Década de 1990

El rápido crecimiento de Internet en la década de 1990 fue el siguiente gran acontecimiento histórico para los lenguajes de programación. Con la apertura de una plataforma totalmente nueva para los sistemas informáticos, Internet creó una oportunidad adoptar nuevos lenguajes.

java.png

En particular, el lenguaje de programación Java se hizo popular debido a su pronta integración con el navegador web Netscape Navigator, y varios lenguajes de scripting alcanzaron un amplio uso en el desarrollo de aplicaciones personalizadas para servidores web.

 

 

btn1 btn
btn

 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s