Newsgroups: comp.lang.apl Path: utzoo!utgpu!news-server.csri.toronto.edu!torsqnt!tmsoft!itcyyz!yrloc!rbe From: rbe@yrloc.ipsa.reuter.COM (Robert Bernecky) Subject: Re: APL, J syntax descriptions; PD software Message-ID: <1991May17.215146.27807@yrloc.ipsa.reuter.COM> Keywords: APL, J, PD, manual, texts, compilers Reply-To: rbe@yrloc.ipsa.reuter.COM (Robert Bernecky) Organization: Snake Island Research Inc, Toronto References: <129234@unix.cis.pitt.edu> Date: Fri, 17 May 91 21:51:46 GMT In article <129234@unix.cis.pitt.edu> mgkst1@unix.cis.pitt.edu (Michael G Koopman) writes: > >Are there any compilers for APL variants? If not what makes a compiler >for APL so difficult? With the almost advent of Fortran 90 is anyone >considering these compiler designs with respect to APL designs? Tim Budd has a free APL compiler, written as a university project. STSC offered an APL compiler, but I believe they no longer actively (or at all??) market it. Recent rumour suggests that someone has obtained rights to distribute YAT (Yorktown Apl Translator (apl to Fortran)), written at IBM's T.J. Watson Labs. I am working on a J compiler. Stay tuned. Why is an compiler so difficult? Partially because it was common knowledge that it was nearly impossible. Once that belief got walked on, it became less hard. More seriously, the major problems of compiling APL to get more speed (I presume that's the major reason you'd want to compile it) are things like: a. Dynamic scoping rules. You need to examine the entire possible calling ] tree. b. execute, function fix, function expunge, and similar goodies. c. Ability for arrays to change type, rank, and shape underfoot. However, even a naive compiler won't do bad on certain problems in which large arrays are being used. See Bernecky, et al., in APL90 (Acorn: APL to C on Real Numbers). A toy compiler did about half as good as hand-unrolled Fortran on real seismic problems. Robert Bernecky rbe@yrloc.ipsa.reuter.com bernecky@itrchq.itrc.on.ca Snake Island Research Inc (416) 368-6944 FAX: (416) 360-4694 18 Fifth Street, Ward's Island Toronto, Ontario M5J 2B9 Canada