自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

這篇罕見的符號(hào)編程論文,讓你在Jupyter Notebook中手繪草圖并變成代碼

開發(fā) 新聞
據(jù)悉,本文是首個(gè)探索量子計(jì)算機(jī)編程手寫圖解范式的系統(tǒng),也是為數(shù)不多的探索手寫編程范式的論文之一。

當(dāng)今,打字系統(tǒng)形成了計(jì)算機(jī)編程的事實(shí)標(biāo)準(zhǔn)和主導(dǎo)范式。然而,在編程出現(xiàn)時(shí),最早的計(jì)算機(jī)編程符號(hào)是手寫的,而非打出來的。例如,在著名的 1945 年第一份 EDVAC 報(bào)告中,馮 · 諾伊曼將圖表與文本視作等同。實(shí)際上,當(dāng)打字機(jī)界面被用于編程時(shí),符號(hào)才被序列化并被稱為編程「語言」。

最近,康奈爾大學(xué)研究團(tuán)隊(duì)創(chuàng)建了一個(gè)界面,允許用戶在計(jì)算機(jī)代碼中手寫和畫圖,這是對(duì)傳統(tǒng)打字型編程的挑戰(zhàn)。

這個(gè)筆式界面被稱為 Notate,它讓基于網(wǎng)絡(luò)和交互型計(jì)算數(shù)字筆記本(如 Jupyter notebooks)打開繪圖畫布,在傳統(tǒng)的數(shù)字化計(jì)算機(jī)代碼行中手寫圖。

就運(yùn)行原理而言,在一個(gè)深度學(xué)習(xí)模型的加持下,Notate 界面連接了手寫和文本編程上下文,即手寫圖中的符號(hào)可以引用文本代碼,反之亦然。例如,Notate 能識(shí)別手寫編程符號(hào)如「n」,然后將這些符號(hào)連接到它們的打字代碼。

在具體的案例研究中,研究者演示了在 Jupyter notebook 代碼單元內(nèi)手繪量子電路圖。詳細(xì)介紹視頻如下。

視頻地址:https://dl.acm.org/doi/10.1145/3526113.3545619

在 10 月 29 日至 11 月 2 日舉行的 ACM 用戶界面軟件和技術(shù)研討會(huì)上,Notate 的論文《Notational Programming for Notebook Environments: A Case Study with Quantum Circuits》獲得了榮譽(yù)提名獎(jiǎng)。論文一作為康奈爾大學(xué)信息科學(xué)博士生 Ian Arawjo。

他表示,「這樣一個(gè)系統(tǒng)對(duì)于數(shù)據(jù)科學(xué)非常有用,尤其適用于繪制草圖和圖表,然后與文本代碼進(jìn)行互操作?!?/span>

圖片

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

研究概覽

本文中,研究者探討了筆式硬件和機(jī)器學(xué)習(xí)的最新進(jìn)展如何對(duì)一些編程實(shí)踐進(jìn)行重新配置。他們表達(dá)了這樣一個(gè)愿景,即稱之為符號(hào)編程(notational programming)的范式可以支持手寫和打出符號(hào)之間的連通

因此,研究者認(rèn)為可能不僅需要開發(fā)新的用戶界面或者改進(jìn)對(duì)流程圖等現(xiàn)有符號(hào)的識(shí)別,還需要對(duì)歷史上圍繞編程出現(xiàn)的文化實(shí)踐、表示和觀念進(jìn)行積極的重新配置。

為了探索符號(hào)編程,研究者設(shè)計(jì)了一個(gè) Jupyter notebooks 的擴(kuò)展——Notate,它能夠在代碼行內(nèi)打開繪圖畫布,并允許函數(shù)在本地將畫布中的對(duì)象接收為參數(shù)。Notate 架構(gòu)傳遞這些對(duì)象作為局部作用域的參考,使得打字變量在手寫上下文中被引用,反之亦然。他們將這種交互稱為隱式跨上下文引用,通過進(jìn)一步模糊「輸入」和「輸出」之間的區(qū)域?qū)﹄p峰編程(bimodal programming)以往的工作進(jìn)行了擴(kuò)展。

圖片

下圖為嵌入在 Jupyter notebook 中的系統(tǒng)的主界面,圖①為繪圖畫布在一行代碼單元內(nèi)打開,圖②為全屏模式,通過觸摸或點(diǎn)擊繪圖畫布訪問,圖③為基本工具欄。

圖片

為了測(cè)試具體域中的符號(hào)編程界面和隱式跨上下文引用,研究者選擇了量子計(jì)算,原因在于:量子計(jì)算的編程人員即使在打出代碼時(shí),也會(huì)經(jīng)常在電路圖和文本之間進(jìn)行轉(zhuǎn)換。Ashktorab 等人的一篇探索性論文注意到了筆式計(jì)算在量子計(jì)算領(lǐng)域中的應(yīng)用潛力,但目前并沒有出現(xiàn)這樣的系統(tǒng)。

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

因此,研究者引入了一種 toy 符號(hào) Qaw,它通過自定義門釋義、捆綁線和遞歸等抽象功能增強(qiáng)了量子電路符號(hào)。下圖為用來編寫量子電路的一些常見符號(hào)。

圖片

研究者使用深度學(xué)習(xí)和經(jīng)典計(jì)算機(jī)視覺技術(shù)為 Qaw 的子集實(shí)現(xiàn)了一個(gè)解釋器,如下為 Notate 系統(tǒng)中解釋手寫量子電路的過程,分為五步完成。

圖片

為了驗(yàn)證 Notate 和 Qaw 原型的效果,研究者對(duì) 12 名熟悉 Python 和 notebook、但初學(xué)量子編程的程序員展開了一項(xiàng)研究。他們給參與者六個(gè)復(fù)雜度不斷增加的電路,并讓參與者將它們編寫到機(jī)器中。研究者發(fā)現(xiàn),幾乎所有參與者都認(rèn)為隱式跨上下文引用概念很直觀,但得到的反饋表明還可以進(jìn)一步改進(jìn)調(diào)試基礎(chǔ)設(shè)施、界面設(shè)計(jì)和識(shí)別率。

下圖為其中一位參與者生成了類似于量子傅里葉變換主體的模式。電路 A 和 C 使用 Qaw 斜杠符號(hào)和隱式跨上下文引用實(shí)現(xiàn)遞歸定義。

圖片

研究者還將 Notate 和 Qaw 與使用 IBM Qiskit API 進(jìn)行量子編程的工作流程進(jìn)行了比較,以驗(yàn)證自己方法的效果。結(jié)果表明,對(duì)于 Python 程序員而言,Qaw 在性能時(shí)間方面能夠與 Qiskit 媲美,但仍需進(jìn)一步研究以了解這些方法的相對(duì)優(yōu)勢(shì)。

更多技術(shù)細(xì)節(jié)請(qǐng)參閱原論文。

責(zé)任編輯:張燕妮 來源: 機(jī)器之心
相關(guān)推薦

2022-05-05 12:25:46

Jupyter開發(fā)

2023-07-28 09:59:31

2022-07-28 08:33:59

JupyterPython

2020-09-24 05:50:46

PythonJupyter Not編程語言

2022-11-14 11:52:34

DataspellJupyterLabNotebook

2023-07-18 15:00:00

AI代碼

2020-10-26 10:11:45

Jupyter Not早起Python開發(fā)

2024-01-03 16:37:26

Jupyter工具開源

2023-11-05 12:31:07

Jupyter命令

2023-05-24 16:48:47

Jupyter工具技巧

2020-07-26 11:55:11

Jupyter Not擴(kuò)展工具開發(fā)

2019-07-28 20:38:33

2023-07-07 07:53:26

Python異常處理

2019-07-23 11:20:16

2020-08-04 06:51:28

Jupyterpython開發(fā)

2019-11-08 09:46:34

技術(shù)功能開發(fā)

2019-09-22 18:53:27

Jupyter Not代碼開發(fā)

2021-08-12 16:02:22

Jupyter NotPython命令

2020-12-18 08:00:00

Python開發(fā)Web

2021-05-26 10:15:52

開發(fā)技能工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)