APL\360: Difference between revisions

Jump to navigation Jump to search
4,568 bytes added ,  16:41, 5 November 2019
no edit summary
Miraheze>Adám Brudzewsky
No edit summary
Miraheze>Marshall
No edit summary
Line 22: Line 22:
'''APL\360''' was the first implementation of APL using recognizable APL symbols. It ran on the [[IBM]] System/360, and was completed in November 1966 though at that time remained in use only within IBM. In 1973 its implementers, [[Larry Breed]], Dick Lathwell and [[Roger Moore]], were awarded the Grace Murray Hopper Award from the Association for Computing Machinery (ACM). It was given "for their work in the design and implementation of APL\360, setting new standards in simplicity, efficiency, reliability and response time for interactive systems."
'''APL\360''' was the first implementation of APL using recognizable APL symbols. It ran on the [[IBM]] System/360, and was completed in November 1966 though at that time remained in use only within IBM. In 1973 its implementers, [[Larry Breed]], Dick Lathwell and [[Roger Moore]], were awarded the Grace Murray Hopper Award from the Association for Computing Machinery (ACM). It was given "for their work in the design and implementation of APL\360, setting new standards in simplicity, efficiency, reliability and response time for interactive systems."


In 1975, the IBM 5100 microcomputer offered APL\360] as one of two built-in ROM-based interpreted languages for the computer, complete with a keyboard and display that supported all the special symbols used in the language.
In 1975, the IBM 5100 microcomputer offered APL\360 as one of two built-in ROM-based interpreted languages for the computer, complete with a keyboard and display that supported all the special symbols used in the language.


Significant developments to APL\360 included CMS/APL, which made use of the virtual storage capabilities of CMS and [[APLSV]], which introduced shared variables, system variables and system functions. It was subsequently ported to the IBM System/370 and VSPC platforms until its final release in 1983, after which it was replaced by [[APL2]].  
Significant developments to APL\360 included CMS/APL, which made use of the virtual storage capabilities of CMS and [[APLSV]], which introduced shared variables, system variables and system functions. It was subsequently ported to the IBM System/370 and VSPC platforms until its final release in 1983, after which it was replaced by [[APL2]].  
== Primitives ==
=== Functions ===
{| class=wikitable
! Glyph                              !! Monadic              !! Dyadic
|-
| <source lang=apl inline>+</source> || [[Conjugate]]        || [[Plus]]
|-
| <source lang=apl inline>-</source> || [[Negative]]          || [[Minus]]
|-
| <source lang=apl inline>×</source> || [[Signum]]            || [[Times]]
|-
| <source lang=apl inline>÷</source> || [[Reciprocal]]        || [[Divide]]
|-
| <source lang=apl inline>|</source> || [[Magnitude]]        || [[Residue]]
|-
| <source lang=apl inline>⌊</source> || [[Floor]]            || [[Minimum]]
|-
| <source lang=apl inline>⌈</source> || [[Ceiling]]          || [[Maximum]]
|-
| <source lang=apl inline>?</source> || [[Roll]]              || [[Deal]]
|-
| <source lang=apl inline>*</source> || [[Exponential]]      || [[Power]]
|-
| <source lang=apl inline>⍟</source> || [[Natural logarithm]] || [[General logarithm]]
|-
| <source lang=apl inline>○</source> || [[Pi times]]          || [[Circle function|Circular, hyperbolic, and pythagorean functions]]
|-
| <source lang=apl inline>!</source> || [[Factorial]]        || [[Binomial]]
|-
| <source lang=apl inline>~</source> || [[Not]]              || [[Without]]
|-
| <source lang=apl inline>∧</source> ||                      || [[And]]
|-
| <source lang=apl inline>∨</source> ||                      || [[Or]]
|-
| <source lang=apl inline>⍲</source> ||                      || [[Nand]]
|-
| <source lang=apl inline>⍱</source> ||                      || [[Nor]]
|-
| <source lang=apl inline><</source> ||                      || [[Less]]
|-
| <source lang=apl inline>≤</source> ||                      || [[Not greater]]
|-
| <source lang=apl inline>=</source> ||                      || [[Equal]]
|-
| <source lang=apl inline>≥</source> ||                      || [[Not less]]
|-
| <source lang=apl inline>></source> ||                      || [[Greater]]
|-
| <source lang=apl inline>≠</source> ||                      || [[Not equal]]
|-
| <source lang=apl inline>⍴</source> || [[Shape|Shape of]]    || [[Reshape]]
|-
| <source lang=apl inline>,</source> || [[Ravel]]            || [[Catenate|Catenate, Laminate]]
|-
| <source lang=apl inline>⍪</source> ||                      || [[Catenate First|1st axis catenate]]
|-
| <source lang=apl inline>⌽</source> ||rowspan=2| [[Reverse]]<br>(allows axis) ||rowspan=2| [[Rotate]]<br>(allows axis)
|-
| <source lang=apl inline>⊖</source>
|-
| <source lang=apl inline>⍉</source> ||colspan=2| [[Transpose]]
|-
| <source lang=apl inline>↑</source> ||                      || [[Take]]
|-
| <source lang=apl inline>↓</source> ||                      || [[Drop]]
|-
| <source lang=apl inline>/</source> ||                      ||rowspan=2| [[Compress]]<br>(allows axis)
|-
| <source lang=apl inline>⌿</source> ||
|-
| <source lang=apl inline>\</source> ||                      ||rowspan=2| [[Expand]]<br>(allows axis)
|-
| <source lang=apl inline>⍀</source> ||
|-
| <source lang=apl inline>[]</source>||                      || [[Indexing]]
|-
| <source lang=apl inline>⍳</source> || [[Index generator]]  || [[Index of]]
|-
| <source lang=apl inline>∊</source> ||                      || [[Membership]]
|-
| <source lang=apl inline>⍋</source> || [[Grade up]]          ||
|-
| <source lang=apl inline>⍒</source> || [[Grade down]]        ||
|-
| <source lang=apl inline>⌹</source> || [[Matrix inverse]]    || [[Matrix division]]
|-
| <source lang=apl inline>⊥</source> ||                      || [[Decode]]
|-
| <source lang=apl inline>⊤</source> ||                      || [[Encode]]
|-
| <source lang=apl inline>⍎</source> ||                      || [[Execute]]
|-
| <source lang=apl inline>⍕</source> || [[Monadic format]]    || [[Dyadic format]]
|}
=== Operators ===
{| class=wikitable
! Glyph                              !! Valence !! Monadic call            !! Dyadic call
|-
| <source lang=apl inline>/</source>  || Monadic ||rowspan=2| [[Reduction]]<br>(allows axis) ||
|-
| <source lang=apl inline>⌿</source>  || Monadic ||
|-
| <source lang=apl inline>\</source>  || Monadic ||rowspan=2| [[Scan]]<br>(allows axis)      ||
|-
| <source lang=apl inline>⍀</source>  || Monadic ||
|-
| <source lang=apl inline>.</source>  || Dyadic  ||                        || [[Inner product]]
|-
| <source lang=apl inline>∘.</source> || Monadic ||                        || [[Outer product]]
|-
| <source lang=apl inline>[]</source> || Monadic ||colspan=2| [[Function axis|Axis]]
|}


{{APL programming language}}
{{APL programming language}}
Anonymous user

Navigation menu