Proceedings. Second IEEE International Workshop on Source Code Analysis and Manipulation最新文献

筛选
英文 中文
Visualization of exception propagation for Java using static analysis 使用静态分析的Java异常传播可视化
Byeong-Mo Chang, Jang-Wu Jo, Soon Hee Her
{"title":"Visualization of exception propagation for Java using static analysis","authors":"Byeong-Mo Chang, Jang-Wu Jo, Soon Hee Her","doi":"10.1109/SCAM.2002.1134117","DOIUrl":"https://doi.org/10.1109/SCAM.2002.1134117","url":null,"abstract":"We first present a static analysis based on a set-based framework, which estimates exception propagation paths of Java programs. We construct an exception propagation graph from the static analysis information, which includes the origin of exceptions, handler of exceptions, and propagation paths of exceptions. We have implemented the exception propagation analysis and a visualization tool which visualizes propagation paths of exceptions using the exception propagation graph. This propagation information can guide programmers to detect uncaught exceptions, handle exceptions more specifically, and put exception handlers at appropriate places by tracing exception propagation.","PeriodicalId":301735,"journal":{"name":"Proceedings. Second IEEE International Workshop on Source Code Analysis and Manipulation","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128939043","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 36
Grammar programming in TXL TXL语法编程
T. Dean, J. Cordy, A. Malton, Kevin A. Schneider
{"title":"Grammar programming in TXL","authors":"T. Dean, J. Cordy, A. Malton, Kevin A. Schneider","doi":"10.1109/SCAM.2002.1134109","DOIUrl":"https://doi.org/10.1109/SCAM.2002.1134109","url":null,"abstract":"Syntactic analysis forms a foundation of many source analysis and reverse engineering tools. However, a single grammar is not always appropriate for all source analysis and manipulation tasks. Small changes to the grammar can make the programs used to accomplish these tasks simpler and more straightforward. This leads to a new paradigm of programming these tools: grammar programming. This paper discusses several industry proven techniques that can be used when designing base grammars and when making task specific changes to grammars.","PeriodicalId":301735,"journal":{"name":"Proceedings. Second IEEE International Workshop on Source Code Analysis and Manipulation","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116396623","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 44
Using dependence graphs as a support to document programs 使用依赖关系图作为记录程序的支持
Françoise Balmas
{"title":"Using dependence graphs as a support to document programs","authors":"Françoise Balmas","doi":"10.1109/SCAM.2002.1134114","DOIUrl":"https://doi.org/10.1109/SCAM.2002.1134114","url":null,"abstract":"In this paper we argue that source code is not the best support for commenting programs and we introduce dependence graphs as a better support since they offer different levels of abstraction and make visible objects that are not directly represented in the source code. We first introduce our tool to display dependence graphs, focusing on how different views of the same program can be built and tuned by grouping together nodes that are syntactically or conceptually related. We also show how these views make visible objects of the program that aren't accessible for comment in the source code while they can be, in our tool, richly documented through typed annotations. Then we review which kinds of units can be commented this way and discuss a typical way to apply our tool to document programs. Finally, we give strategies towards the automation of program documentation.","PeriodicalId":301735,"journal":{"name":"Proceedings. Second IEEE International Workshop on Source Code Analysis and Manipulation","volume":"35 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129819641","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 24
Predicate-based dynamic slicing of message passing programs 基于谓词的消息传递程序动态切片
J. Rilling, H. F. Li, D. Goswami
{"title":"Predicate-based dynamic slicing of message passing programs","authors":"J. Rilling, H. F. Li, D. Goswami","doi":"10.1109/SCAM.2002.1134113","DOIUrl":"https://doi.org/10.1109/SCAM.2002.1134113","url":null,"abstract":"Program slicing is a well-known decomposition technique that transforms a large program into a smaller one that contains only statements relevant to the computation of a selected function. We present a novel predicate-based dynamic slicing algorithm for message passing programs. Unlike the more traditional slicing criteria that focus only on the parts of the program that influence a variable of interest at a specific position in the program, a predicate focuses on those parts of the program that influence the predicate. The dynamic predicate slice captures some global requirements or suspected error properties of a distributed program and computes all statements that are relevant. We present an algorithm and a sample computation to illustrate how the predicate slice can be computed. Additionally, we introduce a predicate trace to classify the relevance of statement executions based on the predicate slice. A compressed predicate trace can be used to reveal those instances of statement execution that turn the global predicate true, among others.","PeriodicalId":301735,"journal":{"name":"Proceedings. Second IEEE International Workshop on Source Code Analysis and Manipulation","volume":"196 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123275248","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 15
VADA: a transformation-based system for variable dependence analysis VADA:基于变换的变量相关性分析系统
M. Harman, C. Fox, R. Hierons, Lin Hu, S. Danicic, J. Wegener
{"title":"VADA: a transformation-based system for variable dependence analysis","authors":"M. Harman, C. Fox, R. Hierons, Lin Hu, S. Danicic, J. Wegener","doi":"10.1109/SCAM.2002.1134105","DOIUrl":"https://doi.org/10.1109/SCAM.2002.1134105","url":null,"abstract":"Variable dependence is an analysis problem in which the aim is to determine the set of input variables that can affect the values stored in a chosen set of intermediate program variables. This paper shows the relationship between the variable dependence analysis problem and slicing and describes VADA, a system that implements variable dependence analysis. In order to cover the full range of C constructs and features, a transformation to a core language is employed Thus, the full analysis is required only for the core language, which is relatively simple. This reduces the overall effort required for dependency analysis. The transformations used need preserve only the variable dependence relation, and therefore need not be meaning preserving in the traditional sense. The paper describes how this relaxed meaning further simplifies the transformation phase of the approach. Finally, the results of an empirical study into the performance of the system are presented.","PeriodicalId":301735,"journal":{"name":"Proceedings. Second IEEE International Workshop on Source Code Analysis and Manipulation","volume":"104 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124741151","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 34
Towards measurement of testability of concurrent object-oriented programs using fault insertion: a preliminary investigation 基于故障插入的并发面向对象程序可测试性度量初探
Sudipto Ghosh
{"title":"Towards measurement of testability of concurrent object-oriented programs using fault insertion: a preliminary investigation","authors":"Sudipto Ghosh","doi":"10.1109/SCAM.2002.1134101","DOIUrl":"https://doi.org/10.1109/SCAM.2002.1134101","url":null,"abstract":"There is a lack of methods and techniques for measuring testability of concurrent object-oriented programs. Current theory and practice for testing sequential programs do not usually apply to concurrent systems. An approach towards measuring the testability of concurrent Java programs is proposed in this paper. The key idea is to take a program and insert faults that are related to the concurrency aspects. The approach is based on two methods: (1) mutation of the program based on keywords, and (2) creation of conflict graphs based on static analysis of the code.","PeriodicalId":301735,"journal":{"name":"Proceedings. Second IEEE International Workshop on Source Code Analysis and Manipulation","volume":"06 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124828964","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 25
Handling preprocessor-conditioned declarations 处理预处理条件声明
Lerina Aversano, M. D. Penta, I. Baxter
{"title":"Handling preprocessor-conditioned declarations","authors":"Lerina Aversano, M. D. Penta, I. Baxter","doi":"10.1109/SCAM.2002.1134108","DOIUrl":"https://doi.org/10.1109/SCAM.2002.1134108","url":null,"abstract":"Many software systems are developed with configurable functionality, and for multiple hardware platforms and operating systems. This can lead to thousands of possible configurations, requiring each configuration-dependent programming entity or variable to have different types. Such configuration-dependent variables are often declared inside preprocessor conditionals (e.g., C language). Preprocessor-conditioned declarations may be a source of problems. Commonly used configurations are type-checked by repeated compilation. Rarely used configurations are unlikely to be recently type checked, and in such configurations a variable may have a type not compatible to its use or it may contains uses of variables never defined. This paper proposes an approach to identify all possible types each variable declared in a software system can assume, and under which conditions. Inconsistent variable usages can then be detected for all possible configurations. Impacts of preprocessor-conditioned declaration in 17 different open source software systems are also reported.","PeriodicalId":301735,"journal":{"name":"Proceedings. Second IEEE International Workshop on Source Code Analysis and Manipulation","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130370752","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 42
Construction of the system dependence graph for Web application slicing 构建面向Web应用程序切片的系统依赖图
F. Ricca, P. Tonella
{"title":"Construction of the system dependence graph for Web application slicing","authors":"F. Ricca, P. Tonella","doi":"10.1109/SCAM.2002.1134112","DOIUrl":"https://doi.org/10.1109/SCAM.2002.1134112","url":null,"abstract":"The computation of program slices on Web applications may be useful during debugging, when the amount of code to be inspected can be reduced, and during understanding, since the search for a given functionality can be better focused. The system dependence graph is an appropriate data structure for slice computation, in that it explicitly represents all dependences that have to be taken into account in slice determination. In this paper the main problems related to the construction of the system dependence graph are considered. With no loss of generality, solutions are presented with reference to the server side programming language PHP and to the client side language Javascript. Most of the difficulties concern event and hyperlink handling, dynamic generation of HTML code, and direct access to HTML elements by client code. An example of Web application is analyzed, supporting the feasibility of the approach.","PeriodicalId":301735,"journal":{"name":"Proceedings. Second IEEE International Workshop on Source Code Analysis and Manipulation","volume":"10 5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129723902","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 39
An extensible metrics extraction environment for object-oriented programming languages 面向对象编程语言的可扩展度量提取环境
T. Harmer, F. G. Wilkie
{"title":"An extensible metrics extraction environment for object-oriented programming languages","authors":"T. Harmer, F. G. Wilkie","doi":"10.1109/SCAM.2002.1134102","DOIUrl":"https://doi.org/10.1109/SCAM.2002.1134102","url":null,"abstract":"In this paper the enhancements to an existing production-quality compiler to facilitate the collection of complexity metrics as an integral part of the compilation and build process are described An object oriented programming language meta-model is presented. This meta-model is used in a relational database schema and enables a language neutral form of a compilation unit of source code or system of units to be stored We have used C language routines with embedded SQL to calculate a suite of 11 complexity metrics for each class stored in the database. We present the full implementation of one of these routines. The resulting metrics extraction tool is highly extensible, readily facilitating incorporation of new object oriented programming languages and new metrics.","PeriodicalId":301735,"journal":{"name":"Proceedings. Second IEEE International Workshop on Source Code Analysis and Manipulation","volume":"53 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128210733","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 20
Semantics guided filtering of combinatorial graph transformations in declarative equation-based languages 基于声明性方程的语言中组合图变换的语义引导过滤
Peter Bunus, P. Fritzson
{"title":"Semantics guided filtering of combinatorial graph transformations in declarative equation-based languages","authors":"Peter Bunus, P. Fritzson","doi":"10.1109/SCAM.2002.1134116","DOIUrl":"https://doi.org/10.1109/SCAM.2002.1134116","url":null,"abstract":"This paper concerns the use of static analysis for debugging purposes of declarative object-oriented equation-based modeling languages. It proposes a framework where over- and under-constraining situations present in simulation models specified in such languages are detected by combinatorial graph transformations performed on the flattened intermediate code and filtered by the semantic transformation rules derived from the original language. This is powerful enough to statically detect a broad range of errors without having to execute the simulation model. Debuggers associated with simulation environments for such languages can provide efficient error-fixing strategies based on the graph-based representation of the intermediate code. The emphasis, in this paper, is on detecting and debugging over-constraining equations, which are present in some simulation model specifications. The paper discusses various ways in which the approach is extended to allow static global analysis of the original modeling source code.","PeriodicalId":301735,"journal":{"name":"Proceedings. Second IEEE International Workshop on Source Code Analysis and Manipulation","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127858031","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
相关产品
×
本文献相关产品
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信