Unilang是deepin自研的全新编程语言。
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(propertailcall)互操作对C++友好的对象模型在C++中调用Unilang代码FFI:调用C和C++等本机语言实现的模块……库特性核心库变量绑定块作用域列表算法模块机制……字符串数值算术操作输入/输出类型系统增强类型标注静态类型检查FFIAPIQt绑定……HelloWorld示例第一个程序:display"Hello,world!"输出:Hello,world!详情查看Unilang 的 README、语言介绍文档、特性介绍文档、解释器实现文档和语言规范文档。点击空白处退出提示
评论