is not supported by FSMD models. In course of this
experiment our equivalence checker has identified a
bug of the PLuTo compiler (Bandyopadhyay, ) (pos-
sibly due to faulty usage of a variable name in the
source program).
8 RELATED WORKS
Translation validation, whereby each individual trans-
lation is followed by a validation phase to establish
the behavioural equivalence of the source code and
the target code, was introduced by Pnueli et al. in
(Pnueli et al., 1998) and were demonstrated by Necula
in (Necula, 2000) and Rinard et al. (Rinard and Diniz,
1999). This method is further enhanced by Kundu
et al. (Kundu et al., 2008) to verify the high-level
synthesis tool SPARK capturing parallel execution of
statements and Vafeiadis et al. (V. Vafeiadis, 2015) to
verify C11 compiler. A bisimulation method for con-
current programs is reported in Milner et al. (Milner,
1989). A major limitation of these methods (Necula,
2000; Kundu et al., 2008; V. Vafeiadis, 2015; Milner,
1989) is that they can verify only structure preserv-
ing transformations and fail for schedulers that alter
the control structure of a program. To alleviate this
shortcoming, a path based equivalence checker for
the FSMD model is proposed for sophisticated uni-
form and non-uniform code motions and code mo-
tions across loops (Karfa et al., 2012; Banerjee et al.,
2014). They, however, are presently unable to handle
loop swapping transformations and also thread-level
parallelizing transformations mainly because FSMDs,
being a sequential model of computation, cannot cap-
ture parallel behaviours straightway; modeling con-
current behaviours via CDFGs is significantly more
complex due to all possible interleavings of the paral-
lel operations. In (S Bandyopadhyay, 2015; Bandy-
opadhyay et al., 2015), some issues for translation
validation of concurrent programs are addressed.
9 CONCLUSION
A formal notion of computation of an untimed PRES+
model is presented. The concept of finite paths cap-
turing computations on the PRES+ model has been
incorporated based on a notion of dynamic cut-points.
The path construction and path based equivalence
checking methods are described through two exam-
ples. The implementation is satisfactorily tested on
a set of fifteen benchmark problems encompassing
the various speculative and non speculative code op-
timization techniques (Karfa et al., 2012) as well
as thread level loop parallelizing transformations for
scalar programs.
The limitations of the present work is that it can-
not handle loop-shifting, software pipelining based
transformations as well as several loop transforma-
tions for array handling programs. Being a value
based model, it captures data-path more vividly. In
course of code transformation, only data movement
takes place. If we consider only those portions of
the model where the exact code transformations have
taken place, the present method can be fast and scal-
able. Hence, scalability analysis for this method
is one of our future goals. Enhancing the equiva-
lence checking procedure to encompass the limita-
tions mentioned above seems to be a promising future
endeavor; investigating alternate proof based verifi-
cation techniques, such as (Lengauer, 2011), can be
useful in this regard.
ACKNOWLEDGEMENTS
This work is supported by TCS research fellowship
of Soumyadip Bandyopadhyay and DST Project No:
SB/EMEQ − 281/2013.
REFERENCES
Z3 SMT Slover. http:/www.z3.codeplex.com/.
Akl, S. G. (1997). Parallel Computation: Models and Meth-
ods. Prentice-Hall, Inc.
Bandyopadhyay, S. TechReport and PRESEquiv.
http://cse.iitkgp.ac.in/ souban/.
Bandyopadhyay, S., Banerjee, K., Sarkar, D., and Mandal,
C. (2012). Translation validation for pres+ models of
parallel behaviours via an fsmd equivalence checker.
In VDAT, volume 7373, pages 69–78. Springer.
Bandyopadhyay, S., Sarkar, D., and Mandal, C. (2015).
An efficient equivalence checking method for petri net
based models of programs. In ICSE (to appear).
Banerjee, K., Karfa, C., Sarkar, D., and Mandal, C. (2014).
Verification of code motion techniques using value
propagation. IEEE TCAD, 33(8).
Cortes, L., Eles, P., and Peng, Z. (2000). Verification of
embedded systems using a petri net based represen-
tation. In System Synthesis, 2000. Proceedings. The
13th International Symposium on, pages 149–155.
Cort
´
es, L. A., Eles, P., and Peng, Z. (2003). Modeling and
formal verification of embedded systems based on a
petri net representation. JSA, 49(12-15):571–598.
Edwards, S., Lavagno, L., Lee, E. A., and Sangiovanni-
Vincentellni, A. (1999). Design of embedded systems:
Formal models, validation and synthesis. DAC ’99,
pages 296–299.
ICSOFT-EA2015-10thInternationalConferenceonSoftwareEngineeringandApplications
328