Readit News logoReadit News
mlochbaum · 3 years ago
For those interested in a modern take on this topic, I have a page on what compiling means for array languages that briefly discusses APL\3000 along with other projects like APEX and Co-dfns. As far as I know nothing like APL\3000 has really been tried again. My guesses as to the main reasons are that beginning in the 80s APLs needed to run on many architectures instead of being designed for just one machine, and that more recently most of the highest-performing primitive implementations need to use SIMD to process multiple elements at once. Compiling code that does this is a lot harder, especially with overflow handling. APL\3000 only had 1-bit, 2-byte, and 8-byte numeric types while Dyalog APL adds 1- and 4-byte integers.

https://mlochbaum.github.io/BQN/implementation/compile/intro...

There's also an extensive wiki page at https://aplwiki.com/wiki/APL%5C3000 .

drallison · 3 years ago
The 1979 HP APL\3000 compiler was pretty cool. As I remember, the project was led by John Walters who led the IBM 360 assembler development and was unique in how it managed data references.

An earlier compiler/interpreter in the same vein was written in 1971 for the Burroughs B6700 by Jim Ryan and described in the 3rd APL Conference.

shrubble · 3 years ago
Pretty impressive! There is an HP3000 series machine emulator: http://simh.trailing-edge.com/hp/ wonder if this APL/3000 is available for it...