4,494
edits
m (Text replacement - "implementation languages" to "implementation language ") |
No edit summary |
||
(7 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{Infobox array language | {{DISPLAYTITLE:''APL''\360}}{{Infobox array language | ||
| title = ''APL''\360 | |||
| array model = [[flat array model|flat]] without [[box|boxes]] | | array model = [[flat array model|flat]] without [[box|boxes]] | ||
| index origin = < | | index origin = <syntaxhighlight lang=apl inline>)ORIGIN</syntaxhighlight> 0 or 1 (later <syntaxhighlight lang=apl inline>⎕IO</syntaxhighlight>) | ||
| function styles = [[defined function]] | | function styles = [[defined function]] | ||
| numeric types = floats (64-bit [[wikipedia:IBM_hexadecimal_floating_point|HFP]]) | | numeric types = floats (64-bit [[wikipedia:IBM_hexadecimal_floating_point|HFP]]) | ||
Line 13: | Line 14: | ||
| operating systems = DOS/360–z/OS | | operating systems = DOS/360–z/OS | ||
| license = Free for non-commercial use / Open source commercial software | | license = Free for non-commercial use / Open source commercial software | ||
| | | source = [https://computerhistory.org/blog/the-apl-programming-language-source-code/ Computer History Museum] ([https://computerhistory.org/blogs/apl360-software-license-agreement/ license and download]) | ||
| documentation = [https://www.jsoftware.com/papers/APL360TerminalSystem.htm ''The APL\360 Terminal System''] | | documentation = [https://www.jsoftware.com/papers/APL360TerminalSystem.htm ''The APL\360 Terminal System''] | ||
| run online = [ | | run online = [https://norbertkehrer.github.io/ibm_5110/emu5110.html IBM 5110 emulator] | ||
| influenced by = [[Iverson notation]] | | influenced by = [[Iverson notation]] | ||
| influenced = [[ISO 8485:1989]], [[ISO/IEC 13751:2001]], [[APL.SV]], [[APL*PLUS]], [[J]] | | influenced = [[ISO 8485:1989]], [[ISO/IEC 13751:2001]], [[APL.SV]], [[APL*PLUS]], [[J]] | ||
}} | }} | ||
'''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''' (stylised as '''''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." | ||
Beginning in 1975, the IBM 5100 line of microcomputers 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. | Beginning in 1975, the IBM 5100 line of microcomputers 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. | ||
Line 52: | Line 52: | ||
! Glyph !! Monadic !! Dyadic | ! Glyph !! Monadic !! Dyadic | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>+</syntaxhighlight> || [[Conjugate]] || [[Plus]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>-</syntaxhighlight> || [[Negate|Negative]] || [[Subtract|Minus]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>×</syntaxhighlight> || [[Signum]] || [[Times]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>÷</syntaxhighlight> || [[Reciprocal]] || [[Divide]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⌈</syntaxhighlight> || [[Ceiling]] || [[Maximum]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⌊</syntaxhighlight> || [[Floor]] || [[Minimum]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>*</syntaxhighlight> || [[Exponential]] || [[Power]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍟</syntaxhighlight> || [[Natural logarithm]] || [[Logarithm]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>|</syntaxhighlight> || [[Magnitude]] || [[Residue]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>?</syntaxhighlight> || [[Roll]] || [[Deal]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>○</syntaxhighlight> || [[Pi times]] || [[Circle function|Circular]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>!</syntaxhighlight> || [[Factorial]] || [[Binomial coefficient]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>~</syntaxhighlight> || [[Not]] || | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>∧</syntaxhighlight> || || [[And]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>∨</syntaxhighlight> || || [[Or]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍲</syntaxhighlight> || || [[Nand]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍱</syntaxhighlight> || || [[Nor]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline><</syntaxhighlight> || || [[Less]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>≤</syntaxhighlight> || || [[Not greater]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>=</syntaxhighlight> || || [[Equal]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>≥</syntaxhighlight> || || [[Not less]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>></syntaxhighlight> || || [[Greater]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>≠</syntaxhighlight> || || [[Not equal]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍴</syntaxhighlight> || [[Shape|Size]] || [[Reshape]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>,</syntaxhighlight> || [[Ravel]] || [[Catenate]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>[]</syntaxhighlight>|| || [[Bracket indexing|Indexing]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍳</syntaxhighlight> || [[Index generator]] || [[Index of]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>↑</syntaxhighlight> || || [[Take]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>↓</syntaxhighlight> || || [[Drop]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍋</syntaxhighlight> || [[Grade up]] (allows axis) || | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍒</syntaxhighlight> || [[Grade down]] (allows axis) || | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>/</syntaxhighlight> || ||rowspan=2| [[Compress]]<br>(allows axis) | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⌿</syntaxhighlight> || | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>\</syntaxhighlight> || ||rowspan=2| [[Expand]]<br>(allows axis) | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍀</syntaxhighlight> || | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⌽</syntaxhighlight> ||rowspan=2| [[Reverse]]<br>(allows axis) ||rowspan=2| [[Rotate]]<br>(allows axis) | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⊖</syntaxhighlight> | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍉</syntaxhighlight> ||colspan=2| [[Transpose]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>∊</syntaxhighlight> || || [[Membership]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⊥</syntaxhighlight> || || [[Decode]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⊤</syntaxhighlight> || || [[Encode]] | ||
|} | |} | ||
Line 142: | Line 142: | ||
! Glyph !! Valence !! Monadic call !! Dyadic call | ! Glyph !! Valence !! Monadic call !! Dyadic call | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>/</syntaxhighlight> || Monadic ||rowspan=2| [[Reduction]]<br>(allows axis) || | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⌿</syntaxhighlight> || Monadic || | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>.</syntaxhighlight> || Dyadic || || [[Inner product]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>∘.</syntaxhighlight> || Monadic || || [[Outer product]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>[]</syntaxhighlight> || Monadic ||colspan=2| [[Function axis|Axis]] | ||
|} | |} | ||
Line 158: | Line 158: | ||
== External links == | == External links == | ||
* Bitsavers: [http://www.bitsavers.org/pdf/ibm/apl/ APL] | * Bitsavers: [http://www.bitsavers.org/pdf/ibm/apl/ APL] | ||
* Norbert Kehrer: [http://members.aon.at/nkehrer/ibm_5110/emu5110.html IBM 5110 Emulator] | * Norbert Kehrer: [http://web.archive.org/web/20201111235017/http://members.aon.at/nkehrer/ibm_5110/emu5110.html IBM 5110 Emulator] | ||
* Bitsavers: [http://www.bitsavers.org/pdf/ibm/5110/ IBM 5110] | * Bitsavers: [http://www.bitsavers.org/pdf/ibm/5110/ IBM 5110] | ||
* Jamie Raymond: [https://www.youtube.com/playlist?list=PLLonoeGbb9ol-SBD5SosK13k85s3Z8780 APL\360] ― a 2021 7-part video tutorial | |||
{{APL dialects}}[[Category:IBM APL dialects]][[Category:Flat array languages]] | {{APL dialects}}[[Category:IBM APL dialects]][[Category:Flat array languages]] |