Search : [ author: Tae-Hyoung Choi ] (2)

Lightweight Equivalence Checking of Code Transformation for Code Pointer Integrity

Jaeseo Lee, Tae-Hyoung Choi, Gyuho Lee, Jaegwan Yu, Kyungmin Bae

http://doi.org/10.5626/JOK.2019.46.12.1279

Code transformation is widely used to improve the performance and security of programs, but serious software errors can occur in this process if the generated program is not equivalent to the original program. There are a number of approaches for translation validation that can be used to prove the equivalence of programs, but the high cost of proof checking restricts the applicability of these techniques for large programs. In this paper, we propose a practical approach for checking the correctness of LLVM code transformation. We first prove the correctness of the transformation rules using automated theorem proving before compilation. We then perform a simple code analysis method—as opposed to directly proving the program equivalence— to check whether the transformations rules are correctly applied to the generated code. As the complexity of the proposed code analysis is linear, our technique can be effectively applied to large programs, unlike previous techniques. To prove the effectiveness of the proposed approach, we present a case study on LLVM code transformation for a code pointer integrity instrumentation.

Synthesizing Imperative Programs from Examples

Sunbeom So, Tae-Hyoung Choi, Jun Jung, Hakjoo Oh

http://doi.org/10.5626/JOK.2017.44.9.986

In this paper, we present a method for synthesizing imperative programs from input-output examples. Given (1) a set of input-output examples, (2) an incomplete program, and (3) variables and integer constants to be used, the synthesizer outputs a complete program that satisfies all of the given examples. The basic synthesis algorithm enumerates all possible candidate programs until the solution program is found (enumerative search). However, it is too slow for practical use due to the huge search space. To accelerate the search speed, our approach uses code optimization and avoids unnecessary search for the programs that are syntactically different but semantically equivalent. We have evaluated our synthesis algorithm on 20 introductory programming problems, and the results show that our method improves the speed of the basic algorithm by 10x on average.


Search




Journal of KIISE

  • ISSN : 2383-630X(Print)
  • ISSN : 2383-6296(Electronic)
  • KCI Accredited Journal

Editorial Office

  • Tel. +82-2-588-9240
  • Fax. +82-2-521-1352
  • E-mail. chwoo@kiise.or.kr