论文标题

类比制作是软件工程工具箱中的核心原始性

Analogy-Making as a Core Primitive in the Software Engineering Toolbox

论文作者

Sotoudeh, Matthew, Thakur, Aditya V.

论文摘要

类比是对两个对象之间的结构相似性和对应关系的识别。在认知科学领域进行了广泛的研究,以更好地了解高级人类认知。例如,梅兰妮·米切尔(Melanie Mitchell)和道格拉斯·霍夫斯塔特(Douglas Hofstadter)试图通过开发模仿算法来更好地理解高级感知,以完成字母序列之间的类比。在本文中,我们认为类比进行应视为软件工程中的核心原始性。我们通过展示如何将复杂的软件工程问题(例如程序理解和源代码转换学习)缩小为类比制造问题的实例来激发这一论点。我们使用SIFTER(一种适用于适应模仿猫的想法的软件工程应用程序的新的类比制造算法)证明了这个想法。特别是,Sifter将类比的制作减少到搜索一系列更新规则应用程序。 Sifter使用一种新颖的表示,用于能够有效地表示软件中嵌入的各种信息的数学结构。最后,我们列出了用于SIFTER的未来工作的主要领域,并在软件工程中列出了类比制作。

An analogy is an identification of structural similarities and correspondences between two objects. Computational models of analogy making have been studied extensively in the field of cognitive science to better understand high-level human cognition. For instance, Melanie Mitchell and Douglas Hofstadter sought to better understand high-level perception by developing the Copycat algorithm for completing analogies between letter sequences. In this paper, we argue that analogy making should be seen as a core primitive in software engineering. We motivate this argument by showing how complex software engineering problems such as program understanding and source-code transformation learning can be reduced to an instance of the analogy-making problem. We demonstrate this idea using Sifter, a new analogy-making algorithm suitable for software engineering applications that adapts and extends ideas from Copycat. In particular, Sifter reduces analogy-making to searching for a sequence of update rule applications. Sifter uses a novel representation for mathematical structures capable of effectively representing the wide variety of information embedded in software. We conclude by listing major areas of future work for Sifter and analogy-making in software engineering.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源