[erlang-questions] [ANN] efene 0.5 - two languages for the erlang VM - released

Henning Diedrich hd2010@REDACTED
Sun May 2 10:15:00 CEST 2010


Very exciting --- can I ask the others what they think is necessary 
regarding tests to find efene reliable?

Thanks,
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