Glyph: Difference between revisions

Jump to navigation Jump to search
264 bytes added ,  07:43, 30 June 2021
no edit summary
No edit summary
Line 3: Line 3:
Most of APL's glyphs cannot be represented in [[wikipedia:ASCII|ASCII]], now considered a "standard" or "basic" character set, but all of them are included in [[Unicode]], as one goal of Unicode was to unify existing character sets. In fact, [[Ken Iverson]] first began using [[Iverson notation|his notation]] before work on ASCII began, and [[APL\360]] was implemented before the modern ASCII standard was published in 1967. Prior to the widespread adoption of Unicode, many [[wikipedia:Digital encoding of APL symbols|special purpose code pages]] were used to represent APL symbols. APLs developed more recently, such as [[NARS2000]] and [[GNU APL]], use Unicode characters to represent glyphs, sometimes supporting several different options for a given glyph. Unicode also offers the possibility of introducing glyphs that could not have been produced on older APL systems: for example, both [[NARS2000]] and [[dzaima/APL]] use <source lang=apl inline>√</source> for the [[Square Root]] and [[Root]] functions.
Most of APL's glyphs cannot be represented in [[wikipedia:ASCII|ASCII]], now considered a "standard" or "basic" character set, but all of them are included in [[Unicode]], as one goal of Unicode was to unify existing character sets. In fact, [[Ken Iverson]] first began using [[Iverson notation|his notation]] before work on ASCII began, and [[APL\360]] was implemented before the modern ASCII standard was published in 1967. Prior to the widespread adoption of Unicode, many [[wikipedia:Digital encoding of APL symbols|special purpose code pages]] were used to represent APL symbols. APLs developed more recently, such as [[NARS2000]] and [[GNU APL]], use Unicode characters to represent glyphs, sometimes supporting several different options for a given glyph. Unicode also offers the possibility of introducing glyphs that could not have been produced on older APL systems: for example, both [[NARS2000]] and [[dzaima/APL]] use <source lang=apl inline>√</source> for the [[Square Root]] and [[Root]] functions.


While [[Iverson notation]] was originally handwritten, the choice of glyphs to include in the first APL implementations was influenced by technical constraints of the typewriters used at the time. Notably, many glyphs were produced by overlaying two simpler glyphs, a technique known as [[overstrike|overstriking]].
While [[Iverson notation]] was originally handwritten, the choice of glyphs to include in the first APL implementations was influenced by technical constraints of the typewriters used at the time. Notably, many glyphs were produced by overlaying two simpler glyphs, a technique known as [[overstrike|overstriking]]. The original glyph shapes in [[A Programming Language]] were drawn by [[Ken Iverson]]'s wife, Jean Iverson.<ref>Eric Iverson. [http://jsoftware.com/pipermail/programming/2021-June/058312.html Jean Iverson - 1925 - 2021]. [[J]] Programming mailing list. 27 Jun 2021.</ref>


== Alternatives ==
== Alternatives ==
Line 10: Line 10:


=== Bi-glyphs ===
=== Bi-glyphs ===
J and K use both ASCII symbols on their own, and followed by one or more periods and/or colons. J terminology calls these ''bigraphs'' and ''trigraphs''. For example, J uses <source lang=j inline>^</source> for [[Power]], <source lang=j inline>^.</source> for [[Logarithm]], and <source lang=j inline>^:</source> for the [[Power operator]], while K uses <source lang=k inline>':</source> for the equivalent of [[Windowed_Reduce#Notable_uses|pair-wise reduction]] (<source lang=apl inline>¯2f/</source>) and <source lang=k inline>0:</source> for line-by-line file read/write. Lately, J has gone beyond this and added <source lang=j inline>{{</source>…<source lang=j inline>}}</source> for explicit functions, similar to the syntax of [[dfns]].
J and K use both ASCII symbols on their own, and followed by one or more periods and/or colons. J terminology calls these ''bigraphs'' and ''trigraphs''. For example, J uses <source lang=j inline>^</source> for [[Power]], <source lang=j inline>^.</source> for [[Logarithm]], and <source lang=j inline>^:</source> for the [[Power operator]], while K uses <code>':</code> for the equivalent of [[Windowed_Reduce#Notable_uses|pair-wise reduction]] (<source lang=apl inline>¯2f/</source>) and <code>0:</code> for line-by-line file read/write. Lately, J has gone beyond this and added <source lang=j inline>{{</source>…<source lang=j inline>}}</source> for explicit functions, similar to the syntax of [[dfns]].


[[Dyalog APL]] uses a few bi-glyphs, especially in dops (the operand equivalent of a dfn) where for example <source lang=apl inline>⍺⍺</source> and <source lang=apl inline>⍵⍵</source> denote the left and right [[operand]]s. [[GNU APL]] and [[dzaima/APL]] use <source lang=apl inline>⍶</source> and <source lang=apl inline>⍹</source> instead.
[[Dyalog APL]] uses a few bi-glyphs, especially in dops (the operand equivalent of a dfn) where for example <source lang=apl inline>⍺⍺</source> and <source lang=apl inline>⍵⍵</source> denote the left and right [[operand]]s. [[GNU APL]] and [[dzaima/APL]] use <source lang=apl inline>⍶</source> and <source lang=apl inline>⍹</source> instead.
Line 17: Line 17:


[[NARS2000]] uses <source lang=apl inline>..</source> for its [[Range]] function.
[[NARS2000]] uses <source lang=apl inline>..</source> for its [[Range]] function.
 
== References ==
<references/>
{{APL features}}
{{APL features}}
{{APL glyphs}}
{{APL glyphs}}
[[Category:Glyphs| ]]
[[Category:Glyphs]]

Navigation menu