db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
%T ProcessJ: A Possible Future of Process\-Oriented Design
db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
%A Jan Bækgaard Pedersen, Marc L. Smith
db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
%E Peter H. Welch, Frederick R. M. Barnes, Jan F. Broenink, Kevin Chalmers, Jan Bækgaard Pedersen, Adam T. Sampson
%B Communicating Process Architectures 2013
%X We propose ProcessJ as a new, more contemporary programming
language
that supports process\-oriented design, which
raises the level of
abstraction and lowers the barrier of
entry for parallel and
concurrent programming. ProcessJ
promises verifiability (e.g.,
deadlock detection), based on
Hoare\[rs]s CSP model of concurrency, and
existing model
checkers like FDR. Process\-oriented means
processes
compose, unlike thread\-based or asynchronous
message\-passing models of
concurrency; this means that
programmers can incrementally define
larger and larger
concurrent processes without concern for
undesirable
nondeterminism or unexpected side effects.
Processes at their lowest,
most granular level are
sequential programs; there are no global
variables, so no
race conditions, and the rules of parallel
composition are
functional in nature, not imperative, and based on
the
mathematically sound CSP process algebra. Collectively,
these ideas
raise the level of abstraction for concurrency;
they were successful
once before with the occam language and
the Transputer. We believe
their time has come again, and
will not go away, in this new age of
multi\-core processors.
Computers have finally caught up with CSP
and
process\-oriented design. We believe that ProcessJ can
be the
programming language that provides a bridge from
today\[rs]s languages to
tomorrow\[rs]s concurrent programs.
Learning or teaching the programming
model and language will
be greatly supported through the educational
part of the
proposed project, which includes course templates and
an
online teaching tool that integrates in\-browser
programming with
teaching material. Our efforts are
encouraged by the forthcoming 2013
IEEE and ACM curricula
guidelines, which for the first time include
concurrent
programming as a core knowledge area at the
undergraduate
level.