Synchronous programming languages offer order-of-magnitude improvements in reliability and responsiveness in software systems. They have been used in safety-critical systems such as the virtual display systems of civilian and military aircraft at Dassault Aviation, the control software of the N4 nuclear power plants, and the Airbus A320 fly-by-wire system, among others. The success is largely due to the radically different way these programming languages work. As one example, built into these programming languages is the notion of a "reaction" that is completely isolated from the environment, which makes reasoning about the correctness of the program significantly easier than it is in conventional programming languages. Despite the significant success in these safety-critical domains, most programmers remain unaware of and unable to use these programming languages because the languages are deeply tied to specific environments, requiring specialized tools that do not work in every context. In this project, the investigators plan to bring the power of synchronous programming to general-purpose programming systems by solving technical challenges that currently limit the adoption of these important languages. The major technical challenge stems from the radically different semantics that synchronous languages have. This different semantics has led to an entirely different compiler and tool-chain for programs using these languages. The investigators have two different implement