Programación para Newbies III: Lenguajes, ¿qué son?

…viene de la segunda parte…

Ya hemos revisado y aprendido la primera premisa de la programación: “Los computadores son estúpidos”. Programar entonces no es más difícil que dar instrucciones paso a paso de lo que queremos que haga. Por desgracia, (aunque no debería sorprendernos) un equipo no entiende español, inglés ni ningún otro lenguaje que los seres humanos podamos comprender. Puesto que de alguna forma tenemos que comunicarnos con el computador nace este nuevo concepto, lenguaje de programación, que será el idioma en el que le daremos las instrucciones que puestas en secuencias, formarán lo que se conoce como código fuente.

Código máquina

stock.xchng | flaivoloka
stock.xchng | flaivoloka

No voy a entrar en mucho detalle sobre el funcionamiento interno de la memoria del computador, pero les diré que ésta alterna entre ceros y unos, que vendría siendo el único lenguaje que el equipo entiende directamente. Puesto que es el código que realmente comprende el computador, se conoce como código máquina. Sorprendentemente, cuando recién aparecieron, los programadores trabajaban de esta forma. Como te podrás imaginar, programar de esta forma es sumamente difícil, imagina lo fácil que es cambiar un cero por uno (o viceversa) y eso produzca que el programa falle (como si eso fuera poco, ¡imagina lo difícil que sería encontrar el error!).

Ensamblador

Como todo el sentido de la programación es intentar simplificar las cosas, ya hacia el comienzo de los años 50 apareció el primer intento de desarrollar un lenguaje que fuera más sencillo de aprender, éste traducía las instrucciones a las correspondientes combinaciones de unos y ceros de cada equipo. Aún los programas seguían siendo dependientes de la máquina puesto que cada una tiene su propio set de instrucciones. No era perfecto, pero qué va! es más fácil de leer, comprender y más importante, de modificar. Un ejemplo de una aplicación escrita en ensamblador sería:

title Hello World Program
; This program shows "Hello World" on the screen
.model Small
.stack 100h
.data
db msg 'Hello, world!$'
.code
start:
    mov ah, 09h
    lea dx, msg ; or mov dx, offset msg
    int 21h
    mov ax,4C00h
    int 21h
end start
flickr.com | jooray
flickr.com | jooray

Aquí aparece un nuevo concepto, utilizado ampliamente en el ámbito de la programación: lenguaje de bajo nivel. Esto es cualquier lenguaje que requiere pasar por menos fases para ser transformado a código máquina y se acerca más al funcionamiento de ésta. En el caso particular de este lenguaje es que un ensamblador lo transforma a unos y ceros. Obviamente es más simple que en binario, pero aún así, es bastante críptico y muchas de las instrucciones resultan incomprensibles.

Fortran

Ya a finales del 1953, Backus, desarrolló el primer lenguaje que se conoce como de alto nivel. Al contrario que los de bajo nivel, el lenguaje pasa a ser un estándar, y no requiere instrucciones distintas para cada procesador. Un ejemplo:

program hello
    print*, 'Hello, world!'
end

Al comparar ambos programas, podemos ver que aunque hacen exactamente lo mismo (imprimir “Hello World!” en pantalla), éste último es mucho más corto (¡4 líneas contra 14, ¡casi la cuarta parte!) y más comprensible. Esto fue una revolución en el mundo de la programación y aparecieron numerosos lenguajes, pero me los voy a saltar para viajar un par de décadas más adelante…

C

El famoso libro publicado por primera vez en 1978
La segunda edición del famoso libro publicado por primera vez en 1978

Bastantes años más tarde, en 1972 Dennis Ritchie desarrolla en los laboratorios de Bell Labs el lenguaje probablemente más popular e influyente de todos los tiempos, basándose en B y BCPL (aunque la verdad es que nunca existió un A), crean el lenguaje C, principal lenguaje en el que están programados los sistemas Unix. Se le trata algunas veces de nivel medio puesto que presenta características de un lenguaje de bajo nivel, es decir, un gran control sobre la máquina, pero al mismo tiempo estructuras típicas de un lenguaje de alto nivel. Esta mezcla de Es por estas razones que es un lenguaje tan ampliamente utilizado. Para continuar con la tradición, un ejemplo del ya famoso “Hello World!” en C:

#include <stdio .h>

int main ()
{
    printf("Hello World!\n");
    return(0);
}

Esta parte ha parecido más libro de historia que el intento de programar, pero bueno, estos contextos le dan un poco de sabor a este tema tan árido. En la siguiente parte, también veremos algo más sobre los lenguajes, pero de manera un poco más aplicada.

Anuncios

17 respuestas a “Programación para Newbies III: Lenguajes, ¿qué son?

  1. La historia no es árida: es historia. Y es la única manera de saber con claridad donde estamos, como hemos llegado aquí y hacia donde podemos ir. Llevo tiempo buscando un buen manual sobre la historia de la informática y sólo he encontrado obras fragmentarias o algunos datos en alguna introducción; y es una lástima, porque es una materia apasionante.

    También he encontrado muchos informáticos que no tienen ni idea de como ha evolucionado la informática desde sus orígenes, y suelen tener ideas entre cómicas y ridículas.

    De manera que muchas gracias por esta introducción a la historia de los lenguages de programación.

    Me gusta

    • Haha… a mí me gusta mucho la historia y sí, concuerdo plenamente contigo. Creo que es necesario conocerla para poder avanzar correctamente (y no cometer los errores del pasado; esto aplicable para todo ámbito de la historia).

      Me alegro que te haya gustado esta parte, ya se pagó :).

      Me gusta

  2. Muy buena tu iniciativa, a pesar que existe mucha informacion en internet para inciarse en la programacion siempre es bueno poder leer estos post que son mucho mas entretenidos y faciles de digerir que los manuales tipicos de programacion.

    Me gusta

  3. Esto va de … BUENO a MEJOR !!!!!. Felicitaciones, cada que leo un post sobre este curso de programación que has iniciado, siento más ganas de volver a meterme de lleno a programar; vas muy bien: sin pausa pero sin prisa y con un contenido entendible y sustancioso. Exitos y quedo a la espera del próximo post.

    Me gusta

  4. 1.- Muy bueno que empieces dando a conocer en forma sistematica este curso, se nota una buena planificación de los temas.
    2.- Preciso, bien definido con los aspectos básicos y detallados( quien desee saber más que vaya por su cuenta, aca esta la pauta)
    3.- Asi deberia ser todo en diversar áreas del conocimiento.
    4.- Existe una posibilidad de tener un canal de youtube de ATELIER LINUX, y asi dejar cada cosa que hacen en forma practica, se que se invierte mucho tiempo es este foro, pues, a lo mejor es imposible la idea, pero, dejo esa inquietud.
    5.- Espero la parte IV

    Me gusta

  5. Holap:

    Como te podrás imaginar, programar de esta forma es sumamente difícil, imagina lo fácil que es cambiar un cero por uno (o viceversa) y eso produzca que el programa falle (como si eso fuera poco, ¡imagina lo difícil que sería encontrar el error!).”

    JODER!!!!
    Con lo que cuesta encontrar un “if( )” mal puesto en C… no quiero ni imaginarlo… xD

    Genial el curso…

    Saludooos :P

    Me gusta

  6. Sergio: Muchas gracias por las palabras de apoyo, de verdad que es sumamente grato recibirlas =). Y respecto a lo del canal en YouTube, no entiendo muy bien… ¿sugieres que los artículos prácticos (porque no entiendo como se podría hacer con este) los grabemos para subirlos luego?. La parte IV ya se viene dentro del día :).

    Me gusta

  7. Jaja, acabo de toparme con esto xD, se que está un poquito viejito pero igual comento xD.
    Fortran nació de la necesidad científica de hacer cálculos complejos que son casi imposibles para una persona, pero que el pc resuelve con mediana facilidad, sin embargo está dirigido para aquellos que no tienen ningún interés en saber como funciona la máquina, de ahí que se le denomina lenguaje de alto nivel.
    Es también por esta razón que en la Universidad de Concepción se enseña Fortran a la gente de la Facultad de Ciencias Físicas y Matemáticas (pero no a los ingenieros civiles xD), es una herramienta de especial utilidad para la gente de Astronomía, Licenciatura en Matemáticas y Ciencias Físicas y Astronómicas (yo), ya que a diferencia de Matlab u otras plataformas, uno puede “enseñarle” al computador a hacer las cosas nuevas que se supone el científico debe inventar para resolver las nuevas interrogantes.
    Un simple agregado a la historia de Fortran.
    Un saludo;

    Me gusta

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