Wikipedia APL page revamp

At the latest BAA London meeting we discussed improving the Wikipedia article on APL. We believe the present opening implies an article of primarily historical interest. After reviewing articles on Ruby, COBOL and PHP, we drafted a new one. We propose to move the present two opening paragraphs to the beginning of the History of APL section. Here they are.

Present introduction

APL (A Programming Language) is an array programming language based on a notation invented in 1957 by Kenneth E. Iverson while at Harvard University. It originated as an attempt to provide consistent notation for the teaching and analysis of topics related to the application of computers. Iverson published his notation in 1962 in a book titled A Programming Language. By 1965, a subset of the notation was implemented as a programming language, then known as IVSYS. Later, prior to its commercial release, APL got its name from the title of the book. Iverson received the Turing Award in 1979 for his work.

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.

Goals for a new introduction

Before editing the Wikipedia page, we will refine our draft here, and collect citations for the facts presented.

Our goals in the opening are to

We must also meet two constraints: avoid contentious claims, and ensure what we say is verifiable. This means adding citations wherever we make a claim that can be challenged. Here is our first draft.

New draft

APL is an acronym for A Programming Language - it is based on a strict (unambiguous) mathematical notation invented by the late Kenneth E Iverson; it is an interpreted, interactive, and array oriented commercial language available for all contemporary platforms. Amongst programming languages, APL has at least three unique/exclusive hallmarks:

1. It is culture 'neutral'; it uses symbols rather than 'reserved' keywords.

2. It is solution 'focussed'; it promotes the expression of algorithms without any consideration of machine architecture or operating system - APL is a type 'inferred' language that rarely necessitates coding structures for loops.

3. It has just one 'simple' operator precedence rule: all expressions evaluate from right to left; if necessary, this default can be overrridden by enclosing parts of the expression in round brackets, with innermost sets of brackets imposing the highest level of precedence.

APL is one of the oldest programming languages, and an important influence on the development of spreadsheets, functional programming[1], Mathematica and MatLab[2]. It is a dynamic, interpreted language based on Iverson's mathematical notation. All data are arrays. Primitive operations all extend to arrays, and are denoted by distinctive graphic symbols rather than words, making APL programs compact and visually striking, with few or no loops.

The language flourishes in scientific, actuarial, statistical and financial applications, and is favored by domain experts writing software for their own purposes. APL is also associated with rapid and lightweight development projects in volatile business environments.

Interpreters are available for a wide range of platforms including PCs, Macs, Linux, mainframes and hand-held computers. Recent Notable extensions to APL interpreters and IDEs include:

-- StephenTaylor 2009-07-25 05:36:32

[1] http://awards.acm.org/citation.cfm?id=0703524&srt=all&aw=140&ao=AMTURING
[2] http://www.mathworks.com/company/newsletters/news_notes/clevescorner/jan06.pdf


That's it.

Please comment on it, add suggestions, criticise, but most importantly give us your knowledge. Where is there, for example, a published account that APL influenced the development of MatLab? Perhaps it didn't. Knowing it did isn't enough. Over to you. -- PhilLast 2009-07-24 21:18:17

Thanks to Melvin Cowznofski & John Scholes for citations so far.


CategoryBaaLondon