<html>

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:Arial;}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:blue;
        text-decoration:underline;}
span.Typed
        {font-family:"Courier New";}
span.tty
        {font-family:"Courier New";}
span.Name
        {font-style:italic;}
span.Variable
        {font-family:"Times New Roman";
        font-style:italic;}
span.EmailStyle22
        {font-family:Arial;
        color:navy;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=blue>

<div class=Section1>

<div style='border:none;border-left:solid windowtext 1.0pt;padding:0in 0in 0in 4.0pt;
margin-left:9.0pt;margin-right:0in'>

<p class=MsoNormal style='border:none;padding:0in'>If you are going to compile
down to something other than straight Erlang then the best target is Core
erlang.</p>

</div>

<p class=MsoNormal><span style='color:navy'> </span></p>

<p class=MsoNormal><span style='color:navy'>What is “core Erlang”?</span></p>

<p class=MsoNormal><span style='color:navy'> </span></p>

<p class=MsoNormal><span style='color:navy'>DBM</span></p>

<p class=MsoNormal><span style='color:navy'> </span></p>

<div>

<div class=MsoNormal align=center style='text-align:center'>

<hr size=2 width="100%" align=center tabindex=-1>

</div>

<p class=MsoNormal><b><span style='font-family:Tahoma'>From:</span></b><span
style='font-family:Tahoma'> erlang-questions-bounces@erlang.org
[mailto:erlang-questions-bounces@erlang.org] <b>On Behalf Of </b>Robert Virding<br>
<b>Sent:</b> Wednesday, January 16, 2008 16:17<br>
<b>To:</b> bobcalco@tampabay.rr.com<br>
<b>Cc:</b> erlang-questions@erlang.org<br>
<b>Subject:</b> Re: [erlang-questions] concurrency developments</span></p>

</div>

<p class=MsoNormal> </p>

<p class=MsoNormal>On 16/01/2008, <b>Bob Calco</b> <<a
href="mailto:bobcalco@tampabay.rr.com">bobcalco@tampabay.rr.com</a>> wrote:</p>

<div>

<blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;
margin-left:4.8pt;margin-right:0in'>

<div link=blue vlink=purple>

<div>

<p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'>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></p>

</div>

</div>

</blockquote>

<div>

<p class=MsoNormal><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</p>

</div>

</div>

</div>

</body>

</html>