[erlang-questions] Forget Erlang on the Java VM. More language on the Erlang VM are needed!

Robert Virding <>
Thu Nov 29 20:15:41 CET 2007


On 29/11/2007, James Hague <> wrote:
>
> On Nov 28, 2007 7:34 AM, Joel Reymont <> wrote:
> >
> > Write Lisp on the Erlang VM, write Haskell or a new language with an
> > elegant syntax. Throw your lot into improving the existing VM.
>
> Agreed 100%.  The Erlang VM is fantastic in a number of ways.  It
> supports the features that make Erlang great: message passing,
> lightweight processes.  It's also one of the fastest dynamic language
> VMs out there.  Plus it's easy to map imperative languages to Erlang
> (http://prog21.dadgum.com/5.html).


The erlang VM is quite fantastic, but it is also quite restricted. There are
many things it can NOT handle, for example destructive updates of objects.
There are no instructions in the BEAM for doing that, at least there
weren't. Björn? This severely restricts which languages you can implement on
it. For example you cannot do a complete Scheme as it has destructive
operations. I am not thinking about set! which is easy as it only modifies
the environment but functions like vector-set! and string-set! which
actually destructively modifies the objects themselves.

I think adding that type of operation to the BEAM could be quite difficult
as the effects are quite profound.

And now a question: what's the best target for compiling to?  Real
> Erlang?  Core Erlang?  BEAM?  I'm probably alone in this opinion, but
> I think a light layer of syntactic sugar on top of raw, BEAM code
> would be a fun and productive language--and even more flexible than
> Erlang.  But relying on the BEAM VM to remain stable isn't reasonable.


There are actually 4 different layers in the compiler to which you could
compile:

- Erlang
- Core Erlang
- Kernel Erlang
- BEAM code

The kernel level is a low-level non BEAM specific layer which could be
compiled to any register machine. It would probably work against a stack
machine as well. It was a while since I worked on it so I can't remember ALL
the details.

Robert
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20071129/c5c6432e/attachment.html>


More information about the erlang-questions mailing list