Skip to main content

허기홍 교수

GiHong Heo

KAIST 전산학부 · 컴퓨터과학

연구실 소개

허기홍 교수의 연구실은 정적 분석, 프로그램 합성, 소프트웨어 최적화 등 소프트웨어 공학의 핵심 문제를 해결하기 위한 고성능이고 정밀한 정적 분석 기법을 개발하고 있습니다. 특히 프로그램의 크기를 줄이고 보안 취약점을 줄이기 위한 '디블로팅(Debloating)' 기술, 검색 기반 프로그램 합성의 효율성을 높이기 위한 확률적 문법 기반 접근, 그리고 사용자 피드백을 활용한 오류 경고의 정확도 향상 기법 등 실용적이고 정밀한 소프트웨어 분석 기법을 중심으로 연구를 진행하고 있습니다. 이는 산업 현장에서 요구하는 정확성과 확장성의 균형을 이루는 데 초점을 맞추고 있습니다.

정적 분석프로그램 합성디블로팅사용자 피드백 기반 오류 탐지확률적 문법

연구 현황

논문 수
45
총 인용 수
868
최근 5년 논문
17
주요 분야
컴퓨터과학

연구 성과 추이

표시된 성과는 수집된 데이터 기준으로 산출되며, 일부 차이가 있을 수 있습니다.

5개년 연도별 논문 게재 수
17총합
2021
2022
2024
2025
2026
5개년 연도별 피인용 수
86총합
20212022202420252026

주요 논문

15
1
논문|인용수 124·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
논문|인용수 87·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
논문|인용수 79·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
논문|인용수 78·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
논문|인용수 51·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
논문|인용수 48·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
논문|인용수 39·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·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
논문|인용수 27·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
논문|인용수 26·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
논문|인용수 24·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
논문|인용수 23·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
논문|인용수 23·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
논문|인용수 22·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
논문|인용수 20·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

대표 연구 분야

Information SystemsSoftwareArtificial IntelligenceSignal ProcessingComputer Networks and CommunicationsHardware and Architecture

허기홍 교수의 연구를 Nubint에서 더 깊이 살펴보세요

이 연구실의 논문을 앱에서 열어 AI와 함께 읽고, 핵심을 요약하고, 내 글에 인용하세요.