Seminars

Automotive operating system is a safety-critical software that controls electrical devices installed in automobiles. It is supposed to work safely under any arbitrary interactions with application programs, which is a major difficulty in safety verification. It is important to model a sound environment that satisfies system requirements and constraints in order to ensure efficiency and effectiveness of verification.

This talk introduces my approach to address this issue using constraint patterns identified from the OSEK/VDX international standard for automotive operating systems.…

With the advent of high performance storage, content delivery network (CDN), adaptive IP streaming, advanced compression, and broadband networks, Video On Demand (VOD) technologies and services for cable systems and broadband Internet have evolved significantly in recent years. These advances enable the delivery of large amount of content to multiple devices of large number of subscribers in scale with increasing capabilities.

This presentation will discuss the next generation Video On Demand architecture and several recent advances in Control/Data Plane and Content Delivery…

To increase reliability, developers have long used assertions -- logical statements that are expected to be true -- as lightweight specifications of crucial properties of code. Assertions have predominantly served two purposes: documentation and runtime checking. We envision a far broader role of assertions where they are the cornerstone of a wide range of analyses that synergistically promise to bring about an unprecedented increase in reliability.

This talk describes our ongoing work on assertion-driven development and analyses, where developers first assert designs and then…

The field of automated programming envisions a software design process where the programmer writes nondeterministic specifications of programming tasks in a domain-specific language, and a program synthesis algorithm is used to find correct implementations of these specifications. In this talk, I will describe my recent work in this area. Topics covered will include:

(1) A probabilistic approach to program synthesis where "beliefs" about missing elements in a program are refined based on examples supplied by the programmer.

User interface code can be complex and buggy. Moreover, designing user-friendly interfaces can be difficult. One way around this is is to reuse interfaces others have written and tested. We are developing a framework whereby the user provides a sketch of the desired interface and we use code search over open source repositories to find existing user implementations that have an interface similar to the sketch. The tool we have developed extracts user interfaces from the open source applications, matches them against the user's sketch, lets the programmer interact with the results,…