Our research
##### Content type

+
Events (326)

Groups (147)
+
News (2391)

People (836)

Projects (976)
+
Publications (11535)
+
Videos (4566)
##### Research areas
Communication and collaboration47188 (169)
Computational linguistics47189 (136)
Computational sciences47190 (147)
Computer systems and networking47191 (565)
Economics47192 (79)
Education47193 (61)
Gaming47194 (60)
Graphics and multimedia47195 (174)
Hardware and devices47196 (160)
Health and well-being47197 (54)
Human-computer interaction47198 (646)
Information retrieval and management47199 (535)
Machine learning47200 (570)
Security and privacy47202 (207)
Social science47203 (207)
Software development47204 (449)
Theory47205 (196)
1–25 of 449
Sort
Show 25 | 50 | 100
1234567Next
Geographically distributed systems often rely on replicated eventually consistent data stores to achieve availability and performance. To resolve conflicting updates at different replicas, researchers and practitioners have proposed specialized consistency protocols, called replicated data types, that implement objects such as registers, counters, sets or lists. Reasoning about replicated data types has however not been on par with comparable work on abstract data types and concurrent data types, lacking...
##### Publication details
Date: 22 January 2014
Type: Inproceedings
Publisher: ACM SIGPLAN
It is often the case that increasing the precision of a program analysis leads to worse results. It is our thesis that this phenomenon is the result of fundamental limits on the ability to use precise abstract domains as the basis for inferring strong invariants of programs. We show that bias-variance tradeoff, an idea from learning theory, can be used to explain why more precise abstractions do not necessarily lead to better results and also provides practical techniques for coping with such limitations....
##### Publication details
Date: 1 January 2014
Type: Inproceedings
Publisher: ACM
Symbolic Automata extend classical automata by using symbolic alphabets instead of finite ones. Most of the classical automata algorithms rely on the alphabet being finite, and generalizing them to the symbolic setting is not a trivial task. In this paper we study the problem of minimizing symbolic automata. We formally define and prove the basic properties of minimality in the symbolic setting, and lift classical minimization algorithms (Huffman-Moore’s and Hopcroft’s algorithms) to symbolic automata....
##### Publication details
Date: 1 January 2014
Type: Inproceedings
Publisher: ACM
The program verification tool SLAyer uses abstractions during analysis and relies on a solver for reachability to refine spurious counterexamples. In this context, we extract a reachability benchmark suite and evaluate methods for encoding reachability properties with heaps using Horn clauses over linear arithmetic. The benchmarks are particularly challenging and we describe and evaluate pre-processing transformations that are shown to have significant effect.
##### Publication details
Date: 15 December 2013
Type: Inproceedings
Publisher: Springer
Contracts are a simple yet very powerful form of specification. They consists of method preconditions and postconditions, of object invariants, and of assertions and loop invariants. Ideally, the programmer will annotate all of her code with contracts which are mechanically checked by some static analysis tool. In practice, programmers only write few contracts, mainly preconditions and some object invariants. The reason for that is that other contracts are clear from the code'': Programmers do not like...
##### Publication details
Date: 1 November 2013
Type: Inproceedings
Publisher: ACM
As online services become more and more popular, incident management has become a critical task that aims to minimize the service downtime and to ensure high quality of the provided services. In practice, incident management is conducted through analyzing a huge amount of monitoring data collected at runtime of a service. Such data-driven incident management faces several significant challenges such as the large data scale, complex problem space, and incomplete ...
##### Publication details
Date: 1 November 2013
Type: Inproceedings
Publisher: 28th IEEE/ACM International Conference on Automated Software Engineering
In this tutorial I will introduce CodeContracts, the .NET solution for contract specifications. CodeContracts consist of a language and compiler-agnostic API to express contracts, and of a set of tools to automatically generate the documentation and to perform dynamic and static verification. The CodeContracts API is part of .NET since v4, the tools are available for download on the Visual Studio Gallery. To date, they have been downloaded more than 100,000 times.
##### Publication details
Date: 1 November 2013
Type: Inproceedings
Publisher: ACM
In this paper, we present the results from two surveys related to data science applied to software engineering. The first survey solicited questions that software engineers would like to ask data scientists to investigate about software, software processes and practices, and about software engineers. Our analysis resulted in a list of 145 questions grouped into 12 categories. The second survey asked a different pool of software engineers to rate the 145 questions and identify the most important ones to...
##### Publication details
Date: 28 October 2013
Type: TechReport
Publisher: Microsoft Research
Number: MSR-TR-2013-111
We present a new semantics sensitive sampling algorithm for probabilistic programs, which are “usual” programs endowed with statements to sample from distributions, and condition executions based on observations. Since probabilistic programs are executable, sampling can be performed by repeatedly executing them. However, in the case of programs with a large number of random variables and observations, naive execution does not produce high quality samples, and it takes an intractable number of samples in...
##### Publication details
Date: 1 October 2013
Type: TechReport
Number: MSR-TR-2013-109
Three-valued models, in which properties of a system are either true, false or unknown, have recently been advocated as a better representation for reactive program abstractions generated by automatic techniques such as predicate abstraction. Indeed, for the same cost, model checking three-valued abstractions, also called may/must abstractions, can be used to both prove and disprove any temporal-logic property, whereas traditional conservative abstractions can only prove universal properties. Also,...
##### Publication details
Date: 1 October 2013
Type: TechReport
Publisher: NATO
Number: MSR-TR-2013-104
A great deal of effort has been spent on both trying to specify software requirements and on ensuring that software actually matches these requirements. A wide range of techniques that includes theorem proving, model checking, type-based analysis, static analysis, runtime monitoring, and the like have been proposed. However, in many areas adoption of these techniques remains spotty. In fact, obtaining a specification or a precise notion of correctness is in many cases quite elusive. For many tasks, even...
##### Publication details
Date: 26 September 2013
Type: TechReport
Number: MSR-TR-2013-94
In order to understand the questions that software engineers would like to ask data scientists about software, the software process, and about software engineering practices, we conducted two surveys: the first survey solicited questions and the second survey ranked a set of questions. Our analysis resulted in a catalog of 145 questions grouped into 12 categories as well as a ranking of the importance of each question. This technical report contains the survey text as well as the complete list of 145...
##### Publication details
Date: 14 September 2013
Type: TechReport
Publisher: Microsoft Research
Number: MSR-TR-2013-84
We present a method for the analysis of functional properties of large-scale DNA strand displacement (DSD) circuits based on Satisfiability Modulo Theories that enables us to prove the functional correctness of DNA circuit designs for arbitrary inputs, and provides significantly improved scalability and expressivity over existing methods. We implement this method as an extension to the Visual DSD tool, and use it to formalize the behavior of a 4-bit square root circuit, together with the components used...
##### Publication details
Date: 1 September 2013
Type: Inproceedings
Publisher: Springer
Program verifiers that attempt to verify programs automatically pose the verification problem as the decision problem: "Does there exist a proof that establishes the absence of errors?" In this paper, we argue that program verification should instead be posed as the following decision problem: "Does there exist an execution that establishes the presence of an error?" We formalize the latter problem as Reachability Modulo Theories (RMT) using an imperative programming language parameterized by a...
##### Publication details
Date: 1 September 2013
Type: Inproceedings
Note: This is an updated article: a previous version of this article contained a wrong lemma and corresponding mistakes in various proofs of Section 5. We propose a programming model where effects are treated in a disciplined way, and where the potential side-effects of a function are apparent in its type signature. The type and effect of expressions can also be inferred automatically, and we describe a polymorphic type inference system based on Hindley-Milner style inference. A novel feature is that we...
##### Publication details
Date: 28 August 2013
Type: TechReport
Number: MSR-TR-2013-79
We present a new algorithm for Bayesian inference over probabilistic programs, based on data flow analysis techniques from the program analysis community. Unlike existing techniques for Bayesian inference on probabilistic programs, our data flow analysis algorithm is able to perform inference directly on probabilistic programs with loops. Even for loop-free programs, we show that data flow analysis offers better precision and better performance benefits over existing techniques. We also describe heuristics...
##### Publication details
Date: 1 August 2013
Type: Inproceedings
Publisher: ACM
Static analysis tools have experienced a dichotomy over the span of the last decade. They have proven themselves to be useful in many domains, but at the same time have not (in general) experienced any notable concrete integration into a development environment. This is partly due to the inherent complexity of the tools themselves, as well as due to other intangible factors. Such factors usually tend to include questions about the return on investment of the tool and the value the tool provides in a...
##### Publication details
Date: 1 August 2013
Type: Inproceedings
Publisher: ACM
We show how a test suite for a sequential program can be profitably used to construct a termination proof. In particular,we describe an algorithm TpT for constructing a termination proof of a program based on information derived from testing it. TpT iteratively calls two phases: (a) an infer phase, and (b) a validate phase. In the infer phase, machine learning, in particular, linear regression is used to efficiently compute a candidate loop bound for every loop in the program. These loop bounds are...
##### Publication details
Date: 1 August 2013
Type: Inproceedings
Publisher: ACM
Model checking and testing have a lot in common. Over the last two decades, significant progress has been made on how to broaden the scope of model checking from finite-state abstractions to actual software implementations. One way to do this consists of adapting model checking into a form of systematic testing that is applicable to industrial-size software. This chapter presents an overview of this strand of software model checking.
##### Publication details
Date: 1 August 2013
Type: TechReport
Number: MSR-TR-2013-80
Previous versions of a program can be a powerful enabler for program analysis by defining new relative specifications and making the results of current program analysis more relevant. In this paper, we describe the approach of {\it differential assertion checking} (DAC) for comparing versions of a program with respect to a set of assertions. DAC provides a natural way to write relative specifications over two programs. We introduce a novel modular approach to DAC by reducing it to single program checking...
##### Publication details
Date: 1 August 2013
Type: Inproceedings
Publisher: ACM
This paper describes a cross-version compiler validator and measures its effectiveness on the CLR JIT compiler. The validator checks for semantically equivalent assembly language output from various versions of the compiler, including versions across a seven-month time period, across two architectures (x86 and ARM), across two compilation scenarios (JIT and MDIL), and across optimizations levels. For month-to-month comparisons, the validator achieves a false alarm rate of just 2.2%. To help understand...
##### Publication details
Date: 1 August 2013
Type: Inproceedings
Publisher: ACM
One of the goals of software engineering research is to achieve generality: Are the phenomena found in a few projects reflective of others? Will a technique perform as well on projects other than the projects it is evaluated on? While it is common sense to select a sample that is representative of a population, the importance of diversity is often overlooked yet as important. In this paper, we combine ideas from representativeness and diversity and introduce a measure called sample coverage, defined as the...
##### Publication details
Date: 1 August 2013
Type: Inproceedings
Publisher: ACM
Program verification relies heavily on induction, which has received decades of attention in mechanical verification tools. When program correctness is best described by infinite structures, program verification is usefully aided also by co-induction, which has not benefited from the same degree of tool support. Co-induction is complicated to work with in interactive proof assistants and has had no previous support in dedicated program verifiers. This paper shows that an SMT-based program verifier can...
##### Publication details
Date: 12 July 2013
Type: TechReport
Publisher: Microsoft Research
Number: MSR-TR-2013-49
Symbolic Finite Transducers augment classic transducers with symbolic alphabets represented as parametric theories. Such extension enables succinctness and the use of potentially infinite alphabets while preserving closure and decidability properties. Extended Symbolic Finite Transducers further extend these objects by allowing transitions to read consecutive input elements in a single step. While when the alphabet is finite this extension does not add expressiveness, it does so when the alphabet is...
##### Publication details
Date: 1 July 2013
Type: Inproceedings
Publisher: Springer
Symbolic automata theory lifts classical automata theory to rich alphabet theories. It does so by replacing an explicit alphabet with an alphabet described implicitly by a Boolean algebra. How does this lifting affect the basic algorithms that lay the foundation for modern automata theory and what is the incentive for doing this? We investigate these questions here. In our approach we use state-of-the-art constraint solving techniques for automata analysis that are both expressive and efficient, even for...
##### Publication details
Date: 1 July 2013
Type: Inproceedings
Publisher: Springer
1–25 of 449
Sort
Show 25 | 50 | 100
1234567Next
> Our research