深度 deepin 开源自研编程语言:Unilang


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++)
      • 一等函数:合并子(combiner)
      • 一等环境:环境引用
      • 一等引用:引用值
    • 求值算法
      • 变量解析
      • 函数调用
    • 运行时支持
      • 动态类型检查
      • 动态加载和执行
      • 不依赖 GC
      • 不安全操作
      • PTC(proper tail call)
    • 互操作
      • 对 C++ 友好的对象模型
      • 在 C++ 中调用 Unilang 代码
      • FFI :调用 C 和 C++ 等本机语言实现的模块
    • ……
  • 库特性
    • 核心库
      • 变量绑定
      • 块作用域
      • 列表算法
      • 模块机制
      • ……
    • 字符串
    • 数值算术操作
    • 输入/输出
    • 类型系统增强
      • 类型标注
      • 静态类型检查
    • FFI API
    • Qt 绑定
    • ……

Hello World 示例

第一个程序:

display "Hello, world!"

输出:

Hello, world!

详情查看 Unilang 的 README、语言介绍文档、特性介绍文档、解释器实现文档和语言规范文档。


相关文章

2022-08-17

deepin 23 Preview 已正式发布,预览版属于 V23 阶段性版本,囊括三大核心特性: 独立上游,构建全新的仓库 原子更新 自研包格式 注意,此次发布版本暂不支持 V20 跨版本升级。 玲珑 deepin自研软件包格式,致力于治理

2022-05-19

deepin 线上发布会成功举办。 会上,统信软件宣布,将以深度(deepin)社区为基础,建设立足中国、面向全球的桌面操作系统根社区,打造中国桌面操作系统的根系统。资料显示,深度(deepin)社区隶属于统信软件,自 2008 年建

2022-08-02

深度社区宣布将在8月发布2022年跨越上游、跨端协同的全新版本 —— deepin 23 Preview。 据称,即将发布的deepin 23 预览版将是跨越上游Debian社区基于根社区理念打造的一款根操作系统,是集合社区开源力量、蕴含大量创新技术的

2022-09-02

深度操作系统20.7积极响应社区用户反馈的需求,进一步提升用户体验,修复底层漏洞,新增HWE 5.18内核兼容更多硬件设备,升级Stable内核至5.15.45,提升系统稳定性和安全性,欢迎大家体验! HWE 5.18内核 新增HWE 5.18内核兼

2022-05-24

Firefox Translations 当时只支持英语和西班牙语等少数几种语言。 近日 Firefox Translations 的版本号从 0.x 正式迈入 1.x 版本大关,伴随版本升级,翻译工具功能更加丰富、与浏览器的整合也变得更好、安装与使用也更方便。 安装扩

2022-09-23

用户使用 Brave 访问一些外语(本机设备上未安装的语言)站点时,Brave 翻译会自动弹出。从下方图片可以看到, Brave 翻译提供了 5 个翻译选项: 选择另一种目标语言 总是翻译此种语言 一律不翻译此种语言 一律不

2022-06-07

技有限责任公司、北京一路创科网络技术有限公司、宁波深度汭溥投资管理中心(有限合伙)、自然人刘闻欢、北京神州绿盟信息技术有限公司等操作系统厂家共同出资组建。 2020 年 12 月,统信软件完成 A 轮融资 11 亿元;其投

2022-06-14

Deno 核心开发者 Luca Casonato 开源了名为「Fresh」的新项目,并称它是下一代的 Web 框架。 根据官网的介绍,Fresh 是面向 JavaScript 和 TypeScript 开发者的全栈现代 Web 框架,可帮助他们轻松创建高质量、高性能、稳定性好,以及支持

2022-07-08

,维基百科的编辑们可以使用该技术更有效地翻译和编辑源自其他代表性不足的语言的文章,这有助于使全世界的维基百科读者以更多的语言获得更多的知识。 NLLB-200 技术演示地址:https://nllb.metademolab.com/ 项目地址:https://gith

2022-06-02

,该版本引入了围绕 WiFi、Intel 显示/图形驱动程序和其他源自 Linux 5.14.21 内核的组件。 该版本还有 PCI 改进、改进的触摸事件支持、对 Genode 的 PinePhone 端口的初始电话支持,以及各种其他改进。具体内容可在发布公告中查看。

2022-02-14

的存根实现,将日志输出重定向到 java.util.logging,此功能源自 SLF4J 项目。但存根并没有完全实现所有方法,因此为了保持插件的全部功能,开发者可能需要调整代码以适应新环境。

2022-06-24

Code 中放入"secret references"即可。所谓 "secret references",是源自 1Password 产品 1Password Secrets Automation 的概念,它将敏感数据存储到 1Password 中,例如 API 凭据和客户端 ID,然后可以通过 1Password 工具解析特殊的op://URL,进而获

2022-07-09

包时绕过双因子验证(2FA),创建大量用户账号。 (图片源自checkmarx.com) 所有已发布的恶意包都使用了 eazyminer 的源代码,该包利用 Web 服务器上未被使用的资源来挖取 Monero 币。 (恶意包中的 eazyminer 调用代码片段) 包中

2021-12-20

上下文查找的引用,如 ${ctx:loginId} 或 $${ctx:loginId},它们源自应用程序外部的源,如 HTTP 标头或用户输入。 Log4j 的漏洞有点像计算机世界的新冠,一波未平一波又起,还时不时出现一些变种...