[erlang-questions] Reia - Python/Ruby mix targeting Beam/HiPE
Thu Jun 5 15:19:06 CEST 2008
Bjorn Gustavsson writes:
> "Gleb Peregud" <> writes:
> > According to http://wiki.reia-lang.org/wiki/Roadmap :
> > The First Milestone: Compile to Erlang AST
> > And I assume that Erlang AST does not permit mutable variables, hence
> > it will probably not include mutable variables (unless hidden by Reia
> > -> Erlang AST translator)
> It should be trivial to implement mutable variables, simply by inventing
> a new, unused variable name each time a mutable variable is assigned.
> (Further references to the mutable variable should be changed to refer
> to the new name, of course.)
Define "mutable variable". I know of (at least) two different kinds:
1. Each variable binding starts a new scope, nested within but
otherwise independent of the previous/surrounding scope.
This is what SML's LET and Scheme's LET* implement.
It's still purely functional and can be implemented via
a simple renaming operation (alpha conversion).
2. A variable is bound to an updateable memory cell, and assignment
updates that cell, like in C/Pascal/etc. If these cells can escape
(e.g. via closures), then simple renaming doesn't suffice, and
you're really forced to have a mutable store. Stores can be
emulated in the Erlang VM, but it won't be cheap.
More information about the erlang-questions