Articulo de referencia

ASCII

{{cite iso-ir |number=6 |title=ASCII Graphic character set |id-in-title=yes |sponsor=ANSI |sponsor-link=American National Standards Institute |date=1975-12-01}} ANSI_X3.4-1968, ...

ASCII ( / ˈ æ s k i / ASS -kee), [ 3 ] : 6un acrónimo deAmerican Standard Code for Information Interchange (Código Estándar Estadounidense para el Intercambio de Información), es unde codificación de caracterespara representar un conjunto particular de 95imprimiblescentrados enel idioma inglésy 33caracteresde control,un total de 128puntos de código. El conjunto de puntuación disponible tuvo un impacto significativo en la sintaxis de los lenguajes de programación y el marcado de texto. ASCII influyó enormemente en el diseño de los conjuntos de caracteres utilizados por las computadoras modernas; por ejemplo, los primeros 128 puntos de código deUnicodeson los mismos que ASCII. 

ASCII codifica cada punto de código como un valor de 0 a 127 , almacenable como un entero de siete bits . [ 4 ] Noventa y cinco puntos de código son imprimibles, incluyendo los dígitos del 0 al 9 , las letras minúsculas de la a a la z , las letras mayúsculas de la A a la Z y los símbolos de puntuación de uso común . Por ejemplo, la letra se representa como 105 ( decimal ). Además, ASCII especifica 33 códigos de control no imprimibles que se originaron con los dispositivos de teletipo , la mayoría de los cuales ahora están obsoletos. [ 5 ] Los caracteres de control que todavía se usan comúnmente incluyen retorno de carro , salto de línea y tabulación . i

ASCII carece de puntos de código para caracteres con signos diacríticos y, por lo tanto, no admite directamente términos o nombres como résumé , jalapeño o René . Sin embargo, dependiendo del hardware y el software compatibles, algunos signos diacríticos pueden representarse sobrescribiendo una letra con una tilde grave (`) o una tilde (~).

La Autoridad de Números Asignados de Internet (IANA) prefiere el nombre US-ASCII para esta codificación de caracteres. [ 2 ]

ASCII es uno de los hitos del IEEE . [ 6 ]

Historia

ASCII es la estandarización de un código de teletipo de siete bits desarrollado en parte a partir de códigos telegráficos anteriores .

El trabajo en el estándar ASCII comenzó en mayo de 1961, cuando el ingeniero de IBM Bob Bemer presentó una propuesta al subcomité X3.2 de la Asociación Estadounidense de Estándares (ASA) (ahora Instituto Nacional Estadounidense de Estándares o ANSI). [ 7 ] La primera edición del estándar se publicó en 1963, [ 8 ] simultáneamente con la introducción del Teletipo Modelo 33. Posteriormente, sufrió una revisión importante en 1967, [ 9 ] [ 10 ] y varias revisiones más hasta 1986. [ 11 ] A diferencia de los códigos telegráficos anteriores, como Baudot , ASCII se ordenó para una intercalación más conveniente (especialmente la clasificación alfabética de listas) y agregó controles para dispositivos distintos de los teletipos. [ 11 ]

ASCII (1963). Se muestran imágenes de controles equivalentes cuando existen, o un punto gris en caso contrario.

ASCII fue desarrollado bajo los auspicios de un comité de la Asociación Estadounidense de Estándares (ASA), llamado comité X3, por su subcomité X3.2 (más tarde X3L2), y más tarde por el grupo de trabajo X3.2.4 de ese subcomité (ahora INCITS ). La ASA se convirtió más tarde en el Instituto de Estándares de los Estados Unidos de América (USASI) [ 3 ] : 211 y finalmente se convirtió en el Instituto Nacional Estadounidense de Estándares (ANSI).

Con los demás caracteres especiales y códigos de control completados, ASCII se publicó como ASA X3.4-1963, [ 8 ] [ 12 ] dejando 28 posiciones de código sin ningún significado asignado, reservadas para la estandarización futura, y un código de control sin asignar. [ 3 ] : 66, 245 Hubo cierto debate en ese momento sobre si debería haber más caracteres de control en lugar del alfabeto en minúsculas. [ 3 ] : 435 La indecisión no duró mucho: durante mayo de 1963, el Grupo de Trabajo del CCITT sobre el Nuevo Alfabeto Telegráfico propuso asignar caracteres en minúsculas a los sticks [ a ] ​​[ 13 ] 6 y 7, [ 14 ] y la Organización Internacional de Normalización TC 97 SC 2 votó durante octubre para incorporar el cambio en su borrador de estándar. [ 15 ] El grupo de trabajo X3.2.4 votó su aprobación para el cambio a ASCII en su reunión de mayo de 1963. [ 16 ] La ubicación de las letras minúsculas en los palos [ a ] ​​[ 13 ] 6 y 7 hizo que los caracteres difirieran en el patrón de bits de las mayúsculas en un solo bit, lo que simplificó la coincidencia de caracteres insensible a mayúsculas y minúsculas y la construcción de teclados e impresoras.

El comité X3 realizó otros cambios. Añadió los caracteres de llave y barra vertical . [ 17 ] Cambió el nombre de algunos caracteres de control : SOM se convirtió en SOH . Movió o eliminó otros : RU fue eliminado. [ 3 ] : 247–248 ASCII se actualizó posteriormente como USAS X3.4-1967, [ 9 ] [ 18 ] luego USAS X3.4-1968, [ 19 ] ANSI X3.4-1977 y, finalmente, ANSI X3.4-1986. [ 11 ] [ 20 ]  

El uso del formato ASCII para el intercambio de redes se describió en 1969. [ 21 ] Ese documento fue elevado formalmente a un estándar de Internet en 2015. [ 22 ]

Revisiones

En el estándar X3.15, el comité X3 también abordó cómo se debe transmitir ASCII ( bit menos significativo primero) [ 3 ] : 249–253 [ 29 ] y grabar en cinta perforada. Propusieron un estándar de 9 pistas para cinta magnética e intentaron abordar algunos formatos de tarjetas perforadas .

Consideraciones de diseño

Ancho de bits

El subcomité X3.2 diseñó ASCII basándose en los sistemas de codificación de teletipo anteriores. Al igual que otras codificaciones de caracteres , ASCII especifica una correspondencia entre patrones de bits digitales y símbolos de caracteres (es decir, grafemas y caracteres de control ). Esto permite que los dispositivos digitales se comuniquen entre sí y procesen, almacenen y transmitan información orientada a caracteres, como el lenguaje escrito. Antes del desarrollo de ASCII, las codificaciones en uso incluían 26 caracteres alfabéticos , 10 dígitos numéricos y de 11 a 25 símbolos gráficos especiales. Para incluir todos estos, y caracteres de control compatibles con el estándar del Alfabeto Telegráfico Internacional n.° 2 (ITA2) del Comité Consultivo Internacional Telefónico y Telegráfico (CCITT) de 1932, [ 30 ] [ 31 ] FIELDATA (1956 ) y el EBCDIC inicial (1963), se requerían más de 64 códigos para ASCII.

ITA2 se basaba a su vez en el código Baudot , el código telegráfico de 5 bits que Émile Baudot inventó en 1870 y patentó en 1874. [ 31 ]

El comité debatió la posibilidad de una función de desplazamiento (como en ITA2 ), que permitiría representar más de 64 códigos con un código de seis bits . En un código desplazado, algunos códigos de caracteres determinan las opciones para los siguientes códigos de caracteres. Esto permite una codificación compacta, pero es menos fiable para la transmisión de datos , ya que un error en la transmisión del código de desplazamiento suele hacer ilegible una parte extensa de la transmisión. El comité de estándares decidió no utilizar el desplazamiento, por lo que ASCII requirió al menos un código de siete bits. [ 3 ] : 215 §13.6, 236 §4

El comité consideró un código de ocho bits, ya que ocho bits ( octetos ) permitirían que dos patrones de cuatro bits codificaran eficientemente dos dígitos con decimal codificado en binario . Sin embargo, requeriría que toda la transmisión de datos enviara ocho bits cuando siete podrían ser suficientes. El comité votó a favor de usar un código de siete bits para minimizar los costos asociados con la transmisión de datos. Dado que la cinta perforada de la época podía grabar ocho bits en una posición, también permitía un bit de paridad para la verificación de errores si se deseaba. [ 3 ] : 217 §c, 236 §5 Las máquinas de ocho bits (con octetos como tipo de datos nativo) que no usaban verificación de paridad normalmente establecían el octavo bit en 0. [ 32 ]

Organización interna

El código en sí fue estructurado de manera que la mayoría de los códigos de control estuvieran juntos y todos los códigos gráficos también, para facilitar su identificación. Los dos primeros llamados bloques ASCII [ a ] [ 13 ] (32 posiciones) fueron reservados para caracteres de control. [ 3 ] : 220, 236 8, 9) El carácter "espacio" tuvo que ir antes de los gráficos para facilitar la clasificación , por lo que se convirtió en la posición 20 hexadecimal ; [ 3 ] : 237 §10 por la misma razón, muchos signos especiales comúnmente utilizados como separadores fueron colocados antes de los dígitos. El comité decidió que era importante admitir alfabetos de 64 caracteres en mayúsculas y optó por estructurar ASCII de manera que pudiera reducirse fácilmente a un conjunto utilizable de códigos gráficos de 64 caracteres, [ 3 ] : 228, 237 §14 como se hizo en el código DEC SIXBIT (1963). Por lo tanto, las letras minúsculas no fueron intercaladas con las mayúsculas . Para mantener disponibles las opciones para letras minúsculas y otros gráficos, los códigos especiales y numéricos se dispusieron antes de las letras, y la letra A se colocó en la posición 41 hexadecimal para coincidir con el borrador del estándar británico correspondiente. [ 3 ] : 238 §18 Los dígitos 0–9 tienen el prefijo 011, pero los 4 bits restantes corresponden a sus respectivos valores en binario, lo que hace que la conversión con decimal codificado en binario sea sencilla (por ejemplo, 5 se codifica como 011 0101 , donde 5 es 0101 en binario).

Muchos de los caracteres no alfanuméricos se colocaron para corresponder a su posición desplazada en las máquinas de escribir; una sutileza importante es que estos se basaban en máquinas de escribir mecánicas , no en eléctricas . [ 33 ] Las máquinas de escribir mecánicas siguieron el estándar de facto establecido por la Remington No. 2 (1878), la primera máquina de escribir con una tecla de desplazamiento, y los valores desplazados de 23456789-eran : las primeras máquinas de escribir omitían 0 y 1 , usando O (letra mayúscula o ) y l (letra minúscula L ) en su lugar, pero los pares y se volvieron estándar una vez que 0 y 1 se hicieron comunes. Así, en ASCII se colocaron en el segundo palo, [ a ] ​​[ 13 ] posiciones 1-5, correspondientes a los dígitos 1-5 en el palo adyacente. [ a ] ​​[ 13 ] Sin embargo, los paréntesis no podían corresponder a 9 y 0 , porque el lugar correspondiente a 0 estaba ocupado por el carácter de espacio. Esto se solucionó eliminando el guion bajo del 6 y desplazando los caracteres restantes, lo que correspondía a muchas máquinas de escribir europeas que colocaban los paréntesis con el 8 y el 9. Esta discrepancia con las máquinas de escribir dio lugar a teclados con pares de bits , en particular el Teletype Modelo 33 , que utilizaba la disposición desplazada a la izquierda correspondiente a ASCII, a diferencia de las máquinas de escribir mecánicas tradicionales."#$%_&'() 1!0)!"#$%_

Las máquinas de escribir eléctricas, en particular la IBM Selectric (1961), utilizaban una disposición algo diferente que se ha convertido en el estándar de facto en las computadoras —después de la IBM PC (1981), especialmente el Modelo M (1984) y, por lo tanto, los valores de desplazamiento para los símbolos en los teclados modernos no se corresponden tan estrechamente con la tabla ASCII como lo hacían los teclados anteriores. El par también data del No. 2, y los pares se usaban en algunos teclados (otros, incluido el No. 2, no desplazaban (coma) ni (punto) para que pudieran usarse en mayúsculas sin descomprimir). Sin embargo, ASCII dividió el par (que data del No. 2) y reorganizó los símbolos matemáticos (convenciones variadas, comúnmente ) a .  /?,< .>,.;:-* =+:* ;+ -=

Algunos caracteres de máquina de escribir comunes en aquel entonces no se incluyeron, en particular ½ ¼ ¢, mientras que ^ ` ~ se incluyeron como diacríticos para uso internacional y para uso matemático, junto con los caracteres de línea simples (además del común ). El símbolo @ no se usaba en Europa continental y el comité esperaba que se reemplazara por una À acentuada en la variante francesa, por lo que el @ se colocó en la posición hexadecimal 40 , justo antes de la letra A. [ 3 ] : 243<>\ |/

Los códigos de control considerados esenciales para la transmisión de datos fueron el inicio del mensaje (SOM), el fin de la dirección (EOA), el fin del mensaje (EOM), el fin de la transmisión (EOT), "¿Quién eres?" (WRU), "¿Eres tú?" (RU), un control de dispositivo reservado (DC0), inactividad síncrona (SYNC) y acuse de recibo (ACK). Estos se ubicaron para maximizar la distancia de Hamming entre sus patrones de bits. [ 3 ] : 243–245

Orden de los personajes

El orden de los códigos ASCII también se denomina orden alfabético ASCII . [ 34 ] La cotejación de datos a veces se realiza en este orden en lugar del orden alfabético "estándar" ( secuencia de cotejamiento ). Las principales desviaciones en el orden ASCII son:

  • Todas las letras mayúsculas preceden a las minúsculas; por ejemplo, la "Z" precede a la "a".
  • Los dígitos y muchos signos de puntuación preceden a las letras.

Un proceso intermedio convierte las letras mayúsculas a minúsculas antes de comparar los valores ASCII.

Conjunto de caracteres

Grupos de personajes

Personajes de control

Símbolos iniciales asignados a los 32 caracteres de control, espacio y caracteres de borrado ( ISO 2047 , MIL-STD-188-100, 1972)

ASCII reserva los primeros 32 puntos de código (números decimales del 0 al 31) y el último (número decimal 127) para caracteres de control . Estos códigos están destinados a controlar dispositivos periféricos (como impresoras ) o a proporcionar metainformación sobre flujos de datos, como los almacenados en cinta magnética. A pesar de su nombre, estos puntos de código no representan caracteres imprimibles (es decir, no son caracteres, sino señales). Para fines de depuración, se les asignan símbolos de marcador de posición (como los que se especifican en la norma ISO 2047 y sus predecesoras).

Por ejemplo, el carácter 0x0A representa la función de "salto de línea" (que hace que una impresora avance su papel), y el carácter 8 representa " retroceso ". RFC 2822 se refiere a los caracteres de control que no incluyen retorno de carro, salto de línea o espacio en blanco como caracteres de control sin espacio en blanco. [ 35 ] Excepto por los caracteres de control que prescriben el formato orientado a la línea elemental, ASCII no define ningún mecanismo para describir la estructura o apariencia del texto dentro de un documento. Otros esquemas, como los lenguajes de marcado , abordan el diseño y formato de página y documento. 

El estándar ASCII original utilizaba únicamente frases descriptivas breves para cada carácter de control. La ambigüedad que esto generaba a veces era intencional, como cuando un carácter se utilizaba de forma ligeramente diferente en un enlace de terminal o en un flujo de datos .

Probablemente, el dispositivo más influyente en la interpretación de estos caracteres fue el Teletype Modelo 33 ASR, un terminal de impresión con lector/perforador de cinta de papel . La cinta de papel fue un medio muy popular para el almacenamiento de programas a largo plazo hasta la década de 1980, ya que era menos costosa y, en cierto modo, menos frágil que la cinta magnética. En particular, las asignaciones de la máquina Teletype Modelo 33 para los códigos 17 (control-Q, DC1, también conocido como XON), 19 (control-S, DC3, también conocido como XOFF) y 127 ( borrar ) se convirtieron en estándares de facto . El Modelo 33 también se destacó por interpretar literalmente la descripción de control-G (código 7, BEL, que significa alertar audiblemente al operador), ya que la unidad contenía una campana que sonaba al recibir el carácter BEL. Debido a que la parte superior de la tecla O también mostraba un símbolo de flecha izquierda (procedente de ASCII-1963, que tenía este carácter en lugar del guion bajo ), muchos de los primeros sistemas de tiempo compartido también adoptaron un uso no conforme del código 15 (control-O, shift in), interpretado como "borrar el carácter anterior", pero finalmente cayó en desuso.

Cuando un Teletype 33 ASR equipado con lector automático de cinta de papel recibía una señal de control-S (XOFF, abreviatura de transmisión desactivada), el lector de cinta se detenía; al recibir una señal de control-Q (XON, transmisión activada), el lector de cinta se reanudaba. Esta técnica de control de flujo fue adoptada por varios sistemas operativos de computadoras antiguas como una señal de "apretón de manos" que advertía al emisor que detuviera la transmisión debido a un desbordamiento inminente del búfer ; persiste hasta el día de hoy en muchos sistemas como una técnica de control de salida manual. En algunos sistemas, la señal de control-S conserva su significado, pero la señal de control-Q se reemplaza por una segunda señal de control-S para reanudar la salida.

El 33 ASR también podía configurarse para usar Control-R (DC2) y Control-T (DC4) para iniciar y detener la perforación de la cinta; en algunas unidades equipadas con esta función, la letra del carácter de control correspondiente en la tecla encima de la letra era TAPE y TAPE respectivamente. [ 36 ]

Suprimir vs. retroceso

El teletipo no podía mover su cabezal de escritura hacia atrás, por lo que no tenía una tecla en su teclado para enviar un BS (retroceso). En su lugar, había una tecla marcada RUB OUTque enviaba el código 127 (DEL). El propósito de esta tecla era borrar errores en una cinta de papel ingresada manualmente: el operador tenía que presionar un botón en la perforadora de cinta para retrocederla, luego escribir el borrado, que perforaba todos los agujeros y reemplazaba el error con un carácter que debía ignorarse. [ 37 ] Los teletipos se usaban comúnmente con las computadoras menos costosas de Digital Equipment Corporation (DEC); estos sistemas tenían que usar las teclas disponibles, por lo que el carácter DEL se asignó para borrar el carácter anterior. [ 38 ] [ 39 ] Debido a esto, las terminales de video DEC (por defecto) enviaban el carácter DEL para la tecla marcada como "Retroceso", mientras que la tecla separada marcada como "Suprimir" enviaba una secuencia de escape ; muchas otras terminales de la competencia enviaban un carácter BS para la tecla de retroceso.

Los primeros controladores tty de Unix, a diferencia de algunas implementaciones modernas, solo permitían configurar un carácter para borrar el carácter anterior en el procesamiento de entrada canónico (donde hay disponible un editor de línea muy simple); este podía configurarse como BS o DEL, pero no ambos, lo que generaba situaciones recurrentes de ambigüedad donde los usuarios tenían que decidir dependiendo de la terminal que estuvieran usando ( los shells que permiten la edición de línea, como ksh , bash y zsh , entienden ambos). La suposición de que ninguna tecla enviaba un carácter BS permitía que Ctrl+H se utilizara para otros propósitos, como el comando de prefijo "help" en GNU Emacs . [ 40 ]

Escapar

Muchos caracteres de control han adquirido significados muy diferentes a los originales. El carácter de escape (ESC, código 27), por ejemplo, se concibió originalmente para permitir el envío de otros caracteres de control como literales, en lugar de utilizar su significado como secuencia de escape. Este es el mismo significado de escape que se encuentra en las codificaciones URL, las cadenas del lenguaje C y otros sistemas donde ciertos caracteres tienen un significado reservado. Con el tiempo, esta interpretación se ha ido adoptando y, finalmente, se ha modificado.

En el uso moderno, un ESC enviado al terminal generalmente indica el inicio de una secuencia de comandos, que puede usarse para dirigir el cursor, desplazar una región, establecer/consultar diversas propiedades del terminal, y más. Suelen tener la forma de un llamado " código de escape ANSI " (a menudo comenzando con un " Introductor de secuencia de control ", "CSI", " ESC [ ") de ECMA-48 (1972) y sus sucesores. Algunas secuencias de escape no tienen introductores, como el comando "Restablecer al estado inicial", "RIS", " ESC c ". [ 41 ]

En cambio, la tecla ESC leída desde la terminal se usa con mayor frecuencia como un carácter fuera de banda para finalizar una operación o un modo especial, como en los editores de texto TECO y vi . En las interfaces gráficas de usuario (GUI) y los sistemas de ventanas , ESC generalmente provoca que una aplicación aborte su operación actual o que finalice por completo.

Fin de línea

La reasignación de algunos caracteres de control a nuevos significados generó problemas al transferir archivos de texto plano entre sistemas. El mejor ejemplo de esto es el problema del salto de línea en varios sistemas operativos . Las máquinas de teletipo requerían que una línea de texto terminara con un retorno de carro (para mover el cabezal de impresión al principio de la línea) seguido de un salto de línea (para avanzar el papel una línea). El nombre "retorno de carro" proviene del hecho de que, en una máquina de escribir manual , el carro que sostiene el papel se mueve mientras que las barras de impresión que golpean la cinta permanecen fijas. Todo el carro debe ser empujado hacia la derecha ("retrocedido") para posicionar el papel para la siguiente línea.

Los sistemas operativos de DEC ( OS/8 , RT-11 , RSX-11 , RSTS , TOPS-10 , etc.) almacenaban ambos caracteres al final de cada línea en archivos de texto, según lo requerían las máquinas de teletipo. Cuando se introdujeron las llamadas "TTY de cristal" (más tarde denominadas CRT o "terminales tontas"), siguieron la misma lógica, esperando los mismos caracteres CR y LF. Cuando Gary Kildall creó CP/M , se inspiró en algunas de las convenciones de la interfaz de línea de comandos utilizadas en el sistema operativo RT-11 de DEC.

Hasta la introducción de IBM PC DOS en 1981, IBM no tuvo influencia en esto, porque sus sistemas operativos de la década de 1970 usaban codificación EBCDIC en lugar de ASCII y estaban orientados a la entrada de tarjetas perforadas y la salida de impresoras de línea, en las que el concepto de "retorno de carro" no tenía sentido. El PC DOS de IBM (también comercializado como MS-DOS por Microsoft) heredó la convención CRLF por estar vagamente basado en CP/M, [ 42 ] y Windows , a su vez, la heredó de MS-DOS.

Colocar CR y LF al final de cada línea en un documento de texto plano o flujo de datos refleja lo que las terminales e impresoras necesitaban recibir para mostrar ese material. Multics introdujo una innovación: usó solo un carácter (LF) para representar el final de la línea en archivos almacenados y en flujos de datos. [ 43 ] : 357 Al salir, el controlador tty convierte el LF a CRLF, por lo que los archivos se pueden imprimir en una terminal sin necesidad de un comando para convertir explícitamente el formato del archivo. Los sistemas Unix y similares a Unix adoptaron este diseño de Multics, al igual que los sistemas Amiga . Los documentos UNIX dicen "newline" o "NL" para referirse al terminador de línea. Por el contrario, Radio Shack TRS-80 , Apple DOS , Apple ProDOS y el Mac OS clásico usaban un solo retorno de carro (CR) para terminar las líneas. El sistema operativo posterior de Apple, Mac OS X (ahora llamado macOS ) está basado en Unix, por lo que usa salto de línea (LF).

Los ordenadores conectados a ARPANET incluían máquinas que ejecutaban sistemas operativos como TOPS-10 y TENEX , que utilizaban finales de línea CR-LF; sistemas operativos como Multics, que utilizaban finales de línea LF; y sistemas operativos como OS/360 , que representaban las líneas como un recuento de caracteres seguido de los caracteres de la línea y que utilizaban codificación EBCDIC en lugar de ASCII. Para permitir la comunicación entre todos estos sistemas, el protocolo Telnet definió un "Terminal Virtual de Red" (NVT), en el que se utilizaba un único formato de texto (ASCII con finales de línea CR-LF) para la transmisión y cada sistema convertía a/desde su propia representación nativa. [ 44 ]

El protocolo de transferencia de archivos adoptó el protocolo Telnet, incluyendo la terminal virtual de red, para transmitir comandos y transferir archivos de texto (conocido como "modo ASCII"). [ 45 ] [ 46 ] El correo electrónico de Internet se basa en la NVT. [ 47 ] El protocolo HTTP de la World Wide Web utiliza una NVT modificada: el estándar permite caracteres CR y LF aislados, pero requiere que cada uno se interprete como un CRLF de la NVT. [ 48 ]

La complejidad surgió en sistemas orientados a la red que no seguían el mecanismo NVT, como algunos sistemas de control de versiones. [ 49 ] Los errores a veces exponen la implementación nativa de un sistema a otros sistemas en Internet, causando corrupción de datos. [ 50 ]

Fin del archivo/flujo

El monitor PDP-6, [ 38 ] y su sucesor PDP-10 TOPS-10, [ 39 ] usaban control-Z (SUB) como indicación de fin de archivo para la entrada desde una terminal. Algunos sistemas operativos como CP/M solo registraban la longitud del archivo en unidades de bloques de disco y usaban control-Z para marcar el final del texto real en el archivo. [ 51 ] Por estas razones, EOF, o fin de archivo , se usaba coloquial y convencionalmente como un acrónimo de tres letras para control-Z en lugar de SUBstitute. El carácter de fin de texto ( ETX ), también conocido como control-C , era inapropiado por varias razones, mientras que usar control-Z como carácter de control para finalizar un archivo es análogo a la posición de la letra Z al final del alfabeto y sirve como una ayuda mnemotécnica muy conveniente . Una convención históricamente común y aún prevalente usa la convención del carácter ETX para interrumpir y detener un programa a través de un flujo de datos de entrada, generalmente desde un teclado.

El controlador de terminal de Unix utiliza el carácter de fin de transmisión ( EOT ), también conocido como control-D, para indicar el final de un flujo de datos.

En el lenguaje de programación C y en las convenciones de Unix, el carácter nulo se utiliza para finalizar las cadenas de texto ; dichas cadenas terminadas en nulo se conocen por sus siglas ASCIZ o ASCIIZ, donde Z significa "cero".

Tabla de códigos

Tabla de códigos de control

Los equipos especializados pueden utilizar otras representaciones, como por ejemplo gráficos ISO 2047 o números hexadecimales .

Tabla de caracteres imprimible

En el momento de su adopción, los códigos hexadecimales del 20 al 7E producían la impresión de un carácter visible (un glifo), por lo que se denominaron "caracteres imprimibles". Estos códigos representan letras, dígitos, signos de puntuación y algunos símbolos diversos. En total, existen 95 caracteres imprimibles. [ n ]

El espacio vacío entre palabras, producido por la barra espaciadora del teclado, corresponde al código de carácter 20 hexadecimal . Dado que el espacio es visible en el texto impreso, se considera un "carácter imprimible", aunque es único por no tener un glifo visible. Se incluye en la tabla de caracteres imprimibles, según el estándar ASCII, en lugar de en la tabla de caracteres de control. [ 3 ] : 223 [ 21 ]

El código hexadecimal 7F corresponde al carácter de control no imprimible "borrar" (DEL) y aparece en la tabla de caracteres de control.

Las versiones anteriores de ASCII usaban la flecha hacia arriba en lugar del circunflejo (5E hexadecimal ) y la flecha hacia la izquierda en lugar del guion bajo (5F hexadecimal ). [ 8 ] [ 52 ]

Uso

ASCII se utilizó comercialmente por primera vez en 1963 como un código de teletipo de siete bits para la red TWX (TeletypeWriter eXchange) de American Telephone & Telegraph . TWX originalmente utilizaba el código ITA2 de cinco bits , que también era utilizado por el sistema de teletipo Telex, su competidor. Bob Bemer introdujo características como la secuencia de escape . [ 7 ] Su colega británico Hugh McGregor Ross contribuyó a popularizar este trabajo ; según Bemer, «tanto que el código que se convertiría en ASCII se denominó inicialmente Código Bemer-Ross en Europa». [ 53 ] Debido a su extenso trabajo en ASCII, Bemer ha sido llamado «el padre de ASCII». [ 54 ] 

El 11 de marzo de 1968, el presidente de los Estados Unidos, Lyndon B. Johnson, ordenó que todas las computadoras compradas por el Gobierno Federal de los Estados Unidos admitieran ASCII, declarando: [ 55 ] [ 56 ] [ 57 ]

También he aprobado las recomendaciones del Secretario de Comercio [ Luther H. Hodges ] sobre las normas para grabar el Código Estándar para el Intercambio de Información en cintas magnéticas y de papel cuando se utilizan en operaciones informáticas. Todos los ordenadores y equipos relacionados que se incorporen al inventario del Gobierno Federal a partir del 1 de julio de 1969 deberán tener la capacidad de utilizar el Código Estándar para el Intercambio de Información y los formatos prescritos por las normas de cinta magnética y de papel cuando se utilicen estos soportes.

ASCII fue la codificación de caracteres más común en la World Wide Web hasta diciembre de 2007, cuando la codificación UTF-8 la superó; UTF-8 es compatible con versiones anteriores de ASCII. [ 58 ] [ 59 ] [ 60 ]

Variantes y derivaciones

Con la expansión de la tecnología informática, diversos organismos de normalización y empresas desarrollaron numerosas variantes de ASCII para facilitar la expresión de lenguas distintas del inglés que utilizaban alfabetos romanos. Algunas de estas variantes podrían clasificarse como « extensiones de ASCII », aunque este término se utiliza erróneamente para referirse a todas las variantes, incluidas aquellas que no conservan el mapa de caracteres de ASCII en el rango de 7 bits. Además, las extensiones de ASCII también se han etiquetado erróneamente como ASCII.

códigos de 7 bits

Desde sus inicios, [ 61 ] ASCII fue concebido como una de las diversas variantes nacionales de un estándar internacional de código de caracteres.

Otros organismos internacionales de normalización han ratificado codificaciones de caracteres como la ISO 646 (1967), idénticas o casi idénticas a ASCII, con extensiones para caracteres fuera del alfabeto inglés y símbolos utilizados fuera de Estados Unidos, como el símbolo de la libra esterlina británica (£), que aparece en la página 1104 del código . Casi todos los países necesitaban una versión adaptada de ASCII, ya que este sistema solo satisfacía las necesidades de Estados Unidos y algunos otros países. Por ejemplo, Canadá tenía su propia versión compatible con caracteres franceses.

Muchos otros países desarrollaron variantes de ASCII para incluir letras no inglesas (por ejemplo, é , ñ , ß , Ł ), símbolos monetarios (por ejemplo, £ , ¥ ), etc. Véase también YUSCII (Yugoslavia).

Compartiría la mayoría de los caracteres en común, pero asignaría otros caracteres útiles localmente a varios puntos de código reservados para "uso nacional". Sin embargo, los cuatro años transcurridos entre la publicación de ASCII-1963 y la primera aceptación por parte de la ISO de una recomendación internacional en 1967 [ 62 ] hicieron que las elecciones de ASCII para los caracteres de uso nacional parecieran estándares de facto para el mundo, lo que causó confusión e incompatibilidad una vez que otros países comenzaron a hacer sus propias asignaciones a estos puntos de código.

ISO/IEC 646, al igual que ASCII, es un conjunto de caracteres de 7 bits. No proporciona códigos adicionales, por lo que los mismos puntos de código codificaban caracteres diferentes en distintos países. Se definieron códigos de escape para indicar qué variante nacional se aplicaba a un texto, pero rara vez se usaban, por lo que a menudo era imposible saber con qué variante trabajar y, por lo tanto, qué carácter representaba un código. Además, en general, los sistemas de procesamiento de texto solo podían manejar una variante.

Debido a que los caracteres de corchetes y llaves de ASCII se asignaron a puntos de código de "uso nacional" que se usaban para letras acentuadas en otras variantes nacionales de ISO/IEC 646, un programador alemán, francés o sueco, etc., que usara su variante nacional de ISO/IEC 646, en lugar de ASCII, tenía que escribir, y por lo tanto leer, algo como

ä aÄiÜ = 'Ön'; ü

en lugar de

{ a[i] = '\n'; }

Los trígrafos de C se crearon para resolver este problema en ANSI C , aunque su tardía introducción y la inconsistencia en su implementación en los compiladores limitaron su uso. Muchos programadores mantenían sus computadoras en ASCII, por lo que el texto plano en sueco, alemán, etc. (por ejemplo, en correos electrónicos o Usenet ) contenía "{, }" y variantes similares en medio de las palabras, algo a lo que esos programadores se acostumbraron. Por ejemplo, un programador sueco que le escribía a otro programador preguntándole si debían ir a almorzar, podía recibir como respuesta "N{ jag har sm|rg}sar", que debería ser "Nä jag har smörgåsar", que significa "No, tengo sándwiches".

En Japón y Corea, todavía a partir de la década de 2020,Se utiliza una variante del alfabeto ASCII en la que la barra invertida (hexadecimal 5C) se representa como ¥ (el símbolo del yen en Japón) o ₩ (el símbolo del won en Corea). Esto significa que, por ejemplo, la ruta de archivo C:\Users\Smith se muestra como C:¥Users¥Smith (en Japón) o C:₩Users₩Smith (en Corea).

En Europa, los conjuntos de caracteres de teletexto , que son variantes de ASCII, se utilizan para los subtítulos de la televisión, definidos por el Sistema Mundial de Teletexto y transmitidos mediante el estándar DVB-TXT para la incrustación de teletexto en transmisiones DVB. [ 63 ] En caso de que los subtítulos se hayan creado inicialmente para teletexto y se hayan convertido, los formatos de subtítulos derivados están restringidos a los mismos conjuntos de caracteres.

códigos de 8 bits

Con el tiempo, a medida que las computadoras de 8, 16 y 32 bits (y posteriormente de 64 bits ) comenzaron a reemplazar a las de 12 , 18 y 36 bits como norma, se generalizó el uso de un byte de 8 bits para almacenar cada carácter en la memoria, lo que brindó la oportunidad de desarrollar variantes extendidas de ASCII de 8 bits. En la mayoría de los casos, estas se desarrollaron como verdaderas extensiones de ASCII, manteniendo intacta la asignación de caracteres original, pero agregando definiciones de caracteres adicionales después de los primeros 128 (es decir, 7 bits) caracteres. ASCII en sí mismo siguió siendo un código de siete bits: el término "ASCII extendido" no tiene estatus oficial.

Para algunos países, se desarrollaron extensiones de 8 bits del código ASCII que incluían compatibilidad con caracteres utilizados en idiomas locales (por ejemplo, ISCII para India y VISCII para Vietnam).

Incluso en mercados donde no era necesario agregar muchos caracteres para admitir idiomas adicionales, los fabricantes de los primeros sistemas informáticos domésticos a menudo desarrollaban sus propias extensiones de 8 bits de ASCII para incluir caracteres adicionales, como caracteres para dibujar recuadros , semigráficos y sprites de videojuegos . Con frecuencia, estas adiciones también reemplazaban los caracteres de control (índices del 0 al 31, así como el índice 127) con extensiones aún más específicas de la plataforma. En otros casos, el bit adicional se usaba para algún otro propósito, como alternar la inversión de vídeo ; este enfoque fue utilizado por ATASCII , una extensión de ASCII desarrollada por Atari .

La mayoría de las extensiones ASCII se basan en ASCII-1967 (el estándar actual), pero algunas se basan en el estándar anterior ASCII-1963. Por ejemplo, PETSCII , desarrollado por Commodore International para sus sistemas de 8 bits , se basa en ASCII-1963. Del mismo modo, muchos conjuntos de caracteres Sharp MZ se basan en ASCII-1963.

IBM definió la página de códigos 437 para la IBM PC , reemplazando los caracteres de control con símbolos gráficos como caras sonrientes y asignando caracteres gráficos adicionales a las 128 posiciones superiores. [ 64 ] Digital Equipment Corporation desarrolló el Conjunto de Caracteres Multinacionales (DEC-MCS) para su uso en el popular terminal VT220 como una de las primeras extensiones diseñadas más para idiomas internacionales que para gráficos de bloques. Apple definió Mac OS Roman para Macintosh y Adobe definió la Codificación Estándar PostScript para PostScript ; ambos conjuntos contenían letras "internacionales", símbolos tipográficos y signos de puntuación en lugar de gráficos, más parecidos a los conjuntos de caracteres modernos.

El estándar ISO/IEC 8859 (derivado del DEC-MCS) proporcionó un estándar que la mayoría de los sistemas copiaron (o al menos se basaron en él, cuando no lo copiaron exactamente). Una extensión posterior popular diseñada por Microsoft, Windows-1252 (a menudo erróneamente etiquetada como ISO-8859-1 ), añadió los signos de puntuación tipográficos necesarios para la impresión de texto tradicional. ISO-8859-1, Windows-1252 y el ASCII original de 7 bits fueron los métodos de codificación de caracteres más comunes en la World Wide Web hasta 2008, cuando UTF-8 los superó. [ 59 ]

La norma ISO/IEC 4873 introdujo 32 códigos de control adicionales definidos en el rango hexadecimal 80–9F , como parte de la extensión de la codificación ASCII de 7 bits para convertirse en un sistema de 8 bits. [ 65 ]

Unicode

Unicode y el conjunto de caracteres universales (UCS) ISO/IEC 10646 cuentan con una gama mucho más amplia de caracteres, y sus diversas formas de codificación han comenzado a reemplazar rápidamente a ISO/IEC 8859 y ASCII en muchos entornos. Mientras que ASCII está limitado a 128 caracteres, Unicode y el UCS admiten más caracteres al separar los conceptos de identificación única (mediante números naturales llamados puntos de código ) y codificación (en formatos binarios de 8, 16 o 32 bits, denominados UTF-8 , UTF-16 y UTF-32 , respectivamente).

ASCII se incorporó al conjunto de caracteres Unicode (1991) como los primeros 128 símbolos, por lo que los caracteres ASCII de 7 bits tienen los mismos códigos numéricos en ambos conjuntos. Esto permite que UTF-8 sea retrocompatible con ASCII de 7 bits, ya que un archivo UTF-8 que contiene solo caracteres ASCII es idéntico a un archivo ASCII que contiene la misma secuencia de caracteres. Aún más importante, se garantiza la compatibilidad hacia adelante , ya que el software que reconoce solo los caracteres ASCII de 7 bits como especiales y no altera los bytes con el bit más significativo activado (como se suele hacer para admitir extensiones ASCII de 8 bits como ISO-8859-1) conservará los datos UTF-8 sin cambios. [ 66 ]

Véase también

Notas

  1. 1 2 3 4 5Los 128 caracteres del conjunto de caracteres ASCII de 7 bits se dividen en ocho grupos de 16 caracteres llamados sticks 0–7, asociados con los tres bits más significativos . [ 13 ] Dependiendo de la representación horizontal o vertical del mapa de caracteres, los sticks pueden corresponder con filas o columnas de la tabla.
  2. Los caracteres Unicode del área "Control Pictures" U+2400 a U+2421 están reservados para representar caracteres de control cuando es necesario imprimirlos o mostrarlos en lugar de que realicen su función prevista. Es posible que algunos navegadores no los muestren correctamente.
  3. La notación de intercalación se usa a menudo para representar caracteres de control en una terminal. En la mayoría de las terminales de texto, al mantener presionada latecla Mayús mientras se escribe el segundo carácter, se escribirá el carácter de control. A veces no es necesaria la tecla Mayús; por ejemplo,se puede escribir con solo Ctrl+2 o Ctrl+Espacio.Ctrl^@
  4. Secuencias de escape de caracteres en el lenguaje de programación C y muchos otros lenguajes influenciados por él, como Java y Perl (aunque no todas las implementaciones necesariamente admiten todas las secuencias de escape).
  5. Se admite la introducción de cualquier carácter de un solo byte escapando su valor octal. Sin embargo, debido al papel de NULL en las cadenas de C , este caso tiene un uso particular.
  6. En algunos sistemas, también se puede introducir el carácter de retroceso pulsando latecla.← Backspace
  7. 1 2 La ambigüedad de la tecla Retroceso se debe a que los primeros terminales se diseñaron asumiendo que el uso principal del teclado sería perforar manualmente cintas de papel sin estar conectados a una computadora. Para borrar el carácter anterior, había que retroceder la perforación de la cinta de papel, que por razones mecánicas y de simplicidad era un botón en la propia perforadora y no en el teclado, y luego escribir el carácter de borrado. Por lo tanto, colocaron una tecla que producía borrado en la ubicación que se usaba en las máquinas de escribir para el retroceso. Cuando los sistemas usaban estos terminales y proporcionaban edición por línea de comandos, tenían que usar el código "rubout" para realizar un retroceso, y a menudo no interpretaban el carácter de retroceso (podían mostrar " ^H " como retroceso). Otros terminales no diseñados para cintas de papel hacían que la tecla en esta ubicación produjera Retroceso, y los sistemas diseñados para estos usaban ese carácter para retroceder. Dado que el código de borrado a menudo producía un efecto de retroceso, esto también obligó a los fabricantes de terminales a hacer que cualquiertecla produjera algo distinto al carácter de borrar.Delete
  8. El carácter Tab también se puede introducir pulsando latecla en la mayoría de los sistemas.Tab ↹
  9. El carácter de retorno de carro también se puede introducir pulsando lateclao↵ EnterReturn
  10. La secuencia de escape \e no forma parte de ISO C ni de muchas otras especificaciones de lenguaje. Sin embargo, es comprendida por varios compiladores, incluido GCC .
  11. En algunos sistemas, también se puede introducir el carácter Escape pulsando latecla.Esc
  12. ^^ significa+teclas"Ctrl" y de intercalación ).Ctrl^
  13. En algunos sistemas, el carácter Suprimir a veces se puede introducir pulsando latecla.← Backspace
  14. Impresos, los caracteres son:
    !"#$%&'()*+,-./0123456789:;<=>? ​@ABCDEFGHIJKLMNOPQRSTUVWXYZ [\]^_ ​` abcdefghijklmnopqrstuvwxyz{|}~

Referencias

  1. ^ ANSI (1 de diciembre de 1975). ISO-IR-6: Juego de caracteres gráficos ASCII (PDF) . ITSCJ/ IPSJ .
  2. 1 2 "Conjuntos de caracteres" . Autoridad de Números Asignados de Internet (IANA) . 14 de mayo de 2007. Consultado el 25 de agosto de 2019 .
  3. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Mackenzie, Charles E. (1980). Conjuntos de caracteres codificados, historia y desarrollo (PDF) . The Systems Programming Series (1.ª ed.). Addison-Wesley Publishing Company, Inc. págs. 6, 66, 211, 215, 217, 220, 223, 228 , 236–238 , 243–245 , 247–253, 423, 425–428 , 435–439 . ISBN   978-0-201-14460-4LCCN 77-90165 . Archivado (PDF) del original el 26 de mayo de 2016. Consultado el 25 de agosto de 2019 . 
  4. Shirley, R. (agosto de 2007). Glosario de seguridad en Internet, versión 2. IETF . doi : 10.17487 /RFC4949 . RFC 4949. Recuperado el 13 de junio de 2016 .
  5. Maini, Anil Kumar (2007). Electrónica digital: principios, dispositivos y aplicaciones . John Wiley and Sons . pág. 28. ISBN  978-0-470-03214-5Además , define códigos para 33 caracteres de control no imprimibles, en su mayoría obsoletos, que afectan la forma en que se procesa el texto.
  6. "Propuesta de hito: hito ASCII - Sección costera de Nueva Jersey del IEEE" . Wiki de hitos del IEEE . 29 de marzo de 2016. Consultado el 26 de febrero de 2024 .
  7. 1 2 Brandel, Mary (1999-07-06). "1963: El debut de ASCII" . CNN . Archivado del original el 17 de junio de 2013. Recuperado el 14 de abril de 2008 .
  8. 1 2 3 4 "Código estándar estadounidense para el intercambio de información, ASA X3.4-1963" . Investigación sensible . Asociación Estadounidense de Estándares . 17 de junio de 1963. Recuperado el 6 de junio de 2020 .
  9. 1 2 3 Código estándar de EE. UU. para el intercambio de información, USAS X3.4-1967 (Informe técnico). Instituto de Normas de los Estados Unidos de América . 7 de julio de 1967.
  10. Jennings, Thomas Daniel (2016-04-20) [1999]. "Una historia anotada de algunos códigos de caracteres o ASCII: Código Estándar Americano para la Infiltración de Información" . Sensitive Research . Recuperado el 2020-03-08 .
  11. 1 2 3 4 Norma Nacional Estadounidense para Sistemas de Información — Conjuntos de Caracteres Codificados — Código Estándar Nacional Estadounidense de 7 Bits para Intercambio de Información (ASCII de 7 Bits), ANSI X3.4-1986 (Informe Técnico). Instituto Nacional Estadounidense de Estándares (ANSI). 26 de marzo de 1986.
  12. Bukstein, Ed (julio de 1964). "Códigos binarios de computadora y ASCII" . Electronics World . 72 (1): 28–29 . Archivado del original el 3 de marzo de 2016. Recuperado el 22 de mayo de 2016 .
  13. 1 2 3 4 5 6 Bemer, Robert William (1980). "Capítulo 1: Dentro de ASCII" (PDF) . Software de propósito general . Lo mejor de la era de las interfaces. Vol. 2. Portland, OR, EE. UU.: dilithium Press. págs. 1–50 . ISBN   978-0-918398-37-6LCCN 79-67462 . Archivado del original el 27/08/2016 . Consultado el 27/08/2016 . de:
    • Bemer, Robert William (mayo de 1978). "Dentro de ASCII Parte I". Interface Age . 3 (5): 96– 102. 
    • Bemer, Robert William (junio de 1978). "Dentro de ASCII Parte II". Interface Age . 3 (6): 64– 74. 
    • Bemer, Robert William (julio de 1978). "Dentro de ASCII Parte III". Interface Age . 3 (7): 80– 87. 
  14. Informe breve: Reunión del grupo de trabajo del CCITT sobre el nuevo alfabeto telegráfico, del 13 al 15 de mayo de 1963.
  15. Informe de ISO/TC/97/SC 2 Reunión del 29 al 31 de octubre de 1963. 
  16. Informe del Grupo de Trabajo X3.2.4, 11 de junio de 1963, Edificio del Pentágono, Washington, DC.
  17. Informe de la reunión n.º 8, Grupo de trabajo X3.2.4, 17 y 18 de diciembre de 1963
  18. 1 2 3 Winter, Dik T. (2010) [2003]. "Estándares estadounidenses e internacionales: ASCII" . Archivado del original el 16 de enero de 2010.
  19. 1 2 Código estándar de EE. UU. para el intercambio de información, USAS X3.4-1968 (Informe técnico). Instituto de Normas de los Estados Unidos de América . 10 de octubre de 1968.
  20. 1 2 3 4 5 6 7 Salste, Tuomas (enero de 2016). "Conjuntos de caracteres de 7 bits: revisiones de ASCII" . Aivosto Oy. urn : nbn:fi-fe201201011004 . Archivado del original el 13 de junio de 2016. Recuperado el 13 de junio de 2016 .
  21. 1 2 Cerf, Vint (16 de octubre de 1969). Formato ASCII para intercambio de red . Grupo de trabajo de redes. doi : 10.17487/RFC0020 . RFC 20. Recuperado el 13 de junio de 2016 .(Nota: La redacción es casi idéntica a la de USAS X3.4-1968, excepto por la introducción).
  22. Barry Leiba (12 de enero de 2015). "Clasificación correcta de RFC 20 (formato ASCII) como estándar de Internet" . IETF .
  23. "Información". Scientific American (edición especial). 215 (3). Septiembre de 1966. JSTOR e24931041 . 
  24. Korpela, Jukka K. (14 de marzo de 2014) [7 de junio de 2006]. Unicode Explained Internationalize Documents, Programs, and Web Sites (2.ª edición de la 1.ª ed.). O'Reilly Media, Inc. pág. 118. ISBN    978-0-596-10121-3.
  25. ANSI INCITS 4-1986 (R2007): Estándar Nacional Estadounidense para Sistemas de Información Conjuntos de Caracteres Codificados Código Estándar Nacional Estadounidense de 7 Bits para Intercambio de Información (ASCII de 7 Bits) , 2007 [1986]  
  26. "INCITS 4-1986 [ R2012 ] : Sistemas de información - Conjuntos de caracteres codificados - Código estándar nacional estadounidense de 7 bits para el intercambio de información (ASCII de 7 bits)" . 15 de junio de 2012. Archivado del original el 28 de febrero de 2020. Consultado el 28 de febrero de 2020 .
  27. "INCITS 4-1986 [ R2017 ] : Sistemas de información - Conjuntos de caracteres codificados - Código estándar nacional estadounidense de 7 bits para el intercambio de información (ASCII de 7 bits)" . 2017-11-02 [2017-06-09]. Archivado del original el 2020-02-28 . Consultado el 2020-02-28 .
  28. «INCITS 4-1986 (R2022)» . tienda web.ansi.org .
  29. Secuenciación de bits del código estándar nacional estadounidense para el intercambio de información en la transmisión de datos en serie por bits , Instituto Nacional Estadounidense de Estándares (ANSI), 1966, X3.15-1966
  30. "Reglamento telegráfico y protocolo final (Madrid, 1932)" (PDF) . Archivado del original el 21 de agosto de 2023. Consultado el 9 de junio de 2024 .
  31. 1 2 Smith, Gil (2001). "Códigos de comunicación de teletipo" (PDF) . Baudot.net. Archivado (PDF) del original el 20 de agosto de 2008. Recuperado el 11 de julio de 2008 .
  32. Sawyer, Stanley A.; Krantz, Steven George (1995). A TeX Primer for Scientists . CRC Press . pág. 13. Bibcode : 1995tps..book.....S . ISBN  978-0-8493-7159-2Archivado del original el 22/12/2016 . Consultado el 29/10/2016 .
  33. Savard, John JG "Teclados de computadora" . Archivado del original el 24 de septiembre de 2014. Consultado el 24 de agosto de 2014 .
  34. "ASCIIbetical" . Enciclopedia PCMag . Consultado el 23 de junio de 2026 .
  35. Resnick, Peter W., ed. (abril de 2001). Formato de mensaje de Internet . IETF . doi : 10.17487/RFC2822 . RFC 2822. Recuperado el 13 de junio de 2016 .(Nota: NO-WS-CTL.)
  36. McConnell, Robert; Haynes, James; Warren, Richard. "Understanding ASCII Codes" . Archivado del original el 27 de febrero de 2014. Consultado el 11 de mayo de 2014 .
  37. Barry Margolin (29/05/2014). "Re: Historial del editor y del procesador de textos (antes: Re: RTF para emacs)" . help-gnu-emacs (Lista de correo). Archivado del original el 14/07/2014 . Recuperado el 11/07/2014 .
  38. 1 2 "Manual del sistema de multiprogramación PDP-6" (PDF) . Digital Equipment Corporation (DEC). 1965. pág. 43. Archivado (PDF) del original el 14 de julio de 2014. Recuperado el 10 de julio de 2014 . 
  39. 1 2 "Manual de referencia PDP-10, Libro 3, Comunicación con el monitor" (PDF) . Digital Equipment Corporation (DEC). 1969. pág. 5-5. Archivado (PDF) del original el 15/11/2011 . Recuperado el 10/07/2014 .
  40. "Ayuda - Manual de GNU Emacs" . Archivado del original el 11/07/2018 . Consultado el 11/07/2018 .
  41. "ANSI X3.64-1979" (PDF) . Consultado el 27 de octubre de 2024 .
  42. Tim Paterson (8 de agosto de 2007). "¿Es DOS una copia de CP/M?" . DosMan Drivel . Archivado del original el 20 de abril de 2018 . Recuperado el 19 de abril de 2018 .
  43. Ossanna, JF ; Saltzer, JH (17–19 de noviembre de 1970). "Problemas de ingeniería técnica y humana en la conexión de terminales a un sistema de tiempo compartido" (PDF) . Actas de la Conferencia Conjunta de Informática de Otoño (FJCC) del 17 al 19 de noviembre de 1970. AFIPS Press . págs. 355– 362. Archivado (PDF) del original el 19 de agosto de 2012. Recuperado el 29 de enero de 2013. El uso de una función de "nueva línea" (combinación de retorno de carro y salto de línea) es más sencillo tanto para el hombre como para la máquina que requerir ambas funciones para comenzar una nueva línea; la norma nacional estadounidense X3.4-1968 permite que el código de salto de línea lleve el significado de nueva línea. 
  44. O'Sullivan, T. (1971-05-19). Protocolo TELNET . Grupo de Trabajo de Ingeniería de Internet (IETF). págs. 4–5. doi : 10.17487/RFC0158 . RFC 158. Recuperado el 28 de enero de 2013 . 
  45. Neigus, Nancy J. (1973-08-12). Protocolo de transferencia de archivos . Grupo de trabajo de ingeniería de Internet (IETF). doi : 10.17487/RFC0542 . RFC 542. Recuperado el 28 de enero de 2013 .
  46. Postel, Jon (junio de 1980). Protocolo de transferencia de archivos . Grupo de trabajo de ingeniería de Internet (IETF). doi : 10.17487/RFC0765 . RFC 765. Recuperado el 28 de enero de 2013 .
  47. Crocker, David (13 de agosto de 1982). ESTÁNDAR PARA EL FORMATO DE MENSAJES DE TEXTO DE INTERNET ARPA . Grupo de Trabajo de Ingeniería de Internet (IETF). doi : 10.17487/RFC0822 . RFC 822 .
  48. Berners-Lee, Tim; et al. (mayo de 1996). Protocolo de transferencia de hipertexto -- HTTP/1.0 . Grupo de trabajo de ingeniería de Internet (IETF). doi : 10.17487/RFC1945 . RFC 1945 . 
  49. "Plan de traducción de fin de vida útil para Mercurial" . Mercurial. Archivado del original el 16 de junio de 2016. Consultado el 24 de junio de 2017 .
  50. Bernstein, Daniel J. "Bare LFs in SMTP" . Archivado del original el 29-10-2011 . Recuperado el 28-01-2013 .
  51. Guía de interfaz CP/M 1.4 (PDF) . Investigación digital . 1978. pág. 10. Archivado (PDF) del original el 29 de mayo de 2019. Recuperado el 7 de octubre de 2017 . 
  52. Haynes, Jim (2015-01-13). "De primera mano: Chad es nuestro producto más importante: el recuerdo de un ingeniero de Teletype Corporation" . Wiki de historia de la ingeniería y la tecnología (ETHW) . Recuperado el 14 de febrero de 2023. Hubo un cambio de ASCII de 1961 a ASCII de 1968. Algunos lenguajes de programación usaban caracteres en ASCII de 1961, como la flecha hacia arriba y la flecha hacia la izquierda. Estos caracteres desaparecieron en ASCII de 1968. Trabajamos con Fred Mocking, quien para entonces estaba en Ventas en Teletype , en un cilindro de tipo que comprometería los caracteres cambiantes para que los significados de ASCII de 1961 no se perdieran por completo. El carácter de guion bajo se hizo en forma de cuña para que también pudiera servir como una flecha hacia la izquierda.
  53. Bemer, Robert William . "Bemer se encuentra con Europa (Estándares informáticos) Viñetas de la historia de la informática" . Trailing-edge.com. Archivado del original el 17 de octubre de 2013. Consultado el 14 de abril de 2008 . (Nota: Bemer trabajaba en IBM en ese momento).
  54. "Robert William Bemer: Biografía" . 9 de marzo de 2013. Archivado del original el 16 de junio de 2016.
  55. Johnson, Lyndon Baines (11 de marzo de 1968). «Memorándum que aprueba la adopción por parte del Gobierno Federal de un código estándar para el intercambio de información» . The American Presidency Project. Archivado del original el 14 de septiembre de 2007. Consultado el 14 de abril de 2008 .
  56. Richard S. Shuford (20 de diciembre de 1996). "Re: ¿Historia temprana de ASCII?" . Grupo de noticias : alt.folklore.computers . Usenet: Pine.SUN.3.91.961220100220.13180C-100000@duncan.cs.utk.edu .  
  57. Folts, Harold C.; Karp, Harry, eds. (1982-02-01). Compilación de estándares de comunicaciones de datos (2.ª ed. revisada). McGraw-Hill Inc. ISBN  978-0-07-021457-6.
  58. Dubost, Karl (2008-05-06). "UTF-8 Growth on the Web" . Blog del W3C . Consorcio World Wide Web . Archivado del original el 16 de junio de 2016. Recuperado el 15 de agosto de 2010 .
  59. 1 2 Davis, Mark (2008-05-05). "Transición a Unicode 5.1" . Blog oficial de Google . Archivado del original el 16-06-2016 . Recuperado el 15-08-2010 .
  60. Davis, Mark (28 de enero de 2010). "Unicode se acerca al 50% de la web" . Blog oficial de Google . Archivado del original el 16 de junio de 2016. Consultado el 15 de agosto de 2010 .
  61. "Criterios específicos", anexo al memorando de RW Reach, "Reunión X3-2 14 y 15 de septiembre", 18 de septiembre de 1961 
  62. Maréchal, R. (1967-12-22), ISO/TC 97 Computadoras y procesamiento de información: Aceptación del proyecto de recomendación ISO n.º 1052 
  63. "Especificación DVB-TXT (Teletexto) para la transmisión de teletexto del Sistema B de la UIT-R en flujos de bits DVB" .
  64. Referencia técnica (PDF) . Biblioteca de referencia de hardware de computadoras personales (primera edición). IBM. Agosto de 1981. Apéndice C. De caracteres, pulsaciones de teclas y color. 
  65. El Consorcio Unicode (27 de octubre de 2006). «Capítulo 13: Áreas especiales y caracteres de formato» (PDF) . En Allen, Julie D. (ed.). El estándar Unicode, versión 5.0 . Upper Saddle River, Nueva Jersey, EE. UU.: Addison-Wesley Professional . pág. 314. ISBN  978-0-321-48091-0. Archivado (PDF) del original el 09-10-2022 . Recuperado el 13-03-2015 .
  66. "utf-8(7) – Página del manual de Linux" . Man7.org. 26 de febrero de 2014. Archivado del original el 22 de abril de 2014. Consultado el 21 de abril de 2014 . 

Lecturas adicionales

  • Bemer, Robert William (1960). "Una propuesta para la compatibilidad de códigos de caracteres" . Communications of the ACM . 3 (2): 71– 72. doi : 10.1145/366959.366961 . S2CID 9591147 . 
  • Bemer, Robert William (23 de mayo de 2003). "La Babel de los códigos anteriores a ASCII: el estudio de 1960 sobre conjuntos de caracteres codificados: las razones de ASCII" . Archivado del original el 17 de octubre de 2013. Recuperado el 9 de mayo de 2016 .de:
  • "Código estándar nacional estadounidense para el intercambio de información | ANSI X3.4-1977" (PDF) . Instituto Nacional de Estándares. 1977. Archivado (PDF) del original el 9 de octubre de 2022. (facsímil, no legible por máquina)
  • Robinson, GS; Cargill, C. (1996). "Historia e impacto de los estándares informáticos". Computer . Vol.  29, n.º  10, pp. 79–85 . doi : 10.1109/2.539725 . 
  • Mullendore, Ralph Elvin (1964) [1963]. Ptak, John F. (ed.). "Sobre el desarrollo temprano de ASCII : la historia de ASCII"  . JF Ptak Science Books (publicado en marzo de 2012). Archivado del original el 26 de mayo de 2016. Recuperado el 26 de mayo de 2016 .
  • "Controles C0 y latín básico Rango: 0000–007F"  (PDF) . El estándar Unicode 8.0 . Unicode, Inc. 2015 [1991]. Archivado (PDF) del original el 26 de mayo de 2016. Recuperado el 26 de mayo de 2016 .