Join Java
#1



Join Java


Language characteristicsThe Join Java extension introduces three new language constructs:

Join methods

Asynchronous methods

Order class modifiers for determining the order that patterns are matched

Concurrency in most popular programming languages is implemented using constructs such as semaphores

and monitors. Libraries are emerging (such as the Java concurrency library JSR-166) that provide higher-level

concurrency semantics. Communicating Sequential Processes (CSP), Calculus of Communicating Systems (CCS)

and Pi have higher-level synchronization behaviours defined implicitly through the composition of events at the

interfaces of concurrent processes. Join calculus, in contrast, has explicit synchronization based on a localized

conjunction of events defined as reduction rules. Join semantics try to provide explicit expressions of synchronization

without breaching the object-oriented idea of modularization, including dynamic creation and destruction of

processes and channels.

The Join Java language can express virtually all published concurrency patterns without explicit recourse

to low-level monitor calls. In general, Join Java programs are more concise than their Java equivalents.

The overhead introduced in Join Java by the higher-level expressions derived from the Join calculus is

manageable. The synchronization expressions associated with monitors (wait and notify) which are normally

located in the body of methods can be replaced by Join Java expressions (the Join methods) which form part

of the method signature.

[edit] Join methodsA Join method is defined by two or more Join fragments. A Join method will execute once all

the fragments of the Join pattern have been called. If the return type is a standard Java type then the leading

fragment will block the caller until the Join pattern is complete and the method has executed. If the return

type is of type signal then the leading fragment will return immediately. All trailing fragments are asynchronous

so will not block the caller.

Example:
class JoinExample {

int fragment1() & fragment2(int x) {

//will return value of x

//to caller of fragment1

return x;

}

}
[edit] Ordering modifiersJoin fragments can be repeated in multiple Join patterns so there can be a case

when multiple Join patterns are completed when a fragment is called. Such a case could occur in

the example below if B(), C() and D() then A() are called. The final A() fragment completes three of the

patterns so there are three possible methods that may be called. The ordered class modifier is used

here to determine which Join method will be called. The default and when using the unordered

class modifier is to pick one of the methods at random. With the ordered modifier the methods are

prioritised according to the order they are declared.

Example:

class ordered SimpleJoinPattern {

void A() & B() {

}

void A() & C() {

}

void A() & D() {

}

signal D() & E() {

}

}
[edit] Asynchronous methodsAsynchronous methods are defined by using the signal return type.

This has the same characteristics as the void type except that the method will return immediately.

When an asynchronous method is called a new thread is created to execute the body of the method.

Example:

class ThreadExample {

signal thread(SomeObject x) {

//this code will execute in a new thread

}

}

[edit] Related languagesPolyphonic C sharp is the closest related language.

Hardware Join Java language further extended Join Java to implement Hardware semantics. This language extended the semantics of Join Java to FPGA applications.
Reply
#2
Join Java

[attachment=17307]
Join Java is a programming language that extends the standard Java programming language with the join semantics of the join-calculus.

It was written at the University of South Australia within the Reconfigurable Computing Lab by Dr. Von Itzstein.


Join calculus



Join calculus has explicit synchronization based on a localized conjunction of events defined as reduction rules.

The join-calculus was developed to provide a formal basis for the design of distributed programming languages, and therefore intentionally avoids communications constructs found in other process calculi

Join semantics try to provide explicit expressions of synchronization without breaching the object-oriented idea of modularization, including dynamic creation and destruction of processes and channels.

Advantages

The Join Java language can express virtually all published concurrency patterns without explicit recourse to low-level monitor calls.

In general, Join Java programs are more concise than their Java equivalents.

The overhead introduced in Join Java by the higher-level expressions derived from the Join calculus is manageable.

The synchronization expressions associated with monitors (wait and notify) which are normally located in the body of methods can be replaced by Join Java expressions (the Join methods) which form part of the method signature.


Asynchronous methods


Asynchronous methods are defined by using the signal return type.
This has the same characteristics as the void type except that the method will return immediately.

When an asynchronous method is called a new thread is created to execute the body of the method.


Reply

Important Note..!

If you are not satisfied with above reply ,..Please

ASK HERE

So that we will collect data for you and will made reply to the request....OR try below "QUICK REPLY" box to add a reply to this page
Popular Searches: join secret society, join research projects for money, calculus, how to join wire on regulator in a cooler, how to join cooler regulator, calculus ap, free to join,

[-]
Quick Reply
Message
Type your reply to this message here.

Image Verification
Please enter the text contained within the image into the text box below it. This process is used to prevent automated spam bots.
Image Verification
(case insensitive)

Possibly Related Threads...
Thread Author Replies Views Last Post
  Privacy-Preserving Updates to Anonymous and Confidential Databases - JAVA project uploader 3 2,177 23-12-2012, 07:35 PM
Last Post: mr.patil1234
  Java™: The Complete Reference, Seventh Edition project uploader 0 1,048 09-06-2012, 05:07 PM
Last Post: project uploader
  An Ontology-Supported Web Focused-Crawler for Java Programs project uploader 0 1,162 08-06-2012, 11:31 AM
Last Post: project uploader
  Building a Java chat server seminar details 0 1,330 07-06-2012, 12:07 PM
Last Post: seminar details
  Understanding the Java ClassLoader seminar paper 0 853 15-03-2012, 02:37 PM
Last Post: seminar paper
  Java Basics project uploader 0 860 14-03-2012, 10:19 AM
Last Post: project uploader
  Object Oriented Programming with Java seminar paper 0 844 12-03-2012, 03:40 PM
Last Post: seminar paper
  Eclipse and Java seminar paper 0 1,183 24-02-2012, 04:51 PM
Last Post: seminar paper
  JAVA MESSAGING SERVICE seminar paper 0 787 21-02-2012, 01:43 PM
Last Post: seminar paper
  Rumor Riding: Anonymizing Unstructured Peer-to-Peer Systems - JAVA project uploader 0 998 14-02-2012, 11:21 AM
Last Post: project uploader

Forum Jump: