Analogy-Making as a Core Primitive in the Software Engineering Toolbox
Wed 18 Nov 2020 03:40 - 04:00 at SPLASH-III - T-5-Onward Chair(s): Stephen Kell
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.
Tue 17 NovDisplayed time zone: Central Time (US & Canada) change
15:00 - 16:00 | T-5-OnwardOnward! Essays / Onward! Papers at SPLASH-III +12h Chair(s): Stephen Kell University of Kent | ||
15:00 20mTalk | Natural Language Theory Meets Programming Language Theory: An Interdisciplinary Framework for Programming Language Evaluation Onward! Essays | ||
15:20 20mTalk | Software Design as Story Telling: Reflecting on the Work of Italo Calvino Onward! Essays Paolo Ciancarini University of Bologna / Innopolis University, Sergey Masyagin Innopolis University, Russia, Giancarlo Succi Innopolis University Link to publication DOI | ||
15:40 20mTalk | Analogy-Making as a Core Primitive in the Software Engineering Toolbox Onward! Papers Link to publication Pre-print Media Attached |
Wed 18 NovDisplayed time zone: Central Time (US & Canada) change
03:00 - 04:00 | |||
03:00 20mTalk | Natural Language Theory Meets Programming Language Theory: An Interdisciplinary Framework for Programming Language Evaluation Onward! Essays | ||
03:20 20mTalk | Software Design as Story Telling: Reflecting on the Work of Italo Calvino Onward! Essays Paolo Ciancarini University of Bologna / Innopolis University, Sergey Masyagin Innopolis University, Russia, Giancarlo Succi Innopolis University Link to publication DOI | ||
03:40 20mTalk | Analogy-Making as a Core Primitive in the Software Engineering Toolbox Onward! Papers Link to publication Pre-print Media Attached |