尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
微軟的量子計算開發工具包Q#在2017年底發布,已滿一年,微軟也在今年初開源並支持了macOS與Linux平台,以擴大開發者規模。近期,微軟闡述了說明了Q#的設計理念與接下來的發展方向。
微軟發布Q#的原因,除了要讓量子開發更容易,同時也希望能滿足特定情境的需求,如微軟預告會添加自動化功能。微軟提到,量子位布局和量子閘合成,通常仍需要針對每個程序和目標硬件逐一進行,而自動化可以加速這個過程。
另外,Q#也能解決開發人員常會擔心代碼在硬件上執行時的錯誤糾正問題。以及由於量子位現在仍是稀缺資源,微軟認為,量子計算的長期目標應該是被用來解決,當前硬件還無法解決的計算密集型工作,微軟也希望在開發工作上,大規模量子程序優化應該被當作優先選項。
因此微軟選擇開發自有的語言,以便對信息的表達方式擁有完全的控制力,使其富有彈性,以及在量子編譯時能夠支持模塊化與可擴展軟件架構。微軟提到,編程語言不僅代表一組方便用來表達算法的工具,也同時塑造了開發者思考問題的方法,以及拆解問題成小任務並建構解決方案的方式。
根據目的調整和組合這些工具,編程語言可以對理解現有方法產生極大的影響,更不用說用在全新領域上。微軟想集合編程語言設計人員、編譯工程師、量子物理學家、算法和硬件專家以及各種軟件開發者,為量子計算塑造一種新的計算架構。
2018年11月Q#發布了0.3版,官方現在已經著手準備下一個版本,並且說明了Q#發展的方向。微軟提到,Q#中對數據結構的支持很少,雖然提供了許多高級語言功能來抽象經典概念以及量子控制流,但忽略了一些諸如類別等面向對象的機制。
微軟未來會將重點放在修正量子態的轉換,將其表達成Q#中的操作以及在未來的特性和關係。然而,數據的基本捆綁和這些操作為許多程序重要的部分,微軟希望提供適當的機制來表達,以允許達到抽象、方便以及降低代碼編寫錯誤。
除了增加的類型安全性之外,當前設置中的用戶定義類型的能力受限,目前以黑盒的方式將類型參數化,因此限制了他們的用途。由於微軟沒有提供動態反射的機制,因此不可能將運算符或是其他類型特定功能,應用於每個單獨呼叫解析其類型的參數項目。因此就這個設計的意義來說,這些項目只是個黑盒子,僅能用於傳遞。
由於量子設備排錯非常困難,微軟希望能以靜態的方式,執行這些繁重的工作,微軟提出了兩種可能的機制,以來減輕這些負擔,其中一是類型限制,這是一種的常見於熱門語言的機制,可以被視為基於類型屬性的專業化,另一種則是根據實際類型本身,追求更嚴格的專業化方向,以增加目前避免使用的過載的類型。而無論是哪一種方法,透過明確地將使用者定義的類型,與類型系統中的元組分開,是跨出擴展其能力的第一步。
微軟表示,Q#借助社區的力量不斷發展,雖然量子計算建立在量子力學之上,一般人因為對於這領域不熟悉而卻步,但是又因為量子計算建立在理想化量子系統的概念上,因此也符合部分容易學習的原則。微軟透過Q#開發博客的文章傳遞這些原則,並促使開發人員進行交流。