APL (A Programming Language)
Iverson's notation was later used to describe the IBM System/360 machine architecture, a description much more concise and exact than the existing documentation and revealing several previously unnoticed problems. Later, a Selectric typeball was specially designed to write a linear representation of this notation. This distinctive aspect of APL, the use of a special character set visually depicting the operations to be performed, remains fundamentally unchanged today.
The APL language features a rich set of operations which work on entire arrays of data, like the vector instruction set of a SIMD architecture. While many computer languages would require iteration to, for example, add two arrays together, functions in APL typically deal with entire arrays at once. In conjunction with a special character set where glyphs represent operations to be performed, this drastically reduces the potential number of loops and allows for smaller, more concise and compact programs.
As with all programming languages that have had several decades of continual use, APL has evolved significantly, generally in an upwards-compatible manner, from its earlier releases. APL is usually interpretive and interactive, and normally features a read-evaluate-print loop (REPL) for command and expression input. Today, nearly all modern implementations support structured programming while several dialects now feature some form of object oriented programming constructs.