Related articles |
---|
Converting languages to a purely functional form dobes@dobesland.com (Dobes Vandermeer) (2003-07-15) |
Re: Converting languages to a purely functional form joachim.durchholz@web.de (Joachim Durchholz) (2003-07-17) |
Re: Converting languages to a purely functional form derkgwen@HotPOP.com (Derk Gwen) (2003-07-17) |
Re: Converting languages to a purely functional form pat@jantar.org (Patryk Zadarnowski) (2003-07-21) |
Re: Converting languages to a purely functional form vidar@hokstad.name (2003-07-21) |
Re: Converting languages to a purely functional form lars@bearnip.com (2003-07-23) |
Re: Converting languages to a purely functional form rivers@dignus.com (Thomas David Rivers) (2003-07-23) |
Re: Converting languages to a purely functional form joachim.durchholz@web.de (Joachim Durchholz) (2003-07-25) |
From: | Joachim Durchholz <joachim.durchholz@web.de> |
Newsgroups: | comp.compilers |
Date: | 25 Jul 2003 21:14:20 -0400 |
Organization: | Compilers Central |
References: | 03-07-098 03-07-172 |
Keywords: | analysis, functional |
Posted-Date: | 25 Jul 2003 21:14:20 EDT |
Thomas David Rivers wrote:
> I though Appel had shown the equivalence of SSA-form and
> functional languages.
>
> If that's true - then you should be able to apply SSA-form
> algorithms to a function language to arrive at the same
> optimizations available there...
>
> Or - am I missing something?
Hmm... from what you write about Appel's result (I don't know much about
SSA myself), I'd say that the transformation of FPL code in SSA form
should be trivial.
FPL optimization slogans that I have seen are:
- Tail-call elimination (absolutely required for all FPLs)
- Automatic garbage collection (FPLs would be impractical without)
- Closure handling (important)
- Strictness analysis (for lazy FPLs)
- Compile-time evaluation (easier and more effective in an FPL)
- "Just generate good machine code directly if you want performance"
(instead of going through C or interpreted bytecode)
I'm not sure, but I think that SSA form is used for much more
low-level optimizations (which would come in addition to the
above-mentioned ones for an FPL that compiles and optimizes right down
to the bare metal). It may well be that some SSA algorithms are
uninteresting for FPLs, because functional code has different usage
patterns than imperative code. Or vice versa: that there are
algorithms that would be helpful for functional code but haven't been
investigated too much because they aren't interesting for imperative
languages.
Regards,
Jo
Return to the
comp.compilers page.
Search the
comp.compilers archives again.