Fusing Statecharts and Java
This paper presents \FUSE, an approach for modeling and implementing
embedded software components which starts from a main-stream
programming language and brings some of the key concepts of \Stchs as
first-class elements within this language. Our approach provides a
unified programming environment which not only preserves some of the
advantages of \Stchs' formal foundation but also directly supports
features of object-orientation and strong typing. By specifying
\Stchs directly in \FUSE we eliminate the out-of-synch between the
model and the generated code and we allow the tuning and debugging to
be done within the same programming model. This paper describes the
main language constructs of \FUSE and presents its semantics by
translation into the Java programming language. We conclude by
discussing extensions to the base language which enable the efficient
static checking of program properties.
In ACM Transactions in Embedded Computing Systems, vol 12, number 1s, pages 45:1-45:21, ACM, 2013.