APL (programming language)
APL (named after the book A Programming Language)[3] is a programming language developed in the 1960s by Kenneth E. Iverson. Its central datatype is the multidimensional array. It uses a large range of special graphic symbols[4] to represent most functions and operators, leading to very concise code. It has been an important influence on the development of concept modeling, spreadsheets, functional programming,[5] and computer math packages.[6] It has also inspired several other programming languages.[7][8]
Not to be confused with Address (programming language).Paradigm
Larry Breed, Dick Lathwell, Roger Moore and others
November 27, 1966[1]
History[edit]
Mathematical notation[edit]
A mathematical notation for manipulating arrays was developed by Kenneth E. Iverson, starting in 1957 at Harvard University. In 1960, he began work for IBM where he developed this notation with Adin Falkoff and published it in his book A Programming Language in 1962.[3] The preface states its premise:
Use[edit]
APL is used for many purposes including financial and insurance applications,[82] artificial intelligence,[83][84]
neural networks[85]
and robotics.[86] It has been argued that APL is a calculation tool and not a programming language;[87] its symbolic nature and array capabilities have made it popular with domain experts and data scientists[88] who do not have or require the skills of a computer programmer.
APL is well suited to image manipulation and computer animation, where graphic transformations can be encoded as matrix multiplications. One of the first commercial computer graphics houses, Digital Effects, produced an APL graphics product named Visions, which was used to create television commercials and animation for the 1982 film Tron.[89] Latterly, the Stormwind boating simulator uses APL to implement its core logic, its interfacing to the rendering pipeline middleware and a major part of its physics engine.[90]
Today, APL remains in use in a wide range of commercial and scientific applications, for example
investment management,[82]
asset management,[91]
health care,[92]
and DNA profiling.[93][94]
Notable implementations[edit]
APL\360[edit]
The first implementation of APL using recognizable APL symbols was APL\360 which ran on the IBM System/360, and was completed in November 1966[1] though at that time remained in use only within IBM.[39] In 1973 its implementors, 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."[95][96][97]
In 1975, the IBM 5100 microcomputer offered APL\360[98] 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.[99]
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.[39]
APL\1130[edit]
In 1968, APL\1130 became the first publicly available APL system, created by IBM for the IBM 1130.[100] It became the most popular IBM Type-III Library software that IBM released.[101]
Standards[edit]
APL has been standardized by the American National Standards Institute (ANSI) working group X3J10 and International Organization for Standardization (ISO) and International Electrotechnical Commission (IEC), ISO/IEC Joint Technical Committee 1 Subcommittee 22 Working Group 3. The Core APL language is specified in ISO 8485:1989, and the Extended APL language is specified in ISO/IEC 13751:2001.