Waterloo Programming Languages Seminars

Previous terms: S11 W11 F10 S10 F08 S08 W08 F07 W07 F06 S06 W06

Current term:

Date Speaker Title (click for abstract) Location
Thu. Oct. 27, 2011 at 1:30 pm Pavel Parízek Identifying Future Field Accesses in Exhaustive State Space Traversal DC 2314
Mon. Dec. 12, 2011 at 10:00 am Frank Tip Finding and Fixing Bugs in Web Applications DC 1304

All are welcome.

Talk announcements are also posted to a public mailing list.

To volunteer to give a talk, contact Ondřej Lhoták. Talks can range from informal to formal, and they can be about any of the following:

The purpose is for us all to see what people are interested in, and motivate discussions.


Identifying Future Field Accesses in Exhaustive State Space Traversal

Pavel Parízek
Oct. 27, 2011
One popular approach to detect errors in multithreaded programs is to systematically explore all possible interleavings. A common algorithmic strategy is to construct the program state space on-the-fly and perform thread scheduling choices at any instruction that could have effects visible to other threads. Existing tools do not look ahead in the code to be executed, and thus their decisions are too conservative. They create unnecessary thread scheduling choices at instructions that do not actually influence other threads, which implies exploring exponentially greater numbers of interleavings.

In this paper we describe how information about field accesses that may occur in the future can be used to identify and eliminate unnecessary thread choices. This reduces the number of states that must be processed to explore all possible behaviors and therefore improves the performance of exhaustive state space traversal. We have applied this technique to Java PathFinder, using the WALA library for static analysis. Experiments on several Java programs show big performance gains. In particular, it is now possible to check with Java PathFinder more complex programs than before in reasonable time.

This will be a practice talk for ASE 2011.

Finding and Fixing Bugs in Web Applications

Frank Tip
Dec. 12, 2011
Today's society is critically dependent on the existence of web applications. From online purchases to personal banking to mobile devices, web applications are the backbone of the 21st century's economy. However, web applications have a number of characteristics that make them highly fragile and prone to bugs that threaten the important applications they enable. In particular, they are typically written in a combination of multiple languages, they often rely on low-level manipulation of string values to generate dynamic web page content, and the flow of control in web applications usually depends strongly on interactive input from the user. In this presentation, I will present an overview of the Apollo project at IBM Research, which aims to make web applications more robust by assisting programmers with finding and fixing bugs, using automated techniques for test generation, fault localization, and program repair.

Frank Tip received his PhD from the University of Amsterdam in 1995. Since then, he has been with IBM Research, where he is currently managing the Program Analysis and Transformation Group. Frank's current research interests include: Refactoring, Test Generation and Fault Localization for Web Applications, Data-Centric Synchronization and Declarative Object Identity for Object-Oriented Programming Languages, and Change Impact Analysis.