# SIGAPL

SIGAPL, formerly STAPL, is a Special Interest Group on Array Programming Languages which operates as a sub-group of SIGPLAN (Special Interest Group on Programming Languages) of ACM (Association for Computing Machinery).

## History

SIGAPL was formed in 1973 as STAPL, a Technical Committee of SIGPLAN, the ACM Special Interest Group on Programming LANguages. It was later converted to an ACM Special Interest Group independent of SIGPLAN named SIGAPL, and in 2008 was merged back as a chapter of SIGPLAN, retaining the name SIGAPL.

ACM's history with APL began in 1970. Following the second APL conference (organized by an APL committe under SHARE), a group of APLers initiated the ACM's process to create a Special Interest Group by sending the required petition and signatures to form such a group for APL, SIGAPL. This request was denied on the grounds that a Special Interest Group on programming languages in general, SIGPLAN, already existed. Following this rejection, SIGPLAN reprinted issues of the APL Quote-Quad in SIGPLAN Notices for a short period before stopping in 1972. Some APLers suggested that the APL community form its own organization, while Alan Perlis led a group to convince the ACM to reverse their decision.[1]

In 1972, SIGPLAN added provisions for creating Technical Committees (TECS) to its bylaws, and the APL applied to form STAPL. This application was accepted in 1973, and STAPL was formed and organized between 1973 and 1974, taking over administration of the 1974 conference APL 6 and publication of the conference proceedings and APL Quote-Quad.[1]

Profits from the unexpectedly large APL 6 helped establish STAPL initially. Officers were appointed initially, and the first elections held in 1975; Garth Foster retained his position as the first STAPL Chairman. In the next two elections, held in 1977 and 1979, Phil Abrams and then Eugene McDonnell would be elected Chairman. STAPL hosted APL 75 and APL 76 (initiating the scheme of naming conferences after the year) with growing success. However, no 1977 conference was held because STAPL was unable to find a location conforming to the rule that odd-numbered conferences be held in Europe, and the 1978 conference was also skipped because of concerns about quality of and demand for such frequent conferences. Yearly APL conferences resumed when STAPL organized APL 79, attended by nearly a thousand, although APL 80 was hosted by the Dutch Computer Society and the European Cooperation in Informatics, not STAPL.[1] Following APL 80, STAPL and later SIGAPL organized the APL conference every year until 2005.

By 1980, the process of separating STAPL from SIGPLAN had begun, and SIGAPL was eventually made an official special-interest group chartered under the auspices of the ACM (Association for Computing Machinery). In February of 2008 this group was formally de-chartered by the SIG Governing Board.

As part of this change, what was formerly SIGAPL (Special Interest Group on APL) became a chapter within the larger SIGPLAN (Special Interest Group on Programming Languages). One of the goals with this change was to encourage the often quite isolated the APL community to cooperate with with the larger group and thus reach beyond its traditional boundaries. The "APL" part of the acronym was also reinterpreted to cover all array programming languages, not just the original APL language. SIGAPL is now identified as the Special Interest Group on Array Programming Languages.

## HOPL

SIGPLAN arranges the infrequent (but with increasing frequency) HOPL (History of Programming Languages). The first conference, in 1978, featured a presentation by Ken Iverson and Adin Falkoff on APL[2]. The fourth conference, in 2020, features an APL presentation again, this time by Morten Kromberg and Roger Hui[3].

Conference years appear to be given by the expression:

      1962++\⌽⍳16
1978 1993 2007 2020 2032 2043 2053 2062 2070 2077 2083 2088 2092 2095 2097 2098

One of HOPL IV's conference badges

One of the conference badges for HOPL IV features an APL expression ${\displaystyle \div +\!/\div ({\mathcal {E}}\neq 0)/{\mathcal {E}}}$ or ÷+/÷(E≠0)/E which computes multiple aspects of electrical circuits:
 ÷ +/ ÷ (E≠0) / E E is a vector of real numeric values (E≠0) produces a Boolean mask indicating which components have a non-zero value (E≠0) / E uses the mask to filter the components, thus removing the zeros ÷ finds the reciprocal of those +/ sums them up ÷ computes the reciprocal of that
${\displaystyle 1 \over \displaystyle \sum _{i=1}^{n}{\frac {1}{E_{i}}}[E_{i}\neq 0]}$