En el ámbito de las comunicaciones y el procesamiento de la información , el código es un sistema de reglas para convertir información —como una letra , una palabra , un sonido, una imagen o un gesto— en otra forma, a veces abreviada o secreta , para su comunicación a través de un canal de comunicación o su almacenamiento en un soporte . Un ejemplo temprano es la invención del lenguaje , que permitió a una persona, mediante el habla , comunicar a otros lo que pensaba, veía, oía o sentía. Sin embargo, el habla limita el alcance de la comunicación a la distancia que puede alcanzar una voz y restringe la audiencia a quienes están presentes cuando se pronuncia. La invención de la escritura , que convirtió el lenguaje hablado en símbolos visuales , amplió el alcance de la comunicación a través del espacio y el tiempo .
El proceso de codificación convierte la información de una fuente en símbolos para su comunicación o almacenamiento. La decodificación es el proceso inverso, que consiste en convertir los símbolos del código de nuevo a un formato que el receptor entienda, como inglés, español, etc.
Una de las razones para utilizar la codificación es facilitar la comunicación en lugares donde el lenguaje común , hablado o escrito, resulta difícil o imposible. Por ejemplo, el sistema de semáforos , donde la configuración de banderas que sostiene un señalizador o los brazos de una torre de semáforos codifican partes del mensaje, generalmente letras y números individuales. Otra persona, situada a gran distancia, puede interpretar las banderas y reproducir las palabras enviadas.
Teoría
En teoría de la información e informática , un código se suele considerar como un algoritmo que representa de forma unívoca símbolos de un alfabeto de origen mediante cadenas codificadas , que pueden estar escritas en otro alfabeto de destino. Una extensión del código para representar secuencias de símbolos sobre el alfabeto de origen se obtiene concatenando las cadenas codificadas.
Antes de dar una definición matemáticamente precisa, este es un breve ejemplo. El mapeo
es un código, cuyo alfabeto fuente es el conjuntoy cuyo alfabeto objetivo es el conjunto. Utilizando la extensión del código, la cadena codificada 0011001 se puede agrupar en palabras clave como 0 011 0 01, y estas a su vez se pueden decodificar a la secuencia de símbolos fuente acab .
Utilizando términos de la teoría del lenguaje formal , la definición matemática precisa de este concepto es la siguiente: sean S y T dos conjuntos finitos, llamados alfabetos fuente y objetivo , respectivamente. Un códigoes una función total que asigna a cada símbolo de S una secuencia de símbolos sobre T. La extensiónde, es un homomorfismo deen, que asigna de forma natural cada secuencia de símbolos de origen a una secuencia de símbolos de destino.
Códigos de longitud variable
En esta sección, consideramos códigos que codifican cada carácter de la fuente (texto plano) mediante una palabra clave de un diccionario, y la concatenación de dichas palabras clave nos da una cadena codificada. Los códigos de longitud variable son especialmente útiles cuando los caracteres del texto plano tienen diferentes probabilidades; véase también codificación entrópica .
Un código de prefijo es un código con la propiedad de prefijo: no existe en el sistema ninguna palabra clave válida que sea prefijo (inicio) de ninguna otra palabra clave válida del conjunto. La codificación Huffman es el algoritmo más conocido para derivar códigos de prefijo. Los códigos de prefijo se denominan comúnmente "códigos Huffman" incluso cuando no se generaron mediante dicho algoritmo. Otros ejemplos de códigos de prefijo son los códigos de país telefónicos , las partes de país y editorial de los ISBN y los códigos de sincronización secundaria utilizados en el estándar inalámbrico UMTS WCDMA 3G.
La desigualdad de Kraft caracteriza los conjuntos de longitudes de palabras clave posibles en un código de prefijo. Prácticamente cualquier código de uno a muchos decodificable de forma única, no necesariamente un código de prefijo, debe satisfacer la desigualdad de Kraft.
Códigos de corrección de errores
Los códigos también pueden utilizarse para representar datos de forma más resistente a errores de transmisión o almacenamiento. Este llamado código corrector de errores funciona mediante la inclusión de redundancia cuidadosamente diseñada con los datos almacenados (o transmitidos). Algunos ejemplos son los códigos de Hamming , Reed-Solomon , Reed-Muller , Walsh-Hadamard , Bose-Chaudhuri-Hochquenghem , Turbo , Golay , códigos de geometría algebraica , códigos de verificación de paridad de baja densidad y códigos espacio-temporales . Los códigos de detección de errores pueden optimizarse para detectar errores en ráfaga o errores aleatorios .
Ejemplos
Códigos utilizados en la comunicación para mayor brevedad.
Un código de cable reemplaza palabras (por ejemplo, barco o factura ) por palabras más cortas, lo que permite enviar la misma información con menos caracteres , más rápidamente y a menor costo.
Los códigos se pueden usar para mayor brevedad. Cuando los mensajes telegráficos eran la tecnología más avanzada en la comunicación rápida a larga distancia, se desarrollaron elaborados sistemas de códigos comerciales que codificaban frases completas en mensajes individuales (generalmente de cinco minutos), de modo que los telegrafistas se familiarizaron con "palabras" como BYOXO ("¿Estás tratando de eludir nuestro trato?"), LIOUY ("¿Por qué no respondes a mi pregunta?"), BMULD ("¡Eres un zorrillo!") o AYYLU ("No está codificado con claridad, repítelo con más claridad"). Las palabras clave se elegían por diversas razones: longitud , pronunciabilidad , etc. Los significados se elegían para satisfacer necesidades específicas: negociaciones comerciales, términos militares para códigos militares, términos diplomáticos para códigos diplomáticos, y cualquiera de los anteriores para códigos de espionaje. Proliferaron los libros de códigos y las editoriales de libros de códigos, incluyendo una que funcionó como tapadera para la Cámara Negra estadounidense dirigida por Herbert Yardley entre la Primera y la Segunda Guerra Mundial. El propósito de la mayoría de estos códigos era ahorrar en costos de cable. El uso de la codificación de datos para la compresión de datos es anterior a la era de la informática; un ejemplo temprano es el código Morse del telégrafo , donde los caracteres más utilizados tienen representaciones más cortas. Técnicas como la codificación Huffman se utilizan actualmente en algoritmos informáticos para comprimir archivos de datos grandes y convertirlos en un formato más compacto para su almacenamiento o transmisión.
Codificación de caracteres
Una codificación de caracteres describe cómo se codifican los datos basados en caracteres (texto). Los sistemas de codificación antiguos usaban un número fijo de bits , que oscilaba entre 4 y 7, pero los sistemas modernos usan uno o más bytes de 8 bits para cada carácter. ASCII , el sistema dominante durante décadas, usa un byte para cada carácter y, por lo tanto, puede codificar hasta 256 caracteres diferentes. Para admitir lenguajes naturales con más caracteres, se inventaron otros sistemas que usan más de un byte o un número variable de bytes para cada carácter. Un sistema de escritura con un gran conjunto de caracteres como el chino, el japonés y el coreano se puede representar con una codificación multibyte. Las primeras codificaciones multibyte eran de longitud fija, lo que significa que cada carácter está representado por el mismo número de bytes, lo que las hace adecuadas para la decodificación a través de una tabla de búsqueda . Por otro lado, una codificación de ancho variable es más compleja de decodificar, ya que no se puede decodificar mediante una única tabla de búsqueda y debe procesarse secuencialmente, pero permite una representación más eficiente de un conjunto de caracteres extenso al utilizar una representación más reducida para los caracteres más comunes. Actualmente, UTF-8 , una codificación del conjunto de caracteres Unicode , es la codificación de texto más utilizada en Internet .
Código genético
Los organismos biológicos contienen material genético que controla su función y desarrollo. Este material es el ADN , el cual contiene unidades llamadas genes, de las cuales se deriva el ARN mensajero . Este, a su vez, produce proteínas mediante un código genético en el que una serie de tripletes ( codones ) de cuatro nucleótidos posibles se traducen en uno de los veinte aminoácidos posibles . Una secuencia de codones da como resultado una secuencia correspondiente de aminoácidos que forman una molécula de proteína; un tipo de codón llamado codón de parada indica el final de la secuencia.
Código Gödel
En matemáticas , un código de Gödel es la base para la demostración del teorema de incompletitud de Gödel . En este caso, la idea es mapear la notación matemática a un número natural (utilizando una numeración de Gödel ).
Otro
Existen códigos que utilizan colores, como los semáforos , el código de colores empleado para marcar el valor nominal de las resistencias eléctricas o el de los contenedores de basura destinados a tipos específicos de residuos (papel, vidrio, orgánicos, etc.).
En marketing , los códigos de cupón se pueden utilizar para obtener un descuento o reembolso al comprar un producto en una tienda (normalmente por internet).
En entornos militares, se utilizan sonidos específicos con la corneta para diferentes propósitos: para marcar ciertos momentos del día, para dar órdenes a la infantería en el campo de batalla, etc.
Los sistemas de comunicación para personas con discapacidades sensoriales, como el lenguaje de signos para personas sordas y el braille para personas ciegas, se basan en códigos movibles o táctiles.
Las partituras musicales son la forma más común de codificar la música .
Los juegos específicos tienen sus propios sistemas de codificación para registrar las partidas, por ejemplo, la notación de ajedrez .
Criptografía
En la historia de la criptografía , los códigos fueron en su día habituales para garantizar la confidencialidad de las comunicaciones, aunque ahora se utilizan cifrados en su lugar.
Los códigos secretos destinados a ocultar los mensajes reales, que van desde asuntos serios (principalmente espionaje militar, diplomático, comercial, etc.) hasta triviales (romance, juegos), pueden ser cualquier tipo de codificación imaginativa: flores , cartas de juego, ropa, abanicos, sombreros, melodías, pájaros, etc., en la que el único requisito es el acuerdo previo sobre el significado tanto por parte del remitente como del receptor.
Otros ejemplos
Otros ejemplos de codificación incluyen:
- Codificación (en cognición ): un proceso perceptivo básico de interpretación de los estímulos entrantes; técnicamente hablando, es un proceso complejo y multietapa de conversión de información sensorial relativamente objetiva (p. ej., luz, sonido) en una experiencia subjetivamente significativa. [ 1 ]
- La codificación de texto utiliza un lenguaje de marcado para etiquetar la estructura y otras características de un texto, facilitando así su procesamiento por parte de las computadoras. (Véase también Iniciativa de Codificación de Texto ).
- La codificación semántica de un lenguaje formal A a un lenguaje informal B es un método para representar todos los términos (por ejemplo, programas o descripciones) del lenguaje A utilizando el lenguaje B.
- La compresión de datos transforma una señal en un código optimizado para su transmisión o almacenamiento , lo que generalmente se realiza mediante un códec .
- Codificación neuronal : la forma en que la información se representa en las neuronas .
- Codificación de la memoria : el proceso de convertir sensaciones en recuerdos.
- Codificación de televisión : NTSC , PAL y SECAM
Otros ejemplos de decodificación incluyen:
- Decodificación (informática)
- Métodos de decodificación , métodos en la teoría de la comunicación para decodificar palabras clave enviadas a través de un canal ruidoso.
- Procesamiento digital de señales , el estudio de las señales en una representación digital y los métodos de procesamiento de estas señales.
- Convertidor digital-analógico , uso de circuitos analógicos para operaciones de decodificación.
- Decodificación de palabras, el uso de la fonética para descifrar patrones impresos y traducirlos a los sonidos del lenguaje.
Códigos en uso práctico
En el uso cotidiano del término, "código" se refiere a un elemento de un "sistema de códigos". Por ejemplo, el " código postal de mi casa" es un geocódigo que identifica una entidad geográfica en un sistema local (por ejemplo, el sistema de códigos postales de EE. UU. ). Los códigos típicos son identificadores alfanuméricos .
Los acrónimos y las abreviaturas también pueden considerarse "códigos" y, en cierto sentido, todos los idiomas y sistemas de escritura son códigos del pensamiento humano.
Los códigos de aeropuerto de la Asociación Internacional de Transporte Aéreo (IATA) son códigos de tres letras que se utilizan para identificar aeropuertos y para las etiquetas de equipaje . Los códigos de estación se utilizan de forma similar en los ferrocarriles, pero suelen ser nacionales, por lo que un mismo código puede utilizarse para distintas estaciones si se encuentran en países diferentes.
En ocasiones, una palabra clave adquiere existencia (y significado) independiente, mientras que la frase equivalente original se olvida o, al menos, ya no tiene el significado preciso que se le atribuía. Por ejemplo, «30» se usaba ampliamente en periodismo para significar «fin de la historia», y se ha usado en otros contextos para significar «el final». [ 2 ] [ 3 ]
Véase también
Referencias
- ↑ Guerra secreta: Batalla de códigos y cifrados - Bruce Norman (1973) ISBN 10: 0715362232
- ↑ Kogan, Hadass "So Why Not 29" Archivado el 12 de diciembre de 2010 en Wayback Machine American Journalism Review. Recuperado el 3 de julio de 2012.
- ↑ "Código 92 de Western Union" y "Números telegráficos" de Wood" . Asociación del Cuerpo de Señales. 1996. Archivado del original el 09-05-2012 . Recuperado el 03-07-2012 .
Lecturas adicionales
- Códigos y abreviaturas para el uso de los servicios internacionales de telecomunicaciones (2.ª ed.). Ginebra, Suiza: Unión Internacional de Telecomunicaciones. 1963. OCLC 13677884 .
- Codificaciones
- Procesamiento de señales
