E
{{language |site=http://www.erights.org |strength=strong |safety=safe |express=explicit |compat=duck |checking=dynamic |parampass=value |gc=yes |hopl id=1990 |LCT=yes }} E is a programming language designed around object-capability security and event-loop concurrency, in order to support creation of highly robust and secure programs.
Using the [[Java]] implementation of E, Java libraries can be used from E code, and its REPL (e.g. [[Creating a Window#E|Creating a Window]]).
==Trying E==
[http://www.erights.org/download/ The current recommended E implementation ("E-on-Java") may be downloaded from erights.org].
To run an E program:
$ rune program.e
To get a [[REPL]] (aka prompt, shell, interactive interpreter):
$ rune
An online REPL is also available at [[Help:IRC|Rosetta Code IRC]] or [irc://chat.freenode.net/erights #erights]
on chat.[http://freenode.net/ freenode.net]
.
==Syntax of examples==
While most of the examples on Rosetta Code are E expressions (programs), some may be written like this:
? ''expression''
value: ''print representation''
This is both the format of a transcript at an E [[REPL]], and the format employed by [http://wiki.erights.org/wiki/Updoc Updoc], a test framework for E. “?” is a prompt for user input (“>” indicates multi-line input) and “# foo:” indicates responses.
# value:
the return value of the ''expression'', printed# problem:
an exception thrown by evaluation of the ''expression''# syntax error:
an exception thrown by parsing of the ''expression''# stdout:
or# stderr:
text written to thestdout
orstderr
streams. It is typically only used in test scripts and not in ordinary interactive sessions.
To try out these examples for yourself, just install E and run the rune
command to get the “?” prompt. Multi-line input is automatic for unbalanced brackets/parens and can be indicated in other cases by a trailing backslash.
==See Also==
- [http://wiki.erights.org E Wiki]