我們擅長(zhǎng)商業(yè)策略與用戶體驗(yàn)的完美結(jié)合。
歡迎瀏覽我們的案例。
近日,F(xiàn)acebook 開源了全新語(yǔ)言 Skip,這是 Facebook 內(nèi)部開發(fā)的一個(gè)實(shí)驗(yàn)性質(zhì)編程語(yǔ)言,F(xiàn)acebook 表示,Skip 項(xiàng)目于 2018 年完成,今后將不再積極開發(fā)。
Skip 的官方一句話介紹是“跳過(guò)那些你已經(jīng)做過(guò)計(jì)算的”(skip the things you have already computed),這也就是它作為一個(gè)研究項(xiàng)目的主要目標(biāo),它要探索編程語(yǔ)言和運(yùn)行時(shí)可以怎樣去支持準(zhǔn)確、高效的基于記憶的緩存和緩存失效。而通過(guò)靜態(tài)類型系統(tǒng)追蹤可變性,Skip 完成了這個(gè)目標(biāo),同時(shí)它也支持現(xiàn)代編程語(yǔ)言特征,例如 trait、泛型與子類型。
Skip 是一種通用編程語(yǔ)言,它跟蹤副作用,提供反應(yīng)失效的緩存、ergonomics 和安全的并行化以及高效的 GC。Skip 是靜態(tài)類型的,它使用 LLVM 提前編譯,生成高度優(yōu)化的可執(zhí)行文件。具體特點(diǎn)如下:
反應(yīng)失效的緩存
Skip 主要的新特性是精準(zhǔn)跟蹤副作用,包括值的可變性和非確定性數(shù)據(jù)源與能夠提供反應(yīng)失效的數(shù)據(jù)源之間的區(qū)別。Skip 的類型系統(tǒng)能夠證明給定函數(shù)邊界沒(méi)有副作用,這樣開發(fā)人員可以選擇安全地記憶該計(jì)算,并在運(yùn)行時(shí)確保底層數(shù)據(jù)發(fā)生變化時(shí),之前緩存的值是無(wú)效的。
Skip 支持兩種互補(bǔ)的并發(fā)編程,由于它跟蹤副作用,這兩種編程都避免了常見的線程安全問(wèn)題。首先,Skip 支持使用 async/await 語(yǔ)法進(jìn)行 ergonomic 異步計(jì)算。由于 Skip 跟蹤副作用,異步計(jì)算不能引用可變狀態(tài),因此可以安全地并行執(zhí)行。其次,Skip 有可用于直接并行計(jì)算的 API,同樣利用其追蹤副作用的特型來(lái)避免線程安全問(wèn)題,如共享對(duì)可變狀態(tài)的訪問(wèn)。
高效和可預(yù)測(cè)的 GC
Skip 使用一種新方法進(jìn)行內(nèi)存管理,結(jié)合了典型的垃圾回收特性和更直接的線性分配模式。由于 Skip 追蹤副作用,垃圾回收器僅需要掃描從底層計(jì)算處可訪問(wèn)的內(nèi)存,在實(shí)踐中這意味著開發(fā)者能夠使用可預(yù)測(cè) GC 寫代碼。
混合函數(shù)式與面向?qū)ο笳Z(yǔ)言的特點(diǎn)
Skip 的一大特點(diǎn)是混合了函數(shù)式與面向?qū)ο缶幊陶Z(yǔ)言的特點(diǎn),將兩者有機(jī)整合成了一種緊密結(jié)合的語(yǔ)言。與函數(shù)式語(yǔ)言類似,Skip 表達(dá)能力強(qiáng),支持抽象的數(shù)據(jù)類型、模式匹配、簡(jiǎn)單的 lambda 和高階函數(shù)等;另一方面,與命令式面向?qū)ο蟮恼Z(yǔ)言相似,Skip 支持可繼承的類、可變對(duì)象、循環(huán)和提前返回。Skip 還結(jié)合了“系統(tǒng)”語(yǔ)言的思想,以支持低開銷抽象、通過(guò)值類的緊湊內(nèi)存布局,以及確保利用靜態(tài)方法分派實(shí)現(xiàn)代碼特例化的模式。
Skip 由經(jīng)驗(yàn)豐富的團(tuán)隊(duì)設(shè)計(jì),包括 ActionScript、C#、Flow、Hack、HHVM、Prettier、React Native 和 Relay 的高級(jí)貢獻(xiàn)者,從 2015 年到 2018 年,F(xiàn)acebook 花了 3 年在這個(gè)項(xiàng)目上,該語(yǔ)言的主要設(shè)計(jì)者是 Facebook 語(yǔ)言團(tuán)隊(duì)負(fù)責(zé)人 Julien Verlaguet,他維護(hù)了該語(yǔ)言、編譯器與庫(kù)。如今 Facebook 宣布不再積極開發(fā),但是通過(guò)開源的方式,希望讓 Skip 繼續(xù)保持活力,讓編程語(yǔ)言研究社區(qū)在語(yǔ)言設(shè)計(jì)與實(shí)現(xiàn)、編譯器和庫(kù)的基礎(chǔ)上進(jìn)行研究和構(gòu)建。
(邯鄲h5網(wǎng)站建設(shè))
小米應(yīng)用商店發(fā)布消息稱 持續(xù)開展“APP 侵害用戶權(quán)益治理”系列行動(dòng) 11:37:04
騰訊云與CSIG成立政企業(yè)務(wù)線 加速數(shù)字技術(shù)在實(shí)體經(jīng)濟(jì)中的落地和應(yīng)用 11:34:49
樂(lè)視回應(yīng)還有400多人 期待新的朋友加入 11:29:25
亞馬遜表示 公司正在將其智能購(gòu)物車擴(kuò)展到馬薩諸塞州的一家全食店 10:18:04
三星在元宇宙平臺(tái)推出游戲 玩家可收集原材料制作三星產(chǎn)品 09:57:29
特斯拉加州San Mateo裁減229名員工 永久關(guān)閉該地區(qū)分公司 09:53:13