Differences between revisions 15 and 16
Revision 15 as of 2009-07-26 07:00:19
Size: 5375
Editor: anonymous
Comment:
Revision 16 as of 2009-07-26 07:06:44
Size: 5368
Editor: anonymous
Comment:
Deletions are marked like this. Additions are marked like this.
Line 28: Line 28:
3. It has just a single and 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. 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.

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

  • identify features of the language that might attract new users of it
  • identify aspects of APL development style that might attract sponsors of software projects
  • establish that the language is in active use, with up-to-date interpreters

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:

  • anonymous lambdas

  • support for class/object programming and .Net assemblies
  • a version of APL, Visual APL, that is a native language hosted by Visual Studio 2008.
  • ActiveX or COM Interrop support allowing APL to use, seamlessly, Windows resources, notably the operating system's Shell, Win32 APIs, and WMI (Windows Management Instrumentation),as well as any COM aware applications, including the MS Office suite.
  • XML-array conversion primitives

  • support for Subversion and Unicode text handling

-- 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

WikipediaAplPageRevamp (last edited 2009-07-26 08:04:10 by KaiJaeger)