Synchronous programming of Reactive Systems