量子程式語言格局

2021-03-06 量子客

編  輯:Sakura    審 校:Peiyong Wang隨著量子計算技術的不斷發展,各種量子計算機程式語言應運而生,全球量子計算競爭的格局增添了一個新的維度:量子程式語言。類似於經典計算機,量子計算機也需要一種「語言」來與其交流,這個「語言」就是經常聽到的量子程式語言。程式語言通過發送指令並從量子計算機接收輸出,以此達到與量子計算機交流的目的。編程有不同的級別:從向計算機提供特定指令的彙編語言(也稱為量子機器指令集)到已經可以進行底層編程量子算法的高級語言。為了對量子程式語言有一個基本的了解,接下來,將引入一些特定的概念。量子計算機實際上是由量子設備(硬體)和經典計算機組成的混合系統,彙編語言將指令發送到硬體並接收和處理結果(軟體)。量子語言與此經典軟體相對應。而有的庫則是使用某些知名程式語言如python,C ++,Matlab編寫,這些語言可幫助用戶構建編寫量子算法。在本文及其對應的圖中,上述兩種情況都統稱為「量子語言」(Quantum Language)。下圖為不同級別的量子編程算法。      不同級別的量子編程算法      在真正的量子設備出現之前,量子語言就已經存在了。它們已經被用來在經典計算機上模擬量子算法。隨著真正的量子計算機的問世,研究小組和公司都開發了自己的程式語言來使用他們自身的設備,這促進了更多語言的創建。這些語言試圖結合現有語言的一些元素,使其可以用於任何後端, 這種語言稱為通用量子語言(Universal Quantum Languages)。更加通用的量子語言是可以被創建的,因為幾乎每個人都在開發開源軟體,也就是說,任何人都可以通過使用 GitHub 這樣的平臺來改進和擴展這些語言。「開源」軟體和「免費」軟體之間有什麼區別呢?相對於專有軟體而言,「開源」軟體和「免費」軟體指的是對使用方式的限制較少的軟體。但是,二者之間是不同的,它們基於完全不同的價值觀。開源是一種「開發方法」,自由軟體是一種「社會運動」。自由軟體允許用戶「具有運行、複製、分發、學習、更改和改進軟體的自由」,而不必從零開始。而開源軟體則更側重於協作和社區驅動的開發模式的價值。開源軟體運動起源於最初的自由軟體社區,通常,自由軟體代碼也是開源的,但開源的軟體不一定是自由軟體。開源方法在軟體代碼的開發和改進中引入了毋庸置疑的優勢。如果社區正在嘗試創建一種很新的應用程式程式語言,則該優勢更加明顯。量子計算是一個相對較新的領域,它引入了新的計算範式,運行量子算法的技術完全不同,最終的程式語言應滿足所有可能用戶的需求。然而,在經典編程和量子編程之間建立並行性不容易。我們將嘗試以不同的抽象層對一些最著名的量子程式語言進行分類,尤其是那些由私人公司和初創公司開發的語言。這並不是一個詳盡而且全面的清單,您可在量子客後期的更新中獲得更完整的信息。本文接下來將專注於開發量子計算機的公司所使用的量子語言。但是,並不是所有的公司都使用這種開源策略來創建他們的代碼,一些公司使用的語言是不公開的,甚至連名稱也尚未公開。IBM已經開發了量子信息軟體工具包( QISKit),這是一個用於編寫,模擬和運行量子程序的全棧庫。該工具包包括了四個部分:1)Terra,它允許在量子門和脈衝級別編程(量子門通過脈衝序列實現);2)Aqua,運行量子化學、優化問題和人工智慧中使用的算法的高級編程;QISKit將量子程序轉換為一種稱為QASM的量子指令語言。Rigetti Computing創建了 Forest,這是一個用於編寫和運行量子程序的開發環境。他們的量子設備使用名為 pyquil的python庫進行編程,該庫將根據量子門編寫的程序轉換為稱為 quil的較低級語言。他們還開發了 Grove庫,其中包含用於量子化學的算法(例如,用於量子化學的變分量子本徵求解器)或用於優化問題的量子優化算法(QAOA)。微軟提供的量子開發套件包括量子模擬器、實現量子算法的庫以及稱為 Q#的全棧量子程式語言,該語言可作為Visual Studio的單獨下載的擴展程序獲得。微軟仍在使用拓撲量子比特來開發其量子計算機,因此,他們目前提供了一個運行量子程序的量子模擬器。D-Wave的軟體環境包括一種稱為 qbsolv的量子語言,可幫助用戶將其QUBO問題(其量子退火器要解決的問題的類型)映射到D-Wave設備的量子比特,連接並將程序轉換為量子指令語言。他們還提供了一些更高級別的庫來實現一些稱為 QSage和 ToQ的優化問題。谷歌開發了一種稱為 Cirq 的量子語言,它由一個python庫組成,用於編寫、操縱和優化線路,並再次運行它們,以運行量子計算機和模擬器。目前,一些公司和組織已使用它來運行Google量子設備。他們開發了 Strawberry Fields,這是一個專門針對連續變量量子計算的全棧庫,該庫基於光子的量子計算機。量子線路是使用 Blackbird量子程式語言編寫的,該語言是其量子設備的彙編語言。本源量子開發了QRunes的程式語言,該語言用於編寫和運行由本源開發的量子編程框架QPada構建的量子程序,該語言是其量子設備的彙編語言。由上文可以看出,當下有多種量子計算語言,每個公司都提出了對其設備進行編程的語言。其中哪一個會更好?沒有誰能妄加論斷。就像經典程式語言,最終將遭受一種自然選擇,只有最常用的才能生存。有些公司試圖通過開發通用語言來簡化研究人員的工作,這些語言將根據所使用的硬體設備來對量子程序進行編譯。ProjectQ便是這種通用量子語言之一,它可以將程序轉換為任何類型的後端,比如IBM設備和Google量子計算機的模擬。另一種通用語言是XACC,這是一個用於對IBM、Rigetti和D-Wave量子計算機進行編程的全棧庫。量子設備仍在不斷的發展,量子語言也在不斷的進化。在歷史的進程中,各個量子公司的程式語言最終哪家能夠成為通用程式語言,亦或者是否會誕生新的程式語言,力壓群雄,最終成為真正的量子通用程式語言?且拭目以待。https://www.microsoft.com/en-us/quantum/development-kithttps://www.dwavesys.com/softwarehttps://www.rigetti.com/productshttps://medium.com/qiskit/qiskit-and-its-fundamental-elements-bcd7ead80492https://github.com/eclipse/xacchttps://mp.weixin.qq.com/s/6e4E-hQxoIPAHjJvcU8OWw

聲明:此文出於傳遞更多信息之目的。若有來源標註錯誤或侵權,請作者持權屬證明與我們聯繫,我們將及時更正、刪除

相關焦點

  • 量子計算機高級程式語言 Silq 誕生;100多個Chrome擴展偷敏感數據
    (開源中國)2、量子計算機高級程式語言 Silq 誕生近日,蘇黎世聯邦理工學院的計算機科學界人士在程式語言領域取得了重要突破:計算機科學教授 Martin Vechev 與他的團隊設計出了量子計算機領域內第一種高級程式語言 Silq,它能夠像傳統計算機語言一樣簡單、安全又可靠。
  • 微軟開源 Quantum Katas,領先的量子編程解決方案
    授權協議:MIT開發語言:C#作業系統:跨平臺開發廠商:微軟據外媒報導,微軟近日推出了一套先進的量子編程解決方案
  • 量子客隆重推出「量子中國(Q China)」 - 首個專注於國內量子科技產業的信息專欄
    隨著量子技術不斷取得重大突破,無論是我國在量子通信領域的成就,或是全球在量子計算領域的不斷突破
  • 一文教你 「量子編程」入門式
    這是一段從量子比特到真實量子程序的量子編程演練。量子計算機量子計算機被發現之後,量子編程也在不斷發展。本文將帶你入門量子編程,介紹量子計算機與傳統電腦的區別,解釋量子編程的基本概念,最後教你如何在一個當今免費的量子計算機上運行程序。在開始之前,請注意,本文是為希望了解量子編程的完整技術細節的人們準備的。
  • 語言也是量子
    然而在國內,從事這一方面研究的學者卻並不是很多,原因之一在於:量子力學太難了!11月7日,天津大學副教授張鵬在「第十五屆中國中文信息學會暑期學校」上做了題為「量子理論與自然語言處理」的主題講習報告,這是國內為數不多對這一方面工作的介紹。智源研究院將這份報告內容作以梳理,供有興趣的學者參考。
  • 墮落 Java vs 新貴 Python,2018 年最應該學習哪一門程式語言?
    2017 年,程式語言領域發生了巨大的變化,一方面,Java、Kotlin 等語言在企業和移動開發方面吸引了很多開發者的關注;另一方面,對 Web 開發至關重要的 JavaScript 生態系統也在不斷擴大;TypeScript 、C ++ 等程式語言的特性都迎來了較大的更新。
  • HackerRank:JavaScript 是最知名的程式語言
    HackerRank 是國外一家知名的招聘平臺,面向求職者提供了編程練習、面試準備等一系列服務。不過 HackerRank 更為人熟知的是其競爭性的編程挑戰比賽,這種編程挑戰比賽橫跨多個計算機學科領域,旨在根據技能評估開發者。各行各業都需要軟體開發者,這也就意味著僱主們對技術人才的競爭非常激烈。
  • D-Wave開源量子編程軟體,無需掌握量子物理就可編程
    現在,加拿大有一家名為D-Wave的量子計算公司就試圖打破這一現狀,在2013年得到Google和NASA的聯合投資之後,他們希望藉助開源軟體將量子計算這一技術進一步普及。 與之相比,量子計算所藉助的「量子」則沒那麼簡單,它有一種很奇怪的狀態「量子疊加」,即在未被觀察時,同一個量子粒子可以以不同狀態同時存在於兩個、或者兩個以上的點位。而科學家們恰恰是利用量子的這一特性創造了可以同時代表1或0兩種狀態的「量子比特」,而利用「量子比特」所製造的量子計算機很顯然從理論上就已經比現有的計算機要快很多了。
  • 谷歌發布新程式語言,專治SQL各種「不服」
    豐色 發自 凹非寺量子位 報導 | 公眾號 QbitAI天下苦SQL久矣。
  • 高手把電腦程式語言替換成中文!程式設計師看了表示一言難盡
    編程是和機器溝通,因此要用機器的語言而不是人類的語言。最早的程序就是0和1的數字,不是中文也不是英文。以前的程式設計師,每天寫程序就是在一條長長的紙帶上打孔表示0和1。後來發現0和1的二進位太麻煩了,就把0和1壓縮一下,用16進位表示,比如數字10,用二進位表示是1010,用16進位表示就是0A,這樣表達起來就更簡潔,但是輸入電腦後,仍然要轉換為二進位電腦才能明白。
  • 5000量子位支持量子編程!D-Wave爭議中推出下一代量子計算平臺計劃
    :推出其 5000 量子比特量子計算的發展藍圖。經典比特只能代表 1 或 0,而量子比特則可以處於 1 和 0 的疊加態。量子計算利用量子比特的特性來進行遠比經典計算機複雜的運算。這家位於加拿大的公司一直在自行研發能夠運行量子退火算法的量子計算機。由於 D-Wave 的量子計算機專注於解決優化問題,所以其量子計算機並不能與真正的通用型量子計算機進行比較。這一點一直令不少人詬病。
  • Julia:一種新的科學計算程式語言
    Julia是一種新的程式語言,一種函數式程式語言,是一種面向科學技術計算的高性能動態高級程序設計語言。四、與其它程式語言的異同  Julia程式語言設計的初衷就是發明一種綜合多種程式語言優點的開源程式語言,因此你在編寫Julia代碼的過程中會發現Julia與其它語言有不少相似之處,例如Matlab、R或Python,但也有著明顯的不同。
  • 量子晶片的大亂戰時代正式開啟
    矽基集成電路(IC)於1968年進入「中規模」集成階段。Google與Rigetti合作了一個編譯和分析量子化學問題的開源軟體包——OpenFermion。微軟則推出了Q#(Q-sharp)量子計算語言(請在下文中閱讀有關微軟的更多信息)。相關的活動還有很多,在此不再一一贅述。由於缺少量子計算機的出版物和公告,中國公司一直受到廣泛的關注。今年中國宣布成立了價值100億美元的量子信息科學國家實驗室,並計劃於2020年開放。
  • 如何學程式語言?好菜鳥學習程式語言的步驟
    每種程式語言必然有其優點和缺點,這也決定了它有適合的應用場景和不適合的應用場景。現代軟體行業,想一門程式語言包打天下是不現實的。這中現狀也造成了一種現象,一個程式設計師往往要掌握多種程式語言。 學習任何一門程式語言,都會面臨的第一個問題都是:如何學習 XX 語言?我不想說什麼多看、多學、多寫、多練之類的廢話。世上事有難易乎?無他,唯手熟爾。
  • 極速程式語言
    對開發來說,就是應該選擇開發效率最高的程式語言。理想中的極速程式語言的開發體驗,應該像你坐長途汽車時喝多了水,好不容易憋到高速公路休息站,一瀉千裡的感覺。經過一番研究,我發現Python和TypeScript就能帶來這樣的極速暢快感。 我首選的極速程式語言其實,本來應該是Python和JavaScript。
  • 谷歌開放量子云端計算,讓研究員測試自家量子計算機
    說起D-Wave這家加拿大公司也是十分傳奇,在2010年宣布在美國麻省理工學院在利用量子效應進行運算的理論基礎上,開始生產號稱全球首款商用型量子計算機,但是可是震驚了世界,畢竟大家當時對於量子計算還是處於一知半解的狀態。當時谷歌研究小組組織大量科學家對其進行了測試,發現D-Wave針對特定問題運行量子算法要比現有最高的經典算法快上一億倍。
  • 程式語言分類
    程式語言分類一、機器語言只要是談到計算機基礎,有一個東西是我們無法避免的,那就是編程到底是什麼?我只放圖,其他的你們自己YY。
  • 計算機程式語言分類 --- 編程分享
    缺點:可讀性差代碼為二進位文件,可移植性差,編程複雜。    2.彙編語言(幾乎看不到):            優點:面向機器編程,可直接操作計算機硬體。            缺點:可移植性差,編譯的程序無法在不同機器上運行。可讀性差,可維護性差。
  • 程式語言排名
    即便是世界上最厲害的情報機關, 也不可能搞清楚每一個程式設計師在鍵盤上敲代碼時用的是哪種語言,特別是還有些人在用老式電腦甚至是可編程計算器。因此,IEEE SPECTRUM中文版《科技縱覽》雜誌結合了來自網絡的11個指標,IEEE SPECTRUM中文版《科技縱覽》雜誌認為,這11個指標很好地代表了55種程式語言的受歡迎程度。
  • 程式語言簡史
    轉自公眾號:計算機與網絡安全程式語言有上千種,但是流行的不過10來種,那些我們經常使用的程式語言都是誰在什麼時候創造出來的呢?