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 específicas para representar los símbolos necesarios para escribir APL.
Conjuntos de caracteres
Debido a su origen en las teleimpresoras IBM Selectric , los símbolos APL se han representado tradicionalmente en la transmisión por cable mediante un conjunto de caracteres único y no estándar. En las décadas de 1960 y 1970, existían pocos dispositivos terminales capaces de reproducirlos; los más populares eran los IBM 2741 e IBM 1050, equipados con un cabezal de impresión APL específico. Con el tiempo, gracias al uso generalizado de pantallas gráficas de alta calidad, dispositivos de impresión y compatibilidad con Unicode , el problema de la fuente de caracteres APL se ha solucionado 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ódigos 293
La página de códigos 293 ( CCSID 293), [ 20 ] llamada "APL (USA)", es una página de códigos EBCDIC que incluye símbolos APL, además de conservar las letras latinas básicas y los números arábigos occidentales en sus ubicaciones EBCDIC habituales. [ 17 ] [ 18 ]
Página de códigos 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 se anteponen al carácter de control Graphic Escape (EBCDIC 0x08) [ 24 ] . [ 6 ] [ 25 ]
Página de códigos 351
La página de código 351 ("GDDM Default (USA)") [ 27 ] contiene la mayoría de los caracteres de las páginas de código 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ódigo 371, [ 28 ] registrada para su uso con ISO/IEC 2022 como ISO-IR-68 , [ 29 ] [ 5 ] es un ASCII de 7 bits fuertemente modificado, diseñado por el Grupo de Trabajo APL de la Asociación Canadiense de Estándares , destinado a su uso con APL en un entorno que permite el tachado de caracteres mediante el código de control BS (retroceso, 0x08). [ 29 ] [ 5 ]
ASCII modificado y/o extendido de 8 bits
Página de códigos 907
La página de códigos 907 es utilizada por el IBM 3812, al igual que la página de códigos 906.
Página de códigos 909
La página de códigos 909 es otra codificación para APL, que difiere de la página de códigos 907 en que no incluye los caracteres subrayados, asigna códigos diferentes a los caracteres APL que se encuentran 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.
Página de códigos 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.
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 incluir aún Unicode, y algunos símbolos APL pueden no usarse o no estar disponibles en la implementación de un proveedor determinado.
As of 2010, Unicode allows APL to be stored in text files, published in print and on the web, and shared through email and instant messaging. Entering APL characters still requires the use of either a specific input method editor or keyboard mapping, or of a specific touch interface. APL keyboard mappings are available for free for the most common operating systems, or can be obtained by adding the Unicode APL symbols to existing keyboard map.
Underscored alphabetic characters
Missing from Unicode are the traditional underscored alphabetic characters included in some of the APL code pages; their usage has been eliminated or deprecated in most APL implementations. These were produced on APL printing terminals by over-striking a straight capital letter with an underscore character. Some tables show them simulated with underlined and italic markup, not listing Unicode mappings.[4]
IBM assigns them GCGIDs as "LA480000" (which they name "A Line Below Capital/A Underscore (APL)"), "LB480000" ("B Line Below Capital/B Underscore (APL)") and so forth, under the "L" series used for Latin letters.[1] The use of an even number (48) rather than an odd number (47) is due to being uppercase: compare the use of SD110000 for a lone acute accent ´, LA110000 for the lowercase á, and LA120000 for the uppercase Á.[31] They are included in IBM's private use area scheme, encoded in reverse‑alphabetical order in the odd-numbered code points from U+F8BF to U+F8F1.[12]
Homologous uses of 47 include the "SD" (diacritic) series GCGID SD470000 for "Line Below/Discontinuous Underscore"[32]—i.e. macron below, distinct from the ASCII underscore which is SP090000 ("Underline/Continuous Underscore")[31]—and the "A" (Arabic letter) series GCGID AD470009 for the ḏāl,[33] for example. Unicode's Latin Extended Additional block includes the following capital "Line Below" characters with the macron below diacritic, for Semitic transcription (it includes a pre-composed ẖ only in lowercase):
- U+1E06ḆLATIN CAPITAL LETTER B WITH LINE BELOW
- U+1E0EḎLATIN CAPITAL LETTER D WITH LINE BELOW
- U+1E34ḴLATIN CAPITAL LETTER K WITH LINE BELOW
- U+1E3AḺLATIN CAPITAL LETTER L WITH LINE BELOW
- U+1E48 Ṉ LETRA MAYÚSCULA LATINA N CON LÍNEA DEBAJO
- U+1E5E Ṟ LETRA MAYÚSCULA LATINA R CON LÍNEA DEBAJO
- U+1E6E Ṯ LETRA MAYÚSCULA LATINA T CON LÍNEA DEBAJO
- U+1E94 Ẕ LETRA MAYÚSCULA LATINA Z CON LÍNEA DEBAJO
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 patrón. [ 4 ] El bloque 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 inferior y el guion bajo en el bloque Marcas diacríticas combinadas ; los caracteres superiores se descomponen canónicamente con el primero:
- U+0331 ◌ ̱ COMBINANDO MACRON A CONTINUACIÓN
- U+0332 ◌ ̲ LÍNEA BAJA DE COMBINACIÓN
Diseño del teclado
Existen reglas mnemotécnicas que asocian un carácter APL con una letra: ?( signo de interrogación ) en , ( potencia ) en , ( rho ) en , ( valor base ) en , ( eNcode ) en , ( módulo ) en , etc. Esto facilita a los hablantes de inglés la escritura de APL en un teclado que no sea APL, siempre que dispongan de información visual en la pantalla. Además, se han creado pegatinas para colocar en teclados estándar, ya sea en la parte frontal o superior de las teclas.Q⋆PρR⊥B⊤N∣M

Los terminales IBM posteriores, en particular las estaciones de visualización IBM 3270 , tenían una disposición de teclado alternativa que constituye la base de algunos de los diseños de teclado APL modernos que se utilizan en la actualidad.
Se podían obtener caracteres APL adicionales superponiendo un carácter sobre otro. Por ejemplo, el símbolo de registro (⍟) se formaba superponiendo + sobre + . Esto ampliaba las capacidades gráficas de los primeros teletipos, pero dificultaba la corrección de errores y la edición de las líneas de programa.⇧ ShiftP⇧ ShiftO
Los proveedores introdujeron nuevos caracteres superpuestos al producir versiones de APL adaptadas a hardware, características del sistema, sistemas de archivos, etc. Además, las impresoras y las primeras terminales de rayos catódicos APL podían mostrar caracteres superpuestos arbitrarios, pero a medida que las computadoras personales reemplazaron rápidamente a las terminales como dispositivos de entrada de datos, la compatibilidad con caracteres APL pasó a proporcionarse mediante una ROM de generador de caracteres APL o un conjunto de caracteres generado 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 superpuestos y caracteres estándar.
Finalmente, los símbolos fueron ratificados en Unicode y se les asignaron puntos de código específicos, con interpretaciones inequívocas, independientemente de la fuente gráfica.
Véase también
Notas a pie de página
- 1 2 3 4 5 6 7 8 9 10 11 12 Hay dos convenciones de nomenclatura (cuál es el orden de "arriba" y "abajo", y cuál es el de "izquierda" y "derecha") para los caracteres de tachuelas, las convenciones "London" y "Bosworth". [ 13 ] La convención utilizada difiere entre IBM y Unicode. La nomenclatura también difiere entre los caracteres Unicode compuestos destinados exclusivamente a APL (que coinciden con la nomenclatura de IBM y utilizan la convención Bosworth) y las tachuelas simples destinadas también a otras aplicaciones (que utilizan la convención London). [ 13 ] [ 14 ] Posteriormente, las especificaciones de APL adoptaron la convención London. [ 14 ] La documentación de Dyalog APL señala que la nomenclatura Unicode para las tachuelas compuestas (y por lo tanto la nomenclatura de IBM para todas las tachuelas), que sigue la convención "Bosworth" menos utilizada, [ 13 ] contradice la convención en la comunidad APL. [ 7 ]
- ↑ Unicode 1.0 tenía el carácter "APL out" en U+2301, pero fue eliminado en Unicode 1.0.1. [ 15 ]
- ↑ Las asignaciones documentadas varían. [ 4 ] [ 6 ] [ 26 ] [ 16 ]
- 1 2 3 4 Extensión aguda. [ 6 ]
Referencias
- 1 2 3 "Graphic Escape APL2/TN - 138" . IBM . GCSGID 00963.
- 1 2 3 "Graphic Escape APL2/TN - 138 (gráfico)" (PDF) . IBM . GCSGID 00963.
- 1 2 3 4 5 6 7 8 "Identificadores de caracteres gráficos: especiales, símbolos APL" . IBM . Archivado del original el 22 de enero de 2016.
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Tachyon Software (2007-07-31). Página de códigos 00310: 3270 APL Graphic Escape .
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Cowan, John (2004-06-29). "ISO-IR-68 a Unicode" . Unicode.org . Unicode , Inc. Recuperado el 19 de junio de 2017 .
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 "Conjunto de caracteres x3270" . Documentación x3270 . Archivado del original el 10/11/2018.
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 "Nomenclatura de Dyalog: funciones y operadores" (PDF) . Dyalog - Centro de documentación . Dyalog APL.
- 1 2 "Ordenador personal" . IBM . CPGID 00437.
- 1 2 3 IBM . Página de códigos 00907 (PDF) . Archivado del original (PDF) el 3 de agosto de 2017.
- 1 2 3 IBM . Página de códigos 00909 (PDF) . Archivado del original (PDF) el 08-07-2015.
- 1 2 3 IBM . Página de códigos 00910 (PDF) . Archivado del original (PDF) el 08-07-2015.
- 1 2 3 4 5 6 7 IBM (1997). unicode.nam: Permite especificar los caracteres Unicode utilizando nombres similares a IBM o PostScript .(Incluido con Borgendale, Ken, Herramientas de visualización de teclado y página de códigos OS/2))
- 1 2 3 Dickey, Leroy J. "La denominación de los símbolos de las tachuelas" . Universidad de Waterloo .
- 1 2 Freytag, Asmus; McGowan, Rick; Whistler, Ken (14 de junio de 2021). "Anomalías conocidas en los nombres de caracteres Unicode" . Consorcio Unicode . UTN n.° 27.
- ↑ "Adenda Unicode 1.0.1" (PDF) . El estándar Unicode . 3 de noviembre de 1992. Consultado el 21 de septiembre de 2024 .
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 "Tablas EBCDIC y ASCII" . Archivado del original el 27 de agosto de 2016.
- 1 2 3 4 5 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 .
- 1 2 3 4 Tachyon Software (31-07-2007). Página de códigos 00293: EBCDIC APL .
- ↑ "Conjunto de caracteres gráficos chinos simplificados de IBM para código UNIX extendido (EUC)" (PDF) . IBM . 1994. CH 3-3220-132 1994-06.
- ↑ "Documento informativo CCSID 293" . Archivado del original el 27 de marzo de 2016.
- ↑ Página de códigos CPGID 00293 (pdf) (PDF) , IBM
- 1 2 IBM (1987). "Página de códigos (CPGID) 00310: Escape gráfico APL/TN" . REGISTRO, Conjuntos de caracteres gráficos y páginas de códigos .
- ↑ xlate - Transliterate Contents of Records , IBM Corporation , 2010 [1986], archivado del original el 16-06-2019 , recuperado el 18-10-2016
- ↑ IBM . "Apéndice G-1. Definiciones de caracteres de control EBCDIC" . Globalización de IBM . Archivado del original el 11 de septiembre de 2018.
- ↑ "Capítulo 5. 3270 Tablas de páginas de códigos de estaciones de visualización e impresoras (§ Página de códigos de funciones 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.
- 1 2 Página de códigos CPGID 00310 (pdf) (PDF) , IBM
- 1 2 Tachyon Software (31-07-2007). Página de códigos 00351: GDDM predeterminado (EE. UU.) .
- ↑ "Página de códigos 00371" (PDF) . IBM . Archivado del original (PDF) el 8 de julio de 2015.
- 1 2 Consejo de Normas de Canadá (1983-06-01). Conjunto de caracteres APL para intercambio de espacios de trabajo (PDF) . ITSCJ/ IPSJ . ISO-IR -68.
- ↑ "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) del original el 2 de octubre de 2008. Consultado el 12 de octubre de 2008 .
- 1 2 "Windows, Latin 1" . IBM . CPGID 01252.
- ↑ "OCR B" . IBM . GCSGID 00969.
- ↑ "Windows, árabe (PDF)" (PDF) . IBM . CPGID 01256.
- ↑ Un diagrama de teclado más actualizado, aplicable para APL2 y otras implementaciones modernas, está disponible en WikensOnline Union Diseño de teclado grande 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 NARS2000 Diseño de teclado APL aquí .
Enlaces externos
- La página de códigos 293 de IBM, también conocida como la página de códigos APL en ordenadores centrales, es la página de códigos APL.
- Página de códigos 907 de IBM, también conocida como página de códigos ASCII de APL.
- Familia de lenguajes de programación APL
- Conjuntos de caracteres