Redian新闻
>
这篇罕见的符号编程论文,让你在Jupyter Notebook中手绘草图并变成代码

这篇罕见的符号编程论文,让你在Jupyter Notebook中手绘草图并变成代码

公众号新闻

机器之心报道

编辑:杜伟

据悉,本文是首个探索量子计算机编程手写图解范式的系统,也是为数不多的探索手写编程范式的论文之一。


当今,打字系统形成了计算机编程的事实标准和主导范式。然而,在编程出现时,最早的计算机编程符号是手写的,而非打出来的。例如,在著名的 1945 年第一份 EDVAC 报告中,冯 · 诺伊曼将图表与文本视作等同。实际上,当打字机界面被用于编程时,符号才被序列化并被称为编程「语言」。


最近,康奈尔大学研究团队创建了一个界面,允许用户在计算机代码中手写和画图,这是对传统打字型编程的挑战。


这个笔式界面被称为 Notate,它让基于网络和交互型计算数字笔记本(如 Jupyter notebooks)打开绘图画布,在传统的数字化计算机代码行中手写图。


就运行原理而言,在一个深度学习模型的加持下,Notate 界面连接了手写和文本编程上下文,即手写图中的符号可以引用文本代码,反之亦然。例如,Notate 能识别手写编程符号如「n」,然后将这些符号连接到它们的打字代码。


在具体的案例研究中,研究者演示了在 Jupyter notebook 代码单元内手绘量子电路图。详细介绍视频如下。



视频地址:https://dl.acm.org/doi/10.1145/3526113.3545619


在 10 月 29 日至 11 月 2 日举行的 ACM 用户界面软件和技术研讨会上,Notate 的论文《Notational Programming for Notebook Environments: A Case Study with Quantum Circuits》获得了荣誉提名奖。论文一作为康奈尔大学信息科学博士生 Ian Arawjo。


他表示,「这样一个系统对于数据科学非常有用,尤其适用于绘制草图和图表,然后与文本代码进行互操作。」



论文地址:https://ianarawjo.therottingcartridge.com/docs/Arawjo-Notational-Programming-UIST-2022.pdf


研究概览


本文中,研究者探讨了笔式硬件和机器学习的最新进展如何对一些编程实践进行重新配置。他们表达了这样一个愿景,即称之为符号编程(notational programming)的范式可以支持手写和打出符号之间的连通


因此,研究者认为可能不仅需要开发新的用户界面或者改进对流程图等现有符号的识别,还需要对历史上围绕编程出现的文化实践、表示和观念进行积极的重新配置。


为了探索符号编程,研究者设计了一个 Jupyter notebooks 的扩展——Notate,它能够在代码行内打开绘图画布,并允许函数在本地将画布中的对象接收为参数。Notate 架构传递这些对象作为局部作用域的参考,使得打字变量在手写上下文中被引用,反之亦然。他们将这种交互称为隐式跨上下文引用,通过进一步模糊「输入」和「输出」之间的区域对双峰编程(bimodal programming)以往的工作进行了扩展。



下图为嵌入在 Jupyter notebook 中的系统的主界面,图①为绘图画布在一行代码单元内打开,图②为全屏模式,通过触摸或点击绘图画布访问,图③为基本工具栏。



为了测试具体域中的符号编程界面和隐式跨上下文引用,研究者选择了量子计算,原因在于:量子计算的编程人员即使在打出代码时,也会经常在电路图和文本之间进行转换。Ashktorab 等人的一篇探索性论文注意到了笔式计算在量子计算领域中的应用潜力,但目前并没有出现这样的系统。


Ashktorab 等人论文地址:https://dl.acm.org/doi/10.1145/3290605.3300486


因此,研究者引入了一种 toy 符号 Qaw,它通过自定义门释义、捆绑线和递归等抽象功能增强了量子电路符号。下图为用来编写量子电路的一些常见符号。



研究者使用深度学习和经典计算机视觉技术为 Qaw 的子集实现了一个解释器,如下为 Notate 系统中解释手写量子电路的过程,分为五步完成。



为了验证 Notate 和 Qaw 原型的效果,研究者对 12 名熟悉 Python 和 notebook、但初学量子编程的程序员展开了一项研究。他们给参与者六个复杂度不断增加的电路,并让参与者将它们编写到机器中。研究者发现,几乎所有参与者都认为隐式跨上下文引用概念很直观,但得到的反馈表明还可以进一步改进调试基础设施、界面设计和识别率。


下图为其中一位参与者生成了类似于量子傅里叶变换主体的模式。电路 A 和 C 使用 Qaw 斜杠符号和隐式跨上下文引用实现递归定义。



研究者还将 Notate 和 Qaw 与使用 IBM Qiskit API 进行量子编程的工作流程进行了比较,以验证自己方法的效果。结果表明,对于 Python 程序员而言,Qaw 在性能时间方面能够与 Qiskit 媲美,但仍需进一步研究以了解这些方法的相对优势。


更多技术细节请参阅原论文。


参考链接:https://news.cornell.edu/stories/2022/11/programming-tool-turns-handwriting-computer-code


2022 年全球 “未来 · 汽车” 智能场景创新峰会

何积丰院士、朱西产教授领衔众多大咖、产业界精英确认出席的由机器之心联合上海金桥管委会、阿里云、阿里巴巴达摩院共同举办的2022年全球“未来·汽车”智能场景创新峰会,峰会于12月15日在国内首条中心城区自动驾驶开放测试道路示范区的上海金桥举行,现场超多精彩等你揭晓:

  • 何积丰院士、朱西产教授现场重磅分享

  • 主机厂、头部智能车企、政府主管部门、金桥智能网联测试道路示范区运营等机构跨界交流数据应用与数据管理实践应用案例研讨

  • 阿里云、阿里巴巴达摩院自动驾驶能力全方位展示

  • 全球“未来·汽车”应用赛、算法赛获奖项目颁奖典礼
点击阅读原文,立即报名参会 ,一起畅想数智驱动汽车未来蓝图。

© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:[email protected]

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
SpringBoot 整合 Groovy 脚本,实现动态编程谷歌开源!一个格式化 Python 代码的好帮手低代码编程及其市场机遇剖析 | 低代码技术内幕PyTorch 2.0来了!100%向后兼容,一行代码将训练提速76%!【环境】简单几步,垃圾也能变成代金券!环保又省钱男副区长简历已被撤下!不雅聊天记录是谁截图并爆料的?Debian终于完全删除Python 2ChatGPT竟写出毁灭人类计划书,还给出相应Python代码,网友:AI正在指数级发展热烈祝贺农垦中学校庆五十周年80后女副区长不雅聊天记录,竟是这样截图并爆料的……import 一个“太极”库,让 Python 代码提速 100 倍!三星 Galaxy Book 3 Ultra 笔记本真机曝光,对标苹果 MacBook ProJulia 快到离谱?不,它并没有比Python快340000,000,000倍火爆北美的少儿Python编程课免费领!藤校师资,竞赛AP两手抓!Pytorch中混合精度训练的使用和debugMacbook 12in A1534(cannot reinstall system due to hardware issuePyTorch统治学术论文,TensorFlow只占4%,LeCun:还能为啥?PyTorch统治学术论文!TensorFlow只占4%,LeCun:还能为啥?2023需求最高的编程语言:Python、JavaScript和Java写我的那些写手们!教育|推娃神器~美国计算机奥赛官方推荐机构, 青少年编程学校KTBYTE, 让孩子在快乐中学习编程!能力有了深度学习的加入,生成代码变得更智能、更高效了Julia 快到离谱?不,它并没有比 Python 快 340000,000,000 倍ChatGPT发明「史莱姆语」,词汇语法规则全都有,还配了「史翻英」Python代码PyTorch 2.0 来了!100% 向后兼容,一行代码将训练提速 76%Just:Spring Boot 应用的新命令行界面揭开EB-5项目I-956K中介推广方注册表的神秘面纱跑者常见的跟腱炎,读完这篇,让你不再烦恼!巴黎的五月风暴《悠悠岁月》(3)绝!比商学院Casebook好用10倍的面试真经,让我1个月上岸BCG急招!VanPeople全宇宙招聘公众号编辑、短视频剪辑,待遇丰厚!龙卷风健康快递 218【1.14折扣】Boots/Hollister罕见5折!麦昆鞋6折!Urban Outfitters白菜25折!TikTok、Ins、Facebook、YouTube和Snapchat集体被告!西雅图学区起诉社交媒体对青少年心理健康危机负责
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。