• Checking Compatability of Programs on Shared Data 

      Pranavadatta, DN (2018-07-28)
      A large software system is built by composing multiple programs, possibly developed independently. The component programs communicate by sharing data. Data sharing involves creation of instances of the shared data by one ...
    • CodeQueries: Benchmarking Query Answering over Source Code 

      Sahu, Surya Prakash
      Software developers often make queries about the security, performance effectiveness, and maintainability of their code. Through an iterative debugging process, developers analyze the code to find answers to these ...
    • Concurrency Analysis and Mining Techniques for APIs 

      Santhiar, Anirudh (2018-06-13)
      Software components expose Application Programming Interfaces (APIs) as a means to access their functionality, and facilitate reuse. Developers use APIs supplied by programming languages to access the core data structures ...
    • Data Structures and Algorithms to Analyze Concurrency in Android Applications 

      Pallavi Maiya, H P
      Android is a popular mobile operating system, providing a rich ecosystem for the development of applications which run on the Android platform. Entities such as the device user, network and sensors interact continuously ...
    • Deep Learning for Bug Localization and Program Repair 

      Gupta, Rahul
      In this thesis, we focus on the problem of program debugging and present novel deep learning based techniques for bug-localization and program repair. Deep learning techniques have been successfully applied to a variety ...
    • A Fine-Grained Dynamic Information Flow Analysis for Android Apps 

      Sankaran, Shyam (2018-08-20)
      Android has been steadily gaining popularity ever since its launch in 2008. One of the major factors for this is the easy availability of a large variety of apps. They range from simple apps such as calculator apps to apps ...
    • Model Extraction Defense using Modified Variational Autoencoder 

      Gupta, Yash
      Machine Learning as a Service (MLaaS) exposes machine learning (ML) models that are trained on confidential datasets to users in the form of an Application Programming Interface (API). Since the MLaaS models are deployed ...
    • Neural Approaches for Natural Language Query Answering over Source Code 

      Mandal, Madhurima
      During software development, developers need to ensure that the developed code is bug-free and the best coding practices are followed during the code development process. To guarantee this, the developers require answers ...
    • P3 : An Effective Technique for Partitioned Path Profiling 

      Afraz, Mohammed
      Acyclic path profile is an abstraction of dynamic control flow paths of procedures and has been found to be useful in a wide spectrum of activities. Unfortunately, the runtime overhead of obtaining such a profile can be ...
    • Program Repair by Automated Generation of Hints 

      Kaleeswaran, Shalini
      Programming has become an important skill in today's technology-driven world. It is a complex activity because of which programmers make mistakes in their software. Student programmers make mistakes in their programs due ...
    • Transducer-based Algorithmic Verification of Retransmission Protocols over Noisy Channels 

      Thakkar, Jay (2018-04-05)
      Unreliable communication channels are a practical reality. They add to the complexity of protocol design and verification. In this work, we consider noisy channels which can corrupt messages. We present an approach to model ...