Free APL
To get a copy for personal use, just download
PLJsAPL.zip, open the .ZIP file and follow the
instructions in the ReadMe file it contains.
Together, these programs provide all of the functions originally
available in APL, and some of APL2’s capabilities. APL has mostly been available as an
interpreted language. This is a purely compiled version. Even your statements in immediate execution
are compiled before they are evaluated.
ShellAPL
helps you write APL expressions, create and use methods. To see it in action:
Start ShellAPL, then
Click on the icon on the left of
the button bar.
Then click on the script
APL
and its Keyboard
PLJsAPL has the functions which provide APL
functionality to a .Net program.
System Functions
describes several useful system functions and values which ShellAPL provides.
System Commands
begin with right parenthesis, any such statement is a system command. There is a special case of just the right
parenthesis which recalls the last statement you entered.
Key Pages describes
the layout and behavior of the APL keyboard.
What you need
PLJsAPL is written entirely in .Net. Most Windows PCs will run it as is. In order to compile methods, you will also need Visual Studio. If you don’t already have Visual Studio, the express editions are free. This version compiles programs into Visual Basic. I’ve confirmed that the code will work with C# (pronounced C Sharp), but someone else will need to get the source and produce another compiler for that to be of much use to APL programmers.
http://www.microsoft.com/express/downloads/
To see the APL characters in what I’ve written, I have permission
to include a copy of Phil Chastney’s font. His work is also available at:
http://www.chastney.com/~philip/
Limitations
1) Variables are local or global within a workspace. This means that called functions can see only their own locals and the workspace globals which their locals do not hide, but not the locals of their callers.
2) Only one assignment can be
made in a statement.
3) One cannot have an array of labels for GoTo.
Please note; you can however move the next line to execute during
debugging.
Advantages
In addition to the limitations, there are several advantages to this new approach.
1) Each running workspace is an instance of a class. Thus programs can be controlling multiple copies of one workspace, each with their own version of global values.
2) An APL programmer isn’t limited to developing everything themselves. All of the host object model is directly available for sending and receiving data.
3) APL programmers are not second class citizens when it comes to extending APL. I’ve exposed all of the tools I use, to assist others in writing new primitive functions or operators.