Newsgroups: comp.lang.apl
Path: watmath!watserv1!utgpu!news-server.csri.toronto.edu!torsqnt!jtsv16!blister!itcyyz!yrloc!rbe
From: rbe@yrloc.ipsa.reuter.COM (Robert Bernecky)
Subject: Re: implementing @:
Message-ID: <1991Apr21.161301.9172@yrloc.ipsa.reuter.COM>
Reply-To: rbe@yrloc.ipsa.reuter.COM (Robert Bernecky)
Organization: Snake Island Research Inc, Toronto
References: <19APR91.00433381@uc780.umd.edu>
Date: Sun, 21 Apr 91 16:13:01 GMT

In article <19APR91.00433381@uc780.umd.edu> cs450a03@uc780.umd.edu writes:
>There are various parts of J which are rather slow.  I've been looking
>
>One way to improve speed would be to selectively substitute faster
>expressions for overly general expressions.  I haven't explored this
>idea much, yet.
>
>Another way to improve speed is to re-do the underlying

Of course, special casing and embedding support for idiomatic expressions
in functional languages is one way to get lots of speed. In SHARP APL,
we obtained factors of 5-500 speedups for primitives such as catenate-with-rank,
base-value-with-rank, and so on. Too bad we never got time to finish that
work...

My J compiler is going to have some capabilities in this area -- it has to do
so, if it's going to be successful (fast, that is).

I think Roger's design as it stands is excellent for a prototyping platform:
Radical design changes can be propagated through the entire interpreter
with minimal effort. Once you start bolting special case code into an 
interpreter, the design tends to become frozen to a large extent.

Also, special cases DO take time, and given the limited budget (temporal
and otherwise) which J is being developed under, it is understandable that
correct operation takes precedence over speed. ( I am told that some
other language designers do not share this view...   8^}
)

Bob



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
