One example to understand SemFix: Program Repair via Semantic Analysis
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的更多相关文章
- Reading List on Automated Program Repair
		
Some resources: https://www.monperrus.net/martin/automatic-software-repair 2017 [ ] DeepFix: Fixing ...
 - [EMSE'17] A Correlation Study between Automated Program Repair and Test-Suite Metrics
		
Basic Information Authors: Jooyong Yi, Shin Hwei Tan, Sergey Mechtaev, Marcel Böhme, Abhik Roychoudh ...
 - [Benchmark] Codeflaws: A Programming Competition Benchmark for Evaluating Automated Program Repair Tools
		
Basic Information Publication: ICSE'17 Authors: Shin Hwei Tan, Jooyong Yi, Yulis, Sergey Mechtaev, A ...
 - How to step through your code in chrome
		
By executing code one line or one function at a time, you can observe changes in the data and in the ...
 - Google C++ Style Guide
		
Background C++ is one of the main development languages used by many of Google's open-source project ...
 - [SCOI2007] 修车
		
属于我的费用流版本终于诞生了!想来还有点小激动呢…看了下模板,之后完全按照自己的想象来写,这样在考场上也不怕啦~ 某人说其实费用流就是把Dinic里的BFS换成SPFA,似乎还是比较有道理的,就是ad ...
 - Teach Yourself Programming in Ten Years
		
Teach Yourself Programming in Ten Years——用十年教会自己编程 作者:Peter Norvig 译者:刘海粟 本文原文为:http://norvig.com/21 ...
 - 计算机程序和C++语言简介
		
C++程序设计 第一章 计算机程序和C++语言简介 1.计算机是一台能够存储并处理数据的电子设备,包含硬件和软件两部分. 2.计算机硬件由: 1)中央处理单元(Central Processing U ...
 - Code Complete阅读笔记(三)
		
2015-05-26 628 Code-Tuning Techniques ——Even though a particular technique generally represen ...
 
随机推荐
- JAVA自学笔记03
			
1.三目运算符 1)格式:(关系表达式)?表达式1:表达式2 true则执行表达式1,false则执行表达式2 @ 例题1 :求两数中的较大值 System.out.println(x>y?x: ...
 - HTML5 学习01——浏览器问题、新元素
			
Internet Explorer 浏览器问题 问题:Internet Explorer 8 及更早 IE 版本的浏览器不支持HTML5的方式. <!--[if lt IE 9]> < ...
 - D. Cutting Out 二分
			
题意是给你n个数字的序列,让你从中找含k个数字的序列,要求这k个数字要尽可能多次的从n个数字的序列中减去. 解法就是从1到n,二分查找可以删除的最大次数. http://codeforces.com/ ...
 - 利用exif.js解决手机上传竖拍照片旋转90\180\270度问题
			
原文:https://blog.csdn.net/linlzk/article/details/48652635/ html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针 ...
 - VBV Rate Control
			
Part 1 <06/05/07 12:08pm> Manao | he is negating a float by printing it, adding a "-" ...
 - 安装配置Xdebug模块详解
			
1.XDebug安装配置 (1)下载XDebug下载地址:http://www.xdebug.org/必须下载跟机器上安装的php匹配的版本才行.具体下载方法如下:将phpinfo网页的源代码拷贝到h ...
 - [转]jQuery中clone和clone(true)的区别
			
jquery中clone() 和 clone(true)的区别. jquery复制 DOM的时候,原来还可以连 dom上面绑定的事件一起复制. 原文: https://www.cnblogs.com/ ...
 - jvm理论-字节码指令
			
Java虚拟机的指令由一个字节长度的.代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需参数(称为操作数,Operands)而构成. 基本数据类型 1.除了l ...
 - php 删除cookie有效方法
			
php 删除cookie有效方法关于删除cookie的说明开始----- bool setcookie ( string name [, string value [, int expire [, ...
 - 一起来学习linux创建用户useradd命令
			
linux创建用户useradd命令 原文地址:linux创建用户useradd命令 http://www.xfcodes.com/linuxcmd/user/24308.htm 一,adduser与 ...