one should use disjoint concatenation: Concatenation
models two independent processes that follow one af-
ter the other, so it makes sense to give them separate
sets of stacks. It makes sense to use restricted union,
for indeed union models a process with two, diverg-
ing behaviours (that nonetheless use the same set of
stacks). For the sake of consistency we note that us-
ing disjoint union does not hurt (as the behaviour of
the processes diverges irreversibly anyway).
How about intersection? The disjoint variant is
meaningless. Intersection can be used to model two
portion of processes that synchronize with each other
over all their actions. In the disjoint setting processes
can synchronize over local symbols only, which is
easily specified at the MvPDA level in the same man-
ner as for the vPDA-based algebraic specifications
(Bruda and Bin Waez, 2009), using an intersection-
like construct. Other than this, there is no need for
intersection, so it can be safely ignored.
The only interesting closure property that does not
hold for MVPL no matter what is closure under hid-
ing. Hiding is used in process algebrae such as CSP
for encapsulation, so that two processes synchronize
on a well-defined common interface instead of any ac-
tion that might happen to be common to both. The
lack of closure under hiding for MVPL applies only
to calls and returns; we can freely hide local symbols.
But then the local symbols are (and practically speak-
ing should be!) the only candidates for synchroniza-
tion, so hiding local symbols serves nicely all the en-
capsulation purposes. In passing we note that calls
and returns can actually be hidden (together with the
symbols that fall in between) by using “abstract” op-
erations (Alur et al., 2004), useful for specifying local
properties of a recursive module.
In all, disjoint operations are a solid base for a
parallel composition operator for MvPDA-based pro-
cesses. This in turn allows for compositional, alge-
braic approaches to the conformance testing of sys-
tems with nested and potentially recursiveinvocations
of program modules, such as application software.
7 SUMMARY
VPL capture the properties of systems with recursive
modules, but the lack of closure under shuffle effec-
tively prevents VPL-based compositional approaches
to specifying concurrent systems. MVPL appear to
model concurrent systems naturally but end up hav-
ing the same limitations as VPL (Theorem 1).
The divergence of the parent and child processes
created by
fork(2)
cannot be specified using re-
stricted operations, as mentioned. Under relaxed (and
more realistic) conditions however MVPL cease to be
closed to almost any interesting operation, not just
shuffle (Theorem 2). Based on the intuition of the the
two processes created by
fork(2)
we introduced a
natural stack renaming process that not only observes
what happens in real life, but also gives back all the
closure properties of MVPL, with closure under shuf-
fle added on top for good measure (Theorem 4). In-
deed, based on this renaming process one can easily
define disjoint variants of all the interesting operators
such that MVPL are closed under them (Corollary 5).
These disjoint operations turn out to form a solid
base for compositional, algebraic approaches to the
conformance testing of complex programs such as ap-
plication software. In particular, a process algebra
should be immediate.
ACKNOWLEDGEMENTS
This work was supported by the Natural Sciences and
Engineering Research Council of Canada. Part of this
work was also supported by Bishop’s University.
REFERENCES
Alur, R., Etessami, K., and Madhusudan, P. (2004). A tem-
poral logic of nested calls and returns. In Proceedings
of the 10th International Conference on Tools and Al-
gorithms for the Construction and Analysis of Systems
(TACAS 04), pages 467–481. Springer.
Alur, R. and Madhusudan, P. (2004). Visibly pushdown lan-
guages. In Proceedings of the 36th Annual ACM Sym-
posium on Theory of Computing (STOC 04), pages
202–211. ACM Press.
Bergstra, J. A. and Klop, J. W. (1988). Process theory
based on bisimulation semantics. In de Bakker, J. W.,
de Roever, W., and Rozenberg, G., editors, Linear
Time, Branching Time and Partial Order in Logics and
Models for Concurrency, pages 50–122. Springer.
Bruda, S. D. and Bin Waez, M. T. (2009). Communicat-
ing Visibly pushdown Processes. In The 17th Interna-
tional Conference on Control Systems and Computer
Science, volume 1, pages 507–514.
Carotenuto, D., Murano, A., and Peron, A. (2007). 2-visibly
pushdown automata. In Proceedings of the 11th In-
ternational Conference on Developments in Language
Theory (DLT 2007), pages 132–144. Springer.
La Torre, S., Madhusudan, P., and Parlato, G. (2007). A ro-
bust class of context-sensitive languages. In Proceed-
ings of the 22nd Annual IEEE Symposium on Logic in
Computer Science (LICS 07), pages 161–170, Wash-
ington, DC, USA. IEEE Computer Society.
Lewis, H. R. and Papadimitriou, C. H. (1998). Elements of
the Theory of Computation. Prentice-Hall.
Madhusudan, P. (2008). Private communication.
UNRESTRICTED AND DISJOINT OPERATIONS OVER MULTI-STACK VISIBLY PUSHDOWN LANGUAGES
161