log in  |  register  |  feedback?  |  help  |  web accessibility
Programming with Trace Contracts
Monday, April 25, 2022, 11:00 am-12:00 pm Calendar
  • You are subscribed to this talk through .
  • You are watching this talk through .
  • You are subscribed to this talk. (unsubscribe, watch)
  • You are watching this talk. (unwatch, subscribe)
  • You are not subscribed to this talk. (watch, subscribe)

Conventional type systems lack the power to express all of the obligations and promises that an
API imposes on, or promises to, client modules. Some language designers cover this expressiveness
gap with behavioral contracts. While contracts can express many logical constraints, some aspects
of API specifications still pose challenges. The presence of sequence diagrams or protocol-like
comments in interface descriptions is a symptom of this problem.

Trace contracts are a linguistic solution for expressing and enforcing rich temporal properties
in higher-order languages. In this talk, I'll present a prototype of trace contracts and discuss
open questions with respect to blame assignment, monitor efficiency, and programmer ergonomics.


Cameron is a third-year Ph.D. stu­dent and mem­ber of the Pro­gram­ming Research Labo­ra­tory at North­east­ern Uni­ver­sity, advised by Matthias Felleisen. His research area is pro­gram­ming lan­guages with an empha­sis on robust soft­ware con­struc­tion.

This talk is organized by David Van Horn