<p dir="ltr">Distributed and Time-sensitive (DT) cyber-physical systems are challenging to design and develop. When writing systems in conventional languages, programmers struggle to write programs at scale due to the complexity of intrusive, cross-cutting concerns in a heterogeneous, distributed system with sensing and actuation timing requirements. </p><p dir="ltr">This thesis proposes that a system using a macroprogramming language with dataflow graph semantics can reduce barriers to entry for programmers and domain experts unfamiliar with designing distributed, time-sensitive applications. We present TTPython: a domain-specific language and runtime system designed to write shorter and cleaner code for challenging cyber-physical applications. Its novel, timed, tagged-token dataflow graph execution model allows programmers to develop applications at a macroprogramming scale while supporting timing specifications such as periodicity and soft deadlines. The programmer specifies timing require?ments and uses decorators and system-provided function calls to guide TTPython in the placement of code while TTPython handles distribution, communication, and coordination between devices. We have evaluated TTPython by comparing it to a best-practice implementation of a 1/10th-scale connected autonomous vehicle application. An in-progress case study on an intercity flooding application examines how TTPython affects design and system decisions during development. These two case studies serve as the foundation of a user study in which we ask users to write these DT applications using either TTPython or vanilla Python with a message-broker system. We find that programmers struggle when writing infrastructure code that TTPython abstracts, and find TTPython straightforward and helpful. </p><p dir="ltr">Dataflow graphs have been applied in various contexts in parallelism and distributed computing, but little work has focused on token-tagged dataflow graphs. This thesis will show how incorporating time in a token-tagged dataflow graph makes it an effective tool for handling distributed, time-sensitive applications. We contribute key abstractions that make programming DT applications at scale approachable. The modified dataflow graph serves as the initial framework towards creating a standard digital distribution service for developing and deploying DT applications across shared devices, such as in a smart city.</p>