xGiotto
is an extension of the programming language
Giotto. Giotto was developed
essentially for embedded systems with a periodical control, as example
for implementing an autopilot system for a model helicopter. In
particular Giotto focused on the strict separation of timing and
functionality. The timing allowed to simplify the temporal behavior
analysis, necessary to prove system safety and reactivity. Discerning
the timing and functionality, exposed the functionality and made it
more
tractable and analyzable in respect of execution times analysis.
xGiotto
builds on top of Giotto in the sense that the strict separation of
timing and functionality is respected and even made more clear at the
syntactical level. In Giotto the functionality was explicitly
external to the Giotto program, as opposed by xGiotto where the
functionality is expressed in the programm itself. This makes an
xGiotto
program self contained.
Another key
aspect made more clear in xGiotto is the fixed logical execution time of a
task. The logical execution time of a task is specified in the program
and therefore made independent from the executing platform. This makes
the timing behavior of a xGiotto program platform-independent and
deterministic. Therefore, we shift the role of guaranteeing the timing
behavior of a program from the programmer to the compiler. The compiler
will map the program to a given platform only if the platform will
guarantee its logical execution time.