APL/700: Difference between revisions

Jump to navigation Jump to search
4 bytes added ,  18:40, 6 June 2021
No edit summary
(2 intermediate revisions by the same user not shown)
Line 14: Line 14:
'''APL/700''' was an APL implementation by [[wikipedia:Burroughs Corporation|Burroughs Corporation]] for their [[wikipedia:Burroughs_large_systems|700 series]] of mainframe computers.
'''APL/700''' was an APL implementation by [[wikipedia:Burroughs Corporation|Burroughs Corporation]] for their [[wikipedia:Burroughs_large_systems|700 series]] of mainframe computers.


The system was written in [[wikipedia:Paoli, Pennsylvania|Paoli]], by Jim Ryan, Glenn Seeds, Jim Williams, and Ken Carvin. Ron Murray joined the team in 1974. Due to the physical location, just outside of Philadelphia, the team had close contact with [[Ken Iverson]] and [[Adin Falkoff]], who were at the [[IBM]]'s [[wikipedia:Philadelphia]] office at that time.
The system was written in [[wikipedia:Paoli, Pennsylvania|Paoli]], by Jim Ryan, Glenn Martin, Jim Williams, and Ken Carvin. Ron Murray joined the team in 1974. Due to the physical location, just outside of Philadelphia, the team had close contact with [[Ken Iverson]] and [[Adin Falkoff]], who were at the [[IBM]]'s [[wikipedia:Philadelphia]] office at that time.


Though an an independent [[wikipedia:ALGOL 60|ALGOL 60]] implementation, it was based on the ideas from APL\360, and borrowed some ideas from [[APL.SV]].<ref>Private email from Ron Murray. 25 May  2001.</ref>
Though an an independent [[wikipedia:ALGOL 60|ALGOL 60]] implementation, it was based on the ideas from APL\360, and borrowed some ideas from [[APL.SV]].<ref>Private email from Ron Murray. 25 May  2001.</ref>


== Unique features ==
== Unique features ==
Despite its similarity However, it also differed in quite a few details:<ref>[wikipedia:Burroughs Corporation|Burroughs Corporation]]. [http://www.softwarepreservation.org/projects/apl/Manuals/APL700UserReferenceManual User Reference Manual] (5000813). 1975.</ref>
Despite its similarity However, it also differed in quite a few details:<ref>[[wikipedia:Burroughs Corporation|Burroughs Corporation]]. [http://www.softwarepreservation.org/projects/apl/Manuals/APL700UserReferenceManual User Reference Manual] (5000813). 1975.</ref>
* The statement separator was a semicolon (<source lang=apl inline>;</source>) rather than the conventional diamond <source lang=apl inline>⋄</source> and statements in such a so-called ''list'' were evaluated from right to left, much as if the semicolon was the Left [[identity]] function (<source lang=apl inline>⊣</source>).
* The statement separator was a semicolon (<source lang=apl inline>;</source>) rather than the conventional diamond <source lang=apl inline>⋄</source> and statements in such a so-called ''list'' were evaluated from right to left, much as if the semicolon was the Left [[identity]] function (<source lang=apl inline>⊣</source>).
* In primitive pairs with both a last and first [[axis]] version, for example <source lang=apl inline>/</source> vs <source lang=apl inline>⌿</source> and <source lang=apl inline>⌽</source> vs <source lang=apl inline>⊖</source>, the first axis version would use the [[function axis]] syntax to indicate the applicable axis counted from the ''last'' axis rather than from the first axis. For example <source lang=apl inline>⊖[1]</source> was equivalent to <source lang=apl inline>⌽</source> just like <source lang=apl inline>⌽[1]</source> was equivalent to <source lang=apl inline>⊖</source>.
* In primitive pairs with both a last and first [[axis]] version, for example <source lang=apl inline>/</source> vs <source lang=apl inline>⌿</source> and <source lang=apl inline>⌽</source> vs <source lang=apl inline>⊖</source>, the first axis version would use the [[function axis]] syntax to indicate the applicable axis counted from the ''last'' axis rather than from the first axis. For example <source lang=apl inline>⊖[1]</source> was equivalent to <source lang=apl inline>⌽</source> just like <source lang=apl inline>⌽[1]</source> was equivalent to <source lang=apl inline>⊖</source>.
Line 31: Line 31:
** <source lang=apl inline>⍃</source> and <source lang=apl inline>⍄</source> were used to read+pop and append components to the beginning and end of a file, respectively.
** <source lang=apl inline>⍃</source> and <source lang=apl inline>⍄</source> were used to read+pop and append components to the beginning and end of a file, respectively.
** Equivalents of normal primitive functions for operations on component of files as if they were elements of a vectors: <source lang=apl inline>⍐</source> and <source lang=apl inline>⍗</source> acted like [[Take]] and [[Drop]] (<source lang=apl inline>↑</source> and <source lang=apl inline>↓</source>). <source lang=apl inline>⌼</source> would [[Reverse]] and [[Rotate]] (<source lang=apl inline>⌽</source>). <source lang=apl inline>⍁</source> and <source lang=apl inline>⍂</source> were [[Compress]] and [[Expand]] (<source lang=apl inline>/</source> and <source lang=apl inline>\</source>).
** Equivalents of normal primitive functions for operations on component of files as if they were elements of a vectors: <source lang=apl inline>⍐</source> and <source lang=apl inline>⍗</source> acted like [[Take]] and [[Drop]] (<source lang=apl inline>↑</source> and <source lang=apl inline>↓</source>). <source lang=apl inline>⌼</source> would [[Reverse]] and [[Rotate]] (<source lang=apl inline>⌽</source>). <source lang=apl inline>⍁</source> and <source lang=apl inline>⍂</source> were [[Compress]] and [[Expand]] (<source lang=apl inline>/</source> and <source lang=apl inline>\</source>).
** <source lang=apl inline>⍓</source> and <source lang=apl inline>⍌</source> and <source lang=apl inline>⍗</source> were used to hold, free, and relase a file.
** <source lang=apl inline>⍓</source> and <source lang=apl inline>⍌</source> and <source lang=apl inline>⍗</source> were used to hold, free, and release a file.
** <source lang=apl inline>⌸</source> and <source lang=apl inline>⍯</source> returned maps for non-null and null components, respectively.
** <source lang=apl inline>⌸</source> and <source lang=apl inline>⍯</source> returned maps for non-null and null components, respectively.
** <source lang=apl inline>⌻</source> provided meta information about a file or the file system.
** <source lang=apl inline>⌻</source> provided meta information about a file or the file system.
== References ==
== References ==
<references/>
<references/>
{{APL dialects}}[[Category:APL dialects]][[Category:Flat array languages]]
{{APL dialects}}[[Category:APL dialects]][[Category:Flat array languages]]

Navigation menu