Compiling APL Home About us Contact info Vector graphics SVG Fills & Filters Products Price list CSharp translator User review Compiling APL Examples Limitations Seminars Dyalog APL2000 Support CUSP CausewayPro RainPro Newleaf Helpstuf Leafhtm Tutorials Demos Climate Charts VML graphics SVG examples Free Stuff CSS Editor Publications Seminars Articles |
Causeway Graphical Systems Compiling APL - a Short History Compiling APL is not a new idea - all that has changed are the target platforms and the reasons for doing it. In the 1970s, the conference proceedings were well-filled with excellent papers, and several good compilers were written. STSC licensed theirs for a substantial fee, and Timothy Budd gave his away. Then it all went quiet. So why now? MotivationBack then, it was all about speed. CPU time was an expensive (and limited) resource - if you could save $1000 a day on your timesharing bill, then $100,000 was a reasonable annual investment. The downside was largely the training and expertise needed to get your APL code to compile, and (more importantly) to run it easily from the rest of your APL systems. Calling out to machine-code subroutines was never easy in those days! In the 80s, timesharing died, PCs began to take over, and suddenly CPU time was virtually free (use it now or it's gone for ever as Alan Graham said at Manchester in 1986). APL systems that used to be CPU hogs ran in seconds on cheap hardware. Not surprisingly, compilers went out of fashion except for a few diehards like Roy Sykes and his ASMFNS libraries. The .Net AdvantageWhat does .Net change? Firstly it takes away much of the pain. With Dyalog 11 and Santa Fe it is as easy to call a machine-code subroutine as it is to call a function in your workspace. It also offers a target language called C# that knows all about arrays. And an environment called the CLR that does garbage collection. The job of building a code-translator just got massively easier. There may be other reasons why compilation is essential for .Net deployment
There may be other reasons, mostly to do with company politics and product marketing. These were enough to convince us that we had to give it a try. The next page in this set puts a few typical APL fragments through the code-generation process to see what happens. Website maintained by adrian@causeway.co.uk Telephone: +44 (0) 1439 788413 |
|