Our research
Content type
+
Downloads (436)
+
Events (392)
 
Groups (149)
+
News (2566)
 
People (818)
 
Projects (1051)
+
Publications (11872)
+
Videos (5137)
Labs
Research areas
Algorithms and theory47205 (247)
Communication and collaboration47188 (182)
Computational linguistics47189 (173)
Computational sciences47190 (181)
Computer systems and networking47191 (659)
Computer vision208594 (32)
Data mining and data management208595 (51)
Economics and computation47192 (93)
Education47193 (78)
Gaming47194 (67)
Graphics and multimedia47195 (191)
Hardware and devices47196 (189)
Health and well-being47197 (69)
Human-computer interaction47198 (764)
Machine learning and intelligence47200 (697)
Mobile computing208596 (25)
Quantum computing208597 (8)
Search, information retrieval, and knowledge management47199 (604)
Security and privacy47202 (256)
Social media208598 (13)
Social sciences47203 (228)
Software development, programming principles, tools, and languages47204 (529)
Speech recognition, synthesis, and dialog systems208599 (44)
Technology for emerging markets208600 (24)
1–25 of 529
Sort
Show 25 | 50 | 100
1234567Next 
Akash Lal and Shaz Qadeer

he application of software-verification technology towards building realistic bug-finding tools requires working through several precision-scalability tradeoffs. For instance, a critical aspect while dealing with C programs is to formally define the treatment of pointers and the heap (usually termed as the “memory model”). A machine-level modeling is often intractable, whereas one that leverages high-level information (such as types) can be inaccurate. Another tradeoff is modeling integer...

Publication details
Date: 1 November 2014
Type: Inproceeding
Sean McDirmid and Jonathan Edwards

Most languages expose the computer’s ability to globally read and write memory at any time. Programmers must then choreograph control flow so all reads and writes occur in correct relative orders, which can be difficult particularly when dealing with initialization, reactivity, and concurrency. Just as many languages now manage memory to unburden us from properly freeing memory, they should also manage time to automatically order memory accesses for us in the interests of...

Publication details
Date: 1 October 2014
Type: Inproceeding
Publisher: ACM
Akash Lal and Shaz Qadeer

A goal-directed search attempts to reveal only relevant information needed to establish reachability (or unreachability) of the goal from the initial state of the program. The further apart the goal is from the initial state, the harder it can get to establish what is relevant. This paper addresses this concern in the context of programs with assertions that may be nested deeply inside its call graph—thus, far away interprocedurally from main. We present a source-to-source transformation on...

Publication details
Date: 1 October 2014
Type: Inproceeding
Publisher: Formal Methods in Computer-Aided Design (FMCAD)
Chieh-Jan Mike Liang, Nicholas D. Lane, Niels Brouwers, Li Zhang, Börje F. Karlsson, Hao Liu, Yan Liu, Jun Tang, Xiang Shan, Ranveer Chandra, and Feng Zhao

Scalable and comprehensive testing of mobile apps is extremely challenging. Every test input needs to be run with a variety of contexts, such as: device heterogeneity, wireless network speeds, locations, and unpredictable sensor inputs. The range of values for each context, e.g. location, can be very large. In this paper we present Caiipa, a cloud service for testing apps over an expanded mobile context space in a scalable way. It incorporates key techniques to make app testing more tractable, including...

Publication details
Date: 1 September 2014
Type: Inproceeding
Publisher: ACM – Association for Computing Machinery
Chengnian SUN, Haidong Zhang, Jian-Guang LOU, Hongyu ZHANG, Qiang WANG, Siau-Cheng Khoo, and Dongmei ZHANG

In a bug tracking system (e.g. Bugzilla), the lifetime of a bug report usually consists of a sequence of revisions to itself, referred to as bug report evolution in this paper. Each revision contains changes to one or more fields in the bug report. Such evolution information is an essential indicator of software process maturity evaluation in an organization. Understanding bug report evolution is also useful for research on mining bug repositories. However, current bug tracking systems provide limited...

Publication details
Date: 1 September 2014
Type: Proceedings
Publisher: Choose...
Markus N. Rabe, Christoph M. Wintersteiger, Hillel Kugler, Boyan Yordanov, and Youssef Hamadi

We present a novel technique to analyze the bounded reachability probability problem for large Markov chains. The essential idea is to incrementally search for sets of paths that lead to the goal region and to choose the sets in a way that allows us to easily determine the probability mass they represent. To effectively analyze the system dynamics using an SMT solver, we employ a finite-precision abstraction on the Markov chain and a custom quantifier elimination strategy. Through experimental...

Publication details
Date: 1 September 2014
Type: Inproceeding
Publisher: Springer
Konstantin Korovin and Margus Veanes

Combining classical automated theorem proving techniques with theory based reasoning, such as satisfiability modulo theories, is a new approach to first-order reasoning modulo theories. Skolemization is a classical technique used to transform first-order formulas into equisatisfiable form. We show how Skolemization can benefit from a new satisfiability modulo theories based simplification technique of formulas called monadic decomposition. The technique can be used to transform a theory dependent...

Publication details
Date: 1 August 2014
Type: Inproceeding
Publisher: Springer
Chen LUO, Jian-Guang LOU, Qingwei LIN, Qiang FU, Rui DING, Dongmei ZHANG, and Zhe WANG
Publication details
Date: 1 August 2014
Type: Inproceeding
Publisher: ACM – Association for Computing Machinery
Gordon Stewart, Mahanth Gowda, Geoffrey Mainland, Bozidar Radunovic, Dimitrios Vytiniotis, and Doug Patterson

Software-defined radios (SDR) have the potential to bring major innovation in wireless networking design. However, their impact so far has been limited due to complex programming tools. Most of the existing tools are either too slow to achieve the full line speeds of contemporary wireless PHYs or are too complex to master. In this demo we present our novel SDR programming environment called Ziria. Ziria consists of a novel programming language and an optimizing compiler. The compiler is able to...

Publication details
Date: 1 August 2014
Type: Inproceeding
Publisher: ACM – Association for Computing Machinery
Karthick Jayaraman, Nikolaj Bjrner, Geoff Outhred, and Charlie Kaufman

Network connectivity policies are crucial for assuring the security and availability of large-scale datacenter. Managing these policies is fraught with complexity and operator errors. The difficulties are exacerbated when deploying large scale offerings of public cloud services where multiple tenants are hosted within customized isolation boundaries. In these large-scale settings it is impractical to depend on human effort or trial and error to maintain the correctness and consistency of...

Publication details
Date: 26 July 2014
Type: Technical report
Publisher: Microsoft Research
Number: MSR-TR-2014-102
Miryung Kim, Thomas Zimmermann, and Nachiappan Nagappan

It is widely believed that refactoring improves software quality and developer productivity. However, few empirical studies quantitatively assess refactoring benefits or investigate developers' perception towards these benefits. This paper presents a field study of refactoring benefits and challenges at Microsoft through three complementary study methods: a survey, semi-structured interviews with professional software engineers, and quantitative analysis of version history data. Our survey finds that...

Publication details
Date: 1 July 2014
Type: Article
Publisher: IEEE – Institute of Electrical and Electronics Engineers
Number: 7
Margus Veanes, Nikolaj Bjorner, Lev Nachmanson, and Sergey Bereg

Monadic predicates play a prominent role in many decidable cases, including decision procedures for symbolic automata. We are here interested in discovering whether a formula can be rewritten into a Boolean combination of monadic predicates. Our setting is quantifier-free formulas over a decidable background theory, such as arithmetic and we here develop a semi-decision procedure for extracting a monadic decomposition of a formula when it exists.

Publication details
Date: 1 July 2014
Type: Inproceeding
Publisher: Springer
Aseem Rastogi, Nikhil Swamy, Cedric Fournet, Gavin Bierman, and Panagiotis Vekris

Current proposals for adding gradual typing to JavaScript, such as Closure, TypeScript and Dart, forgo soundness to deal with issues of scale, code reuse, and popular programming patterns.

We show how to address these issues in practice while retaining soundness. We design and implement a new gradual type system, prototyped for expediency as a ‘Safe’ compilation mode for TypeScript.1 Our compiler achieves soundness by enforcing stricter static checks and embedding residual runtime checks in...

Publication details
Date: 1 July 2014
Type: Technical report
Publisher: Choose...
Number: MSR-TR-2014-99
Aditya V. Nori, Chung-Kil Hur, Sriram K. Rajamani, and Selva Samuel

We present a new Markov Chain Monte Carlo (MCMC) sampling algorithm for probabilistic programs. Our approach and tool, called R2, has the unique feature of employing program analysis in order to improve the efficiency of MCMC sampling. Given an input program P, R2 propagates observations in P backwards to obtain a semantically equivalent program P0 in which every probabilistic assignment is immediately followed by an observe statement. Inference is performed by a suitably modified version of the...

Publication details
Date: 1 July 2014
Type: Inproceeding
Publisher: AAAI
Nicola Paoletti, Boyan Yordanov, Youssef Hamadi, Christoph M. Wintersteiger, and Hillel Kugler

Deciphering the developmental program of an embryo is a fundamental question in biology. Landmark papers [9,10] have recently shown how computational models of gene regulatory networks provide system-level causal understanding of the developmental processes of the sea urchin, and enable powerful predictive capabilities. A crucial aspect of the work is empirically deriving plausible models that explain all the known experimental data, a task that becomes infeasible in practice due to the inherent...

Publication details
Date: 1 July 2014
Type: Inproceeding
Publisher: Springer
Aleksandar Zeljic, Christoph M. Wintersteiger, and Philipp Rummer

We consider the problem of efficiently computing models for satisfiable constraints, in the presence of complex background theories such as oating-point arithmetic. Model construction has various applications, for instance the automatic generation of test inputs. It is well-known that naive encoding of constraints into simpler theories (for instance, bit-vectors or propositional logic) can lead to a drastic increase in size, and be unsatisfactory in terms of memory and runtime needed for model...

Publication details
Date: 1 July 2014
Type: Inproceeding
Publisher: Springer
Lenin Ravindranath, Sharad Agarwal, Jitu Padhye, and Chris Riederer

Generations of computer programmers are taught to prefetch network objects in computer science classes. In practice, prefetching can be harmful to the user's wallet when she is on a limited or pay-per-byte cellular data plan. Many popular, professionally-written smartphone apps today prefetch large amounts of network data that the typical user may never use. We present Procrastinator, which automatically decides when to fetch each network object that an app requests. This decision is made based on...

Publication details
Date: 16 June 2014
Type: Proceedings
Publisher: ACM International Conference on Mobile Systems, Applications, and Services
Andrew Begel, Thomas Fritz, Sebastian Mueller, Serap Yigit-Elliott, and Manuela Zueger

Software developers make programming mistakes that cause serious bugs for their customers. Existing work to detect problematic software focuses mainly on post hoc identification of correlations between bug fixes and code. We propose a new approach to address this problem — detect when software developers are experiencing difficulty while they work on their programming tasks, and stop them before they can introduce bugs into the code. In this paper, we investigate a novel approach to classify the...

Publication details
Date: 4 June 2014
Type: Inproceeding
Publisher: International Conference on Software Engineering
Marcelo Sousa, Isil Dillig, Dimitrios Vytiniotis, Thomas Dillig, and Christos Gkantsidis
Publication details
Date: 1 June 2014
Type: Inproceeding
Publisher: ACM
Kivanc Muslu, Christian Bird, Nachiappan Nagappan, and Jacek Czerwonka

In recent years, software development has started to transition from centralized version control systems (CVCSs) to decentralized (DVCSs) version control systems. Although CVCSs and DVCSs have been studied extensively, there has been very little research on the transition across these systems. This paper investigates the transition process, from the developer’s point of view, in a large company. The paper captures the transition reasons, barriers, and results through ten developer interviews, and...

Publication details
Date: 1 June 2014
Type: Inproceeding
Publisher: ACM
Tian Xiao, Zhenyu Guo, Hucheng Zhou, Jiaxing Zhang, Xu Zhao, Chencheng Ye, Xi Wang, Wei Lin, Wenguang Chen, and Lidong Zhou

I/O reduction has been a major focus in optimizing dataparallel programs for big-data processing. While the current state-of-the-art techniques use static program analysis to reduce I/O, Cybertron proposes a new direction that incorporates runtime mechanisms to push the limit further on I/O reduction. In particular, Cybertron tracks how data is used in the computation accurately at runtime to filter unused data at finer granularity dynamically, beyond what current staticanalysis based mechanisms are...

Publication details
Date: 1 June 2014
Type: Inproceeding
Publisher: OOPSLA
Francesco Logozzo, Shuvendu Lahiri, Manuel Fahndrich, and Sam Blackshear

We introduce Verification Modulo Versions (VMV), a new static analysis technique for reducing the number of alarms reported by static verifiers while providing sound semantic guarantees. First, VMV extracts semantic environment conditions from a base program P. Environmental conditions can either be sufficient conditions (implying the safety of P) or necessary conditions (implied by the safety of P). Then, VMV instruments a new version of the program, P', with the inferred conditions. We prove that we...

Publication details
Date: 1 June 2014
Type: Inproceeding
Publisher: ACM SIGPLAN
Nikolai Tillmann, Michal Moskal, Peli de Halleux, Sebastian Burckhardt, Tom Ball, and Judith Bishop

We are experiencing a technology shift: Powerful and easy-to-use mobile devices like smartphones and tablets are becoming more prevalent than traditional PCs and laptops. Mobile devices are going to be the first and, in less developed countries, possibly the only computing devices which virtually all people will own and carry with them at all times. In this tutorial, participants will learn about developing software directly on their mobile devices. The tutorial is based on TouchDevelop, a modern...

Publication details
Date: 1 June 2014
Type: Proceedings
Adrian Sampson, Pavel Panchekha, Todd Mytkowicz, Kathryn S. McKinley, Dan Grossman, and Luis Ceze

Traditional assertions express correctness properties that must hold on every program execution. However, many applications have probabilistic outcomes and consequently their correctness properties are also probabilistic (e.g., they identify faces in images, consume sensor data, or run on unreliable hardware). Traditional assertions do not capture these correctness properties. This paper proposes that programmers express probabilistic correctness properties with probabilistic assertions and describes a...

Publication details
Date: 1 June 2014
Type: Inproceeding
Publisher: Programming Language Design and Implementation (PLDI)
Christian Bird, Venkatesh-Prasad Ranganath, Thomas Zimmermann, Nachiappan Nagappan, and Andreas Zeller

Reliability of software depends not only on intrinsic factors such as its code properties, but also on extrinsic factors—that is, the properties of the environment it operates in. In an empirical study of more than 200,000 Windows users, we found that the reliability of individual applications is related to whether and which other applications are installed: While games and file-sharing applications tend to decrease the reliability of other applications, security applications tend to increase it....

Publication details
Date: 1 June 2014
Type: Inproceeding
Publisher: ACM
1–25 of 529
Sort
Show 25 | 50 | 100
1234567Next 
> Our research