Skip to content
marianoguerra edited this page Sep 13, 2010 · 1 revision

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 LanguageReference

Participate

a mailing list is available at librelist just send a mail to [email protected] 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

Clone this wiki locally