APL (A Programming Language) is a general-purpose, third-generation (3GL) programming language that allows certain data manipulations to be expressed with a special non-ASCII set of symbols, resulting in programs that are shorter than would be possible using most other languages. APL's notation allows matrix manipulation as well as recursion functions to be built into simple expressions rather than requiring multiple language statements. APL is more frequently thought of as a language for scientific computation, but it can be used for other purposes as well. Programs can be developed interactively and are usually interpreted rather than compiled. The special symbols require keyboard support and specific editors so that the symbols can be displayed and printed.