首页 > 其他 > 详细

One example to understand SemFix: Program Repair via Semantic Analysis

时间:2018-06-24 20:41:33      阅读:283      评论:0      收藏:0      [点我收藏+]

One example to understand SemFix: Program Repair via Semantic Analysis

Basic Information

  • Authors: Hoang Duong Thien Nguyen, Dawei Qi, Abhik Roychoudhury
  • Pulication: ICSE‘13
  • Description: Semantic Program Repair

Example

Buggy code:

技术分享图片

Test Suite:

技术分享图片

Overview

Step 1: Fault Localization

Tarantula is applied to produce a suspiciousness ranklist of statements.
技术分享图片

Step 2: Generate Repair Constraint via Symbolic Execution

技术分享图片
Constraints: f(1, 11, 110) > 110∧f(1, 0, 100) ≤ 100∧f(1, ?20, 60) > 60

Step 3: Generate a Repair

Employ program synthesis to solve the constraint for f in order to get a concrete function. Program synthesis requires basic components (e.g. constants, “+”, “?”) as ingredients to construct the function f.
In this technique, these components are incrementally provided to program synthesis.

In the first trial, only a constant is allowed. However, no constant function can satisfy the above constraint. We then allow function f to use one “+”, i.e. f can take either the form of var1 + c or var1+var2, where var1 and var2 are in {inhibit, up_sep, down_sep} and c is an integer constant. The synthesis procedure can find a solution f(inhibit, up sep, down sep) = up sep + 100 which is a successful repair to the program in Fig. 1. Note that if “?” is used instead of “+”, we will get f(inhibit, up sep, down sep) = up sep ? (?100) as repair.

One example to understand SemFix: Program Repair via Semantic Analysis

原文:https://www.cnblogs.com/XBWer/p/9221475.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!