Skip to main content

소순범 교수

Sunbeom So

고려대학교 정보보호대학원 · 컴퓨터과학

연구실 소개

소순범 교수의 연구실은 프로그래밍 교육과 소프트웨어 정확성 보장을 핵심으로 삼는 연구를 수행합니다. 특히 초보자 대상 프로그래밍 과제(예: 정규표현식, 패턴 프로그래밍)를 예제 기반으로 자동으로 생성하는 기술과, 스마트 컨트랙트의 수학적 안전성 검증 및 버그 자동 수정 기법을 개발하고 있습니다. 이는 학습자에게 맞춤형 피드백을 제공하고, 임베디드된 결함이 없는 안정적인 소프트웨어를 설계하는 데 기여합니다. 연구는 실용성과 정확성을 동시에 확보하는 데 초점을 맞추고 있습니다.

프로그래밍 교육예제 기반 프로그램 합성스마트 컨트랙트 정밀 검증버그 자동 수정정규표현식 합성

연구 현황

논문 수
29
총 인용 수
335
최근 5년 논문
19
주요 분야
컴퓨터과학

연구 성과 추이

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

5개년 연도별 논문 게재 수
19총합
2019
2020
2021
2023
2026
5개년 연도별 피인용 수
192총합
20192020202120232026

주요 논문

15
1
논문|인용수 137·2020
VERISMART: A Highly Precise Safety Verifier for Ethereum Smart Contracts
Sunbeom So, Myungho Lee, Jisu Park, Heejo Lee, Hakjoo Oh
OA

We present VERISMART, a highly precise verifier for ensuring arithmetic safety of Ethereum smart contracts. Writing safe smart contracts without unintended behavior is critically important because smart contracts are immutable and even a single flaw can cause huge financial damage. In particular, ensuring that arithmetic operations are safe is one of the most important and common security concerns of Ethereum smart contracts nowadays. In response, several safety analyzers have been proposed over

Artificial IntelligenceComputer Science
2
논문|인용수 56·2016
Synthesizing regular expressions from examples for introductory automata assignments
Mina Lee, Sunbeom So, Hakjoo Oh

We present a method for synthesizing regular expressions for introductory automata assignments. Given a set of positive and negative examples, the method automatically synthesizes the simplest possible regular expression that accepts all the positive examples while rejecting all the negative examples. The key novelty is the search-based synthesis algorithm that leverages ideas from over- and under-approximations to effectively prune out a large search space. We have implemented our technique in

Artificial IntelligenceComputer Science
3
book chapter|인용수 30·2017
Synthesizing Imperative Programs from Examples Guided by Static Analysis
Sunbeom So, Hakjoo Oh
SJR Q2Lecture notes in computer science
SoftwareComputer Science
4
논문|인용수 25·2021
SmarTest: Effectively Hunting Vulnerable Transaction Sequences in Smart Contracts through Language Model-Guided Symbolic Execution
Sunbeom So, Seongjoon Hong, Hakjoo Oh
Information SystemsComputer Science
5
논문|인용수 23·2018
Automatic diagnosis and correction of logical errors for functional programming assignments
Junho Lee, Dowon Song, Sunbeom So, Hakjoo Oh
SJR Q1Proceedings of the ACM on Programming LanguagesOA

We present FixML, a system for automatically generating feedback on logical errors in functional programming assignments. As functional languages have been gaining popularity, the number of students enrolling functional programming courses has increased significantly. However, the quality of feedback, in particular for logical errors, is hardly satisfying. To provide personalized feedback on logical errors, we present a new error-correction algorithm for functional languages, which combines stat

SoftwareComputer Science
6
논문|인용수 18·2016
Synthesizing regular expressions from examples for introductory automata assignments
Mina Lee, Sunbeom So, Hakjoo Oh
ACM SIGPLAN Notices

We present a method for synthesizing regular expressions for introductory automata assignments. Given a set of positive and negative examples, the method automatically synthesizes the simplest possible regular expression that accepts all the positive examples while rejecting all the negative examples. The key novelty is the search-based synthesis algorithm that leverages ideas from over- and under-approximations to effectively prune out a large search space. We have implemented our technique in

Artificial IntelligenceComputer Science
7
논문|인용수 17·2023
SmartFix: Fixing Vulnerable Smart Contracts by Accelerating Generate-and-Verify Repair using Statistical Models
Sunbeom So, Hakjoo Oh

We present SmartFix, a new technique for repairing vulnerable smart contracts. There is an urgent need to develop automatic bug-repair techniques for smart contracts, as smart contracts are safety-critical software and manual debugging is burdensome and error-prone. While several repair approaches have been proposed recently, they are unsatisfactory since no existing techniques can achieve high repairability, full automation, and safety guarantee at the same time, posing significant problems for

Signal ProcessingComputer Science
8
논문|인용수 8·2018
Synthesizing Pattern Programs from Examples
Sunbeom So, Hakjoo Oh
OA

We describe a programming-by-example system that automatically generates pattern programs from examples. Writing pattern programs, which produce various patterns of characters, is one of the most popular programming exercises for entry-level students. However, students often find it difficult to write correct solutions by themselves. In this paper, we present a method for synthesizing pattern programs from examples, allowing students to improve their programming skills efficiently. To that end,

Information SystemsComputer Science
9
논문|인용수 7·2023
Diver: Oracle-Guided SMT Solver Testing with Unrestricted Random Mutations
Jongwook Kim, Sunbeom So, Hakjoo Oh

We present Diver, a novel technique for effectively finding critical bugs in SMT solvers. Ensuring the correctness of SMT solvers is becoming increasingly important as many applications use solvers as a foundational basis. In response, several approaches for testing SMT solvers, which are classified into differential testing and oracle-guided approaches, have been proposed until recently. However, they are still unsatisfactory in that (1) differential testing approaches cannot validate unique ye

SoftwareComputer Science
10
preprint|인용수 6·2017
Synthesizing Imperative Programs from Examples Guided by Static Analysis
Sunbeom So, Hakjoo Oh
arXiv (Cornell University)OA

We present a novel algorithm that synthesizes imperative programs for introductory programming courses. Given a set of input-output examples and a partial program, our algorithm generates a complete program that is consistent with every example. Our key idea is to combine enumerative program synthesis and static analysis, which aggressively prunes out a large search space while guaranteeing to find, if any, a correct solution. We have implemented our algorithm in a tool, called SIMPL, and evalua

Computer Science ApplicationsComputer Science
11
preprint|인용수 5·2019
VeriSmart: A Highly Precise Safety Verifier for Ethereum Smart Contracts
Sunbeom So, Myungho Lee, Jisu Park, Heejo Lee, Hakjoo Oh
arXiv (Cornell University)OA

We present VeriSmart, a highly precise verifier for ensuring arithmetic safety of Ethereum smart contracts. Writing safe smart contracts without unintended behavior is critically important because smart contracts are immutable and even a single flaw can cause huge financial damage. In particular, ensuring that arithmetic operations are safe is one of the most important and common security concerns of Ethereum smart contracts nowadays. In response, several safety analyzers have been proposed over

Artificial IntelligenceComputer Science
12
논문|인용수 2·2017
Synthesizing imperative programs for introductory programming assignments
Sunbeom So, Hakjoo Oh
arXiv (Cornell University)OA
Computer Science ApplicationsComputer Science
13
paratext|인용수 1·2023
Diver: Oracle-Guided SMT Solver Testing with Unrestricted Random Mutations
Jong-Wook Kim, Sunbeom So, Hakjoo Oh
Zenodo (CERN European Organization for Nuclear Research)OA

Diver is <strong>a black-box fuzzer for testing SMT Solvers</strong>. We provide the technical details of Diver in our paper "Diver: Oracle-Guided SMT Solver Testing with Unrestricted Random Mutations" accepted in ICSE 2023. The detailed instructions of the tool is available on the Github repository: https://github.com/kupl/Diver-Artifact

Information Systems and ManagementDecision Sciences
14
논문|인용수 0·2017
Synthesizing Imperative Programs from Examples
Sunbeom So, Tae-Hyoung Choi, Jun Jung, Hakjoo Oh
Journal of KIISE

본 논문에서는 주어진 입 · 출력 예제로부터 명령형 프로그램을 합성하는 방법을 제시한다. 프로그램 합성기의 입력으로 (1) 입 · 출력 예제, (2) 불완전한 프로그램, (3) 사용될 변수 및 정수가 주어지면, 합성기는 주어진 입 · 출력 예제를 모두 만족하는 완성된 프로그램을 출력한다. 기본 알고리즘은 정답 프로그램을 찾을 때까지, 가능한 모든 프로그램을 나열하는 것이다(enumerative search). 이 경우 탐색 공간이 매우 크므로 오랜 시간이 걸린다는 문제점이 있다. 시간을 효과적으로 단축하기 위한 우리의 방법은, 코드 최적화 기법을 이용해 문법은 다르지만 같은 의미의 프로그램들을 확인함으로써, 불필요한 중복탐색을 피하는 것이다. 20개의 입문자 교육용 프로그래밍 문제들을 대상으로 합성 알고리즘 성능을 평가한 결과, 우리의 방법이 기본 탐색 알고리즘의 성능을 약 10배 향상시킴을 확인하였다.

Hardware and ArchitectureComputer Science
15
논문|인용수 0·2017
예제로부터 명령형 프로그램을 합성하는 방법
소순범, 최태형, 정준, 오학주

본 논문에서는 주어진 입・출력 예제로부터 명령형 프로그램을 합성하는 방법을 제시한다. 프로그램 합성기의 입력으로 (1) 입・출력 예제, (2) 불완전한 프로그램, (3) 사용될 변수 및 정수가 주어지면, 합성기는 주어진 입・출력 예제를 모두 만족하는 완성된 프로그램을 출력한다. 기본 알고리즘은 정답 프로그램을 찾을 때까지, 가능한 모든 프로그램을 나열하는 것이다(enumerative search). 이 경우 탐색 공간이매우 크므로 오랜 시간이 걸린다는 문제점이 있다. 시간을 효과적으로 단축하기 위한 우리의 방법은, 코드최적화 기법을 이용해 문법은 다르지만 같은 의미의 프로그램들을 확인함으로써, 불필요한 중복탐색을 피하는 것이다. 20개의 입문자 교육용 프로그래밍 문제들을 대상으로 합성 알고리즘 성능을 평가한 결과, 우리의 방법이 기본 탐색 알고리즘의 성능을 약 10배 향상시킴을 확인하였다.

대표 연구 분야

Artificial IntelligenceSoftwareInformation Systems and ManagementInformation SystemsComputer Science ApplicationsSignal Processing

소순범 교수의 연구를 Nubint에서 더 깊이 살펴보세요

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