Jump to Content
Gogul Balakrishnan

Gogul Balakrishnan

At Google, I use program analysis to improve the security and privacy of software. Currently, I am working on the Raksha project with a focus on dataflow analysis for privacy. Until recently, I was a part of the Swift for Tensor Flow project. Before that I led a team that focuses on static program analysis of Android Apps to detect vulnerabilities and malware.

Before Google, I was an engineer at Facebook, and a research staff member in the Systems Analysis and Verification (SAV) group at NEC Laboratories America, Inc., Princeton, NJ. I got my Ph.D in Computer Science from the University of Wisconsin-Madison (personal page). I went to the College of Engineering, Guindy for my undergraduate degree. I am from Pollachi, a small and lively town in Tamil Nadu, India. Of late, I have taken a liking to photography.

Authored Publications
Google Publications
Other Publications
Sort By
  • Title
  • Title, descending
  • Year
  • Year, descending
    Learning and Evaluating Contextual Embedding of Source Code
    Aditya Kanade
    International Conference on Machine Learning (ICML), Vienna, Austria (2020)
    Preview abstract Recent research has achieved impressive results on understanding and improving source code by building up on machine-learning techniques developed for natural languages. A significant advancement in natural-language understanding has come with the development of pre-trained contextual embeddings, such as BERT, which can be fine-tuned for downstream tasks with less labeled data and training budget, while achieving better accuracies. However, there is no attempt yet to obtain a high-quality contextual embedding of source code, and to evaluate it on multiple program-understanding tasks simultaneously; that is the gap that this paper aims to mitigate. Specifically, first, we curate a massive, deduplicated corpus of 6M Python files from GitHub, which we use to pre-train CuBERT, an open-sourced code-understanding BERT model; and, second, we create an open-sourced benchmark that comprises five classification tasks and one program-repair task, akin to code-understanding tasks proposed in the literature before. We fine-tune CuBERT on our benchmark tasks, and compare the resulting models to different variants of Word2Vec token embeddings, BiLSTM and Transformer models, as well as published state-of-the-art models, showing that CuBERT outperforms them all, even with shorter training, and with fewer labeled examples. Future work on source-code embedding can benefit from reusing our benchmark, and comparing against CuBERT models as a strong baseline. View details
    ARC++: Effective Typestate and Lifetime Dependency Analysis
    Xusheng Xiao
    Naoto Maeda
    Aarti Gupta
    Deepak Chhetri
    ISSTA, ACM (2014), pp. 116-126
    Preview
    Scalable and scope-bounded software verification in Varvel
    Aarti Gupta
    Sriram Sankaranarayanan
    Naoto Maeda
    Takashi Imoto
    Rakesh Pothengil
    Mustafa Hussain
    Automated Software Engineering (2014)
    Feedback-directed unit test generation for C/C++ using concolic execution
    Pranav Garg
    Naoto Maeda
    Aarti Gupta
    ICSE (2013), pp. 132-141
    Donut Domains: Efficient Non-convex Domains for Abstract Interpretation
    Khalil Ghorbal
    Naoto Maeda
    Aarti Gupta
    VMCAI (2012), pp. 235-250
    Object Model Construction for Inheritance in C++ and Its Applications to Program Analysis
    Jing Yang
    Naoto Maeda
    Aarti Gupta
    Nishant Sinha
    Sriram Sankaranarayanan
    Naveen Sharma
    CC (2012), pp. 144-164
    Modeling and Analyzing the Interaction of C and C++ Strings
    Naoto Maeda
    Sriram Sankaranarayanan
    Aarti Gupta
    Rakesh Pothengil
    FoVeOOS (2011), pp. 67-85
    DC2: A framework for scalable, scope-bounded software verification
    Aarti Gupta
    Sriram Sankaranarayanan
    Naoto Maeda
    Hiroki Tokuoka
    Takashi Imoto
    Yoshiaki Miyazaki
    ASE (2011), pp. 133-142
    Interprocedural Exception Analysis for C++
    Prakash Prabhu
    Naoto Maeda
    Aarti Gupta
    ECOOP (2011), pp. 583-608
    Scalable and precise program analysis at NEC
    Malay K. Ganai
    Aarti Gupta
    Vineet Kahlon
    Weihong Li
    Naoto Maeda
    Nadia Papakonstantinou
    Sriram Sankaranarayanan
    Nishant Sinha
    Chao Wang
    FMCAD (2010), pp. 273-274
    Refining the control structure of loops using static analysis
    Sriram Sankaranarayanan
    Aarti Gupta
    EMSOFT (2009), pp. 49-58
    SLR: Path-Sensitive Analysis through Infeasible-Path Detection and Syntactic Language Refinement
    Sriram Sankaranarayanan
    Ou Wei
    Aarti Gupta
    SAS (2008), pp. 238-254