Unilang

Unilang是深度開源社區自研的程式語言,其源碼已在 Githubgitee 上公布。

產生背景,主要功能,

產生背景

深度團隊由於 C / C++、ECMAScript 等最流行的一些標準化語言具有沉重的歷史包袱,且不具有足夠擴展語言自身的能力以兼顧其需求;Dart 等專為類似方案設計的語言在一些基本設計上的決策(如依賴全局 GC )使之無法完全適合一些重要場景;其它的一些通用目的語言,如 Rust 和 Go ,並沒有配套提出 GUI 解決方案。
因此,他們希望在能滿足需求的基礎上,帶來一種新的語言,使它能以更深刻的方式真正地實現通用性 —— 通過減少為個別問題領域準備的原生的特設的 (ad-hoc) 特性,而以更普遍的基本特性集取而代之的方式。

主要功能

  • 作為動態語言,提供相對其它語言更強的語言層次上的可擴展性。
  • 類似 C 和 C++ 而不同於 Java ,不明確要求或假定翻譯和執行的具體形式。
  • 不預設如 C 和 C++ 那樣明確的翻譯階段 (phases of translation) 。不需要單獨階段展開的宏
  • 支持同像性 (homoiconicity) ,允許代碼即數據 (code as data) 的方式編程。
  • 支持類似 C++ 的對象模型和(當前不被檢查的)不安全所有權語義。
  • 不要求全局 GC ,同時語言的一個子集允許和 C++ 同等層次的“不安全”但能確保確定性的資源分配。
  • 支持正式意義上的 PTC ,而不需要用戶程式內對棧溢出等未定義行為進行變通。
  • 使用隱式的潛在類型(latent typing) 而非顯式的清單類型(manifest typing) 。
  • 允許用戶程式擴展類型標註 (type annotation) 的語法和相關檢查。

熱門詞條

聯絡我們