Behavioral Contracts for Cooperative SchedulingBehavioral Contracts for Cooperative Scheduling • December 17th, 2020
Contract Type FiledDecember 17th, 2020Abstract. Formal specification of multi-threaded programs is notoriously hard, because thread execution may be preempted at any point. In contrast, abstract concurrency models such as actors seriously restrict concurrency to obtain race-free programs. Languages with cooperative scheduling occupy a middle ground between these extremes by explicit scheduling points. We introduce cooperative contracts, a contract-based specification approach designed for cooperative scheduling. It permits to specify complex concurrent behavior succinctly. Cooperative contracts are formalized as behavioral contracts in a compositional behavioral pro- gram logic in which they can be formally verified.