Sorensen, Andrew Carl2018-06-272018-06-27b53507174http://hdl.handle.net/1885/144603There is a long history of experimental and exploratory programming supported by systems that expose interaction through a programming language interface. These live programming systems enable software developers to create, extend, and modify the behaviour of executing software by changing source code without perceptual breaks for recompilation. These live programming systems have taken many forms, but have generally been limited in their ability to express low-level programming concepts and the generation of efficient native machine code. These shortcomings have limited the effectiveness of live programming in domains that require highly efficient numerical processing and explicit memory management. The most general questions addressed by this thesis are what a systems language designed for live programming might look like and how such a language might influence the development of live programming in performance sensitive domains requiring real-time support, direct hardware control, or high performance computing. This thesis answers these questions by exploring the design, implementation and application of Extempore, a new systems programming language, designed specifically for live interactive programming.enExtemporeLive CodingLive ProgrammingCyber-Physical ProgrammingComputer MusicHigh Performance ComputingHuman Computer InteractionExtempore: The design, implementation and application of a cyber-physical programming language201810.25911/5d67b75c3aaf0