Summary: | PROMELA is a high level language to describe a model of a system. System
that has been modelled in PROMELA can be verified formally using SPIN model
checker. The modelled system has to be implemented using one of the programming
language. Up until now, the implementation is done manually which has possibility
in mistakes. Transformation from modelling language to implementation language
is a huge work, starting from translating the modelling and implementation language
to a universal structure, named Labeled Transition System (LTS) and checking the
bisimulation between them. PROMELA can not be translated to LTS as is, so that it
is done by transforming PROMELA to Channel System. This paper deals with the
transformation of PROMELA to Channel System.
Channel System is a way to describe a communication protocol inside a system.
Channel System consists of Program Graphs which represent a processes. The
main element of Program Graph is a state/location transition which consists of beginning
location (lo), guard which determines whether the transition is enabled or not,
action that happened during the transition, and end location (li).
PROMELA structures, such as assignment, communication action, if-fi, dood,
and atomic step have to be defined in a transition locations. PROMELA file is
lexed to get every word, the words then is parsed to get the structure. The parsing
results are saved in internal data structures that will be used in generating Channel
System.
The Generated Channel System is validated by some basic structure and has
shown an appropriate result. The validation is also done using quite complex test case
and has shown appropriate result. Transformation of PROMELA to Channel System
has successfully done for assignment, communication action, do-od, if-fi, and atomic
step structures.
|