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.
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.
IBM assigns the following character IDs (GCGIDs) to APL syntax, which are used in the definitions of its code pages. [1] [2] [3]
GCGID [2] | IBM name [1] [3] | Unicode | Notes and other mappings |
---|---|---|---|
SL010000 | Up Stile (APL) | U+2308⌈LEFT CEILING | |
SL020000 | Down Stile (APL) | U+230A⌊LEFT FLOOR | |
SL030000 | Del (APL) | U+2207∇NABLA | |
SL040000 | Del Tilde (APL) | U+236B⍫APL FUNCTIONAL SYMBOL DEL TILDE | |
SL050000 | Del Stile (APL) | U+2352⍒APL FUNCTIONAL SYMBOL DEL STILE | |
SL060000 | Delta (APL) | U+2206∆INCREMENT | |
SL070000 | Delta Stile (APL) | U+234B⍋APL FUNCTIONAL SYMBOL DELTA STILE | |
SL080000 | Circle (APL) | U+25CB○WHITE CIRCLE [4] [5] [6] [7] | This is SM750000 in a non-APL context, for example, in the C0 replacement graphics from code page 437, [8] which code pages 907, 909 and 910 inherit some or all of, retaining SM750000 in the C0 area and also including SL080000 outside of it. [9] [10] [11] Both map to U+25CB when APL is represented using Unicode characters, although SL080000 can be mapped to U+F890 in IBM's private use area scheme. [12] Compare SL590000 through SL620000 below. |
SL090000 | Circle Stile (APL) | U+233D⌽APL FUNCTIONAL SYMBOL CIRCLE STILE | |
SL100000 | Circle Slope (APL) | U+2349⍉APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH | |
SL110000 | Circle Star (APL) | U+235F⍟APL FUNCTIONAL SYMBOL CIRCLE STAR | |
SL120000 | Circle Bar | U+2296⊖CIRCLED MINUS | |
SL130000 | Quad Quote (APL) | U+235E⍞APL FUNCTIONAL SYMBOL QUOTE QUAD | |
SL140000 | Quad Divide (APL) | U+2339⌹APL FUNCTIONAL SYMBOL QUAD DIVIDE | |
SL150000 | Slash Bar (APL) | U+233F⌿APL FUNCTIONAL SYMBOL SLASH BAR | |
SL160000 | Slope Bar (APL) | U+2340⍀APL FUNCTIONAL SYMBOL BACKSLASH BAR | |
SL170000 | Up Caret Tilde (APL) | U+2372⍲APL FUNCTIONAL SYMBOL UP CARET TILDE | |
SL180000 | Down Caret Tilde (APL) | U+2371⍱APL FUNCTIONAL SYMBOL DOWN CARET TILDE | |
SL190000 | Down Tack Jot (APL) [a] | U+234E⍎APL FUNCTIONAL SYMBOL DOWN TACK JOT [a] | |
SL200000 | Up Tack Jot (APL) [a] | U+2355⍕APL FUNCTIONAL SYMBOL UP TACK JOT [a] | |
SL210000 | Up Shoe Null (APL) | U+235D⍝APL FUNCTIONAL SYMBOL UP SHOE JOT | |
SL220000 | Up Tack (APL) [a] | U+22A4⊤DOWN TACK [a] | |
SL230000 | Down Tack (APL) [a] | U+22A5⊥UP TACK [a] | |
SL240000 | Down Tack Up Tack (APL) | U+2336⌶APL FUNCTIONAL SYMBOL I-BEAM | |
SL250000 | Jot (APL) | U+2218∘RING OPERATOR | |
SL260000 | Left Bracket Right Bracket (APL) | U+2337⌷APL FUNCTIONAL SYMBOL SQUISH QUAD | |
SL270000 | Quad Jot (APL) | U+233B⌻APL FUNCTIONAL SYMBOL QUAD JOT | |
SL280000 | Quad Slope (APL) | U+2342⍂APL FUNCTIONAL SYMBOL QUAD BACKSLASH | |
SL290000 | Ampersand Underbar [3] | Not used in any documented code page. Can be represented in Unicode with the sequence U+0026U+0332 &̲ | |
SL300000 | Equal Underbar (APL) | U+2261≡IDENTICAL TO | |
SL310000 | OUT Symbol (APL) [3] | none [b] | Not used in any IBM-documented code page. IBM's reference glyph resembles oblique underlined forms of the letters O, U and T overstruck in the same character position. |
SL320000 | Diaeresis Dot (APL) | U+2235∵BECAUSE | |
SL330000 | Delta Underbar (APL) | U+2359⍙APL FUNCTIONAL SYMBOL DELTA UNDERBAR | |
SL340000 | Left Tack (APL) [a] | U+22A2⊢RIGHT TACK [a] | |
SL350000 | Right Tack (APL) [a] | U+22A3⊣LEFT TACK [a] | |
SL360000 | Quad (APL) | U+2395⎕APL FUNCTIONAL SYMBOL QUAD [4] [5] | U+25AF▯WHITE VERTICAL RECTANGLE [3] |
SL370000 | Less Greater (APL) | U+22C4⋄DIAMOND OPERATOR [4] [5] | U+25CA◊LOZENGE, [3] U+25C6◆BLACK DIAMOND [6] [16] |
SL380000 | Stile (APL) | U+2223∣DIVIDES [4] [5] | U+2502│BOX DRAWINGS LIGHT VERTICAL, [6] [16] U+007C|VERTICAL LINE [7] |
SL400000 | Up Shoe (APL) | U+2229∩INTERSECTION [4] [5] [7] | U+22C2⋂N-ARY INTERSECTION [16] [6] |
SL410000 | Down Shoe (APL) | U+222A∪UNION [4] [5] [7] | U+22C3⋃N-ARY UNION [16] [6] |
SL420000 | Left Shoe (APL) | U+2282⊂SUBSET OF | |
SL430000 | Right Shoe (APL) | U+2283⊃SUPERSET OF | |
SL440000 | Underbar (APL) | U+005F_LOW LINE | |
SL450000 | Diaeresis (APL) | U+00A8¨DIAERESIS | |
SL460000 | Tilde (APL) | U+223C∼TILDE OPERATOR [4] [5] | U+F88F in IBM's private use area scheme. [12] Also mapped to U+007E~TILDE, [16] [6] [7] although SD190000 (U+007E in a non-APL context) co-occurs at 0xA1 (while SL460000 is at 0x80) in code page 213. [17] |
SL480000 | Circle Plus | U+2295⊕CIRCLED PLUS | |
SL490000 | Circle x | U+2297⊗CIRCLED TIMES | |
SL500000 | Down Caret (APL) | U+2228∨LOGICAL OR [16] [6] [4] [5] [3] [7] | |
SL510000 | Up Caret (APL) | U+2227∧LOGICAL AND [4] [5] [7] | U+22C0⋀N-ARY LOGICAL AND [16] [6] |
SL520000 | Less (APL) | U+003C<LESS-THAN SIGN | |
SL530000 | Greater (APL) | U+003E>GREATER-THAN SIGN | |
SL540000 | Divide (APL) | U+00F7÷DIVISION SIGN | |
SL550000 | Times (APL) | U+00D7×MULTIPLICATION SIGN | |
SL560000 | Not Greater (APL) | U+2264≤LESS-THAN OR EQUAL TO | |
SL570000 | Not Less (APL) | U+2265≥GREATER-THAN OR EQUAL TO | |
SL580000 | Quote Dot (APL) | U+0021!EXCLAMATION MARK [16] [6] [5] [7] | U+F88E in IBM's private use area scheme. [12] SP020000 (U+0021!EXCLAMATION MARK in a non-APL context) co-occurs at 0x5A in code page 293 (SL580000 is at 0xDB in code pages 293 and 310). [17] Tachyonsoft lists U+01C3ǃLATIN LETTER RETROFLEX CLICK for SL580000. [4] |
SL590000 | Left Arrow (APL) | U+2190←LEFTWARDS ARROW [4] [5] [6] | These arrows are SM300000, SM310000, SM320000 and SM330000 respectively in a non-APL context, for example, in the C0 replacement graphics from code page 437, [8] which code pages 907, 909 and 910 inherit some or all of. Their APL GCGIDs can be mapped to U+F88D, U+F88C, U+F88B and U+F88A respectively in IBM's private use area scheme. [12] Code pages 907 and 910 keep the non-APL GCGIDs for the C0 replacements but use the APL GCGIDs where the arrows appear outside of the C0 area, while code page 909 uses the APL GCGIDs multiple times, both for the C0 replacements and for between one and two occurrences of each of these arrows outside of the C0 area. [9] [10] [11] Compare SL080000 above. Duplicating C0 replacement graphics outside of the C0 area is not an uncommon practice in DOS code pages: compare, for example, the pilcrow and section sign in code page 850. |
SL600000 | Right Arrow (APL) | U+2192→RIGHTWARDS ARROW [4] [5] [6] | |
SL610000 | Up Arrow (APL) | U+2191↑UPWARDS ARROW [4] [5] [6] [7] | |
SL620000 | Down Arrow (APL) | U+2193↓DOWNWARDS ARROW [4] [5] [6] [7] | |
SL630000 | Overbar (APL) | U+203E‾OVERLINE | |
SL640000 | Slope (APL) | U+005C\REVERSE SOLIDUS [16] [6] [5] [7] | U+F889 in IBM's private use area scheme. [12] Also mapped to U+2216∖SET MINUS. [4] SM070000 (U+005C\REVERSE SOLIDUS in a non-APL context) co-occurs at 0x5A (while SL640000 is at 0xB7) in code page 293. [17] |
SL650000 | Star (APL) | U+22C6⋆STAR OPERATOR [5] | U+002A*ASTERISK [18] [7] |
SL660000 | Quote (APL) | U+0027'APOSTROPHE | |
SL670000 | Left Parenthesis (APL) | U+0028(LEFT PARENTHESIS | |
SL680000 | Right Parenthesis (APL) | U+0029)RIGHT PARENTHESIS | |
SL690000 | Bar (APL) | U+002D-HYPHEN-MINUS [18] [5] [6] [7] | U+2212−MINUS SIGN |
SL700000 | Query (APL) | U+003F?QUESTION MARK | U+F888 in IBM's private use area scheme. [12] |
SL710000 | Alpha (APL) | U+237A⍺APL FUNCTIONAL SYMBOL ALPHA [4] [5] | U+03B1αGREEK SMALL LETTER ALPHA [16] [6] |
SL720000 | Epsilon (APL) | U+220A∊SMALL ELEMENT OF [5] [3] [7] | U+03B5εGREEK SMALL LETTER EPSILON, [16] [6] U+2208∈ELEMENT OF [4] |
SL730000 | Iota (APL) | U+2373⍳APL FUNCTIONAL SYMBOL IOTA [4] [5] | U+03B9ιGREEK SMALL LETTER IOTA [16] [6] |
SL740000 | Rho (APL) | U+2374⍴APL FUNCTIONAL SYMBOL RHO [4] [5] | U+03C1ρGREEK SMALL LETTER RHO [16] [6] |
SL750000 | Omega (APL) | U+2375⍵APL FUNCTIONAL SYMBOL OMEGA [4] [5] | U+03C9ωGREEK SMALL LETTER OMEGA [16] [6] |
SL760000 | Slash (APL) | U+002F/SOLIDUS | |
SL770000 | Left Bracket (APL) | U+005B[LEFT SQUARE BRACKET | |
SL780000 | Right Bracket (APL) | U+005D]RIGHT SQUARE BRACKET | |
SL790000 | Plus (APL) | U+002B+PLUS SIGN | |
SL800000 | Semicolon (APL) | U+003B;SEMICOLON | |
SL810000 | Equal (APL) | U+003D=EQUALS SIGN | |
SL820000 | Not Equal (APL) | U+2260≠NOT EQUAL TO | |
SL830000 | Colon (APL) | U+003A:COLON [6] [5] | Form with fullwidth attribute set (SL830080) is used for 0xA1C3 (i.e. U+2236∶RATIO) in EUC-CN. [19] |
SL840000 | Dot (APL) | U+002E.FULL STOP | |
SL850000 | Comma (APL) | U+002C,COMMA | |
SL860000 | Iota Underbar (APL) | U+2378⍸APL FUNCTIONAL SYMBOL IOTA UNDERBAR | |
SL870000 | Epsilon Underbar (APL) | U+2377⍷APL FUNCTIONAL SYMBOL EPSILON UNDERBAR |
Code page 293 (CCSID 293), [20] 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. [17] [18]
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0x | NUL | SOH | STX | ETX | SEL | HT | RNL | DEL | GE | SPS | RPT | VT | FF | CR | SO | SI |
1x | DLE | DC1 | DC2 | DC3 | RES/ ENP | NL | BS | POC | CAN | EM | UBS | CU1 | IFS | IGS | IRS | IUS/ ITB |
2x | DS | SOS | FS | WUS | BYP/ INP | LF | ETB | ESC | SA | SFE | SM/ SW | CSP | MFA | ENQ | ACK | BEL |
3x | SYN | IR | PP | TRN | NBS | EOT | SBS | IT | RFF | CU3 | DC4 | NAK | SUB | |||
4x | SP | 𝐴̲ | 𝐵̲ | 𝐶̲ | 𝐷̲ | 𝐸̲ | 𝐹̲ | 𝐺̲ | 𝐻̲ | 𝐼̲ | ¢ | . | < | ( | + | | |
5x | & | 𝐽̲ | 𝐾̲ | 𝐿̲ | 𝑀̲ | 𝑁̲ | 𝑂̲ | 𝑃̲ | 𝑄̲ | 𝑅̲ | ! | $ | ⋆/* | ) | ; | ¬ |
6x | -/− | / | 𝑆̲ | 𝑇̲ | 𝑈̲ | 𝑉̲ | 𝑊̲ | 𝑋̲ | 𝑌̲ | 𝑍̲ | ¦ | , | % | _ | > | ? |
7x | ⋄/◊/◆ | ∧/⋀ | ¨ | ⌻ | ⍸ | ⍷ | ⊢ | ⊣ | ∨ | ` | :/∶ | # | @ | ' | = | " |
8x | ∼/~ | a | b | c | d | e | f | g | h | i | ↑ | ↓ | ≤ | ⌈ | ⌊ | → |
9x | ⎕ | j | k | l | m | n | o | p | q | r | ⊃ | ⊂ | ○ | ← | ||
Ax | ‾ | ~ | s | t | u | v | w | x | y | z | ∩/⋂ | ∪/⋃ | ⊥ | [ | ≥ | ∘ |
Bx | ⍺/α | ∊/ε/∈ | ⍳/ι | ⍴/ρ | ⍵/ω | × | \/∖ | ÷ | ∇ | ∆ | ⊤ | ] | ≠ | ∣/│ | ||
Cx | { | A | B | C | D | E | F | G | H | I | ⍲ | ⍱ | ⌷ | ⌽ | ⍂ | ⍉ |
Dx | } | J | K | L | M | N | O | P | Q | R | ⌶ | !/ǃ | ⍒ | ⍋ | ⍞ | ⍝ |
Ex | \ | ≡ | S | T | U | V | W | X | Y | Z | ⌿ | ⍀ | ∵ | ⊖ | ⌹ | ⍕ |
Fx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ⍫ | ⍙ | ⍟ | ⍎ | EO |
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. [22] [4] It is used alongside Code page 37-2, [23] with the Code page 310 codes being prefixed by the Graphic Escape (EBCDIC 0x08) [24] control character. [6] [25]
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0x | ||||||||||||||||
1x | ||||||||||||||||
2x | ||||||||||||||||
3x | ||||||||||||||||
4x | SP | 𝐴̲ | 𝐵̲ | 𝐶̲ | 𝐷̲ | 𝐸̲ | 𝐹̲ | 𝐺̲ | 𝐻̲ | 𝐼̲ | ||||||
5x | 𝐽̲ | 𝐾̲ | 𝐿̲ | 𝑀̲ | 𝑁̲ | 𝑂̲ | 𝑃̲ | 𝑄̲ | 𝑅̲ | |||||||
6x | 𝑆̲ | 𝑇̲ | 𝑈̲ | 𝑉̲ | 𝑊̲ | 𝑋̲ | 𝑌̲ | 𝑍̲ | ||||||||
7x | ◊/⋄/◆ | ∧/⋀ | ¨ | ⌻ | ⍸ | ⍷ | ⊢ | ⊣ | ∨ | |||||||
8x | ∼/~ | ║ | ═ | ⎸ | ⎹ | │/⎥ | ↑ | ↓ | ≤ | ⌈ | ⌊ | → | ||||
9x | ⎕ | ▌ | ▐ | ▀ | ▄ | █/■ | ⊃ | ⊂ | ⌑/¤ | ○ | ± | ← | ||||
Ax | ¯/‾ | ° | ─ | ∙/• | ₙ | ∩/⋂ | ∪/⋃ | ⊥ | [ | ≥ | ∘ | |||||
Bx | ⍺/α | ∊/∈/ε | ⍳/ι | ⍴/ρ | ⍵/ω | × | ∖/\ | ÷ | ∇ | ∆ | ⊤ | ] | ≠ | ∣/│ | ||
Cx | { | ⁽ | ⁺/+ | ■/∎ | └ | ┌ | ├ | ┴ | § | ⍲ | ⍱ | ⌷ | ⌽ | ⍂ | ⍉ | |
Dx | } | ⁾ | ⁻/- | ┼ | ┘ | ┐ | ┤ | ┬ | ¶ | ⌶ | ǃ/! | ⍒ | ⍋ | ⍞ | ⍝ | |
Ex | ≡ | ₁ | ₂ | ₃ | ⍤ [d] | ⍥ [d] | ⍪ [d] | € [d] | ⌿ | ⍀ | ∵ | ⊖ | ⌹ | ⍕ | ||
Fx | ⁰ | ¹ | ² | ³ | ⁴ | ⁵ | ⁶ | ⁷ | ⁸ | ⁹ | ⍫ | ⍙ | ⍟ | ⍎ |
Code page 351 ("GDDM Default (USA)") [27] 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.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0x | NUL | { | HT | ▀ | ⎹ | FF | CR | |||||||||
1x | NL | BS | ▌ | █ | ▐ | │ | ┐ | ┌ | └ | ┘ | ||||||
2x | ⁽ | ⁾ | ⁺ | ⁻ | } | LF | ⍸ | ║ | ▄ | ═ | ⎸ | § | ┼ | ─ | ⊢ | ⊣ |
3x | ⁰ | ¹ | ² | ³ | ⁴ | ⁵ | ⁶ | ⁷ | ⁸ | ⁹ | ¶ | ┬ | ├ | ┴ | ┤ | |
4x | SP | 𝐴̲ | 𝐵̲ | 𝐶̲ | 𝐷̲ | 𝐸̲ | 𝐹̲ | 𝐺̲ | 𝐻̲ | 𝐼̲ | ¢ | . | < | ( | + | | |
5x | & | 𝐽̲ | 𝐾̲ | 𝐿̲ | 𝑀̲ | 𝑁̲ | 𝑂̲ | 𝑃̲ | 𝑄̲ | 𝑅̲ | ! | $ | * | ) | ; | ¬ |
6x | - | / | 𝑆̲ | 𝑇̲ | 𝑈̲ | 𝑉̲ | 𝑊̲ | 𝑋̲ | 𝑌̲ | 𝑍̲ | ¦ | , | % | _ | > | ? |
7x | ⋄ | ∧ | ¨ | ₁ | ₂ | ₃ | ₙ | ° | ∨ | ` | : | # | @ | ' | = | " |
8x | ∼ | a | b | c | d | e | f | g | h | i | ↑ | ↓ | ≤ | ⌈ | ⌊ | → |
9x | ⎕ | j | k | l | m | n | o | p | q | r | ⊃ | ⊂ | ⌑ | ○ | ± | ← |
Ax | ¯ | ~ | s | t | u | v | w | x | y | z | ∩ | ∪ | ⊥ | [ | ≥ | ∘ |
Bx | ⍺ | ∈/∊ | ⍳ | ⍴ | ⍵ | ■ | × | ∖ / \ | ÷ | ∙ | ∇ | ∆ | ⊤ | ] | ≠ | ∣ |
Cx | { | A | B | C | D | E | F | G | H | I | ⍲ | ⍱ | ⌷ | ⌽ | ⍂ | ⍉ |
Dx | } | J | K | L | M | N | O | P | Q | R | ⌶ | ǃ/! | ⍒ | ⍋ | ⍞ | ⍝ |
Ex | \ | ≡ | S | T | U | V | W | X | Y | Z | ⌿ | ⍀ | ∵ | ⊖ | ⌹ | ⍕ |
Fx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ⌻ | ⍫ | ⍙ | ⍟ | ⍎ |
Code page 371, [28] registered for use with ISO/IEC 2022 as ISO-IR-68, [29] [5] 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 BS (backspace, 0x08) control code. [29] [5]
Code page 907 is used by the IBM 3812, like code page 906.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0x | ☺ | ☻ | ♥ | ♦ | ♣ | ♠ | • | ◘ | ○ | ◙ | ♂ | ♀ | ♪ | ♬ | ☼ | |
1x | ► | ◄ | ↕ | ‼ | ¶ | § | ▬ | ↨ | ↑ | ↓ | → | ← | ∟ | ↔ | ▲ | ▼ |
2x | SP | !/ǃ | " | # | $ | % | & | ' | ( | ) | ⋆/* | + | , | -/− | . | / |
3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | :/∶ | ; | < | = | > | ? |
4x | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
5x | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \/∖ | ] | ∧/⋀ | _ |
6x | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
7x | p | q | r | s | t | u | v | w | x | y | z | { | ∣/│ | } | ∼/~ | ⌂ |
8x | 𝐴̲ | 𝐵̲ | 𝐶̲ | 𝐷̲ | 𝐸̲ | 𝐹̲ | 𝐺̲ | 𝐻̲ | 𝐼̲ | 𝐽̲ | 𝐾̲ | 𝐿̲ | 𝑀̲ | 𝑁̲ | 𝑂̲ | 𝑃̲ |
9x | ⎕ | ⍞ | ⌹ | 𝑄̲ | 𝑅̲ | 𝑆̲ | 𝑇̲ | 𝑈̲ | ⊤ | 𝑉̲ | 𝑊̲ | ¢ | 𝑋̲ | ⊥ | ← | ⌶ |
Ax | 𝑌̲ | 𝑍̲ | ⌈ | ¬ | → | ∪/⋃ | ⍕ | ⍎ | ||||||||
Bx | ░ | ▒ | ▓ | │ | ┤ | ⍷ | ⍸ | ≡ | ∵ | ╣ | ║ | ╗ | ╝ | ⍂ | ⌻ | ┐ |
Cx | └ | ┴ | ┬ | ├ | ─ | ┼ | ⌷ | ╚ | ╔ | ╩ | ╦ | ╠ | ═ | ╬ | ||
Dx | ↑ | ↓ | ⍟ | ∆ | ∇ | ⌊ | ┘ | ┌ | █ | ▄ | ▌ | ▐ | ▀ | |||
Ex | ⍺/α | ß | ⊂ | ⊃ | ⍝ | ⍲ | ⍴/ρ | ⍱ | ⌽ | ⊖ | ○ | ∨ | ⍳/ι | ⍉ | ∊/ε/∈ | ∩/⋂ |
Fx | ⌿ | ⍀ | ≥ | ≤ | ≠ | × | ÷ | ⍙ | ∘ | ⍵/ω | ⍫ | ⍋ | ⍒ | ‾ | ¨ | NBSP |
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.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0x | ⍷ | ⍸ | ♥ | ♦ | ♣ | ♠ | • | ◘ | ○ | ◙ | ≡ | ♀ | ♪ | ♬ | ⍟ | |
1x | ► | ◄ | ∵ | ⌷ | ¶ | § | ⍂ | ⌻ | ↑ | ↓ | → | ← | ⌊ | ↔ | ∆ | ∇ |
2x | SP | !/ǃ | " | # | $ | % | & | ' | ( | ) | ⋆/* | + | , | -/− | . | / |
3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | :/∶ | ; | < | = | > | ? |
4x | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
5x | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \/∖ | ] | ∧/⋀ | _ |
6x | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
7x | p | q | r | s | t | u | v | w | x | y | z | { | ∣/│ | } | ∼/~ | ⌂ |
8x | Ç | ü | é | â | ä | à | å | ç | ê | ë | è | ï | î | ì | Ä | Å |
9x | ⎕ | ⍞ | ⌹ | ô | ö | ò | û | ù | ⊤ | Ö | Ü | £ | ⊥ | ← | ⌶ | |
Ax | á | í | ó | ú | ñ | Ñ | ª | º | ¿ | ⌈ | ¬ | → | ∪/⋃ | ¡ | ⍕ | ⍎ |
Bx | ░ | ▒ | ▓ | │ | ┤ | ⍟ | ∆ | ∇ | → | ╣ | ║ | ╗ | ╝ | ← | ⌊ | ┐ |
Cx | └ | ┴ | ┬ | ├ | ─ | ┼ | ↑ | ↓ | ╚ | ╔ | ╩ | ╦ | ╠ | ═ | ╬ | ≡ |
Dx | ⍸ | ⍷ | ∵ | ⌷ | ⍂ | ⌻ | ⊢ | ⊣ | ⋄/◊/◆ | ┘ | ┌ | █ | ▄ | ▀ | ||
Ex | ⍺/α | ß | ⊂ | ⊃ | ⍝ | ⍲ | ⍴/ρ | ⍱ | ⌽ | ⊖ | ○ | ∨ | ⍳/ι | ⍉ | ∊/ε/∈ | ∩/⋂ |
Fx | ⌿ | ⍀ | ≥ | ≤ | ≠ | × | ÷ | ⍙ | ∘ | ⍵/ω | ⍫ | ⍋ | ⍒ | ‾ | ¨ | NBSP |
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.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
0x | ☺ | ☻ | ♥ | ♦ | ♣ | ♠ | • | ◘ | ○ | ◙ | ♂ | ♀ | ♪ | ♬ | ☼ | |
1x | ► | ◄ | ↕ | ‼ | ¶ | § | ▬ | ↨ | ↑ | ↓ | → | ← | ∟ | ↔ | ▲ | ▼ |
2x | SP | !/ǃ | " | # | $ | % | & | ' | ( | ) | ⋆/* | + | , | -/− | . | / |
3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | :/∶ | ; | < | = | > | ? |
4x | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
5x | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \/∖ | ] | ∧/⋀ | _ |
6x | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
7x | p | q | r | s | t | u | v | w | x | y | z | { | ∣/│ | } | ∼/~ | ⌂ |
8x | Ç | ü | é | â | ä | à | å | ç | ê | ë | è | ï | î | ì | Ä | Å |
9x | ⎕ | ⍞ | ⌹ | ô | ö | ò | û | ù | ⊤ | Ö | Ü | ø | £ | ⊥ | ₧ | ⌶ |
Ax | á | í | ó | ú | ñ | Ñ | ª | º | ¿ | ⌈ | ¬ | ½ | ∪/⋃ | ¡ | ⍕ | ⍎ |
Bx | ░ | ▒ | ▓ | │ | ┤ | ⍟ | ∆ | ∇ | → | ╣ | ║ | ╗ | ╝ | ← | ⌊ | ┐ |
Cx | └ | ┴ | ┬ | ├ | ─ | ┼ | ↑ | ↓ | ╚ | ╔ | ╩ | ╦ | ╠ | ═ | ╬ | ≡ |
Dx | ⍸ | ⍷ | ∵ | ⌷ | ⍂ | ⌻ | ⊢ | ⊣ | ⋄/◊/◆ | ┘ | ┌ | █ | ▄ | ¦ | Ì | ▀ |
Ex | ⍺/α | ß | ⊂ | ⊃ | ⍝ | ⍲ | ⍴/ρ | ⍱ | ⌽ | ⊖ | ○ | ∨ | ⍳/ι | ⍉ | ∊/ε/∈ | ∩/⋂ |
Fx | ⌿ | ⍀ | ≥ | ≤ | ≠ | × | ÷ | ⍙ | ∘ | ⍵/ω | ⍫ | ⍋ | ⍒ | ‾ | ¨ | NBSP |
Most APL symbols are present in Unicode, in the Miscellaneous Technical range, [30] 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 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.
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):
However, this does not cover the entire ISO basic Latin alphabet, and IBM's reference glyphs for the APL characters show them both underlined and oblique, [2] and tables simulating them with markup may follow suit. [4] Unicode's Mathematical Alphanumeric Symbols block includes italic characters for use in notations where they are contrastive with non-italic characters. Unicode also includes combining forms of the macron below and underscore in the Combining Diacritical Marks block; the characters above canonically decompose with the former:
Note the mnemonics associating an APL character with a letter: ? (question mark) on Q, ⋆ (power) on P, ρ (rho) on R, ⊥ (base value) on B, ⊤ (eNcode) on N, ∣ (modulus) on M and so on. This makes it easier for an English-language speaker to type APL on a non-APL keyboard, providing one has visual feedback on one's screen. Also, decals have been produced for attachment to standard keyboards, either on the front of the keys or on the top of them.
Later IBM terminals, notably the IBM 3270 display stations, had an alternate keyboard arrangement which is the basis for some of the modern APL keyboard layouts in use today.
Further APL characters were available by overstriking one character with another. For example, the log symbol (⍟) was formed by overstriking ⇧ Shift+P with ⇧ Shift+O. This extended the graphic abilities of the earlier teleprinters, but made it more complex to correct errors and edit program lines.
New overstrikes were introduced by vendors as they produced versions of APL tailored to specific hardware, system features, file systems, and so on. Further, printing terminals and early APL cathode-ray terminals were able to display arbitrary overstrikes, but as personal computers rapidly replaced terminals as a data-entry device, APL character support became provided as an APL Character Generator ROM or a soft character set rendered by the display device. With the advent of the modern PC, APL characters were defined in specific fonts, eliminating the distinction between overstruck characters and standard characters.
Finally, the symbols were ratified in Unicode and given specific code points, with unambiguous interpretations, independently of the graphic font.
ASCII, an acronym for American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. ASCII has just 128 code points, of which only 95 are printable characters, which severely limit its scope. The set of available punctuation had significant impact on the syntax of computer languages and text markup. ASCII hugely influenced the design of character sets used by modern computers, including Unicode which has over a million code points, but the first 128 of these are the same as ASCII.
Extended Binary Coded Decimal Interchange Code is an eight-bit character encoding used mainly on IBM mainframe and IBM midrange computer operating systems. It descended from the code used with punched cards and the corresponding six-bit binary-coded decimal code used with most of IBM's computer peripherals of the late 1950s and early 1960s. It is supported by various non-IBM platforms, such as Fujitsu-Siemens' BS2000/OSD, OS-IV, MSP, and MSP-EX, the SDS Sigma series, Unisys VS/9, Unisys MCP and ICL VME.
ISO/IEC 8859-1:1998, Information technology—8-bit single-byte coded graphic character sets—Part 1: Latin alphabet No. 1, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1987. ISO/IEC 8859-1 encodes what it refers to as "Latin alphabet no. 1", consisting of 191 characters from the Latin script. This character-encoding scheme is used throughout the Americas, Western Europe, Oceania, and much of Africa. It is the basis for some popular 8-bit character sets and the first two blocks of characters in Unicode.
ISO/IEC 8859-3:1999, Information technology — 8-bit single-byte coded graphic character sets — Part 3: Latin alphabet No. 3, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1988. It is informally referred to as Latin-3 or South European. It was designed to cover Turkish, Maltese and Esperanto, though the introduction of ISO/IEC 8859-9 superseded it for Turkish. The encoding was popular for users of Esperanto, but fell out of use as application support for Unicode became more common.
ISO/IEC 646 is a set of ISO/IEC standards, described as Information technology — ISO 7-bit coded character set for information interchange, and developed in cooperation with ASCII at least since 1964. Since its first edition in 1967 it has specified a 7-bit character code from which several national standards are derived.
In computing, a code page is a character encoding and as such it is a specific association of a set of printable characters and control characters with unique numbers. Typically each number represents the binary value in a single byte.
The yen and yuan sign (¥) is a currency sign used for the Japanese yen and the Chinese yuan currencies when writing in Latin scripts. This character resembles a capital letter Y with a single or double horizontal stroke. The symbol is usually placed before the value it represents, for example: ¥50, or JP¥50 and CN¥50 when disambiguation is needed. When writing in Japanese and Chinese, the Japanese kanji and Chinese character is written following the amount, for example 50円 in Japan, and 50元 or 50圆 in China.
ISO/IEC 8859-11:2001, Information technology — 8-bit single-byte coded graphic character sets — Part 11: Latin/Thai alphabet, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 2001. It is informally referred to as Latin/Thai. It is nearly identical to the national Thai standard TIS-620 (1990). The sole difference is that ISO/IEC 8859-11 allocates non-breaking space to code 0xA0, while TIS-620 leaves it undefined.
ISO/IEC 8859-8, Information technology — 8-bit single-byte coded graphic character sets — Part 8: Latin/Hebrew alphabet, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings. ISO/IEC 8859-8:1999 from 1999 represents its second and current revision, preceded by the first edition ISO/IEC 8859-8:1988 in 1988. It is informally referred to as Latin/Hebrew. ISO/IEC 8859-8 covers all the Hebrew letters, but no Hebrew vowel signs. IBM assigned code page 916 to it. This character set was also adopted by Israeli Standard SI1311:2002, with some extensions.
ISO/IEC 8859-4:1998, Information technology — 8-bit single-byte coded graphic character sets — Part 4: Latin alphabet No. 4, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1988. It is informally referred to as Latin-4 or North European. It was designed to cover Estonian, Latvian, Lithuanian, Greenlandic, and Sámi. It has been largely superseded by ISO/IEC 8859-10 and Unicode. Microsoft has assigned code page 28594 a.k.a. Windows-28594 to ISO-8859-4 in Windows. IBM has assigned code page 914 to ISO 8859-4.
ISO/IEC 8859-7:2003, Information technology — 8-bit single-byte coded graphic character sets — Part 7: Latin/Greek alphabet, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1987. It is informally referred to as Latin/Greek. It was designed to cover the modern Greek language. The original 1987 version of the standard had the same character assignments as the Greek national standard ELOT 928, published in 1986. The table in this article shows the updated 2003 version which adds three characters. Microsoft has assigned code page 28597 a.k.a. Windows-28597 to ISO-8859-7 in Windows. IBM has assigned code page 813 to ISO 8859-7. (IBM CCSID 813 is the original encoding. CCSID 4909 adds the euro sign. CCSID 9005 further adds the drachma sign and ypogegrammeni.)
ISO/IEC 8859-9:1999, Information technology — 8-bit single-byte coded graphic character sets — Part 9: Latin alphabet No. 5, is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1989. It is designated ECMA-128 by Ecma International and TS 5881 as a Turkish standard. It is informally referred to as Latin-5 or Turkish. It was designed to cover the Turkish language, designed as being of more use than the ISO/IEC 8859-3 encoding. It is identical to ISO/IEC 8859-1 except for the replacement of six Icelandic characters with characters unique to the Turkish alphabet. And the uppercase of i is İ; the lowercase of I is ı.
Code page 850 is a code page used under DOS operating systems in Western Europe. Depending on the country setting and system configuration, code page 850 is the primary code page and default OEM code page in many countries, including various English-speaking locales, whilst other English-speaking locales default to the hardware code page 437.
Code page 437 is the character set of the original IBM PC. It is also known as CP437, OEM-US, OEM 437, PC-8, or DOS Latin US. The set includes all printable ASCII characters as well as some accented letters (diacritics), Greek letters, icons, and line-drawing symbols. It is sometimes referred to as the "OEM font" or "high ASCII", or as "extended ASCII".
Several 8-bit character sets (encodings) were designed for binary representation of common Western European languages, which use the Latin alphabet, a few additional letters and ones with precomposed diacritics, some punctuation, and various symbols. These character sets also happen to support many other languages such as Malay, Swahili, and Classical Latin.
In Unicode, a Private Use Area (PUA) is a range of code points that, by definition, will not be assigned characters by the standard. Three private use areas are defined: one in the Basic Multilingual Plane, and one each in, and nearly covering, planes 15 and 16. They are intentionally left undefined so that third parties may assign their own characters without conflicting with Unicode Consortium assignments. Under the Unicode Stability Policy, the Private Use Areas will remain allocated for that purpose in all future Unicode versions.
The programming language APL is distinctive in being symbolic rather than lexical: its primitives are denoted by symbols, not words. These symbols were originally devised as a mathematical notation to describe algorithms. APL programmers often assign informal names when discussing functions and operators but the core functions and operators provided by the language are denoted by non-textual symbols.
EO, or Eight Ones, is an 8-bit EBCDIC character code represented as all ones.
IBM code page 949 (IBM-949) is a character encoding which has been used by IBM to represent Korean language text on computers. It is a variable-width encoding which represents the characters from the Wansung code defined by the South Korean standard KS X 1001 in a format compatible with EUC-KR, but adds IBM extensions for additional hanja, additional precomposed Hangul syllables, and user-defined characters.
Several mutually incompatible versions of the Extended Binary Coded Decimal Interchange Code (EBCDIC) have been used to represent the Japanese language on computers, including variants defined by Hitachi, Fujitsu, IBM and others. Some are variable-width encodings, employing locking shift codes to switch between single-byte and double-byte modes. Unlike other EBCDIC locales, the lowercase basic Latin letters are often not preserved in their usual locations.