We present a new high-level programming language, called xGiotto,
for programming applications with hard real-time constraints. Like
its predecessor, xGiotto is based on the LET (logical execution
time) assumption: the programmer specifies when the outputs of a
task become available, and the compiler checks if the
specification can be implemented on a given platform. However,
while the predecessor language Giotto was purely time-triggered,
xGiotto accommodates also asynchronous events. Indeed, through a
mechanism called event scoping, events are the main structuring
principle of the new language. The xGiotto compiler and run-time
system implement event scoping through a tree-based event
filter. The compiler also checks programs for determinism (absence
of race conditions).