Digital encoding of APL symbols
The programming language APL uses a number of symbols, rather than words from natural language, to identify operations, similarly to mathematical symbols. Prior to the wide adoption of Unicode, a number of special-purpose EBCDIC and non-EBCDIC code pages were used to represent the symbols required for writing APL. Character sets Due to its origins on IBM Selectric-based teleprinters, APL symbols have traditionally been represented on the wire using a unique, non-standard character set. In the 1960s and 1970s, few terminal devices existed which could reproduce them, the most popular ones being the IBM 2741 and IBM 1050 fitted with a specific APL print head. Over time, with the universal use of high-quality graphic display, printing devices and Unicode support, the APL character font problem has largely been eliminated. Character repertoire IBM assigns the following character IDs (GCGIDs) to APL syntax, which are used in the definitions of its code pages. EBCDIC code pages Code page 293 Code page 293 (CCSID 293), called "APL (USA)", is an EBCDIC code page which includes APL symbols, in addition to preserving the basic Latin letters and Western Arabic numerals at their usual EBCDIC locations. Code page 310 Code page 310 ("Graphic Escape APL/TN") includes a larger gamut of symbols, but does not itself include the basic Latin letters or the basic digits. It is used alongside Code page 37-2, with the Code page 310 codes being prefixed by the Graphic Escape (EBCDIC 0x08) control character. Code page 351 Code page 351 ("GDDM Default (USA)") contains most of the characters of Code page 293 and Code page 310 (except ⍷, epsilon with underline) in addition to the letters and digits, by replacing several control characters with symbols. 7-bit modified ASCII Code page 371 (IR-68) Code page 371, registered for use with ISO/IEC 2022 as ISO-IR-68, is a 7-bit heavily modified ASCII, designed by the APL Working Group of the Canadian Standards Association, intended for use with APL in an environment allowing overstriking of characters using the (backspace, 0x08) control code. 8-bit modified and/or extended ASCII Code page 907 Code page 907 is used by the IBM 3812, like code page 906. Code page 909 Code page 909 is another encoding for APL, differing from code page 907 in not including the underlined characters, assigning different codes to the APL characters which fall in the 0xB0–DF range, and replacing some of the C0 replacement graphics from code page 437 with alternative encodings for certain APL symbols. Code page 910 Code page 910 is similar to code page 909, but with fewer duplicate horizontal arrows, using the same C0 graphics as code page 437, and including some additional characters. Unicode Most APL symbols are present in Unicode, in the Miscellaneous Technical range, although some APL products may not yet feature Unicode, and some APL symbols may be unused or unavailable in a given vendor's implementation. As of 2010, Unicode allows APL to be stored in text files, published in print and on the web, and shared through