Que es el "código fuente" y como puede ser abierto?

Desde de la larga adopción de ordenadores en nuestra vida cotidiana, el "código fuente" es cada día más parte de nuestra realidad. De los misteriosos símbolos representados en Matrix (...e incluso hay una película llamada "Source code"), hacia el software de código abierto que puedes descargar, vemos referencias a este "código" en todas partes. De hecho, hasta esta página que estas leyendo en este momento tiene un código fuente! Para verlo, haga un clic derecho sobre la página y selecciona "ver fuente" (esta opción depende de tu navegador). Pero, que es este código fuente y cómo puede ser abierto (o cerrado)?

 

Empecemos por una breve explicación de las diferencias entre lenguaje de máquina y el lenguaje humano. El lenguaje humano que hablamos y escribimos se compone de una docena de letras que corresponden a sonidos que se pueden combinar para formar palabras y oraciones. Computadoras hablan a través de cables y el uso de un lenguaje muy diferente. Envían impulsos eléctricos que tienen un significado para ellos. Esta comunicación sólo tiene dos "letras": encendido o apagado, señal o sin señal, impulso o sin impulso . Esto se llama el sistema de numeración binario. Todo lo que hacemos en una computadora se transforma en una serie de ceros (sin señal) y unos (señal).


Por ejemplo:
El número 6 corresponde a 110 en el sistema binario. La letra k en el código binario se convierte en 01101011. La frase "Hello World" se convierte en "01001000 01100101 01101100 01101100 01101111 01010111 01101111 01110010 01101100 01100100".

 

Te das cuenta que es muy difícil para un ser humano leer en lenguaje de máquina y es muy difícil también de hacer máquinas  comprendieren el lenguaje humano. Para colmar el desfase entre el lenguaje humano y el lenguaje de máquina hemos inventado los lenguajes de programación. Ellos están en el medio entre lenguaje humano y el lenguaje de la máquina. Estos lenguajes de programación ayudan a los seres humanos escribir -algo- que pueda ser fácilmente traducido en código binario.

 

Por ejemplo (esto no esta en ningún lenguaje de programación, pero es muy parecido):

if (A < B & B < C){ return: A < C; }

 

Esto parece una instrucción típica en un lenguaje de programación que significa "Si A es menor que B y B es menor que C, entonces A es menor que C". Estas instrucciones, escritas en un lenguaje de programación, son procesados ​​por un interpretador o un compilador y se transforman en una serie de ceros y unos que la máquina puede leer y ejecutar.

 

Ahora, aquí viene la parte interesante:
El caso es que una vez que un programa es compilado en código binario no hay manera de volver a un lenguaje de programación legible por humanos. El así llamado "código fuente" es el conjunto de instrucciones original, escritas en un lenguaje de programación por un programador, que puede ser leído por humanos. Este programador tiene la opción de ofrecer una versión compilada de su trabajo o proporcionar el código fuente (o ambos). Con una versión compilada, la gente puede ejecutar el programa, pero nadie sabe cómo el programador hizo el trabajo. Con el código fuente, otros programadores pueden leer las instrucciones, comprender cómo funciona el programa y, eventualmente, modificarlo.

 

Software libre y de código abierto son siempre proporcionados y con su código fuente. La idea es que, si los demás pueden entender cómo funciona el software, pueden también ayudar a desarrollarlo. Desarrolladores de software privativo, por otro lado, no revelan el código fuente de su software de modo que nadie puede saber realmente lo que hace el software. Esta es la gran diferencia entre software libre y software propietario.


Lea también:
El sistema binario (Wikipedia)
The binary alphabet


Añadir nuevo comentario