91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

微軟正式發(fā)布了一種名為Bosque的全新編程語言

DPVg_AI_era ? 來源:lp ? 2019-04-21 09:29 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

微軟正式發(fā)布了一種名為Bosque的全新編程語言。微軟方面介紹說:Bosque是一種超越了結構化編程且沒有循環(huán)的編程語言將極大地提高開發(fā)人員的生產(chǎn)力,提高軟件質量,并使編譯器和開發(fā)人員工具的開發(fā)進入第二個黃金時代。

當?shù)貢r間 4 月 18 日,微軟正式發(fā)布了一種名為 Bosque 的全新編程語言。微軟方面介紹說:Bosque 受 TypeScript 啟發(fā),是一種超越了結構化編程且沒有循環(huán)的編程語言,他們認為,這種規(guī)范化的編程模型將極大地提高開發(fā)人員的生產(chǎn)力,提高軟件質量,并使編譯器和開發(fā)人員工具的開發(fā)進入第二個黃金時代。

超越結構化編程的“正則化”編程語言

20 世紀 70 年代,結構化編程和抽象數(shù)據(jù)類型的興起代表了編程語言的重大轉變。這些方法代表了從反映底層硬件體系結構附帶特性的編程模型,開始轉向更直接地強調程序員意圖的模型。這種轉變同時使開發(fā)人員更容易地將系統(tǒng)的模型轉換為代碼,且更不易出錯,并開啟了編譯器和 IDE 工具開發(fā)的黃金時代。

21 世紀的今天,微軟推出了一種新的開源編程語言,名為 Bosque,它希望通過包含代數(shù)運算和避免產(chǎn)生復雜性的技術來使得代碼簡化和易于理解。

Bosque 的靈感來自于 TypeScript 的語法和類型以及 ML 和 Node/JavaScript 的語義。它的提出者是微軟計算機科學家 Mark Marron,他將這種語言描述為 超越結構化編程模型 的成果。

自 1968 年計算機科學家 Edsger Dijkstra 發(fā)表題為《Go To Statement Considered Harmful》的論文后,結構化編程范式開始流行起來。在結構化編程范式中,流控制由循環(huán)、條件和子例程管理。

Marron 認為:可以通過消除諸如循環(huán)、可變狀態(tài)和引用相等等復雜性的來源讓編程變得更好。于是 Bosque 誕生了,它代表了一種編程范式,Marron 在他的一篇論文中稱之為“正則化編程”。

Marron 在他的技術論文中解釋說:“這個模型建立在結構化編程和抽象數(shù)據(jù)類型成功的基礎上,它將現(xiàn)有的編程模型簡化為一種正則化的形式,這種形式消除了主要的錯誤來源,簡化了代碼理解和修改,并將許多代碼上的自動化推理任務轉換為瑣碎的命題?!?/p>

Bosque 語言官方論文:

https://www.microsoft.com/en-us/research/uploads/prod/2019/04/beyond_structured_report_v2.pdf

Bosque 語言概覽

那么,Bosque 語言是什么樣子的?下面這個例子或許可以說明:

//Functor (Bosque)

官方 GitHub 中包含更多參考示例:

https://github.com/Microsoft/BosqueLanguage

乍一看,Bosque 的表達方式很像 JavaScript 語言。Marron 說,引用相等(當兩個變量指向內(nèi)存中的同一個對象時)代表了一種可能導致問題的復雜性的例子。

在 Marron 的論文中,他寫道:

基于一系列開發(fā)人員訪談和對分析運行時編譯器開發(fā)的經(jīng)驗研究,我們確定了五個意外復雜性的主要來源,可以通過深思熟慮的語言設計來解決。這些問題是各種 bug 的來源,增加了開發(fā)人員在應用程序中推斷和實現(xiàn)功能所需的工作量,并使自動推斷程序變得非常復雜(甚至不可能實現(xiàn))。

這五種復雜性來源分別是:

可變的狀態(tài)和框架:在編程語言中引入可變性,破壞了以單調的方式對應用程序進行推理的能力,這種方式迫使程序員 (和任何分析工具) 明確哪些在運算之后仍然為真,哪些就無效了??勺兇a通過返回值和對參數(shù) (或其他全局狀態(tài)) 的副作用來影響應用程序狀態(tài)的能力也引入了對每個運算的邏輯框架進行推理的需要。

循環(huán)、遞歸和不變量:循環(huán)和遞歸是向推理提出的一項基本挑戰(zhàn),因為代碼描述了單個步驟的效果,但是要理解完整的構造,需要對一組值上的量化屬性進行泛化。不變量提供了所需的關聯(lián),但是一般針對它們的計算不可能存在一種通用的技術,甚至在有限的應用中也很難實現(xiàn)。

不確定行為:包括未定義的、未指定的、不確定的或環(huán)境的行為,需要程序員或分析工具來推斷并解釋所有可能的結果。雖然真正未定義的行為,例如未初始化的變量,已經(jīng)從大多數(shù)語言中消失了,但是仍然存在大量未具體明確的行為,例如排序的穩(wěn)定性、映射 / 字典枚舉順序等。這些增加了開發(fā)過程的復雜性,并且隨著時間的推移,逐漸被視為應該消除的負債。

違反數(shù)據(jù)不變原則:編程語言通常為數(shù)組 / 元組中的單個元素或對象 / 記錄中的字段提供訪問和更新的操作符。事實上,這些訪問器 / 更新器是在單個元素的基礎上操作的,這導致程序員在多個步驟上更新對象的狀態(tài),在此期間,通常不變量在恢復之前會暫時失效。在這種情況下,大量細節(jié)必須予以跟蹤和恢復,這可能會急劇增加發(fā)生錯誤和疏忽的機會。

等式和混疊:編程語言處于數(shù)學和工程學的邊界上。盡管語言語義被表述為一個數(shù)學概念,但也存在一些常見的情況,例如引用相等、按值傳遞 vs. 按引用傳遞,或評估順序,它們通常默認底層是馮·諾伊曼架構,要么是有意為性能考慮,要么是出于習慣或歷史原因。雖然這些選擇看起來微不足道,但是對可理解性有很大的影響——僅僅公開引用相等性就會增加關于混疊關系的推理的復雜性,并使其他體系結構上的編譯變得非常復雜。

Marron 舉了一個例子,譬如為了讓某種方法以單例模式或緩存的形式返回一個新對象,就需要考慮對該方法進行優(yōu)化。但 Marron 表示:“如果這個問題出現(xiàn)在對象具有身份的語言中,這種行為可能會改變程序的結果;然而,在不允許對象標識的 Bosque 中,這種優(yōu)化則是安全的?!?/p>

他引用的另一個例子是各種形式的不確定行為,他說:“在 JavaScript 中,排序函數(shù)不需要是穩(wěn)定的,所以 JS 的 V8 引擎使用了不穩(wěn)定的排序?!?/p>

Marron 進一步解釋道:“從理論上講,這似乎是一件小事,但在實踐中,這意味著每次開發(fā)人員對列表進行排序時,他們必須記住列表是不穩(wěn)定的,并考慮到使用相同排序值重新排序的可能性,譬如 2008 年因為穩(wěn)定性問題被爆出的 Chromium bug 90?!?/p>

Marron 的技術論文探討了 Bosque 試圖解決的編程語言復雜性的潛在來源。但是他說,消除可變狀態(tài)、循環(huán)和引用相等性是三大要素。

他說:“在學術文獻中,強更新、循環(huán)不變量和別名分析等相關問題已經(jīng)被廣泛研究了 30 多年,但仍然是一個巨大的開放問題。通過消除這些特性,以及解決相關問題的需要,許多像符號執(zhí)行這樣的事情可以簡化為概念上的簡單任務?!?/p>

Marron 說,Bosque 的最初目標是構建自動化的零工作量代碼驗證、自動化的 SemVer 檢查和編譯,以使用 SIMD 硬件,如 AVX 或 SSE。他說:“目前,我們只在小的示例上手工完成了這些工作,但從根本上說,在實際實現(xiàn)中似乎沒有任何不可逾越的障礙?!?/p>

未來規(guī)劃

目前,Marron 將 Bosque 視為探索語言設計選擇的一種方式,并通過與學術界和在線開發(fā)人員社區(qū)的協(xié)作,幫助創(chuàng)建諸如驗證器和編譯器之類的自動化開發(fā)工具。

他說:“我們希望用 Bosque 來證明這個領域的各種概念。未來,我們可能會努力將這些想法以某種形式投入生產(chǎn)?!?/p>

目前,Bosque 依賴于一個用 TypeScript 編寫的解釋器,運行在 Node 上。作為參考實現(xiàn)。展望未來,Marron 打算為 WASM 和本地代碼提前實現(xiàn)編譯。他說,在接下來的幾個月里,他將專注于各種 TODO 項目,比如 bug 修復以及開發(fā)支持用這種語言編寫大型程序的功能。

如果 Bosque 在學術實驗之外的開發(fā)生態(tài)系統(tǒng)中找到了一席之地,Marron 認為它可能會應用在云或物聯(lián)網(wǎng)領域,因為 Bosque 代碼可以在一個比較小的內(nèi)存中編譯,能夠快速啟動,并且可以通過符號分析驗證其正確性。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微軟
    +關注

    關注

    4

    文章

    6746

    瀏覽量

    107982
  • 編程語言
    +關注

    關注

    10

    文章

    1965

    瀏覽量

    39699
  • 編譯器
    +關注

    關注

    1

    文章

    1672

    瀏覽量

    51781

原文標題:Bosque語言問世,超越結構化編程,開啟第二個開發(fā)黃金年代

文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    微軟發(fā)布多項全新自主式能力企業(yè)智能體

    微軟宣布多項面向未來企業(yè)的自主式能力,從銷售拓展智能體到MCP服務器全面升級,聚焦銷售流程自動化、跨系統(tǒng)的統(tǒng)數(shù)據(jù)訪問、Microsoft Dynamics 365與Microsoft Power
    的頭像 發(fā)表于 12-19 16:14 ?677次閱讀

    微軟全新AI超級工廠Fairwater在亞特蘭大落成

    微軟正式發(fā)布位于美國喬治亞州亞特蘭大的 Azure AI 數(shù)據(jù)中心 Fairwater 站點。全新的數(shù)據(jù)中心將與威斯康星州的首個 Fairwater 站點、前幾代 AI 超級計算機以及全球 Azure 數(shù)據(jù)中心深度互聯(lián),共同構建
    的頭像 發(fā)表于 12-09 17:31 ?794次閱讀

    為什么單片機還在用C語言編程

    最適合單片機開發(fā)的編程語言實在太過晦澀難懂,學習起來非常的不方便,并且每一種單片機的匯編指令有很大區(qū)別,所以想把個程序從這種單片機移植到另一種
    發(fā)表于 11-28 07:37

    喜報|華微軟件AI研發(fā)持續(xù)推進,再添項核心專利

    。 在實際使用中,許多智能系統(tǒng)仍依賴用戶輸入固定指令(如“開燈”“查詢訂單”)才能執(zhí)行操作,定程度上限制交互的靈活性,增加了使用負擔。而本項專利提出了一種基于大語言模型的新型控制方
    的頭像 發(fā)表于 11-27 15:02 ?172次閱讀
    喜報|華<b class='flag-5'>微軟</b>件AI研發(fā)持續(xù)推進,再添<b class='flag-5'>一</b>項核心專利

    C語言和單片機C語言有什么差異

    的目標代碼短、運行速度高、存儲空間小、符合C語言的ANSI標準,生成的代碼遵循Intel目標文件格式,而且可與A51匯編語言PL/M51語言目標代碼混合使用。 4、C只是一種高級
    發(fā)表于 11-14 07:55

    文了解Mojo編程語言

    Mojo 是一種由 Modular AI 公司開發(fā)的編程語言,旨在將 Python 的易用性與 C 語言的高性能相結合,特別適合人工智能(AI)、高性能計算(HPC)和系統(tǒng)級
    發(fā)表于 11-07 05:59

    信捷XS STUDIO編程軟件V2.3.2版本的全新功能

    XS Studio(V2.3.2)編程軟件,是面向XS系列的編程組態(tài)軟件,集成了PLC編程、可視化HMI、安全PLC、控制器實時核、現(xiàn)場總線及運動控制功能,提供
    的頭像 發(fā)表于 09-20 14:19 ?2112次閱讀
    信捷XS STUDIO<b class='flag-5'>編程</b>軟件V2.3.2版本的<b class='flag-5'>全新</b>功能

    騰訊發(fā)布全新一代智能駕駛地圖9.0

    9月16-17日,2025騰訊全球數(shù)字生態(tài)大會在深圳舉行。會議期間,騰訊正式發(fā)布全新一代智能駕駛地圖9.0。
    的頭像 發(fā)表于 09-18 10:23 ?1609次閱讀

    微軟Visual Studio 2026 發(fā)布!AI 深度融合、性能提升

    工作流! 我們?yōu)槟阏?b class='flag-5'>了來自 微軟官方博客 的手信息,帶你快速了解 VS 2026 的核心亮點! 亮點全新 Fluent 設計,顏值更
    的頭像 發(fā)表于 09-16 11:17 ?2190次閱讀
    <b class='flag-5'>微軟</b>Visual Studio 2026 <b class='flag-5'>發(fā)布</b>!AI 深度融合、性能提升

    ITECH發(fā)布全新IT-EC7800系列可編程交直流電源

    2025年8月,ITECH艾德克斯正式發(fā)布全新IT-EC7800系列可編程交/直流電源,定位2kVA~15kVA中功率測試區(qū)間,主打“高密度、高性價比、高適配性”,為電力電子、新能源、工控、教育等行業(yè)提供更實用、更優(yōu)的測試新選擇
    的頭像 發(fā)表于 08-08 17:39 ?1962次閱讀
    ITECH<b class='flag-5'>發(fā)布</b><b class='flag-5'>全新</b>IT-EC7800系列可<b class='flag-5'>編程</b>交直流電源

    匠芯創(chuàng)發(fā)布新版GUI開發(fā)工具 新增多國語言設置等功能

    。此次版本更新,為用戶帶來了諸多實用的新功能,進步提升了設計體驗和開發(fā)效率。 在V1.3.0版本中,AiUIBuilder新增 多國語言切換功能,支持設計界面顯示刻度尺,拖動控件與相鄰控件對齊???/div>
    發(fā)表于 07-16 13:54

    C語言精彩編程百例-364頁

    內(nèi)容提要 C是一種通用的程序設計語言,它包含了緊湊的表達式、豐富的運算符集合、現(xiàn)代控制流以及數(shù)據(jù)結構等四個部分。C語言功能豐富,衣達能力強,使用起來靈活方便:它應用面廣,可移植性強,網(wǎng)時具有高級
    發(fā)表于 06-13 17:28

    FX2LP如何在不更改硬件的情況下對其進行重新編程?

    我正在使用 FX2LP/ CY7C68013A-128AXC設備(定制板),我有些問題需要您的幫助。 1如果我的 EEPROM 已經(jīng)有固件并且正在運行,如何在不更改硬件的情況下對其進行重新編程
    發(fā)表于 05-06 11:16

    單片機c語言編程實例大全

    單片機c語言編程實例大全_18
    發(fā)表于 04-30 16:11 ?7次下載

    深入理解C語言:C語言循環(huán)控制

    在C語言編程中,循環(huán)結構是至關重要的,它可以讓程序重復執(zhí)行特定的代碼塊,從而提高編程效率。然而,為了避免程序進入無限循環(huán),C語言提供多種循
    的頭像 發(fā)表于 04-29 18:49 ?2115次閱讀
    深入理解C<b class='flag-5'>語言</b>:C<b class='flag-5'>語言</b>循環(huán)控制