HOPL: Difference between revisions

Jump to navigation Jump to search
284 bytes added ,  22:23, 10 September 2022
m
Text replacement - "<source" to "<syntaxhighlight"
m (Categories)
m (Text replacement - "<source" to "<syntaxhighlight")
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The '''History of Programming Languages conference''' is held by [[wikipedia:SIGPLAN|SIGPLAN]] to discuss and record the history of programming language development. It is notable to APL historians because of the very detailed papers presented at the 1978 and 2020 conferences. [[wikipedia:ACM|ACM]] SIGPLAN is the Special Interest Group on Programming Languages; while [[SIGAPL]] is a chapter of SIGPLAN, it is not directly associated with HOPL.
The '''History of Programming Languages conference''' is held by [[wikipedia:SIGPLAN|SIGPLAN]] to discuss and record the history of programming language development. It is notable to APL historians because of the very detailed papers presented at the 1978 and 2020 conferences. [[wikipedia:ACM|ACM]] SIGPLAN is the Special Interest Group on Programming Languages; while [[SIGAPL]] is a chapter of SIGPLAN, it is not directly associated with HOPL.


To date, there have been four HOPL conferences: they are held infrequently, but with increasing frequency. The first, in 1978, featured a presentation by [[Ken Iverson]] and [[Adin Falkoff]] on APL<ref>[[Adin Falkoff|Falkoff, A.D.]], and [[Ken Iverson|K.E. Iverson]], [https://dl.acm.org/doi/abs/10.1145/960118.808372 ''The Evolution of APL''] ([https://www.jsoftware.com/papers/APLEvol.htm web]), ACM SIGPLAN Notices, Volume 13, Number 8, 1978-08.</ref>. The fourth conference, in 2020, features an APL presentation again, this time by [[Morten Kromberg]] and [[Roger Hui]]<ref>[https://www.conference-publishing.com/list.php?Event=HOPL20&Full=abs HOPL 2020 conference abstracts].</ref>.
To date, there have been four HOPL conferences: they are held infrequently, but with increasing frequency. The first, in 1978, featured a presentation by [[Ken Iverson]] and [[Adin Falkoff]] on APL.<ref>[[Adin Falkoff]], and [[Ken Iverson]]. [https://dl.acm.org/doi/abs/10.1145/960118.808372 ''The Evolution of APL''] ([https://www.jsoftware.com/papers/APLEvol.htm web]). ACM SIGPLAN Notices, Volume 13, Number 8. 1978-08.</ref> The fourth conference, in 2020, features an APL presentation again, this time by [[Roger Hui]] and [[Morten Kromberg]].<ref>[[Roger Hui]] and [[Morten Kromberg]]. [https://dl.acm.org/doi/abs/10.1145/3386319 ''APL since 1978'']. ACM HOPL IV. 2020-06.</ref>


Conference years appear to be given by the expression:
Conference years appear to be given by the expression:
<source lang=apl>
<syntaxhighlight lang=apl>
       1962++\⌽⍳16
       1962++\⌽⍳16
1978 1993 2007 2020 2032 2043 2053 2062 2070 2077 2083 2088 2092 2095 2097 2098
1978 1993 2007 2020 2032 2043 2053 2062 2070 2077 2083 2088 2092 2095 2097 2098
</source>
</syntaxhighlight>


[[File:BadgeAPL.png|thumb|right|One of HOPL IV's conference badges]]
[[File:BadgeAPL.png|thumb|right|One of HOPL IV's conference badges]]
=== HOPL IV conference badge ===
=== HOPL IV conference badge ===


One of the conference badges for HOPL IV features an APL expression <math>\div+\!/\div(\mathcal E \ne 0)/\mathcal E</math> or <source lang=apl inline>÷+/÷(E≠0)/E</source> which computes multiple aspects of electrical circuits:
One of the conference badges for HOPL IV features an APL expression <math>\div+\!/\div(\mathcal E \ne 0)/\mathcal E</math> or <syntaxhighlight lang=apl inline>÷+/÷(E≠0)/E</syntaxhighlight> which computes multiple aspects of electrical circuits:


{|
{|
|<source lang=apl inline>÷</source>||<source lang=apl inline>+/</source>||<source lang=apl inline>÷</source>||<source lang=apl inline>(E≠0)</source>||<source lang=apl inline>/</source>||<source lang=apl inline>E</source>
|<syntaxhighlight lang=apl inline>÷</syntaxhighlight>||<syntaxhighlight lang=apl inline>+/</syntaxhighlight>||<syntaxhighlight lang=apl inline>÷</syntaxhighlight>||<syntaxhighlight lang=apl inline>(E≠0)</syntaxhighlight>||<syntaxhighlight lang=apl inline>/</syntaxhighlight>||<syntaxhighlight lang=apl inline>E</syntaxhighlight>
|-
|-
| colspan=6|<hr/>
| colspan=6|<hr/>
|-
|-
|||||||||||<source lang=apl inline>E</source>||is a vector of real numeric values
|||||||||||<syntaxhighlight lang=apl inline>E</syntaxhighlight>||is a vector of real numeric values
|-
|-
|||||||<source lang=apl inline>(E≠0)</source>||||||produces a Boolean mask indicating which components have a non-zero value
|||||||<syntaxhighlight lang=apl inline>(E≠0)</syntaxhighlight>||||||produces a Boolean mask indicating which components have a non-zero value
|-
|-
|||||||<source lang=apl inline>(E≠0)</source>||<source lang=apl inline>/</source>||<source lang=apl inline>E</source>||uses the mask to filter the components, thus removing the zeros
|||||||<syntaxhighlight lang=apl inline>(E≠0)</syntaxhighlight>||<syntaxhighlight lang=apl inline>/</syntaxhighlight>||<syntaxhighlight lang=apl inline>E</syntaxhighlight>||uses the mask to filter the components, thus removing the zeros
|-
|-
|||||<source lang=apl inline>÷</source>||||||||finds the reciprocal of those
|||||<syntaxhighlight lang=apl inline>÷</syntaxhighlight>||||||||finds the reciprocal of those
|-
|-
|||<source lang=apl inline>+/</source>|||||||||||sums them up
|||<syntaxhighlight lang=apl inline>+/</syntaxhighlight>|||||||||||sums them up
|-
|-
|<source lang=apl inline>÷</source>||||||||||||computes the reciprocal of that
|<syntaxhighlight lang=apl inline>÷</syntaxhighlight>||||||||||||computes the reciprocal of that
|}
|}


Navigation menu