Making Programming Languages more Usable through Optimization
When: Wednesday, February 8, 2012 - 9:40am - 11:00am
Where: KEC 1007
Speaker Information
Speaker Name: Ross Tate
Speaker Title/Description:
Ph.D. Candidate
University of California, San Diego
Speaker Biography:
Ross Tate is a Ph.D. student at University of California, San Diego. His research ranges over a wide area of programming languages and earned him the Microsoft Research Fellowship. Overarching his projects is a proclivity for solving problems in daily programming by pulling from theoretical domains such as category theory, logic, and semantics. In his work with Sorin Lerner, he developed new techniques for inferring program optimizations from simple language properties, and has since adapted those techniques to translation validators used to verify the correctness of optimizations and to enabling programmers to teach compilers new optimizations from simple examples. In his work at Microsoft Research, he designed algorithms for inferring memory safety of assembly code as part of a larger effort to build a verified operating system. In his work with Red Hat, he is helping design a type system with many object-oriented and functional features for their Ceylon programming language while still guaranteeing decidability by building off his solutions for Java's type system.
Abstract:
Programming languages have long had to carefully balance between human
usability and computational efficiency. Indeed, many programmers constantly
need to keep efficiency in mind as they implement their projects. This concern
often forces programmers to write code in ways that are hard for them and their
colleagues to read but which will execute more efficiently. This may happen at
fine-grained levels such as within a procedure, but it can even force
programmers to use library designs that they know are fragile and error prone
but which can get them the performance they need. In this presentation I will
present technologies that enable programmers to extend the compiler with new
optimizations by example and even to automatically infer optimizations from
library properties. These technologies allow programmers to write intuitive
code and execute efficient programs, thus making programming languages more
usable by lifting the burden of optimization.
_______________________________________________
Colloquium mailing list
[email protected]
https://secure.engr.oregonstate.edu/mailman/listinfo/colloquium