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

Posted 程序员大咖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度deepin开源自研编程语言:Unilang相关的知识,希望对你有一定的参考价值。

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇

出品 | OSC开源社区(ID:oschina2013)

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!

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

相关链接:

https://mp.weixin.qq.com/s/856LK-qCTxeRFPbN9mKaSQ

https://github.com/linuxdeepin/unilang

-End-

最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!

点击👆卡片,关注后回复【面试题】即可获取

在看点这里好文分享给更多人↓↓

以上是关于深度deepin开源自研编程语言:Unilang的主要内容,如果未能解决你的问题,请参考以下文章

小米回应11系列屡曝质量问题,可能是系统故障或主板问题;TikTok正取代谷歌搜索引擎位置;深度开源自研编程语言|极客头条

华为开源自研AI框架昇思MindSpore入门体验:手写数字识别

华为开源自研AI框架昇思MindSpore应用实践:FGSM网络对抗攻击

10 年磨一剑,阿里开源自研搜索引擎 Havenask!

Nacos 开源自研商业化三位一体战略解读

Nacos 开源自研商业化三位一体战略解读