stringtranslate.com

Codificación digital de símbolos APL

El lenguaje de programación APL utiliza una serie de símbolos , en lugar de palabras del lenguaje natural, para identificar operaciones, de forma similar a los símbolos matemáticos . Antes de la adopción generalizada de Unicode , se utilizaban varias páginas de códigos EBCDIC y no EBCDIC especiales para representar los símbolos necesarios para escribir APL.

Conjuntos de caracteres

Debido a sus orígenes en los teleimpresores basados ​​en IBM Selectric , los símbolos APL se han representado tradicionalmente en el cable utilizando un conjunto de caracteres único y no estándar. En las décadas de 1960 y 1970, existían pocos dispositivos terminales que pudieran reproducirlos; los más populares eran el IBM 2741 y el IBM 1050 equipados con un cabezal de impresión APL específico. Con el tiempo, con el uso universal de pantallas gráficas de alta calidad, dispositivos de impresión y compatibilidad con Unicode , el problema de las fuentes de caracteres APL se ha eliminado en gran medida.

Repertorio de personajes

IBM asigna los siguientes identificadores de caracteres (GCGID) a la sintaxis APL, que se utilizan en las definiciones de sus páginas de códigos. [1] [2] [3]

Páginas de códigos EBCDIC

Página de código 293

La página de códigos 293 ( CCSID 293), [20] denominada "APL (USA)", es una página de códigos EBCDIC que incluye símbolos APL, además de preservar las letras latinas básicas y los números arábigos occidentales en sus ubicaciones EBCDIC habituales. [17] [18]

  Diferencias con la página de códigos 37

Página de código 310

La página de códigos 310 ("Graphic Escape APL/TN") incluye una gama más amplia de símbolos, pero no incluye las letras latinas básicas ni los dígitos básicos. [22] [4] Se utiliza junto con la página de códigos 37-2, [23] y los códigos de la página de códigos 310 tienen como prefijo el carácter de control Graphic Escape (EBCDIC 0x08) [24] . [6] [25]

Página de código 351

La página de códigos 351 ("GDDM Default (USA)") [27] contiene la mayoría de los caracteres de las páginas de códigos 293 y 310 (excepto ⍷ , épsilon con subrayado) además de las letras y dígitos, reemplazando varios caracteres de control con símbolos.

ASCII modificado de 7 bits

Página de código 371 (IR-68)

La página de códigos 371, [28] registrada para su uso con ISO/IEC 2022 como ISO-IR-68 , [29] [5] es un código ASCII de 7 bits muy modificado, diseñado por el Grupo de trabajo APL de la Asociación Canadiense de Normas , destinado a usarse con APL en un entorno que permite la sobrescritura de caracteres utilizando el código de control BS (retroceso, 0x08). [29] [5]

ASCII modificado y/o extendido de 8 bits

Página de código 907

La página de códigos 907 es utilizada por el IBM 3812, al igual que la página de códigos 906 .

  Diferencias con la página de códigos 437

Página de código 909

La página de códigos 909 es otra codificación para APL, que se diferencia de la página de códigos 907 en que no incluye los caracteres subrayados, asigna códigos diferentes a los caracteres APL que caen en el rango 0xB0–DF y reemplaza algunos de los gráficos de reemplazo C0 de la página de códigos 437 con codificaciones alternativas para ciertos símbolos APL.

  Diferencias con la página de códigos 437

Página de código 910

La página de códigos 910 es similar a la página de códigos 909, pero con menos flechas horizontales duplicadas, utilizando los mismos gráficos C0 que la página de códigos 437 e incluyendo algunos caracteres adicionales.

  Diferencias con la página de códigos 437

Unicode

La mayoría de los símbolos APL están presentes en Unicode, en el rango Técnico Misceláneo , [30] aunque algunos productos APL pueden no tener aún Unicode, y algunos símbolos APL pueden no usarse o no estar disponibles en la implementación de un proveedor determinado.

A partir de 2010, Unicode permite almacenar APL en archivos de texto, publicarlos impresos y en la web, y compartirlos por correo electrónico y mensajería instantánea. Para introducir caracteres APL se sigue requiriendo el uso de un editor de métodos de entrada o una asignación de teclado específicos, o de una interfaz táctil específica. Las asignaciones de teclado APL están disponibles de forma gratuita para los sistemas operativos más comunes, o se pueden obtener añadiendo los símbolos APL de Unicode a la asignación de teclado existente.

Caracteres alfabéticos subrayados

En Unicode faltan los caracteres alfabéticos tradicionales subrayados incluidos en algunas de las páginas de códigos de APL; su uso se ha eliminado o ha quedado obsoleto en la mayoría de las implementaciones de APL. Estos caracteres se generaban en terminales de impresión de APL tachando una letra mayúscula con un carácter de subrayado. Algunas tablas los muestran simulados con marcado subrayado y cursiva, sin incluir las asignaciones de Unicode. [4]

IBM les asigna GCGID como "LA480000" (a la que denominan "A Line Below Capital/A Underscore (APL)"), "LB480000" ("B Line Below Capital/B Underscore (APL)") y así sucesivamente, bajo la serie "L" utilizada para las letras latinas. [1] El uso de un número par (48) en lugar de un número impar (47) se debe a que están en mayúsculas: compare el uso de SD110000 para un acento agudo solitario ´, LA110000 para la minúscula áy LA120000 para la mayúscula Á. [31] Están incluidas en el esquema de área de uso privado de IBM , codificadas en orden alfabético inverso en los puntos de código de número impar de U+F8BF a U+F8F1. [12]

Los usos homólogos de 47 incluyen la serie "SD" (diacrítica) GCGID SD470000 para "Línea inferior/Subrayado discontinuo" [32] —es decir, el macrón debajo , distinto del subrayado ASCII que es SP090000 ("Subrayado/Subrayado continuo") [31] —y la serie "A" ( letra árabe ) GCGID AD470009 para el ḏāl , [33] por ejemplo. El bloque adicional extendido latino de Unicode incluye los siguientes caracteres "Línea inferior" en mayúsculas con el macrón debajo como diacrítico, para la transcripción semítica (incluye una ẖ precompuesta solo en minúsculas):

Sin embargo, esto no cubre todo el alfabeto latino básico ISO , y los glifos de referencia de IBM para los caracteres APL los muestran tanto subrayados como oblicuos , [2] y las tablas que los simulan con marcado pueden seguir el mismo ejemplo. [4] El bloque de símbolos alfanuméricos matemáticos de Unicode incluye caracteres en cursiva para su uso en notaciones donde contrastan con caracteres no cursivos. Unicode también incluye formas combinadas del macrón a continuación y del guión bajo en el bloque de marcas diacríticas combinadas ; los caracteres anteriores se descomponen canónicamente con el primero:

Disposición del teclado

Tenga en cuenta los mnemónicos que asocian un carácter APL con una letra: ?( signo de interrogación ) activado , ( potencia ) activado , ( rho ) activado , ( valor base ) activado , ( eNcode ) activado , ( módulo ) activado , etc. Esto hace que sea más fácil para un hablante de lengua inglesa escribir APL en un teclado que no sea APL, siempre que uno tenga una respuesta visual en la pantalla. Además, se han producido calcomanías para colocar en teclados estándar, ya sea en la parte frontal de las teclas o en la parte superior de ellas.QPρRBNM

Disposición del teclado APL. [34]

Las terminales IBM posteriores, en particular las estaciones de visualización IBM 3270 , tenían una disposición de teclado alternativa que es la base de algunas de las distribuciones de teclado APL modernas que se utilizan hoy en día.

Se podían obtener más caracteres APL superponiendo un carácter con otro. Por ejemplo, el símbolo de logaritmo (⍟) se formaba superponiendo + con + . Esto ampliaba las capacidades gráficas de los primeros teletipos, pero hacía más compleja la corrección de errores y la edición de líneas de programa.⇧ ShiftP⇧ ShiftO

Los fabricantes introdujeron nuevos tipos de tachado a medida que producían versiones de APL adaptadas a hardware, características del sistema, sistemas de archivos, etc. específicos. Además, los terminales de impresión y los primeros terminales de rayos catódicos APL podían mostrar tachados arbitrarios, pero a medida que las computadoras personales reemplazaron rápidamente a los terminales como dispositivo de entrada de datos, el soporte de caracteres APL comenzó a proporcionarse como una ROM del generador de caracteres APL o un conjunto de caracteres suaves generados por el dispositivo de visualización. Con la llegada de la PC moderna, los caracteres APL se definieron en fuentes específicas, eliminando la distinción entre caracteres tachados y caracteres estándar.

Finalmente, los símbolos fueron ratificados en Unicode y se les dieron puntos de código específicos, con interpretaciones inequívocas, independientemente de la fuente gráfica.

Véase también

Notas al pie

  1. ^ abcdefghijkl Existen dos convenciones de nombres (en qué dirección se escriben "arriba" y "abajo", y en qué dirección se escriben "izquierda" y "derecha") para los caracteres de tachuelas, las convenciones "London" y "Bosworth". [13] La convención que se utiliza difiere entre IBM y Unicode. Los nombres también difieren entre los caracteres Unicode compuestos destinados únicamente a APL (que coinciden con los nombres de IBM y utilizan la convención Bosworth) frente a los caracteres de tachuelas simples también destinados a otras aplicaciones (que utilizan la convención London). [13] [14] Las especificaciones de APL adoptaron posteriormente la convención London. [14] La documentación de Dyalog APL señala que los nombres Unicode para tachuelas compuestas (y, por lo tanto, los nombres de IBM para todas las tachuelas), que siguen la convención "Bosworth" menos utilizada, [13] son ​​contrarios a la convención en la comunidad APL. [7]
  2. ^ Unicode 1.0 tenía el carácter "APL out" en U+2301, pero fue eliminado en Unicode 1.0.1. [15]
  3. ^ Las asignaciones documentadas varían. [4] [6] [26] [16]
  4. ^ abcd Extensión nítida. [6]

Referencias

  1. ^ abc "Escape gráfico APL2/TN - 138". IBM . GCSGID 00963.
  2. ^ abc "Escape gráfico APL2/TN - 138 (gráfico)" (PDF) . IBM . GCSGID 00963.
  3. ^ abcdefgh "Identificadores de caracteres gráficos: símbolos especiales y APL". IBM . Archivado desde el original el 22 de enero de 2016.
  4. ^ abcdefghijklmnopqrstu vwxy Tachyon Software (31 de julio de 2007). Página de códigos 00310: 3270 Escape gráfico APL.
  5. ^ abcdefghijklmnopqrstu vwxy Cowan, John (29 de junio de 2004). "De ISO-IR-68 a Unicode". Unicode.org . Unicode, Inc . Consultado el 19 de junio de 2017 .
  6. ^ abcdefghijklmnopqrstu vwxy "Conjunto de caracteres x3270". Documentación x3270 . Archivado desde el original el 10 de noviembre de 2018.
  7. ^ abcdefghijklmno "Nomenclatura de Dyalog: funciones y operadores" (PDF) . Dyalog - Centro de documentación . Dyalog APL.
  8. ^ ab "Ordenador personal". IBM . CPGID 00437.
  9. ^ abc IBM . Página de códigos 00907 (PDF) . Archivado desde el original (PDF) el 2017-08-03.
  10. ^ abc IBM . Página de códigos 00909 (PDF) . Archivado desde el original (PDF) el 8 de julio de 2015.
  11. ^ abc IBM . Página de códigos 00910 (PDF) . Archivado desde el original (PDF) el 8 de julio de 2015.
  12. ^ abcdefg IBM (1997). unicode.nam: permite especificar los caracteres Unicode utilizando nombres similares a IBM o PostScript .(Incluido con Borgendale, Ken, OS/2 Codepage y herramientas de visualización del teclado)
  13. ^ abc Dickey, Leroy J. "La denominación de los símbolos de tachuelas". Universidad de Waterloo .
  14. ^ ab Freytag, Asmus; McGowan, Rick; Whistler, Ken (14 de junio de 2021). "Anomalías conocidas en los nombres de caracteres Unicode". Consorcio Unicode . UTN #27.
  15. ^ "Anexo Unicode 1.0.1" (PDF) . El estándar Unicode . 1992-11-03 . Consultado el 21 de septiembre de 2024 .
  16. ^ abcdefghijklmno "Tablas EBCDIC y ASCII". Archivado desde el original el 27 de agosto de 2016.
  17. ^ abcde IBM (1996) [1984]. "Página de códigos (CPGID) 00293: APL (EE. UU.)". REGISTRO, Conjuntos de caracteres gráficos y páginas de códigos .
  18. ^ abcd Tachyon Software (31 de julio de 2007). Página de códigos 00293: EBCDIC APL.
  19. ^ "Conjunto de caracteres gráficos chinos simplificados de IBM para código UNIX extendido (EUC)" (PDF) . IBM . 1994. CH 3-3220-132 1994-06.
  20. ^ "Documento informativo del CCSID 293". Archivado desde el original el 27 de marzo de 2016.
  21. ^ Página de códigos CPGID 00293 (pdf) (PDF) , IBM
  22. ^ ab IBM (1987). "Página de códigos (CPGID) 00310: escape gráfico APL/TN". REGISTRY, Conjuntos de caracteres gráficos y páginas de códigos .
  23. ^ xlate - Transliterate Contents of Records, IBM Corporation , 2010 [1986], archivado desde el original el 2019-06-16 , consultado el 2016-10-18
  24. ^ IBM . "Apéndice G-1. Definiciones de caracteres de control EBCDIC". IBM Globalization . Archivado desde el original el 11 de septiembre de 2018.
  25. ^ "Capítulo 5. 3270 Gráficos de páginas de códigos de impresora y estación de visualización (§ Página de códigos de características de texto APL/APL2)" (PDF) . 3174 Referencia del conjunto de caracteres del controlador de establecimiento (3.ª ed.). IBM . 1990 [1988]. pág. 5·6. GA27-3831-02.
  26. ^ ab Página de códigos CPGID 00310 (pdf) (PDF) , IBM
  27. ^ ab Tachyon Software (31 de julio de 2007). Página de códigos 00351: GDDM predeterminado (EE. UU.).
  28. ^ "Página de códigos 00371" (PDF) . IBM . Archivado desde el original (PDF) el 8 de julio de 2015.
  29. ^ ab Consejo Canadiense de Normas (1 de junio de 1983). Conjunto de caracteres APL para intercambio de espacios de trabajo (PDF) . ITSCJ/ IPSJ . ISO-IR -68.
  30. ^ "Tablas de códigos del estándar Unicode 5.1: símbolos técnicos U+2300-U+23FF" (PDF) . Estándar Unicode 5.1 . Consorcio Unicode . Archivado (PDF) desde el original el 2 de octubre de 2008 . Consultado el 12 de octubre de 2008 .
  31. ^ ab "Windows, Latin 1". IBM . CPGID 01252.
  32. ^ "OCR B". IBM . GCSGID 00969.
  33. ^ "Windows, árabe (PDF)" (PDF) . IBM . CPGID 01256.
  34. ^ Un diagrama de teclado más actualizado, aplicable para APL2 y otras implementaciones modernas, está disponible en WikensOnline Disposición de teclado grande de Union APL para Windows Archivado el 10 de marzo de 2012 en Wayback Machine , foto real + diagrama aquí Archivado el 3 de abril de 2015 en Wayback Machine y disposición de teclado NARS2000 APL aquí .

Enlaces externos