(Talk) Gradual Typestate

  • Speaker: Ronald Garcia (The University of British Columbia)
  • Location: UBC Vancouver Campus, KAIS 2020, 2332 Main Mall, Vancouver, BC
  • Date & Time: August 15, 2012, at 3:30 p.m.


Abstract

Typestate reflects how the legal operations on imperative objects can change at runtime as their internal state changes. A typestate checker can statically ensure, for instance, that an object method is only called when the object is in a state for which the operation is well-defined. Prior work has shown how modular typestate checking can be achieved thanks to access permissions and state guarantees. However, typestate was not treated as a primitive language concept; typestate checkers are an additional verification layer on top of an existing language. In contrast, a typestate-oriented programming language directly supports expressing typestates. In this talk, I will describe the design of a core language with intrinsic support for typestate change and typestate checking. Because static typestate checking is still too rigid for some applications, the type system and runtime are extended to also support runtime typestate checking where desired, as well as dynamically typed objects that interoperate with statically typed objects.

Speaker’s Biography

Ronald Garcia is an assistant professor in the Computer Science Department at University of British Columbia. His research investigates how fundamental concepts in the theory, implementation, and practice of programming languages can improve the software development process. His recent research has focused on program generation and metaprogramming, static and dynamic type systems, and generic programming abstractions.

Prior to his appointment at UBC, he was a Computing Innovation Fellow at Carnegie Mellon University and Postdoctoral Fellow at Rice University. He received a PhD in Computer Science from Indiana University, and an MSc and BSc in Electrical Engineering from the University of Notre Dame.

This entry was posted in Talks. Bookmark the permalink.