Joule (programming language)

Joule
Paradigmmulti-paradigm: object-oriented, distributed, Dataflow
Designed byE. Dean Tribble
First appeared1996
Typing disciplineuntyped
Influenced by
Concurrent Logic Programming, Actors
Influenced
E

Joule is a concurrent dataflow programming language, designed for building distributed applications. It is so concurrent that the order of statements within a block is irrelevant to the operation of the block. Statements are executed whenever possible, based on their inputs. Everything in Joule happens by sending messages. There is no control flow. Instead, the programmer describes the flow of data, making it a dataflow programming language.

It is considered the precursor to the E programming language.

Language syntax

Numerals consist of ASCII digits 0–9; identifiers are Unicode sequences of digits, letters, and operator characters that begin with a letter. It is also possible to form identifiers by using Unicode sequences (including whitespace) enclosed by either straight (' ') or standard (‘ ’) single quotes, where the backslash is the escape character. Keywords have to start with a letter, except the keyword to send information. Operators consist of Unicode sequences of digits, letters, and operator characters, beginning with an operator character. Labels are identifiers followed by a colon (':').[1]

At the root, Joule is an imperative language and because of that a statement-based language. It has a rich expression syntax, which transforms easily to its relational syntax underneath. Complex expressions become separate statements, where the site of the original expression is replaced by a reference to the acceptor of the results channel. Therefore, nested expressions still compute completely concurrently with their embedding statement.[1]

 If amount <= balance • account withdraw: amount else • account report-bounce: end 

An identifiers may name a channel to communicate with the server. If this is the case, it is said to be bound to that channel.[1]

References

  1. ^ a b c "Joule: Distributed Application Foundations: 4.2. Expressions" (PDF). 1. Agorics, Inc. 20 December 2004: 31–33. Retrieved 2012-08-29.

External links


This article is copied from an article on Wikipedia® - the free encyclopedia created and edited by its online user community. The text was not checked or edited by anyone on our staff. Although the vast majority of Wikipedia® encyclopedia articles provide accurate and timely information, please do not assume the accuracy of any particular article. This article is distributed under the terms of GNU Free Documentation License.