acm-header
登录

ACM通信

研究突出了

技术视角:面向终端用户编程的示例驱动程序综合


理解如何让计算机执行给定的任务是计算机科学的一个中心问题。多年来,标准答案一直是使用编程语言编写程序,然后由计算机执行来完成任务。

然而,一种有趣的替代方法是为计算机提供输入和相应输出的示例,然后让计算机自动泛化这些示例,生成一个程序,对所有输入执行所需的任务。研究人员已经研究这种方法几十年了,首先是在LISP社区,4后来在归纳逻辑编程界,123.举两个突出的例子。由于产生的技术能够生成的程序的规模相对较小,该领域已经发展到主要关注数据挖掘、概念学习、知识发现和其他应用程序(与主流软件开发相反)。

下面的文章将重点放在一个重要的新兴领域——终端用户编程上。随着信息技术逐渐渗透到我们的社会,更广泛的用户阶层发展了对更复杂的数据操作和处理的需求。虽然过去的用户满足于相对简单的交互计算模型,如电子表格和其他业务应用程序,但现在的用户希望自动化自定义数据操作,如重新格式化、重新组织、简单计算或数据清理。虽然这样的用户可能很好地掌握了应用程序的交互功能,但他们通常缺乏专门知识、时间或意愿来专门为他们的任务开发软件。

作者阐述了如何应用示例驱动的程序合成来实现电子表格计算的自动化。因此,这项工作对全球数百万使用电子表格的人很有兴趣。该方法包括四个基本步骤:

  • 特定于域的语言:开发一种能够表示所需计算集的领域特定语言。
  • 数据结构:开发一个数据结构,它可以有效地表示与给定输入/输出示例一致的大量程序集。
  • 学习和相交:生成用于表示与每个输入/输出示例一致的程序的数据结构,然后将数据结构交叉以获得与所有示例一致的程序表示。
  • 排名由此产生的程序集,更喜欢一般的程序而不是一般的程序。然后,用户可以查看在不同输入条件下排名的程序的结果,以指导程序的选择过程。

这种方法有效地解决了许多使示例驱动方法复杂化的问题。特定于领域的语言避免了标准编程语言的通用性(后者会产生难以有效操作的非常大的程序搜索空间),从而有助于集中于合成过程。紧凑的程序表示使高效地操作大量程序成为可能。有效的排序算法可以帮助用户快速识别所需的程序(从与所提供的示例一致的无限数量的程序中)。交互式程序评估机制(对候选程序产生不同输出的输入的自动识别)帮助用户在合成程序的空间中导航。

作者已经成功地将这种方法应用于三类电子表格程序:语法字符串操作(如将电话号码转换为标准格式)、语义字符串操作(利用存储在关系表中的一些后台系统知识(如转换库存表中的字符串或转换日期)和表布局计算(重组存储在表中的数据)。所有这些系统都已成功地与Microsoft Excel集成,并已在Excel帮助论坛的多个示例上进行了测试。

在未来,用户获得更复杂的自定义行为的需求只会增加。鉴于传统编程方法对绝大多数用户构成的重大障碍,我们可以期待看到帮助非程序员完成软件开发任务的解决方案的激增,这些任务传统上是软件专业人员的专属领域。考虑到指定和实现大型软件系统的困难,这些解决方案将(至少在最初)专注于对日常问题的相对较小但仍然有用的解决方案的自动生成。本文提供了一个杰出的例子,说明了非程序员现在可以自动获得的各种有用的解决方案,并演示了一种复杂的实现技术,使这种自动程序合成系统对于各种问题领域都是可行的。

回到顶部

参考文献

1.拉拉克和泽罗斯基。归纳逻辑编程技术与应用.埃利斯·霍伍德,纽约,1994年。

2.归纳逻辑规划:理论与方法。逻辑程序设计学报, 20(1994), 629679。

3.麻瓜顿,S, De Raedt, L, Poole, D, Bratko, I., Flach, P.A, Inoue, k和Srinivasan, A. ILP 20岁的传记和未来的挑战。机器学习86, 1(2012), 323。

4.LISP程序的实例合成:一个调查。自动程序构造技术, A.W.比尔曼,G.吉霍。和Y. Kodratoff, Eds。麦克米兰,1984,307324。

回到顶部

作者

马丁·c·Rinardrinard@csail.mit.edu)是马萨诸塞州剑桥市麻省理工学院电气工程与计算机科学系的教授。


©2012 acm 0001-0782/12/0800 $10.00

允许为个人或课堂使用部分或全部作品制作数字或硬拷贝,但不得为盈利或商业利益而复制或分发,且副本在首页上附有本通知和完整的引用。除ACM外,本作品的其他组件的版权必须受到尊重。允许有信用的文摘。以其他方式复制、重新发布、在服务器上发布或重新分发到列表,都需要事先获得特定的许可和/或费用。请求发布的权限permissions@acm.org传真(212)869-0481。

数字图书馆是由计算机协会出版的。版权所有©2012 ACM, Inc.


没有发现记录

登录为完全访问
»忘记密码? »创建ACM Web帐号
文章内容:
Baidu
map