30/09/2007 Fuente: Reasons To Believe

¿Qué es un código?

David H. Rogstad

De niños, nos divertíamos muchísimo pasándonos notas escritas a mano en el aula. El desafío era evitar que se diera cuenta la maestra. Los más “sofisticados” entre nosotros las convertíamos en mensajes secretos, escribiéndolas en un código.

 

Recién más tarde, cuando era un estudiante de ciencias, aprendí la amplia aplicación que tienen los códigos en una variedad de campos. Códigos de encriptación, análogos a nuestros burdos intentos de la escuela primaria, han sido usados para enviar mensajes en tiempos de guerra. Esta tecnología se ha introducido en la vida cotidiana en el envío de correos electrónicos privados, donde el programa de envío de e-mails en nuestra computadora brinda el proceso de encriptación/decriptación (traducción). Otro tipo, el Código Universal de Productos (UPC), consiste en líneas paralelas de ancho y separación variables impresos en la mercadería que brindan información acerca del producto.

 

En las computadoras, los programadores escriben códigos que funcionan como recetas. El código instruye a la computadora para que realice ciertas operaciones, de la misma forma que una receta instruye a un cocinero cómo preparar una torta. La programación de las computadoras puede ocurrir en dos niveles. Hay códigos de alto nivel, escritos en lenguajes de programación, como BASIC, que permiten al programador “hablar” con la computadora usando frases naturales, similares al inglés (o español). Estos son traducidos por compiladores a códigos de bajo nivel escritos en lenguajes específicos para el procesador de computadora que se está usando.

 

Los códigos de computadora de bajo nivel son muy crípticos, ya que usan breves elementos mnemónicos para representar cada operación específica. Los elementos mnemónicos de tres letras como ADD, SUB, MUL o DIV son obvios, pero otros como CMP (comparar), CLR (limpiar registro), XOR (operación binaria de “O exclusivo”) no. Cada una de estas operaciones es traducida luego por un ensamblador en una secuencia de ceros y unos (las computadoras usan el sistema binario de 0 y 1 en vez del decimal de 0 a 9 para representar números) llamado código máquina, que la computadora entiende para realizar operaciones.

 

El conjunto específico de ceros y unos usado para definir el código máquina está diseñado cuidadosamente para asegurar que todas las operaciones estén codificadas correctamente y que la información asociada que acompaña a la operación (como qué dos números multiplicar) estén incluidas de la forma más eficiente.

 

Por elegantes y sofisticados que son estos códigos, empalidecen en comparación con el código genético de la naturaleza, que determina cómo una proteína debe ser construida. A diferencia del sistema binario de ceros y unos usado por las computadoras, el código genético usa cuatro nucleótidos químicos representados por las letras A, T, G y C. Los tripletes de estas letras, llamados codones, son dispuestos en una secuencia de ADN que comprende el programa o receta para la cadena de aminoácidos que forman las proteínas, los bloques constructivos de la vida. Como el código máquina, el código genético ha sido diseñado cuidadosamente de forma tal de contener redundancia y resistir la corrupción. Lo más asombroso es cómo este código genético está optimizado de varias formas (ver “El código genético: simplemente el mejor”). Como ocurre con las computadoras, los espías o aun los niños de la escuela, nada de esta información asombrosa parece posible fuera de la obra de un diseñador muy ingenioso.

 

Traducción: Alejandro Field

Artículo original: What Is A Code?, Connections, Third Quarter / 2007



  Ver todos los artículos

Condiciones de uso del material.
- © 2007 Razones para Creer, Buenos Aires, Argentina diseño: estudio krill