基于判别图挖掘的可视化调试工具

J. Leopold, Nathan Eloe, Jeffrey Gould, E. Willard
{"title":"基于判别图挖掘的可视化调试工具","authors":"J. Leopold, Nathan Eloe, Jeffrey Gould, E. Willard","doi":"10.18293/VLSS2018-029","DOIUrl":null,"url":null,"abstract":"Why doesn’t my code work? Instructors for introductory programming courses frequently are asked that question. Often students understand the problem they are trying to solve well enough to specify a variety of input and output scenarios. However, they lack the ability to identify where the bug is occurring in their code. Mastering the use of a full-feature debugger can be difficult at this stage in their computer science education. But simply providing a hint as to where the problem lies may be sufficient to guide the student to add print statements or do a hand-trace focusing on a certain section of the code. Herein we present a software tool which, given a C++ program, some sample inputs, and respective expected outputs, uses discriminative graph mining to identify which lines in the program are most likely the source of a bug. Additionally, the particular operators (relational, logical, and arithmetic) that are used in the code may be considered in recommending where the bug may be. The tool includes a visual display of the control flow graph for each test case, allowing the user to step through the statements executed. Keywords-debugging; graph; data mining; visualization","PeriodicalId":297195,"journal":{"name":"J. Vis. Lang. Sentient Syst.","volume":"59 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":"{\"title\":\"A Visual Debugging Aid based upon Discriminative Graph Mining\",\"authors\":\"J. Leopold, Nathan Eloe, Jeffrey Gould, E. Willard\",\"doi\":\"10.18293/VLSS2018-029\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Why doesn’t my code work? Instructors for introductory programming courses frequently are asked that question. Often students understand the problem they are trying to solve well enough to specify a variety of input and output scenarios. However, they lack the ability to identify where the bug is occurring in their code. Mastering the use of a full-feature debugger can be difficult at this stage in their computer science education. But simply providing a hint as to where the problem lies may be sufficient to guide the student to add print statements or do a hand-trace focusing on a certain section of the code. Herein we present a software tool which, given a C++ program, some sample inputs, and respective expected outputs, uses discriminative graph mining to identify which lines in the program are most likely the source of a bug. Additionally, the particular operators (relational, logical, and arithmetic) that are used in the code may be considered in recommending where the bug may be. The tool includes a visual display of the control flow graph for each test case, allowing the user to step through the statements executed. Keywords-debugging; graph; data mining; visualization\",\"PeriodicalId\":297195,\"journal\":{\"name\":\"J. Vis. Lang. Sentient Syst.\",\"volume\":\"59 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2018-12-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"2\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"J. Vis. Lang. Sentient Syst.\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.18293/VLSS2018-029\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"J. Vis. Lang. Sentient Syst.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.18293/VLSS2018-029","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2

摘要

为什么我的代码不能工作?编程入门课程的讲师经常被问到这个问题。通常,学生对他们试图解决的问题理解得足够好,可以指定各种输入和输出场景。然而,他们缺乏识别代码中哪里出现了错误的能力。在计算机科学教育的这个阶段,掌握全功能调试器的使用可能是困难的。但是,简单地提供问题所在的提示可能足以引导学生添加print语句或针对代码的某个部分进行手工跟踪。在这里,我们提出了一个软件工具,给定一个c++程序,一些样本输入和各自的预期输出,使用判别图挖掘来识别程序中的哪一行最有可能是错误的来源。此外,代码中使用的特定操作符(关系操作符、逻辑和算术操作符)可能会在建议错误可能出现的位置时被考虑在内。该工具包括每个测试用例的控制流图的可视化显示,允许用户逐步执行所执行的语句。Keywords-debugging;图;数据挖掘;可视化
本文章由计算机程序翻译,如有差异,请以英文原文为准。
A Visual Debugging Aid based upon Discriminative Graph Mining
Why doesn’t my code work? Instructors for introductory programming courses frequently are asked that question. Often students understand the problem they are trying to solve well enough to specify a variety of input and output scenarios. However, they lack the ability to identify where the bug is occurring in their code. Mastering the use of a full-feature debugger can be difficult at this stage in their computer science education. But simply providing a hint as to where the problem lies may be sufficient to guide the student to add print statements or do a hand-trace focusing on a certain section of the code. Herein we present a software tool which, given a C++ program, some sample inputs, and respective expected outputs, uses discriminative graph mining to identify which lines in the program are most likely the source of a bug. Additionally, the particular operators (relational, logical, and arithmetic) that are used in the code may be considered in recommending where the bug may be. The tool includes a visual display of the control flow graph for each test case, allowing the user to step through the statements executed. Keywords-debugging; graph; data mining; visualization
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信