Jeremy Siek, http://ecee.colorado.edu/~siek
Blame Tracking for Gradual Types — Jeremy Siek
Have you ever called a library function in a dynamic language only to have an exception thrown from deep inside the function? Is the error your fault (good heavens no!) or the fault of of the library writer? With the addition of gradual typing, it becomes possible to address this problem using a technology called blame tracking. The idea behind blame tracking is to enclose objects in a wrapper that represents the type that the object is suppose to have and that includes source information (line number, etc.) for where the object was cast to that type. If the object ever disobeys it's type, or is misused as if it had a different type, then the run-time system flags an error and tells the programmer who is to blame. In this presentation I will give an in-depth description of blame tracking and discuss recent research on how to reduce the run-time overhead of blame tracking to a constant factor.
Key Issues for Discussion
(please expand cooperatively)