{{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:

 <lang sh>$ rune program.e</lang>

To get a [[REPL]] (aka prompt, shell, interactive interpreter):

 <lang sh>$ rune</lang>

An online REPL is also available at [[Help:IRC|Rosetta Code IRC]] or <code>[irc://chat.freenode.net/erights #erights]</code> on <code>chat.[http://freenode.net/ freenode.net]</code>.

==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 (“&gt;” indicates multi-line input) and “# foo:” indicates responses.
* <code># value:</code> the return value of the ''expression'', printed
* <code># problem:</code> an exception thrown by evaluation of the ''expression''
* <code># syntax error:</code> an exception thrown by parsing of the ''expression''
* <code># stdout:</code> or <code># stderr:</code> text written to the <code>stdout</code> or <code>stderr</code> 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 <code>rune</code> 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]