Microsoft Research at the Professional Developers Conference 2009
Microsoft Research at the Professional Developers Conference 2009

Since 1991, the Professional Developers Conference (PDC) has been Microsoft’s premier gathering of leading-edge developers and architects. This year, once again, Microsoft Research will play an integral role in the event. MSR@PDC includes the following demos and lecture sessions, which are certain to generate thought-provoking questions and to develop new conversations.

Demos

During PDC09, the demos are set in an exciting exhibit area open to all conference attendees. The Microsoft Research demos will include some of the most innovative, cutting-edge technologies from our locations worldwide. Attendees can browse, play, learn, and experience technologies designed to advance the state of the art and to improve the computing experience for users around the world.

Vedea: A New Language for Infographics and Visualizations
Vedea is a new, dynamically typed visualization language based on the .NET Dynamic Language Runtime. Vedea is a project of the Computational Science Laboratory at Microsoft Research Cambridge and is designed to enable people with only basic programming skills to create visually compelling, highly interactive, scalable data visualizations, infographics and visual art. Vedea is designed to enable scientists and domain experts to create and incrementally refine interactive visualizations suitable for data exploration and publication without having to learn the details of complex rendering and visualization APIs. In Vedea, data can be coupled to visual attributes in a declarative fashion. This demonstration will introduce you to the language and possibilities available with the Vedea visualization language.

Break down language barriers with Microsoft Translator APIs
Microsoft Translator offers a variety of APIs for developers, bringing the same technology that powers translation in Bing, Microsoft Office, and Internet Explorer to your application. Coming in SOAP, HTTP and AJAX flavors, the Translator API provides flexibility in developing anything from a Web site, automatically delivered in many languages, to rich client applications that transform text from one language to another or bring translation abilities to your application’s workflow, where it makes the most sense. Expand your user community beyond one language or locale by using machine-translation technology. Learn about the technology and the APIs available, and sample the unique Microsoft Translator Web widget, built on top of the AJAX API, that helps Webmasters broaden their audience while keeping users on their site.

Cloud Computing and the Changing Landscape of Research
A new paradigm for research is emerging based on data-intensive computing. The eXtreme Computing Group at Microsoft Research will demonstrate three projects, each leveraging the power of the client plus cloud in distinct ways to support data-intensive research. Our first demonstration is from bioinformatics, in which a user can seamlessly invoke BLAST on Azure from within Excel to find regions of similarity between biological sequences. Our second demonstration, PhyloD, illustrates the use of Azure to scale a computationally intensive research service elastically for better understanding of HIV. Our third demonstration is from oceanography and illustrates storing extremely large oceanographic data sets on SQL Azure. The data can be extracted and displayed on a laptop and is updated regularly from ocean sensors using the Microsoft Sync Framework.

Cuzz: Concurrency Fuzzing for Finding Bugs
Cuzz is an effective tool for finding concurrency bugs. Cuzz works on unmodified executables and is designed for maximizing concurrency coverage for your existing, unmodified tests. Cuzz attaches to your program and randomizes its thread schedules in a systematic and disciplined way. While schedule randomization is not uncommon among concurrency practitioners, Cuzz distinguishes itself with its randomized algorithm, developed by Microsoft Research, that provides effective mathematical guarantees of finding concurrency bugs. Cuzz scales to large programs that create many threads.

Code Contracts and Pex: Power Charge Your Assertions and Unit Tests
Code Contracts and Pex, introduced during last year’s PDC, now have even more ways to improve your .NET code. Code Contracts provide a set of tools for design-by-contract programming. Pex is an advanced unit-testing tool that uses automated program exploration to create unit tests with high code coverage. They work together so that your code has fewer defects. New features for Code Contracts include automatic documentation generation, call-site checking for components, and reference assemblies for the .NET Framework. Pex now comes with a lightweight mocking framework, improved support for large code bases, and more thorough test-input generation.

Lecture Sessions

Also included in this year’s event are six sessions from Microsoft Research aimed at digging deeper into technical issues—such as improving code quality and developing, and debugging—and taking a look at the future of programming.

Code Contracts and Pex: Power Charge Your Assertions and Unit Tests
Speakers: Mike Barnett, Nikolai Tillmann

Learn how Code Contracts provide a set of tools for design-by-contract programming and how Pex, an advanced unit-testing tool, uses automated program exploration to create unit tests with high code coverage. See how they work together so that your code has fewer defects. Investigate new features for Code Contracts, including automatic documentation generation, call-site checking for components, and reference assemblies for the .NET Framework. Added features for Pex include a lightweight mocking framework, improved support for large code bases, and more thorough test-input generation.

Infer.NET: Building Software with Intelligence
Speakers: John Guiver, John Winn

Want to write software that can adapt to a user, learn from examples, or work with uncertain information? Infer.NET is a machine-learning framework that lets you build these capabilities directly into your .NET application. The framework enables you to combine detailed domain knowledge with the latest machine-learning algorithms to generate tailored code to solve your problem. An API based on random variables lets you call Infer.NET code from within your application. We will provide examples of using Infer.NET in search and gaming.

Power Tools for Debugging
Speakers: Sandeep Karanth, Kapil Vaswani

Learn about DebugAdvisor, a search-based tool to find related bugs and other related information, such as people and files; Holmes, a statistical debugger based on coverage data that can be used to root-cause a bug by narrowing the code path that results in the error; and Darwin, a symbolic, execution-based tool to root-cause regressions.

Concurrency Fuzzing and Data Races
Speakers: Sebastian Burckhardt, Madan Musuvathi

Introducing two concurrency tools from Microsoft Research: Cuzz and FeatherLite. Cuzz—for Concurrency Fuzzing—significantly improves the concurrency coverage achieved with existing stress tests. It uses a randomized algorithm to fuzz thread schedules and is effective in finding bugs. Cuzz also helps reproduce the bug once found. FeatherLite, a lightweight data-race-detection tool, uses sampling techniques for finding data races without adding prohibitive run-time overhead.

Embodiment: The Third Great Wave of Computing Applications
Speaker: Butler Lampson

Hear about the next major wave of computing applications from Butler Lampson, a recognized leader in modern networking and an alumnus of the University of California, Berkeley, Xerox’s Palo Alto Research Center, and Digital Equipment Company’s Systems Research Center. Learn how computing applications evolved, beginning with simulation, followed by communication, and how we're beginning to use computers for embodiment: non-trivial interactions with the physical world. Today, there are sensor networks, such as the Inrix traffic-information system, robots, such as the Roomba vacuum cleaner, and cameras that can pick out faces and even smiles. In a few years, we will have cars that drive themselves, glasses that overlay the person you are looking at with their name and contact information, tele-presence systems that make most business travel unnecessary, and other applications as yet unimagined. Learn about the new embodiment wave of computing applications from one of the leaders in the field.

Microsoft Perspectives on the Future of Programming
Speakers: Butler Lampson, Erik Meijer, Don Box, Jeffrey Snover, Herb Sutter, Burton Smith

Several of Microsoft’s senior technical leaders will discuss the future of programming, programming languages, and tools.