在追求強大的量子計算機方面,最近已經取得了一些技術進步。目前,蘇黎世聯邦理工學院的計算機科學家已經在程式語言領域取得了重要突破:他們的量子語言是此類語言中的第一種,它與古典計算機語言一樣優雅,簡單且安全。#量子計算機對人類發展的影響#
量子計算機的編程變得越來越容易:蘇黎世聯邦理工學院的計算機科學家設計了第一種程式語言,可以像傳統計算機一樣簡單、可靠、安全地對量子計算機進行編程。ETH智能系統實驗室(SRI)的計算機科學教授Martin Vechev說:「對量子計算機進行編程仍然是研究人員面臨的挑戰,這就是為什麼我如此興奮,以至於我們現在可以繼續蘇黎世ETH對量子計算機和程式語言的發展。」
他認為:「與現有語言相比,我們的量子程式語言Silq使程式設計師能夠更好地利用量子計算機的潛力,因為代碼對於程式設計師而言更緊湊,更快,更直觀並且更易於理解。」
在過去的十年中,量子計算一直受到越來越多的關注,因為這些根據量子物理學原理運行的計算機具有巨大的潛力。如今,大多數研究人員認為,這些計算機將有一天比傳統計算機更快地解決某些問題,因為它們執行纏結量子態,其中各種信息在特定的時間點重疊,因此可以進行糾纏。這意味著,將來量子計算機將能夠有效地解決傳統計算機無法在合理時間內解決的問題。
這種量子至上性仍有待最終證明。但是,最近已經取得了一些重大的技術進步。在2019年夏末,量子計算機比最快的經典計算機更快地成功解決了一個問題,儘管問題非常具體。
對於某些「量子算法」,即計算策略,它們比不利用量子計算機潛力的經典算法要快。但是到目前為止,由於量子計算機目前仍然太容易出錯,因此仍然無法在現有的量子硬體上計算這些算法。
表達程式設計師的意圖
利用量子計算的潛力不僅需要最新的技術,而且還需要一種描述量子算法的量子程式語言。原則上,算法是解決問題的「配方」。一種程式語言描述了該算法,以便計算機可以執行必要的計算。
如今,量子程式語言已與特定硬體緊密聯繫在一起。換句話說,它們精確地描述了底層電路的行為。對於程式設計師而言,這些「硬體描述語言」既麻煩又容易出錯,因為各個編程指令必須非常詳細,從而明確描述實現量子算法所需的細節。
Vechev和他的團隊正是在此發展Silq。Silq是第一種量子程式語言,其主要設計目的不是圍繞硬體的結構和功能,而是在程式設計師想要解決問題時的心態—無需他們了解計算機體系結構和實現的每個細節。
計算機科學家將從特定類型計算機的技術細節中抽象出來的計算機語言稱為高級程式語言。Silq是量子計算機的第一種高級程式語言。高級程式語言更具表現力,這意味著它們可以用更少的代碼描述甚至複雜的任務和算法。這使它們更易於理解,並且更易於程式設計師使用。它們也可以與不同的計算機體系結構一起使用。
通過自動計算消除錯誤
Silq給量子程式語言帶來的最大創新和簡化,是一個至今困擾量子編程的錯誤源。計算機通過幾個中間步驟來計算任務,這些步驟會創建中間結果或臨時值。
為了釋放內存,傳統計算機會自動刪除這些值。由於多餘的臨時值已被丟棄,計算機科學家將其稱為「垃圾收集」。
對於量子計算機,這種處理由於量子糾纏而更加棘手:先前計算出的值可能與當前值發生交互,從而幹擾正確的計算。因此,在量子計算機上清理此類臨時值需要一種更高級的所謂的非計算技術。
「 Silq是第一種自動識別並清除不再需要的值的程式語言,」 Bichsel解釋說,「 Silq在優化量子計算機的編程方面是一項重大突破,這不是發展的最後階段。」 仍然存在許多懸而未決的問題,但是由於Silq易於理解,Vechev和Bichsel希望刺激量子程式語言的進一步發展以及新量子算法的理論和發展。
該四人團隊經過兩年的工作,在語言設計、量子物理學和實現方面擁有不同的專業知識,取得了突破。如果其他研發團隊接受他們的創新,以後可能將取得巨大的成功。