Refactoring support for Smalltalk using static type inference

Martin Unterholzner
{"title":"Refactoring support for Smalltalk using static type inference","authors":"Martin Unterholzner","doi":"10.1145/2448963.2448964","DOIUrl":null,"url":null,"abstract":"Refactoring is a crucial activity in agile software development. As a consequence, automated tools are expected to support refactoring, both for reducing the developer's effort as well as for avoiding errors due to manual changes. In this context, the chosen programming language has a major impact on the level of support that an automated refactoring tool can offer. One important aspect of a programming language concerning the automation of refactoring is the type system. While a static type system, present in languages such as Java, provides information about dependencies in the program, the dynamic type system of the Smalltalk programming language offers little information that can be used by automated refactoring tools.\n This paper focuses on the challenges in the context of refactoring raised by the dynamic type system of Smalltalk. It highlights the problems caused by the absence of static type information and proposes the use of static code analysis for performing type inference to gather information about the dependencies in the program's source code. It explains the mechanism of the static code analysis using sample code and presents a prototype of an enhanced refactoring tool, which uses the structural information extracted through static code analysis. Empirical samples build the base for evaluating the effectiveness of the approach.","PeriodicalId":393791,"journal":{"name":"International Workshop on Smalltalk Technologies","volume":"90 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2012-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"International Workshop on Smalltalk Technologies","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2448963.2448964","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

Abstract

Refactoring is a crucial activity in agile software development. As a consequence, automated tools are expected to support refactoring, both for reducing the developer's effort as well as for avoiding errors due to manual changes. In this context, the chosen programming language has a major impact on the level of support that an automated refactoring tool can offer. One important aspect of a programming language concerning the automation of refactoring is the type system. While a static type system, present in languages such as Java, provides information about dependencies in the program, the dynamic type system of the Smalltalk programming language offers little information that can be used by automated refactoring tools. This paper focuses on the challenges in the context of refactoring raised by the dynamic type system of Smalltalk. It highlights the problems caused by the absence of static type information and proposes the use of static code analysis for performing type inference to gather information about the dependencies in the program's source code. It explains the mechanism of the static code analysis using sample code and presents a prototype of an enhanced refactoring tool, which uses the structural information extracted through static code analysis. Empirical samples build the base for evaluating the effectiveness of the approach.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
使用静态类型推断重构Smalltalk支持
重构是敏捷软件开发中的一项关键活动。因此,自动化工具被期望支持重构,既可以减少开发人员的工作量,又可以避免由于手动更改而导致的错误。在这种情况下,所选择的编程语言对自动化重构工具所能提供的支持级别有很大的影响。编程语言关于重构自动化的一个重要方面是类型系统。Java等语言中的静态类型系统提供了有关程序中依赖关系的信息,而Smalltalk编程语言的动态类型系统提供的信息很少,无法被自动化重构工具使用。本文主要关注Smalltalk的动态类型系统在重构环境中所带来的挑战。它强调了由于缺乏静态类型信息而导致的问题,并建议使用静态代码分析来执行类型推断,以收集有关程序源代码中依赖项的信息。通过示例代码解释了静态代码分析的机制,并给出了一个增强重构工具的原型,该工具利用静态代码分析提取的结构信息。实证样本为评估该方法的有效性奠定了基础。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Spec: a framework for the specification and reuse of UIs and their models On the integration of Smalltalk and Java: practical experience with STX:LIBJAVA Tracking down software changes responsible for performance loss Refactoring support for Smalltalk using static type inference Challenges to support automated random testing for dynamically typed languages
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1