写博客>>
2017年SPLASH
2017年10月22日星期日至27日星期五加拿大温哥华

如果您正在参加研讨会,请使用此注册研讨会Slack注册链接.

实时编程系统摒弃了传统的编辑-编译-运行周期,转而采用流畅的用户体验,这种体验鼓励了强大的新“代码思维”方式,并使程序员能够看到和理解他们的程序执行。今天的编程需要大量的脑力劳动,需要断断续续的反馈循环:程序员仔细规划他们的抽象,在头脑中模拟程序的执行;计算机只是结果代码的容器,带有执行该代码的方法。实时编程的目的是在程序员和计算机之间创建一个更紧密、更流畅的反馈回路,允许计算机增加更多的编程过程,例如,允许程序员从具体示例中逐步挖掘抽象,并提供关于代码如何执行的连续反馈。与此同时,在大规模PL社区的关注下,围绕“现场编码”的相关理念,一个新生的社区已经形成,即使用计算机和算法作为工具的现场视听表演,并将现场观众纳入其编程体验中。本研讨会重点探讨与开发、创意活动、学习和性能相关的实时编程的概念和程度。我们对方法、工具、演示、基础设施、语言设计以及激发人们对实时编程的兴趣和理解的问题感兴趣。

继2016年ECOOP和2013年ICSE的LIVE研讨会取得成功之后,2017年LIVE将征集高质量的现场节目提交,并将讨论如何推进这一主题,以获得更好的节目体验。

您在不同于设备时区的时区中观看节目更改时区

10月24日星期二

显示的时区:蒂华纳,下加利福尼亚州 改变

10:30 - 12:00
10:30
5000万
谈话
主旨:活着,成长
现场
11:20
2000万
谈话
带孔类型表达式的活生生的步进器
现场
赛勒斯·奥马尔卡内基梅隆大学伊恩·沃西卡内基梅隆大学马修·哈默科罗拉多大学博尔德分校
预打印
11:40
2000万
谈话
无论你说什么,都会发生:VR/AR体验的现场创作
现场
预打印媒体已连接
13:30 - 15:00
13:30
5000万
其他
闪电对话
现场
14:20
2000万
谈话
Shadama:面向所有人的粒子模拟编程环境
现场
大岛吉吉HARC/Y组合器研究伯特·弗洛伊登伯格 丹·阿梅朗视点研究所
预打印媒体已连接
14:40
2000万
谈话
西摩:课堂直播
现场
萨克思·卡西巴特拉HARC/Y组合器研究亚历山德罗·沃思Y Combinator Research,美国
预打印

文件征集

LIVE 2017旨在汇集对直播节目感兴趣的人。实时编程系统摒弃了传统的编辑-编译-运行循环,取而代之的是流畅的用户体验,这种体验鼓励强大的“编码思维”新方式,并使程序员能够看到和理解他们的程序执行。今天的编程需要大量的脑力劳动,打破断断续续的反馈循环:程序员仔细规划他们的抽象,在脑海中模拟程序执行;计算机只是结果代码的容器,带有执行该代码的方法。实时编程的目的是在程序员和计算机之间创建一个更紧密、更流畅的反馈回路,允许计算机增加更多的编程过程,例如,允许程序员从具体示例中逐步挖掘抽象,并提供关于代码如何执行的连续反馈。与此同时,在整个PL社区的关注下,围绕“现场编码”的相关理念形成了一个新生的社区,即使用计算机和算法作为工具的现场视听表演,并将现场观众纳入他们的编程体验。

我们鼓励在以下领域发表简短的研究论文、立场论文、网络文章、工具演示(如视频)和性能建议:

  • 最近在REPL、语言环境、代码操场和交互式笔记本方面的工作。
  • 实时可视化编程。
  • 通过示例编程。
  • 创意体验和交互式视听表演的编程工具。
  • 作为学习辅助工具的实时编程。
  • 流体调试经验
  • 支持上述内容的语言设计。

提交日期为8月8日,将通过HotCRP@https://live17.hotcrp.com/paper/new研讨会向各种媒体开放:你可以写一篇传统的短文(PDF)、一篇嵌入视频的网络文章、一段旁白视频,或者任何你认为能最好地解释你工作的东西!内容应该在30分钟到一个小时的临时读者时间内即可阅读,这意味着一篇论文需要5-10页左右,一段10-20分钟的视频(假设观众需要停下来思考),以及几页左右的论文。视频和非纸张提交可以在提交摘要中列为URL(例如指向网页、文件柜或流媒体网站)。

提交过程中如有任何问题或问题,请联系mcdirmid@outlook.com。此CFP是托管的@https://2017.splashcon.org/track/live-2017#呼叫-用于纸张.

你可以提交任何你认为合适的媒体(视频、纸张、网页等)。提交的文件应该是简短的,读者可以在不到一个小时的时间内消化。对于论文,请将内容限制在5页以内,对于视频,5-10分钟就足够了;网页应该打印出大约5页。

格式

如果提交论文,请尝试使用ACM SIGPLAN会议acmart公司使用“sigplan”子格式格式化10磅字体,使用Times New Roman字体系列。所有提交文件均应为PDF格式。如果您使用LaTeX或Word,请使用提供的ACM SIGPLANacmart公司提供的模板在这里。否则,请按照作者的说明进行操作。

如果使用LaTeX格式化纸张,则需要设置10磅中的选项\文档类命令。如果您使用Word格式化论文,您可能希望使用提供的支持此字体大小的Word模板。请在LaTeX提交的文件中包含页码\settopmatter{printfolios=true}命令。此外,请确保您提交的文件在黑白打印机上打印时清晰可见。特别是,请检查颜色是否保持清晰,字体大小是否清晰。

出版物(数字图书馆早期访问警告)

作者注意:官方发布日期是ACM数字图书馆提供会议记录的日期。该日期可能最早在会议第一天之前两周。官方发布日期影响与已发布作品相关的任何专利申请的截止日期。

在电影《钢铁侠》中,托尼·斯塔克(Tony Stark)使用了一个交互式全息环境,具体化了一个他直接操纵以表达其设计的电源服模型。观看一个真正的程序相对来说比较无聊,因为大多数“动作”都发生在程序员的头脑中,他们在那里解决问题、执行抽象和推理代码。实时编程旨在通过将更多的思维从程序员的头脑转移到计算机中来改变这一点。实时编程首先消除了代码编辑和调试之间的阶段差异,创建了一种更流畅的体验,在这种体验中,观察到的程序行为可以立即通知程序员所做的编辑。只要在编辑整个程序时不断地重新执行,就可以构建一个基本的实时编程环境。技术挑战是“扩大”实施规模,以处理更大的项目;例如,通过使用增量程序重新执行。然而,实时编程的成功更多地取决于其编程经验的设计,而不是其实现的复杂性。

尽管实时编程不断地提供有关程序执行的反馈,但这种反馈应该采取的形式远非显而易见。在天真的情况下,反馈只是采用程序面向用户的输出形式,与代码编辑同步变化。然而,这样的输出几乎不能揭示程序的行为;例如,考虑一个只打印复杂计算的最终答案的程序。然后,必须使与编程任务相关的行为可见,才能使用实时编程。这可以通过显式插入来实现,例如通过向代码添加printf调用,也可以通过普遍的可视化语句执行结果来实现,例如通过列出每个语句的状态更改。这两种方法都在方便性(普遍可视化)和简洁性之间进行了权衡,而简洁性又不会被太多细节所淹没(显式工具)。例如,Deja Vu系统[1]为Kinect带来了实时编程,通过逐帧可视化的方式显示代码如何以程序配置的方式处理输入。布雷特·维克多(Bret Victor)还在他的《可学习编程》(Learnable Programming)论文[2]中描述了许多使状态、数据和程序流可见的方法。

即使相关,在实时编程过程中输出更改的方式也可能非常“不稳定”,在每次编辑时都会急剧变化。考虑使用一系列击键将值从200更改为175,得到20 2 1 17,最后是175。如果将此值用作方框位置,则方框会在任意位置跳跃,使实时编程反馈过于分散注意力,而不是有用。克里斯·汉考克(Chris Hancock)[3]建议,现场编程应该像用水龙带击中目标一样。与使用弓箭不同,用水龙带击中目标很容易:瞄准者只需看到水往哪里流,然后对目标进行一系列小的调整,直到击中目标。对于实时编程,对代码的小编辑在理想情况下会导致程序输出的小变化,就像编程本身是一个连续的函数一样。发生这种情况的一种方法是通过擦洗编辑值;例如,程序员选择200打开一个滑块,然后将其向下移动到175。此编辑中的所有中间值(199-176)在从位置200到175的连续移动中平滑关联。

不幸的是,实况编程的水管原理通常很难实现:向程序添加过程调用的影响可能会非常大,而且无论如何,在其他连续调用中不存在,这些调用会导致与执行相关的小调整。如果输出不能根据代码编辑顺利更新,那么代码可能可以根据输出中的更改进行更新?输出的直接操作本质上是活动的,因为编辑操作会立即更新它们所应用到的对象。然后必须对程序输出进行裁剪以进行直接操作。对于图形程序,这可能意味着绘制和修改形状(请参阅[2]中的“通过反应创建”),但这也可能涉及操作面向程序的输出,例如预期程序行为的痕迹。

直接操作之后,将操作后的输出逐步抽象为通用程序,这类似于Pygmalion和Tinker等演示系统的编程[4],但也类似于[2]中的“通过抽象创建”。例如,在直接操作将水平维度中的两个框对齐后,逐步抽象可以将它们的水平坐标与单个变量统一起来,确保这些框始终对齐。然后,实时编程系统可以使用直接指定输出的保留作为指导,向程序员建议如何将抽象正确添加到程序中。在一个只有今天才能想象的实时编程环境中,人们可以操作输出、进行抽象、操作、抽象等等。这个过程允许程序员的更多思想以小块的形式传递给计算机,从而减少编程的认知负荷。这也会更令人兴奋的观看!

实时编程是一种运动,通过消除编程和执行之间的阶段差异,使编程成为一种更丰富的体验。这涉及到许多程序员经验(PX)挑战,包括如何将输出作为反馈进行编程,如何将代码更改与执行更改平滑关联,以及如何直接操作输出并逐渐将其抽象为代码。但在解决这些挑战的过程中,电影中的科幻编程很可能成为现实。

引文:

[1] Jun Kato、Sean McDirmid、Xiang Cao:DejaVu:为开发基于交互式摄像机的程序提供集成支持。UIST 2012

[2] 布雷特·维克多(2012)。可学习编程。http://worrydream.com/LearnableProgramming(学习编程)/

[3] 克里斯·汉考克(2003)。实时编程和计算素养的大理念。博士论文。麻省理工学院媒体实验室,马萨诸塞州剑桥

[4] 《看我做什么》(1993),艾伦·西弗编辑。麻省理工学院出版社,马萨诸塞州剑桥。