The following are articles and papers I've written over the years,
both for printed publications and for comp.lang.apl. Many of these
articles contain useful programs within them. You can use the
to extract these programs.
APL Compiler
APL is usually
interpreted, meaning that the APL system parses and
translates each statement every time it is executed, resulting in gross
inefficiency for certain types of programs. This article describes a
true APL compiler, which translates APL statements to IBM 370 machine
code for faster execution.
APL Compiler Example
An example of how a compiler can radically alter the range of practical
algorithms in APL. With benchmarks.
APL79 Back Cover
Reverse-engineering a
message in a bottle that was adrift for 16 years.
Ball Clock Problem
The most amazing programming puzzle I've ever seen. Read it and
learn what permutation vectors, cyclic representations of permutations,
least common multiples, permutation powers and logs, and the Chinese
Remainder Theorem have to do with a goofy clock.
Beware Selective Assignment
What APL vendors don't want you to know about selective assignment! This
article explains how to avoid slowdowns and excessive memory usage when
using selective assignment.
Binomial Coefficient Puzzler  
Another fine puzzle that lead into factoring, prime numbers, and the
prime powers representation of numbers. Includes assembler-based
utilities for factoring and finding primes. I'm still looking for Larry
Breed's A!B algorithm...
Blob Finder  
A classic image processing problem: find the connected 1s in a Boolean matrix.
Bridge Crossing Puzzler  
It was a dark and stormy night, and four men had to get across a bridge.
An interesting programming problem, though not as deep as some of the other
puzzles here.
Gaussian Random Numbers
A utility to generate random numbers having a Gaussian normal
distribution, along with some references about APL's random number generator.
Global Variables
On the uses of global variables and precautions for the safe use
thereof.
Hex Dump
A simple demonstration program, one step up from "Hello World".
Locking Native Files
A utility function for applying DOS or Windows locks to
files (something that's needed when sharing files under Windows).
MATIOTA Function
A fundamental and indispensible utility function.
Now with assembler source code!
Non-Exponential Formatting
How to avoid seeing E in your numbers. A useful utility function; a
rather hairy piece of advanced APL programming.
Rubik's Cube
No, I don't solve the rude brick. This article is about efficiency,
optimization, and hybrid (mixed-language) programming. It also has
tutorial information about multidimensional arrays.
Set Game Puzzler
My original solution as posted to comp.lang.apl. Includes a subroutine
for generating combinations, and benchmarks of APL vs. J.
Set Game Tutorial
A good demonstration
of APL's facility at handling multidimensional arrays. Includes an
explanation of the solution for APL novices.
Spelling Numbers
A simple utility that would be a good introductory tutorial if I added a
step-by-step trace. For now, you'll have to practice reading APL code.
StepView Debugger
This is another indispensible utility that my colleagues and I rely on.