deepin 宣布了自研的全新通用目的編程語言:Unilang,其倉庫提供了文檔和作為參考實現的解釋器。 deepin 表示,目前桌面應用開發雖然有許多選項,例如 Qt、Electron、PySide 和 Flutter 等。但它們存在各自的優勢和不足。 據介紹,Unilang 目標是成為一門現代的通用目的編程語言,能夠有效、靈活地開發桌面環境應用,去統籌解決現有不足的新的方案中的語言部分。為了保持通用性,Unilang 不內建提供 GUI 功能,而通過庫提供相關 API 。當前計劃中,Unilang 將會支持基于 Qt 綁定的庫,以便銜接過渡現有的一些桌面應用項目。Unilang 的語言設計保持足夠的抽象能力和可擴展性,未來支持直接實現 GUI 框架。 此外,Unilang 在語言特性的層次上被設計為能支持不同的應用開發場景,但原則上對這些場景保持中立。也就是說,Unilang 可以同時支持服務端和客戶端應用的開發,不需要用戶切換思維范式或者大幅更改對語言的使用習慣。 以下內容引用自官方介紹:
表現力:Unilang 是圖靈完備的通用計算語言。Unilang 的創新式的語言特性,有助于構建強大而易于使用的抽象。
可復用:Unilang 對一等對象 (first-class) 的強調使幾乎任何源程序組件都更比往常意義上更容易復用 —— 只要語言的用戶愿意。
可擴展:Unilang 的基礎語言和語言擴展的底層設計使開發者能有機會以前所未有的方式平滑地改進現有語言的設計和實現并保持兼容 —— 而非等待和語言設計及實現者的溝通與反饋。
可伸縮:Unilang 的資源管理模型和抽象能力使程序在具有不同計算資源的平臺上的表現默認自然地一致,且易于調整。
多泛型 (multi-paradigm) :Unilang 的語言特性不要求用戶拘泥于具體的語用范型 —— 例如,不會限制副作用來要求習慣純函數式的風格,或者要求隱含對象而要求程序按面向對象的形式進行表達。靈活的抽象使用戶能夠針對不同領域的設計方案按需使用不同風格的實現。
易用性:Unilang 的核心語言特性的極簡設計使它的入門相當容易。而可擴展的特性和強大的抽象機制使語言保留了豐富的進階內容,供開發者按需選擇。合理的基礎設計使不同內容的掌握不易出錯而更易使用。
專注性:Unilang 不是一門需要面面俱到精通各種特性才能用好的語言 —— 如果問題不是需要修改語言,語言的用戶就應能更集中注意力于解決語言之外的問題上。
Unilang 主要特性
- 核心語言特性
- 對 C++ 友好的對象模型
- 在 C++ 中調用 Unilang 代碼
- FFI :調用 C 和 C++ 等本機語言實現的模塊
- 動態類型檢查
- 動態加載和執行
- 不依賴 GC
- 不安全操作
- PTC(proper tail call)
- 變量解析
- 函數調用
- 存儲和對象模型(類似 C++)
- 對象和值類別(類似 C++)
- 一等函數:合并子 (combiner)
- 一等環境:環境引用
- 一等引用:引用值
- 實體特性
- 求值算法
- 運行時支持
- 互操作
- ……
- 庫特性
- 類型標注
- 靜態類型檢查
- 變量綁定
- 塊作用域
- 列表算法
- 模塊機制
- ……
- 核心庫
- 字符串
- 數值算術操作
- 輸入 / 輸出
- 類型系統增強
- FFI API
- Qt 綁定
- ……
Hello World 示例 第一個程序:
display "Hello, world!"輸出:
Hello, world!編輯:黃飛
-
編程語言
+關注
關注
10文章
1942瀏覽量
34707 -
解釋器
+關注
關注
0文章
103瀏覽量
6509
原文標題:深度deepin開源自研編程語言:Unilang
文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論