Backwards compatibility: Difference between revisions

Jump to navigation Jump to search
→‎Dialects: APL2's precedence change is the exception that proves the rule; it's pretty compatible and doesn't belong on the second list
(→‎Dialects: APL2's precedence change is the exception that proves the rule; it's pretty compatible and doesn't belong on the second list)
Line 15: Line 15:
In the 1970s and early 1980s it was common to create new APL implementations to run on new hardware. These implementations almost always shared the primitive set of [[APL.SV]] or another IBM APL, but often developed new [[system function]]s or other peripheral functionality to better match the host system.
In the 1970s and early 1980s it was common to create new APL implementations to run on new hardware. These implementations almost always shared the primitive set of [[APL.SV]] or another IBM APL, but often developed new [[system function]]s or other peripheral functionality to better match the host system.


Even the languages listed above may make changes to existing behavior. [[Dyalog APL 13.0]] broke compatibility for the [[Power]] function while introducing [[complex number]]s, and was controversial decision for that and other reasons.
Even the languages listed above may make changes to existing behavior. [[APL2]] broke from [[APL\360]] by promoting [[bracket indexing]] to higher precedence than [[stranding]], a decision that wasn't taken up by its contemporary [[Dyalog APL]], but was shared by some later dialects including [[APLX]] and [[GNU APL]]. More recently, [[Dyalog APL 13.0]] broke compatibility for the [[Power]] function while introducing [[complex number]]s, which were controversial feature for that and other reasons.


Notable APL dialects or offshoots that discard backwards compatibility with APL in significant ways include:
Notable APL dialects or offshoots that discard backwards compatibility with APL in significant ways include:
* [[Ken Iverson|Iverson]]'s papers [[Rationalized APL]] and [[A Dictionary of APL]]
* [[Ken Iverson|Iverson]]'s papers [[Rationalized APL]] and [[A Dictionary of APL]]
* [[APL2]] (and thus [[APLX]] and [[GNU APL]]) promoted [[bracket indexing]] to higher precedence than [[stranding]] while e.g. [[Dyalog APL]] retained [[APL\360]]'s precendence
* [[A+]], primarily because [[leading axis theory]] allows primitives to be removed or simplified
* [[A+]], primarily because [[leading axis theory]] allows primitives to be removed or simplified
* [[J]] to use only the [[wikipedia:ASCII|ASCII]] character set, [[leading axis theory]], and other primitive changes
* [[J]] to use only the [[wikipedia:ASCII|ASCII]] character set, [[leading axis theory]], and other primitive changes

Navigation menu