Logging is very important for software system development and management. It is crucial to avoid logging too little or too much. To achieve so, developers need to make informed decisions on where to log and what to log in their logging practices during development. However, there exists no work on studying such logging practices in industry or helping developers make informed decisions. In this paper, we systematically study the logging practices of developers.
This project targets at providing code suggestions based on programming context. The suggested code represents usages of an API method.
-- Making it easy for app developers of all levels to test their apps under real-world contexts on the cloud or real devices --
Big Sky is a web service for exploratory data analysis.
R2 is a research project within the Programming Languages and Tools group at Microsoft Research India on probabilistic programming. Our goal is to build a user friendly and scalable probabilistic programming system by employing powerful techniques from language design, program analysis and verification.
A domain specific language for writing and analyzing string encoders and decoders.
There is some evidence that a gap exists between the neural network research and software development communities. Source code examples available to software developers are often incomplete, misleading, or just plain incorrect. The goal of this project is to bridge that gap by providing a series of high quality demo programs. The basic C# demo can be accessed from: http://research.microsoft.com/NeuralNetworks/BackPropDemo.aspx
Pex4Fun is a browser-based teaching and learning environment targeting teachers and students for introductory to advanced programming or software engineering courses. At the core of the platform is an automated grading engine based on symbolic execution. In Pex4Fun, teachers can create virtual classrooms, customize existing courses, and publish new learning material including learning games.
The Q program verifier is a collection of front-ends that compile different source languages to an intermediate representation (IR), and back-ends that perform verification on the IR. Together, Q is a verification platform that hosts multiple tools and technologies for analyzing properties of programs.
Automatic program verification tool for proving termination and other liveness properties
Code Digger is a Microsoft® Visual Studio® 2012 extension that analyzes possible execution paths through your .NET code. The result is a table where each row shows a unique behavior of your code. The table helps you understand the behavior of the code, and it may also uncover hidden bugs.
Intelligent Tutoring Systems (ITS) can significantly enhance the educational experience, both in the classroom and online. A key aspect of ITS is the ability to automatically generate problems of a certain difficulty level and that exercise use of certain concepts. This can help avoid copyright or plagiarism issues and help generate personalized workflows. This project develops technologies for problem generation in various subject domains including math, logic, and even language learning.
Programming models such as HIVE and DryadLINQ provide programmers with simple declarative abstractions for writing data intensive computations that can run on a large cluster of machines. However, this level of abstraction comes at a cost – the inability to understand, predict and debug performance. This project aims at building performance models for predicting the performance of the query while identifying bottleneck resources and computations.
The goal of the Dandelion project is to provide simple programming abstractions and runtime supports for programming heterogeneous systems. Dandelion supports a uniform sequential programming model across a diverse array of execution contexts, including CPU, GPU, FPGA, and the cloud.
Labs: Silicon Valley
Efficient tools are indispensable in the battle against software bugs. In this project, we aims to improve the debugging productivity that targets different phases of an interactive and iterative debugging session.
A large number of academic research projects have been carried out on empirical studies or tool supports for detecting code clones. However, there are few examples of the practical adoption of these tools. In our unique approach to code clone detection, we focused on high tunability, scalability, compatibility, and explorability when developing our code clone detection algorithm and system. Our technology has been successfully used inside Microsoft and been integrated into Visual Studio 2012.
F# brings you type safe, succinct, efficient, and expressive functional programming language on the Microsoft .NET platform. This simple and pragmatic language has particular strengths in data-oriented programming, parallel I/O programming, parallel CPU programming, scripting, and algorithmic development. It enables you to access a huge library and tools base and comes with a powerful set of Microsoft Visual Studio development tools.
We develop and accelerate better, predictive, conservation science, tools and technologies in areas of societal importance. We aim to provide scientific support for effective environmental solutions for key decision makers, from the boardroom to governments makers. We are committed to leveraging the unique position our group occupies to influence how individuals and nations approach and tackle issues such as natural resource scarcity and biodiversity loss.
Try F# makes it easy to learn the F# programming language, create solutions to complex problems, and share code via a browser-based development environment. Because it's accessible via the web, Windows and Mac programmers can use Try F# to experience F# 3.0’s unique information-rich programming features for Big Data analytics and solve complex problems efficiently.
The UP-Miner project targets at mining succinct and high covering API usage patterns from source code.
Enabling Microsoft develop software at the speed of thought. Creating a future where Microsoft's software engineering systems are considered best-in-class industry wide.
Visual designer for Mercury - PipeDream lets users build applets without programming using the Mercury library, property settings, and data and event flow between components.
"Components for End Users" - Visualization, Data, and UI components that users can put together without needing to write code. Mercury comes with over 200 prebuilt components and hundreds of samples applets, including the Mercury IDE (shown here).
A developer dashboard showing workitems and people.
An HTML5-based charting and data visualization library, container 30 plot types, animation, and interaction. Includes support for high data scalability using WebGL.