Skip to main content

GiHong Heo

Korea Advanced Institute of Science and Technology · Computer Science

About the Lab

Professor GiHong Heo's research lab specializes in program analysis, synthesis, and optimization, focusing on building scalable, precise, and practical static analysis techniques for real-world software systems. The lab explores innovative approaches to reduce software bloat, enhance program synthesis through probabilistic modeling and transfer learning, and improve the accuracy of static analyzers by selectively applying context-sensitivity or controlled unsoundness. A central theme is balancing precision and scalability while minimizing false positives through feedback-driven learning and anomaly detection.

program analysisprogram synthesisstatic analysissoftware optimizationfeedback-directed analysis

Research Overview

Papers
45
Total Citations
868
Papers (5y)
17
Primary Field
Computer Science

Research Output Trend

Figures are computed from collected data and may differ slightly.

Publications per year (5y)
17total
2021
2022
2024
2025
2026
Citations per year (5y)
86total
20212022202420252026

Selected Papers

15
1
Article|124 citations·2018
Effective Program Debloating via Reinforcement Learning
Kihong Heo, Woosuk Lee, Pardis Pashakhanloo, Mayur Naik
OA

Prevalent software engineering practices such as code reuse and the "one-size-fits-all" methodology have contributed to significant and widespread increases in the size and complexity of software. The resulting software bloat has led to decreased performance and increased security vulnerabilities. We propose a system called Chisel to enable programmers to effectively customize and debloat programs. Chisel takes as input a program to be debloated and a high-level specification of its desired func

Signal ProcessingComputer Science
2
Article|87 citations·2012
Design and implementation of sparse global analyses for C-like languages
Hakjoo Oh, Kihong Heo, Wonchan Lee, Woosuk Lee, Kwangkeun Yi

In this article we present a general method for achieving global static analyzers that are precise, sound, yet also scalable. Our method generalizes the sparse analysis techniques on top of the abstract interpretation framework to support relational as well as non-relational semantics properties for C-like languages. We first use the abstract interpretation framework to have a global static analyzer whose scalability is unattended. Upon this underlying sound static analyzer, we add our generaliz

Artificial IntelligenceComputer Science
3
Article|79 citations·2018
Accelerating search-based program synthesis using learned probabilistic models
Woosuk Lee, Kihong Heo, Rajeev Alur, Mayur Naik
OA

A key challenge in program synthesis concerns how to efficiently search for the desired program in the space of possible programs. We propose a general approach to accelerate search-based program synthesis by biasing the search towards likely programs. Our approach targets a standard formulation, syntax-guided synthesis (SyGuS), by extending the grammar of possible programs with a probabilistic model dictating the likelihood of each program. We develop a weighted search algorithm to efficiently

Information SystemsComputer Science
4
Article|78 citations·2014
Selective context-sensitivity guided by impact pre-analysis
Hakjoo Oh, Wonchan Lee, Kihong Heo, Hongseok Yang, Kwangkeun Yi

We present a method for selectively applying context-sensitivity during interprocedural program analysis. Our method applies context-sensitivity only when and where doing so is likely to improve the precision that matters for resolving given queries. The idea is to use a pre-analysis to estimate the impact of context-sensitivity on the main analysis's precision, and to use this information to find out when and where the main analysis should turn on or off its context-sensitivity. We formalize th

Computer Networks and CommunicationsComputer Science
5
Article|51 citations·2017
Machine-Learning-Guided Selectively Unsound Static Analysis
Kihong Heo, Hakjoo Oh, Kwangkeun Yi

We present a machine-learning-based technique for selectively applying unsoundness in static analysis. Existing bug-finding static analyzers are unsound in order to be precise and scalable in practice. However, they are uniformly unsound and hence at the risk of missing a large amount of real bugs. By being sound, we can improve the detectability of the analyzer but it often suffers from a large number of false alarms. Our approach aims to strike a balance between these two approaches by selecti

Signal ProcessingComputer Science
6
Article|48 citations·2018
User-guided program reasoning using Bayesian inference
Mukund Raghothaman, Sulekha Kulkarni, Kihong Heo, Mayur Naik
OA

Program analyses necessarily make approximations that often lead them to report true alarms interspersed with many false alarms. We propose a new approach to leverage user feedback to guide program analyses towards true alarms and away from false alarms. Our approach associates each alarm with a confidence value by performing Bayesian inference on a probabilistic model derived from the analysis rules. In each iteration, the user inspects the alarm with the highest confidence and labels its groun

Information SystemsComputer Science
7
Article|39 citations·2019
Synthesizing Datalog Programs using Numerical Relaxation
Xujie Si, Mukund Raghothaman, Kihong Heo, Mayur Naik
OA

The problem of learning logical rules from examples arises in diverse fields, including program synthesis, logic programming, and machine learning. Existing approaches either involve solving computationally difficult combinatorial problems, or performing parameter estimation in complex statistical models. In this paper, we present Difflog, a technique to extend the logic programming language Datalog to the continuous setting. By attaching real-valued weights to individual rules of a Datalog prog

Artificial IntelligenceComputer Science
8
Book Chapter|38 citations·2016
Learning a Variable-Clustering Strategy for Octagon from Labeled Data Generated by a Static Analysis
Kihong Heo, Hakjoo Oh, Hongseok Yang
SJR Q2Lecture notes in computer science
Information SystemsComputer Science
9
Article|27 citations·2018
Accelerating search-based program synthesis using learned probabilistic models
Woosuk Lee, Kihong Heo, Rajeev Alur, Mayur Naik
ACM SIGPLAN NoticesOA

A key challenge in program synthesis concerns how to efficiently search for the desired program in the space of possible programs. We propose a general approach to accelerate search-based program synthesis by biasing the search towards likely programs. Our approach targets a standard formulation, syntax-guided synthesis (SyGuS), by extending the grammar of possible programs with a probabilistic model dictating the likelihood of each program. We develop a weighted search algorithm to efficiently

Information SystemsComputer Science
10
Article|26 citations·2019
Continuously reasoning about programs using differential Bayesian inference
Kihong Heo, Mukund Raghothaman, Xujie Si, Mayur Naik
OA

Programs often evolve by continuously integrating changes from multiple programmers. The effective adoption of program analysis tools in this continuous integration setting is hindered by the need to only report alarms relevant to a particular program change. We present a probabilistic framework, Drake, to apply program analyses to continuously evolving programs. Drake is applicable to a broad range of analyses that are based on deductive reasoning. The key insight underlying Drake is to compute

Information SystemsComputer Science
11
Article|24 citations·2014
Selective context-sensitivity guided by impact pre-analysis
Hakjoo Oh, Wonchan Lee, Kihong Heo, Hongseok Yang, Kwangkeun Yi
ACM SIGPLAN Notices

We present a method for selectively applying context-sensitivity during interprocedural program analysis. Our method applies context-sensitivity only when and where doing so is likely to improve the precision that matters for resolving given queries. The idea is to use a pre-analysis to estimate the impact of context-sensitivity on the main analysis's precision, and to use this information to find out when and where the main analysis should turn on or off its context-sensitivity. We formalize th

SoftwareComputer Science
12
Article|23 citations·2017
Automatically generating features for learning program analysis heuristics for C-like languages
Kwonsoo Chae, Hakjoo Oh, Kihong Heo, Hongseok Yang
SJR Q1Proceedings of the ACM on Programming LanguagesOA

We present a technique for automatically generating features for data-driven program analyses. Recently data-driven approaches for building a program analysis have been developed, which mine existing codebases and automatically learn heuristics for finding a cost-effective abstraction for a given analysis task. Such approaches reduce the burden of the analysis designers, but they do not remove it completely; they still leave the nontrivial task of designing so called features to the hands of the

SoftwareComputer Science
13
Article|23 citations·2022
TRACER
Wooseok Kang, Byoung-Ho Son, Kihong Heo
Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security

Similar software vulnerabilities recur because developers reuse existing vulnerable code, or make similar mistakes when implementing the same logic. Recently, various analysis techniques have been proposed to find syntactically recurring vulnerabilities via code reuse. However, limited attention has been devoted to semantically recurring ones that share the same vulnerable behavior in different code structures. In this paper, we present a general analysis framework, called TRACER, for detecting

Information SystemsComputer Science
14
Article|22 citations·2014
Global Sparse Analysis Framework
Hakjoo Oh, Kihong Heo, Wonchan Lee, Woosuk Lee, Daejun Park, Jeehoon Kang, Kwangkeun Yi
SJR Q2ACM Transactions on Programming Languages and SystemsOA

In this article, we present a general method for achieving global static analyzers that are precise and sound, yet also scalable. Our method, on top of the abstract interpretation framework, is a general sparse analysis technique that supports relational as well as nonrelational semantics properties for various programming languages. Analysis designers first use the abstract interpretation framework to have a global and correct static analyzer whose scalability is unattended. Upon this underlyin

Artificial IntelligenceComputer Science
15
Article|20 citations·2019
Resource-Aware Program Analysis Via Online Abstraction Coarsening
Kihong Heo, Hakjoo Oh, Hongseok Yang

We present a new technique for developing a resource-aware program analysis. Such an analysis is aware of constraints on available physical resources, such as memory size, tracks its resource use, and adjusts its behaviors during fixpoint computation in order to meet the constraint and achieve high precision. Our resource-aware analysis adjusts behaviors by coarsening program abstraction, which usually makes the analysis consume less memory and time until completion. It does so multiple times du

Hardware and ArchitectureComputer Science

Research Areas

Information SystemsSoftwareArtificial IntelligenceSignal ProcessingComputer Networks and CommunicationsHardware and Architecture

Dive deeper into GiHong Heo's research on Nubint

Open this lab's papers in the app to read with AI, summarize, and cite in your writing.