Aviva Directory » Computers & Internet » Programming » E (language)

Created by Mark S. Miller, Dan Bornstein, Douglas Crockford, Chip Morningstar, and others at Electric Communities in 1997, the E programming language was chiefly influenced by Joule and Original-E, a set of extensions to Java.

E is an object-oriented programming language for secure distributed computing, which combines message-based computation with Java-like syntax. It has a concurrency model based on event loops and promises that ensure that deadlock can never occur.

E was designed for computer security and secure computing, employing a capability-based design philosophy throughout in order to help programmers build secure software, and to enable software components to cooperate even when they don't fully trust each other.

In E, object references serve as capabilities, so capabilities don't add computational or conceptual overhead costs. Its language syntax is designed to be easy for people to audit for security flaws.

All values in E are objects, and computation is performed by sending messages to objects. Each object belongs to a vat, which might be thought of as a process. Each vat has a single thread of execution, a stack frame, and an event queue. Distributed programming is accomplished through messages sent to remote objects in other vats, and the E runtime encrypts all communication with remote parties. Arriving messages are placed in the vat's event queue, and the vat's event loop processes the incoming messages one by one, in order of arrival.

The syntax of E is most similar to Java, although it has some resemblance to Python and Pascal. Unlike Jave or Python, however, E is composed entirely of expressions.

E has two implementations, one based on Java, the other based on Common Lisp.

The focus of this portion of our web guide is on the E programming language. Topics related to the language, its implementations, repositories, and source codes are appropriate for this category, as are E tutorials and guides, manuals, documentation, forums, or E community websites.



Recommended Resources

Search for E (language) on Google or Bing