自研编程语言: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++ 中调用 unilang 代码 ffi :调用 c 和 c++ 等本机语言实现的模块 动态类型检查 动态加载和执行 不依赖 gc 不安全操作 ptc(proper tail call) 变量解析 函数调用 存储和对象模型(类似 c++) 对象和值类别(类似 c++) 一等函数:合并子 (combiner) 一等环境:环境引用 一等引用:引用值 实体特性 求值算法 运行时支持 互操作 …… 库特性 类型标注 静态类型检查 变量绑定 块作用域 列表算法 模块机制 …… 核心库 字符串 数值算术操作 输入 / 输出 类型系统增强 ffi api qt 绑定 …… hello world 示例 第一个程序:


诺基亚五摄新机推迟亮相,有可能会在MWC2019上正式亮相
做好防雷检测的意义和作用
2021亚太机器人世界杯天津国际邀请赛圆满落幕
画画、写字、下围棋、组乐队样样在行 关于ABB机器人你了解多少呢
智能锁的“高温自动解锁”功能究竟是否有必要
自研编程语言:Unilang 的语言设计
小米支付将在今秋上线 与苹果三星争夺NFC支付市场
PROFIBUS DP总线I/O设备的开发研究
如何结合TensorFlow目标检测API和OpenCV分析足球视频
软银为何偏偏挑选了Cruise?为什么自动驾驶行业流行“拉帮结派”
小流域山洪灾害预警广播监测站
服务器文件备份软件
【大大芯方案】极速快充,大联大推出基于onsemi产品的240W PD3.1适配器方案
4K超高清,看见更精彩的世界
高性价的蓝牙耳机推荐,必不可少的时尚配件
5G大规模天线系统结构组成及如何更好的服务系统需求
如何选择补偿式硅压力传感器
Wi-Gig在Wi-Fi的未来有一席之地吗?
语音通信中的自适应噪声对消系统原理与设计
NAND Flash应用分布概况