librelist archives

« back to archive

[ANN] efene 0.3 released, a language for the erlang VM

[ANN] efene 0.3 released, a language for the erlang VM

From:
Mariano Guerra
Date:
2010-03-20 @ 11:27
third 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.

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
======

* interactive interpreter (try it with fnc -s)

$ fnc -s
efene 0.3 exit with Ctrl+D
>>> A = 2
2
>>> B = A * 3
6
>>> F = fn (Name) { io.format("hi ~s!~n" [Name]) }
#Fun<erl_eval.6.13229925>
>>> F("efene")
hi efene!
ok

* command line eval

$ fnc -c "io.format(\"hello world~n\")"
hello world
>>> io.format("hello world~n")
ok

* command line eval that translate the expression to erlang

$ fnc -C "io.format(\"hello world~n\")"
hello world
1> io:format("hello world~n")
ok

* get the exception type in a variable

try {
   <some code>
} catch _Type Error {
   <handle error>
}

* allow to pattern match values inside lists and tuples

test = fn (('+' = Op Num)) {
   io.format("~p ~p~n", [Op Num])
}

* allow new lines between items in lists and tuples

A = (1 2 3
          4 5 6)

* allow multiple files to be passed as arguments to fnc

$ fnc file1.fn file2.fn file3.fn

* efene compiler rewritten in efene

for a complete reference see the LanguageReference[1]

Participate
========

a mailing list is available at librelist just send a mail to
efene@librelist.com 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.

[1] http://wiki.github.com/marianoguerra/efene/languagereference