APL programming language
APL is an interactive array-oriented language
Array programming
In computer science, array programming languages generalize operations on scalars to apply transparently to vectors, matrices, and higher dimensional arrays....

 and integrated development environment
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

, which is available from a number of commercial and noncommercial vendors and for most computer platforms. It is based on a mathematical notation
Mathematical notation
Mathematical notation is a system of symbolic representations of mathematical objects and ideas. Mathematical notations are used in mathematics, the physical sciences, engineering, and economics...

 developed by Kenneth E. Iverson
Kenneth E. Iverson
Kenneth Eugene Iverson was a Canadian computer scientist noted for the development of the APL programming language in 1962. He was honored with the Turing Award in 1979 for his contributions to mathematical notation and programming language theory...

 and associates that features special attributes for the design and specifications of digital computing systems, both hardware
Hardware is a general term for equipment such as keys, locks, hinges, latches, handles, wire, chains, plumbing supplies, tools, utensils, cutlery and machine parts. Household hardware is typically sold in hardware stores....

 and software.

APL has a combination of unique and relatively uncommon features that appeal to programmers and make it a productive programming language:
  • It is concise, using symbols rather than words and applying functions to entire arrays without using explicit loops.
  • It is solution focused, emphasizing the expression of algorithms independently of machine architecture or operating system.
  • It has just one simple, consistent, and recursive precedence rule: the right argument of a function is the result of the entire expression to its right.
  • It facilitates problem solving at a high level of abstraction
    Abstraction (computer science)
    In computer science, abstraction is the process by which data and programs are defined with a representation similar to its pictorial meaning as rooted in the more complex realm of human life and language with their higher need of summarization and categorization , while hiding away the...


APL is used in scientific, actuarial, statistical, and financial applications where it is used by practitioners for their own work and by programmers to develop commercial applications.