[erlang-questions] [ANN] efene 0.5 - two languages for the erlang VM - released
Henning Diedrich
hd2010@REDACTED
Sun May 2 10:57:08 CEST 2010
Did I overlook that? What syntax are you using for pattern matching, e.g.
erl_integer(<<E:64/signed>>=X), E >= ?LONG_MIN, E =< ?LONG_MAX ->
E.
Regards,
Henning
Mariano Guerra wrote:
> new release of efene.
>
> efene is a programming language that runs on the erlang virtual machine.
>
> the idea is to provide an alternative syntax to erlang that is most
> suitable for people coming from languages like Java, C, C++, C#,
> Javascript and alternatively python and ruby using ifene (indented
> efene).
>
> the language is almost 100% compatible with erlang (and will be), the
> compiler allows to translate an efene source file into a readable
> erlang one or compile it directly to bytecode. It also adds some
> syntactic sugar in some places to make some tasks easier.
> changes
>
> * complete rewrite of the compiler, less code and more clear, less
> transformations to get the AST
> * removed the dependency on the go compiler, now the frontend
> logic is split between fn.erl and a small shell script. That means:
> only erlang required to build and use efene.
> * added a new language called ifene (indented efene), it has the
> same syntax than efene but the blocks are indented with spaces instead
> of curly brackets. The compiler will compile depending on the
> extension (.ifn for ifene .fn for efene) and transform ifene to efene
> internally before compiling. Tabs are not allowed for indentation in
> ifene, this is to avoid mixing spaces and tabs.
> * support for newlines before and after curly brackets and after
> commas. for example:
>
> before this was the only way
>
>
>
>
> if A {
> BodyA
> } else if B {
> BodyB
> } else {
> BodyElse
> }
>
>
> now this two forms are also valid
>
>
> if A {
> BodyA
> }
> else if B {
> BodyB
> }
> else {
> BodyElse
> }
>
> # or
>
> if A
> {
> BodyA
> }
> else if B
> {
> BodyB
> }
> else
> {
> BodyElse
> }
>
> * now commas are required in lists, tuples and function arguments
> * the try block is now try/catch/after to make it equal to erlang
> * the receive block is now receive/else receive/after
> * operator precedence made the same as erlang
> * tests included to check that efene generates the same ast as
> erlang, tests cover almost all the language
> * now records can be declared in efene
> * bit syntax made the same as erlang
>
> for a complete reference see the Language Reference
> Participate
>
> a mailing list is available at librelist just send a mail to
> efene@REDACTED to subscribe.
>
> as first mail you may send a hello world program in efene and present
> yourself by saying your name, where you are, how did you heard about
> efene and anything else you would like to say.
> Resources
>
> * Website: http://marianoguerra.com.ar/efene
> * Blog: http://efene.tumblr.com
> * Central repo: http://github.com/marianoguerra/efene
> * Tracker: http://github.com/marianoguerra/efene/issues
> * Rosetta code page: http://rosettacode.org/wiki/Efene
>
> ________________________________________________________________
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:erlang-questions-unsubscribe@REDACTED
>
>
>
More information about the erlang-questions
mailing list