Ateji PX is an extension of Java for parallel programs. It adds a || operator for statement and data parallelism and ! and ? operators for message passing. It is implemented as an Eclipse plugin that precompiles the code.
Tag Archives: concurrency
E
E is a programming language designed to make it easy to write distributed programs that are correct and secure. As a pure-Java library, ELib provides for inter-process capability-secure distributed programming. Its cryptographic capability protocol enables mutually suspicious Java processes to cooperate safely, and its event-loop concurrency and promise pipelining enable high performance deadlock free distributed pure-object computing. Objects written in the E language are only able to interact with other objects according to ELib’s semantics, enabling object granularity intra-process security, including the ability to safely run untrusted mobile code
StratifiedJS
StratifiedJS extends the JavaScript language with a small number of keywords for concurrent programming. It allows you to express asynchronous control flow in a straightforward, structured sequential style.
AmbientTalk
AmbientTalk is an experimental object-oriented distributed programming language primarily targeted at writing programs deployed in mobile ad hoc networks. The language’s concurrency features are founded on the actor model and have been largely influenced by the E programming language. The language’s object-oriented features find their influence in languages like Smalltalk (i.e. block closures, keyworded messages) and Self (prototype-based programming, delegation). Finally, the language has a functional core, inspired by Scheme and Pico. The current implementation of AmbientTalk embraces the JVM as a platform. It’s easy for AmbientTalk programs to use Java libraries, and it’s easy for Java objects to use AmbientTalk as an embedded scripting language.
Pig
Pig is a high-level language for expressing data analysis programs, coupled with infrastructure for evaluating these programs. The salient property of Pig programs is that their structure is amenable to substantial parallelization, which in turns enables them to handle very large data sets. At the present time, Pig’s infrastructure layer consists of a compiler that produces sequences of Map-Reduce programs, for which large-scale parallel implementations already exist (like Apaches Hadoop).
Eclectic CSP
Eclectic CSP (eCSP) is a higher order modular concurrent programming language designed by Benard Sufrin & Quentin Miller (http://users.comlab.ox.ac.uk/bernard.sufrin/ECSP/ecsp.pdf). The aim of this project is write a compiler that translates eCSP in Java Bytecode for use with the JVM.
streme
Streme (Scheme + stream) is a Scheme-inspired language with a concurrent interpreter. The main goal is to make effective use of multiple cores when evaluating programs. Streme comes with analysis tools that are capable of performing control and value flow analysis, together with interprocedural dependence analysis. The ultimate goal is automatic parallelization of Scheme programs, evaluating standard Scheme programs (i.e. programs without special annotations for parallelization) using multiple cores.
X10
X10 is an experimental new language currently under development at IBM in collaboration with academic partners. X10 is a type-safe, modern, parallel, distributed object-oriented language intended to be very easily accessible to Java(TM) programmers. It is targeted to future low-end and high-end systems with nodes that are built out of multi-core SMP chips with non-uniform memory hierarchies, and interconnected in scalable cluster configurations.
webLISP
webLISP is an experimental Implementation of reflective functional Programming. It contains a very simple Lexer and Parser for a lambda-calculus language in lisp-syntax. The Lambda terms are compiled to variablefree Combinator Graphs. The virtual Graph-Reduction-Machine that reduces the Combinator-graph distinguishes between strict and non-strict operations. Strict operations have to be evaluated even if we obey lazy evaluation and can thus be evaluated in parallel to the main computation. The parallel computations are added to a global task pool, which is maintained by a stochastic scheduler. In addition to this basic implemenation a special Combinator P is introduced which performs an asyncronous parallelism of two given applications.