소순범 교수
Sunbeom So
고려대학교 정보보호대학원 · 컴퓨터과학
연구실 소개
소순범 교수의 연구실은 프로그래밍 교육과 소프트웨어 정확성 보장을 핵심으로 삼는 연구를 수행합니다. 특히 초보자 대상 프로그래밍 과제(예: 정규표현식, 패턴 프로그래밍)를 예제 기반으로 자동으로 생성하는 기술과, 스마트 컨트랙트의 수학적 안전성 검증 및 버그 자동 수정 기법을 개발하고 있습니다. 이는 학습자에게 맞춤형 피드백을 제공하고, 임베디드된 결함이 없는 안정적인 소프트웨어를 설계하는 데 기여합니다. 연구는 실용성과 정확성을 동시에 확보하는 데 초점을 맞추고 있습니다.
연구 현황
연구 성과 추이
표시된 성과는 수집된 데이터 기준으로 산출되며, 일부 차이가 있을 수 있습니다.
주요 논문
15We 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
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
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
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
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
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,
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
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
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
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
본 논문에서는 주어진 입 · 출력 예제로부터 명령형 프로그램을 합성하는 방법을 제시한다. 프로그램 합성기의 입력으로 (1) 입 · 출력 예제, (2) 불완전한 프로그램, (3) 사용될 변수 및 정수가 주어지면, 합성기는 주어진 입 · 출력 예제를 모두 만족하는 완성된 프로그램을 출력한다. 기본 알고리즘은 정답 프로그램을 찾을 때까지, 가능한 모든 프로그램을 나열하는 것이다(enumerative search). 이 경우 탐색 공간이 매우 크므로 오랜 시간이 걸린다는 문제점이 있다. 시간을 효과적으로 단축하기 위한 우리의 방법은, 코드 최적화 기법을 이용해 문법은 다르지만 같은 의미의 프로그램들을 확인함으로써, 불필요한 중복탐색을 피하는 것이다. 20개의 입문자 교육용 프로그래밍 문제들을 대상으로 합성 알고리즘 성능을 평가한 결과, 우리의 방법이 기본 탐색 알고리즘의 성능을 약 10배 향상시킴을 확인하였다.
본 논문에서는 주어진 입・출력 예제로부터 명령형 프로그램을 합성하는 방법을 제시한다. 프로그램 합성기의 입력으로 (1) 입・출력 예제, (2) 불완전한 프로그램, (3) 사용될 변수 및 정수가 주어지면, 합성기는 주어진 입・출력 예제를 모두 만족하는 완성된 프로그램을 출력한다. 기본 알고리즘은 정답 프로그램을 찾을 때까지, 가능한 모든 프로그램을 나열하는 것이다(enumerative search). 이 경우 탐색 공간이매우 크므로 오랜 시간이 걸린다는 문제점이 있다. 시간을 효과적으로 단축하기 위한 우리의 방법은, 코드최적화 기법을 이용해 문법은 다르지만 같은 의미의 프로그램들을 확인함으로써, 불필요한 중복탐색을 피하는 것이다. 20개의 입문자 교육용 프로그래밍 문제들을 대상으로 합성 알고리즘 성능을 평가한 결과, 우리의 방법이 기본 탐색 알고리즘의 성능을 약 10배 향상시킴을 확인하였다.
대표 연구 분야
소순범 교수의 연구를 Nubint에서 더 깊이 살펴보세요
이 연구실의 논문을 앱에서 열어 AI와 함께 읽고, 핵심을 요약하고, 내 글에 인용하세요.