Archives for posts with tag: MS Research

By Nikolai Tillmann and  Mike Barnett

Learn how Code Contracts provides a set of tools for design-by-contract programming and how Pex is an advanced unit-testing tool that uses automated program exploration to intelligently create unit tests with high code coverage. 
See how they work together so that your code has fewer defects.

Learn about new features for Code Contracts including automatic documentation generation, call-site checking for components and reference assemblies for the .NET Framework and for Pex including a light-weight mocking framework, improved support for large code bases, and more thorough test input generation.

Links:
PEX // Code Contracts // Mike Barnett // Nikolai Tillmann // MDCC // DPE DK

In this demo we showcase efforts in MSR to collaborate with external researchers to explore the application of new technologies, specifically Dryad and DryadLINQ, to big data research problems in science. We also highlight our efforts to provide software and services to academics across the world, through the release of Dryad and DryadLINQ free of charge to the research community, along with associated programming guides, user documentation, and code libraries. Dryad is a general-purpose distributed computing engine, more flexible than MapReduce or Hadoop!, that was designed to simplify the task of implementing distributed applications on clusters of Windows computers. DryadLINQ is an abstraction layer which simplifies the process of implementing Dryad-based applications. Microsoft Research is acutely aware of the ubiquity of big data and the challenges this presents. We are offering researchers the tools, resources and collaboration to explore this new area.

Dr. Cormac Herley spends most of his time thinking about why and how computer users reject security advice (from both fellow humans and software security warning prompts). Recently, his paper, “So Long, and No Thanks for the Externalities: the Rational Rejection of Security Advice by Users,” received a fair amount of attention from the general media (Boston Globe, Tech Republic, NPR, etc). The paper also prompted our favorite software renegade, Dr. Erik Meijer, to send me an email, simply asking that I “please set up an E2E with Cormac Herley.” I did just that and the following conversation is what happened…

Enjoy.

Matt Scott of Microsoft Research walks us through Engkoo: the new “dictionary” vertical search of Bing in China. What makes this English-Chinese assistance tool unique is that it unifies human translation mined from the web, machine translation, and a language learning experience, into one easy to use search and explore interface. By continuously discovering and processing high quality translation knowledge on the Internet, this technology can be used to close the ever expanding translation gap between English and Chinese.

 

Engkoo is a collaboration between Bing, MSN, and Microsoft Research – leveraging years of research in Natural Language Computing, Speech, Human Computer Interaction and Web Search & Mining. Because the technology is language independent, next steps include building on it for other language pairs in the future

Computer Scientists and MSR Researchers Wolfram Schulte, Herman VenterNikolai Tillmann, and Manuel Fahndrich join Erik Meijer for an Expert to Expert deep dive into the theory and implementation strategies inside of SPUR, a research Tracing Just-In-Time (TJIT) compiler for Microsoft’s Common Intermediate Language CIL (the target language of C#, VB.NET, F#, and many other .NET languages).  

Tracing just-in-time compilers (TJITs) determine frequently executed traces (hot paths and loops) in running programs and focus their optimization effort by emitting optimized machine code specialized to these traces. Prior work has established this strategy to be especially beneficial for dynamic languages such as JavaScript, where the TJIT interfaces with the interpreter and produces machine code from the JavaScript trace. 

In order to validate that the performance gains of a TJIT for interpreted languages like JavaScript do not depend on specific idioms of the language, the SPUR team produces a performance evaluation of a JavaScript runtime that translates JavaScript to CIL and then runs on top of SPUR.

Read the SPUR research paper.

JavaScript is the most widely used programming language on the web. As the great Douglas Crockford likes to say, JavaScript is both the world’s most popular programming language and the world’s least popular programming language at the same time.

In this episode of Expert to Expert (to Expert), Erik Meijer joins MSR research scientists Ben Livshits and Ben Zorn to talk about JavaScript, project JSMeter and today’s trends in web programming.

Dr. Zorn and Dr. Livshits have been doing a significant amount of research on how JavaScript is used in the real world by analyzing JS execution on large-scale (JS-heavy) commercial web sites. Their formal exploration of JS executing in the real world, Project JSMeter, has yielded results, which seem to indicate that current JS performance test suites are at best suspect in terms of how JavaScript is actually running on the web, in production, on real sites, etc. But read the findings and make your own judgments, of course. 

Tune in. Enjoy.


A distributed system is one in which the failure of a computer you didn’t even know existed can render your own computer unusable. -Leslie Lamport.


Leslie Lamport
is a computer scientist and mathematician best known for his work with distributed systems. In fact, Dr. Lamport’s research contributions laid the foundations for the theory of distributed systems. He currently works in Microsoft Research where most of his time is spent developing formal semantics (with mathematical logic) for specifying and reasoning about algorithms.

Here, Dr. Erik Meijer, computer scientist and programming language/library designer, sits down with Dr. Lamport to discuss several aspects of Dr. Lamport’s body of work in computer science.

Dr. Lamport’s TLA, the Temporal Logic of Actions, is a logic for specifying and reasoning about concurrent and reactive systems. TLA+ is the latest incarnation of this formal specification toolset.

Welcome to the latest installment of C9 Conversations. For this episode, we were very fortunate to get a chance to converse openly with one of the world’s preeminent mathematical logicians, the great Yuri Gurevich.

Dr. Gurevich is Professor Emeritus of Electrical Engineering and Computer Science at the University of Michigan. He is currently a principle research scientist in Wolfram Schulte’s RiSE team (Research in Software Engineering group at Microsoft Research).

Originally, Dr. Gurevich started his career as an algebraist. Later he became a logician. Then he moved to computer science, where his main projects have been Abstract State Machines, Average Case Computational Complexity, and Finite Model Theory. Dr. Gurevich has been honored as a Dr. Honoris Causa of the University of Limburg, Belgium (1998), as a Fellow of the Association for Computing Machinery (1996), as well as a Fellow of the John Simon Guggenheim Memorial Foundation (1995).

Dr. Gurevich’s fundamental work on the theory of Abstract State Machines (ASMs) is of paramount importance for theoretical and applied computer science. The significance of the theoretical concepts developed by Gurevich is confirmed by the substantial impact they have on mathematical modeling of discrete dynamic systems.

*This is probably the only interview in C9’s history where a good case is made for imperative programming versus declarative and functional (this starts right off the bat at around 02:31).

Read Yuri’s Annotated Articles

Tune in. Meet Yuri Gurevich.