stringtranslate.com

Código electrónico de circulación electrónica

El Código de Intercambio Decimal Codificado Binario Extendido [1] [2] ( EBCDIC ; [1] / ˈ ɛ b s ɪ d ɪ k / ) es una codificación de caracteres de ocho bits utilizada principalmente en los sistemas operativos de mainframe y de gama media de IBM . Desciende del código utilizado con tarjetas perforadas y del código decimal codificado en binario de seis bits correspondiente utilizado con la mayoría de los periféricos informáticos de IBM de finales de los años 1950 y principios de los años 1960. [3] Es compatible con varias plataformas que no son IBM, como BS2000/OSD , OS-IV, MSP y MSP-EX de Fujitsu-Siemens , la serie SDS Sigma , Unisys VS/9 , Unisys MCP e ICL VME .

Historia

Tarjeta perforada con la codificación Hollerith del conjunto de caracteres EBCDIC de 1964. El contraste en la parte superior se ha mejorado para mostrar los caracteres impresos. Los "números" perforados (0-9) se traducen directamente a los 4 bits inferiores del EBCDIC, aunque los 4 bits superiores del EBCDIC son más complejos.

El EBCDIC fue ideado en 1963 y 1964 por IBM y fue anunciado con el lanzamiento de la línea de computadoras mainframe IBM System/360 . Es una codificación de caracteres de ocho bits, desarrollada independientemente del esquema de codificación ASCII de siete bits . Fue creado para extender el Código de Intercambio Decimal Codificado en Binario (BCD) existente, o BCDIC , que a su vez fue ideado como un medio eficiente para codificar las dos zonas y los números perforados en tarjetas perforadas en seis bits. La codificación distinta de 's' y 'S' (usando la posición 2 en lugar de 1) se mantuvo de las tarjetas perforadas donde era deseable no tener perforaciones demasiado cerca una de la otra para asegurar la integridad de la tarjeta física. [4] [ verificación fallida ]

Aunque IBM fue uno de los principales promotores del comité de estandarización ASCII, [5] la compañía no tuvo tiempo de preparar periféricos ASCII (como máquinas perforadoras de tarjetas) para enviar con sus computadoras System/360, por lo que la compañía se decidió por EBCDIC. [3] El System/360 tuvo un gran éxito, junto con clones como RCA Spectra 70 , ICL System 4 y Fujitsu FACOM, por lo que también lo hizo EBCDIC.

Todos los sistemas operativos mainframe de IBM , y su sistema operativo IBM i para computadoras de gama media , utilizan EBCDIC como su codificación inherente [6] (con tolerancia para ASCII, por ejemplo, ISPF en z/OS puede explorar y editar archivos codificados tanto en EBCDIC como en ASCII). El software puede traducir hacia y desde codificaciones, y los mainframes modernos (como IBM Z ) incluyen instrucciones de procesador, a nivel de hardware, para acelerar la traducción entre conjuntos de caracteres.

Existe un formato de transformación Unicode orientado a EBCDIC llamado UTF-EBCDIC propuesto por el Consorcio Unicode , diseñado para permitir una fácil actualización del software EBCDIC para manejar Unicode , pero no está pensado para usarse en entornos de intercambio abierto. Incluso en sistemas con amplio soporte EBCDIC, no ha sido popular. Por ejemplo, z/OS admite Unicode (prefiriendo específicamente UTF-16 ), pero z/OS solo tiene soporte limitado para UTF-EBCDIC.

No todos los sistemas operativos que se ejecutan en hardware IBM utilizan EBCDIC; IBM AIX , Linux en IBM Z y Linux en Power utilizan ASCII, al igual que todos los sistemas operativos que se ejecutan en IBM Personal Computer y sus sucesores.

Compatibilidad con ASCII

Hubo numerosas dificultades para escribir software que funcionara tanto en ASCII como en EBCDIC.

Diseño de la página de códigos

Existen cientos de páginas de códigos EBCDIC basadas en la codificación de caracteres EBCDIC original; hay una variedad de páginas de códigos EBCDIC destinadas a usarse en diferentes partes del mundo, incluidas páginas de códigos para alfabetos no latinos como el chino, el japonés (por ejemplo, EBCDIC 930, JEF y KEIS), el coreano y el griego (EBCDIC 875). También hay una gran cantidad de variaciones con las letras intercambiadas sin ninguna razón aparente. [ cita requerida ]

La tabla siguiente muestra el "subconjunto invariante" [9] de EBCDIC, que son caracteres que deberían tener las mismas asignaciones en todas las páginas de códigos EBCDIC que utilizan el alfabeto latino. (Esto incluye la mayor parte del repertorio invariante ISO/IEC 646 , excepto el signo de exclamación ). También muestra (en gris) la puntuación ASCII y EBCDIC faltante, ubicada donde están en la página de códigos 37 (una de las variantes de la página de códigos de EBCDIC). Las celdas en blanco están llenas de caracteres específicos de la región en las variantes, pero los caracteres en gris a menudo también se intercambian o reemplazan. Al igual que ASCII, el subconjunto invariante funciona solo para idiomas que utilizan el alfabeto latino básico ISO , como inglés (excluyendo préstamos y algunas variaciones ortográficas poco comunes) y holandés (si las ligaduras "ij" y "IJ" se escriben como dos caracteres).

Definiciones de controles EBCDIC no ASCII

A continuación se presentan las definiciones de caracteres de control EBCDIC que no se asignan a los caracteres de control ASCII o que tienen usos adicionales. Cuando se asignan a Unicode, estos se asignan principalmente a puntos de código de caracteres de control C1 de una manera especificada por la Arquitectura de representación de datos de caracteres (CDRA) de IBM. [10] [11]

Aunque la asignación predeterminada de Nueva línea (NL) corresponde al carácter de siguiente línea (NEL) de ISO/IEC 6429 (cuyo comportamiento también se especifica, pero no se requiere, en el Anexo 14 de Unicode), [12] la mayoría de estos controles asignados a C1 no coinciden ni con los del conjunto C1 de ISO/IEC 6429 ni con los de otros conjuntos de control C1 registrados , como ISO 6630. [13] Aunque esto hace que los controles EBCDIC no ASCII sean efectivamente un conjunto de control C1 único, no se encuentran entre los conjuntos de control C1 registrados en el registro ISO-IR , [14] lo que significa que no tienen una secuencia de designación de conjunto de control asignada (como se especifica en ISO/IEC 2022 y se permite opcionalmente en ISO/IEC 10646 (Unicode)). [15]

Además de U+0085 (Next Line), el estándar Unicode no prescribe una interpretación de los caracteres de control C1, dejando su interpretación a protocolos de nivel superior (sugiere, pero no exige, sus interpretaciones ISO/IEC 6429 en ausencia de uso para otros fines), [16] por lo que esta asignación está permitida en Unicode, pero no está especificada por éste.

Páginas de códigos con conjuntos de caracteres Latin-1

Las siguientes páginas de códigos tienen el conjunto completo de caracteres Latin-1 (ISO/IEC 8859-1). La primera columna indica el número de la página de códigos original. La segunda columna indica el número de la página de códigos actualizada con el símbolo del euro (€) en sustitución del símbolo monetario universal (¤) (o en el caso de EBCDIC 924, con el conjunto modificado para que coincida con ISO 8859-15 ).

Cada país tiene diferentes páginas de códigos porque estas páginas de códigos se originaron como páginas de códigos con repertorios de caracteres específicos de cada país y luego se ampliaron para incluir todo el repertorio ISO 8859-1, lo que significa que un carácter ISO 8859-1 determinado puede tener diferentes valores de punto de código en diferentes páginas de códigos. Se conocen como páginas de códigos extendidas por país ( CECP ). [20]

Crítica y humor

Eric S. Raymond, defensor del software de código abierto y desarrollador de software, escribe en su Jargon File que EBCDIC era detestado por los hackers, con lo que se refería [21] a los miembros de una subcultura de programadores entusiastas. El Jargon File 4.4.7 ofrece la siguiente definición: [22]

EBCDIC: /eb´s@·dik/, /eb´see`dik/, /eb´k@·dik/, n. [abreviatura, Extended Binary Code Decimal Interchange Coded] Un supuesto conjunto de caracteres utilizado en los dinosaurios de IBM. Existe en al menos seis versiones mutuamente incompatibles, todas ellas con delicias tales como secuencias de letras no contiguas y la ausencia de varios caracteres de puntuación ASCII bastante importantes para los lenguajes informáticos modernos (los caracteres que faltan exactamente varían según la versión de EBCDIC que esté mirando). IBM adaptó EBCDIC a partir del código de tarjeta perforada a principios de la década de 1960 y lo promulgó como una táctica de control del cliente (ver la conspiración del conector ), desdeñando el estándar ASCII ya establecido. Hoy, IBM afirma ser una empresa de sistemas abiertos , pero la propia descripción de IBM de las variantes de EBCDIC y cómo convertirlas todavía está clasificada internamente como alto secreto, que se debe quemar antes de leer. Los hackers palidecen ante el solo nombre de EBCDIC y lo consideran una manifestación del más puro mal.

—  El archivo de jerga 4.4.7

El diseño de EBCDIC también fue fuente de muchos chistes. Uno de ellos, encontrado en el archivo fortune de Unix de 4.3BSD Reno (1990) [23] decía:

Profesor: "Entonces el gobierno americano recurrió a IBM para que ideara un estándar de cifrado , y se les ocurrió..."
Estudiante: "¡EBCDIC!"

En la serie de juegos de ordenador Zork de 1979 se hacen referencias al conjunto de caracteres EBCDIC . En la "Sala de máquinas" de Zork II , se utiliza EBCDIC para dar a entender que se trata de un lenguaje incomprensible:

Se trata de una gran sala llena de maquinaria pesada de todo tipo, que zumba ruidosamente. La sala huele a resistencias quemadas. A lo largo de una pared hay tres botones que son, respectivamente, redondos, triangulares y cuadrados. Naturalmente, encima de estos botones hay instrucciones escritas en EBCDIC...

En 2021, se hizo público que un banco belga seguía utilizando EBCDIC internamente en 2019. Un cliente insistió en que la ortografía correcta de su apellido incluía una diéresis , que el banco omitió, y el cliente presentó una queja citando la garantía en el Reglamento General de Protección de Datos del derecho a la "rectificación oportuna de datos personales inexactos". El argumento del banco incluía el hecho de que su sistema utilizaba EBCDIC, así como que no admitía letras con diacríticos (o minúsculas, para el caso). El tribunal de apelaciones falló a favor del cliente. [24] [25]

Véase también

Referencias

  1. ^ ab Mackenzie, Charles E. (1980). Conjuntos de caracteres codificados, historia y desarrollo (PDF) . Serie de programación de sistemas (1.ª edición). Addison-Wesley Publishing Company, Inc. ISBN 0-201-14460-3. LCCN  77-90165 . Consultado el 6 de abril de 2022 .
  2. ^ Donovan, John J. (1972). Programación de sistemas . McGraw-Hill. pág. 65. ISBN 0-07-085175-1.
  3. ^ ab Bemer, Bob . "EBCDIC y el bit P (el mayor error informático de la historia) - Viñetas de la historia de la informática". Archivado desde el original el 13 de mayo de 2018. Consultado el 2 de julio de 2013. ... pero sus impresoras y perforadoras no estaban preparadas para manejar ASCII, e IBM TENÍA que anunciarlo.
  4. ^ "Los códigos de las tarjetas perforadas de Doug Jones". homepage.cs.uiowa.edu . Consultado el 14 de enero de 2023 .
  5. ^ "X3.4-1963". 1963. pág. 4.(NB. IBM tenía cuatro miembros del personal en el subcomité final ASA X3.2 de 21 miembros).
  6. ^ IBMnt (2008). «IBM confirma el uso de EBCDIC en sus mainframes como práctica predeterminada». Archivado desde el original el 3 de enero de 2013. Consultado el 16 de junio de 2008 .
  7. ^ "Fundamento de la norma internacional – Lenguajes de programación – C" (PDF) . Revisión 5.10. Abril de 2003. § MSE.4: Compatibilidad con la norma ISO/IEC 646 invariante. Archivado (PDF) desde el original el 2016-06-06 . Consultado el 2022-11-24 .
  8. ^ Manual de referencia PDP-10, libro 2: Ensamblaje del programa fuente (PDF) . Digital Equipment Corporation . pág. 221.
  9. ^ "Conjunto de caracteres invariables". IBM Knowledge Center . 14 de agosto de 2018.
  10. ^ abc Umamaheswaran, VS (8 de noviembre de 1999). "3.3 Paso 2: Conversión de bytes". UTF-EBCDIC . Consorcio Unicode . Informe técnico Unicode n.º 16. Los 64 caracteres de control... el carácter ASCII DELETE (U+007F)... se asignan respetando las convenciones EBCDIC, tal como se define en IBM Character Data Representation Architecture, CDRA, con una excepción: el emparejamiento de los caracteres de control de avance de línea y nueva línea EBCDIC se intercambia de sus emparejamientos predeterminados de CDRA a los caracteres de control de avance de línea (U+000A) y siguiente línea (U+0085) ISO/IEC 6429
  11. ^ ab Steele, Shawn (24 de abril de 1996). "cp037_IBMUSCanada a tabla Unicode". Microsoft / Consorcio Unicode .
  12. ^ Heninger, Andy (15 de febrero de 2019). "NL: Next Line (A) (Non-tailorable)" (NL: Línea siguiente (A) (No adaptable)). Algoritmo de salto de línea Unicode . Revisión 43. Consorcio Unicode . Anexo n.° 14 del estándar Unicode.
  13. ^ ISO/TC 46 (1986-02-01). Funciones de control adicionales para uso bibliográfico según la norma internacional ISO 6630 (PDF) . ITSCJ/ IPSJ . ISO-IR -124.{{citation}}: CS1 maint: numeric names: authors list (link)
  14. ^ Registro internacional ISO/IEC de conjuntos de caracteres codificados para su uso con secuencias de escape (PDF) , ITSCJ/ IPSJ , ISO-IR
  15. ^ ISO/IEC JTC 1/SC 2 (2017). "12.4: Identificación del conjunto de funciones de control". Tecnología de la información — Conjunto de caracteres codificados universales (UCS) (5.ª ed.). ISO . págs. 19-20. ISO/IEC 10646. Para otros conjuntos C0 o C1, el octeto final F se obtendrá del Registro internacional de conjuntos de caracteres codificados.... Si dicha secuencia de escape aparece dentro de una secuencia de unidad de código conforme a esta Norma Internacional, se deberá rellenar de acuerdo con la Cláusula 11.{{citation}}: CS1 maint: numeric names: authors list (link)
  16. ^ Consorcio Unicode (2019). «23.1: Códigos de control». El estándar Unicode (PDF) (edición 12.0.0). pp. 868–870. ISBN 978-1-936213-22-1.
  17. ^ abcd "Apéndice G-1. Definiciones de caracteres de control EBCDIC". Arquitectura de representación de datos de caracteres . IBM Corporation . Archivado desde el original el 11 de septiembre de 2018.
  18. ^ abcdefghij GOST (1993). "Информационная технология. Наборы 8-битных кодированных символов. Двоичный код обработки информации" [Tecnología de la información. Juegos de caracteres codificados de 8 bits. Código binario para procesamiento de información] (en ruso). GOST 19768-93.
  19. ^ IBM . "Character Data Representation Architecture (CDRA)". IBM . p. 327. El mnemónico para el carácter de control de inicio de significado en EBCDIC se ha modificado para incluir un punto (.) al final (SOS.). Esto se ha hecho para distinguirlo del mnemónico SOS utilizado en ISO-8 para el carácter de control de inicio de cadena. El punto no altera la propiedad del control de ninguna manera.
  20. ^ "iso8859.txt". Proyecto Kermit / Universidad de Columbia .
  21. ^ Raymond, Eric S. (1997). "El nuevo diccionario del hacker". pág. 310.
  22. ^ "EBCDIC". Archivo de jerga . Archivado desde el original el 13 de mayo de 2018. Consultado el 13 de mayo de 2018 .
  23. ^ 4.3BSD-Reno/compartir/juegos/fortuna/fortunas
  24. ^ "Tribunal de Apelación de Bruselas - 2019/AR/1006 - GDPRhub".
  25. ^ Eden, Terence (25 de octubre de 2021). "EBCDIC es incompatible con el RGPD – Blog de Terence Eden".

Enlaces externos