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 Mobile Escape Analysis for occam\-pi
db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
%A Frederick R. M. Barnes
db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
%E Peter H. Welch, Herman Roebbers, Jan F. Broenink, Frederick R. M. Barnes, Carl G. Ritson, Adam T. Sampson, G. S. Stiles, Brian Vinter
%B Communicating Process Architectures 2009
%X Escape analysis is the process of discovering boundaries
of
dynamically allocated objects in programming languages.
For
object\-oriented languages such as C++ and Java, this
analysis leads to
an understanding of which program objects
interact directly, as well
as what objects hold references
to other objects. Such information
can be used to help
verify the correctness of an implementation with
respect to
its design, or provide information to a run\-time
system
about which objects can be allocated on the stack
(because they do not
\[dq]escape\[dq] the method in which
they are declared). For existing
object\-oriented
languages, this analysis is typically made difficult
by
aliasing endemic to the language, and is further complicated
by
inheritance and polymorphism. In contrast, the occam\-pi
programming
language is a process\-oriented language, with
systems built from
layered networks of communicating
concurrent processes. The language
has a strong
relationship with the CSP process algebra, that can be
used
to reason formally about the correctness of occam\-pi
programs.
This paper presents early work on a compositional
escape analysis
technique for mobiles in the occam\-pi
programming language, in a style
not dissimilar to existing
CSP analyses. The primary aim is to
discover the boundaries
of mobiles within the communication graph, and
to determine
whether or not they escape any particular process or
network
of processes. The technique is demonstrated by analysing
some
typical occam\-pi processes and networks, giving a
formal understanding
of their mobile escape behaviour.