Current issue

Vol.26 No.4

Vol.26 No.4


© 1984-2024
British APL Association
All rights reserved.

Archive articles posted online on request: ask the archivist.


Volume 17, No.1

Report of the AGM and Vendor Forum of the British APL Association 2000

Approximately 40 members were present for the AGM and Vendor Forum, held at the Royal Statistical Society in London on Friday May 19, 2000.

The first part of the meeting, from 2:00 – 2:15pm was the Annual General Meeting, recorded in the Minutes, including reports from the Chairman and Treasurer/Administration.

British APL Association: Vendor Forum

reported by Jonathan Manktelow (

There were three presentations:


John Scholes John Scholes took this opportunity to promote one of his favourite, and possibly one of the most under utilised features of Dyalog – dynamic functions.

His session was a whirlwind tour of the various techniques he uses to build powerful utilities built purely in dynamic functions. From the most simple – sink (a function that simply takes an argument and does nothing) all the way through to a powerful workspace difference tool, which produced a clear and comprehensive report of the differences between two workspaces.

The most striking thing about this presentation was that dynamic functions enable us to write procedural code in APL. Efficiently! Many classes of problem are much easier to solve using procedural and recursive code, than array manipulation. However using a lot of procedural looping code in APL can be quite slow when compared to the equivalent array based code. But because dynamic functions have a very simple syntax, the interpreter can execute them far quicker than the equivalent traditional APL.

The session clearly showed not only the power of dynamic functions, but also the fact that we do not have to throw away the procedural paradigm to enjoy the manipulation of matrices!


Benoit Paquin Benoit Paquin, from Soliton, came to the conference to give most of us our first glimpse of the new SAX for Linux. This is the new Linux port of the Soliton APL interpreter. He quickly explained the pricing structure (the cheapest option being free for non-commercial use) and moved on to give us an overview of the structure of the system. The SAX development environment consists of a number of modules, with an APL interpreter running on a Linux machine at the core.

For most of his session Benoit concentrated on showing us how to build an APL powered calculator. With a Java user interface! This allows the front end of the calculator to be run on any Java enabled system that is connected to the Linux server.

After being shown how easy it was to move the simple user interface handling out to a Java GUI, but keep the power of a mainframe APL interpreter to process the data, it was not difficult to see how this technology could be used to produce very powerful multi-user APL systems, with good looking front ends, that will run on any machine attached to the network.


The Causeway session started by showing some of the new features that have recently been added to CPro, Rain and NewLeaf, including drag and drop technology in CPro. Many of these new features will be explored in more detail at the Berlin conference at the end of July.

We then moved on to show a preview of GraPL, server edition (Graphing Power unleashed). This technology wraps the Rain graphics engine in an OCX, which allows users to embed quality publication graphics into systems developed in almost any programming tool under Windows.

To illustrate the power of this technology we showed a couple of web pages containing graphs generated on the fly by the web server. The server side code consisted of a few lines of VBScript, which could easily be extended to read data values from a database on the server before plotting the latest information.

script began 5:33:17
caching off
debug mode off
cache time 3600 sec
indmtime not found in cache
cached index is fresh
recompiling index.xml
index compiled in 0.1873 secs
read index
read issues/index.xml
identified 26 volumes, 101 issues
array (
  'id' => '10005200',
regenerated static HTML
article source is 'HTML'
source file encoding is ''
read as 'Windows-1252'
URL: agm2000.htm => trad/v171/agm2000.htm
URL: agm2000.htm#chair => trad/v171/agm2000.htm#chair
URL: agm2000.htm#treas => trad/v171/agm2000.htm#treas
URL: =>
URL: #scholes => art10005200#scholes
URL: #benoit => art10005200#benoit
URL: #acds => art10005200#acds
URL: scholes2.jpg => trad/v171/scholes2.jpg
URL: benoit2.jpg => trad/v171/benoit2.jpg
completed in 0.2137 secs