On 16/01/2008, <b class="gmail_sendername">Bob Calco</b> <<a href="mailto:bobcalco@tampabay.rr.com">bobcalco@tampabay.rr.com</a>> wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div link="blue" vlink="purple" lang="EN-US">
<div><span style="font-size: 11pt; color: rgb(31, 73, 125);">I have recently decided to experiment writing a Ruby-like front
end to Erlang, code named Emerld, which would generate Erlang code that would
then be compiled (at least until I can learn the BEAM file format well enough
to generate it directly). It could theoretically be retargeted to .NET or Java
when either of the two got their act together for concurrency. That seems to me
more a matter of when than if. Until then though I have committed myself to
mastering Erlang, because I think it will give me a huge competitive edge in
the new multi-core world we live in as a software designer and architect.</span></div></div></blockquote><div><br>If you are going to compile down to something other than straight Erlang then the best target is Core erlang. It a pure relatively simple and standard functional language which is used inside the compiler. The AST is defined by a set of records and there are tools to read/check/print it. As far as I know there is nothing *legal* you can do in the BEAM code which you can't do in Core. Also you have the benefit of not being forced to modify your compiler as the BEAM engine is improved. If I remember correctly HIPA also uses Core for one pass in its compiler. Someone who knows can comment.
<br><br>This is what I am doing for my LISP front-end to Erlang. Soon to be ready.<br><br>Robert<br></div></div>