仓颉编程语言

编程语言

仓颉编程语言华为自主研发的编程语言,在2024年华为开发者大会上首次公开发布开发者预览版本。[1]其研发可以追溯到2019年,当时华为启动了这一项目,并由南京大学计算机科学与技术系冯新宇教授担任首席架构师。[2]语言的名称来自于仓颉造字[3]使用预览版本SDK需要填写姓名、手机号、身份证号等信息申请后并签署保密协议。[4]

仓颉
编程范型範式物件導向泛函指令式
設計者华为公司
實作者华为公司
操作系统OpenHarmony鸿蒙 (操作系统)
文件扩展名.cj
網站

特性

华为宣称,仓颉编程语言具有原生智能化、天生全场景,高性能、强安全等特点。[2]从语言规范的制定到实现,以及未来的语言社区都将实现自主可控。[3]

仓颉内置了AgentDSL框架,简化了agent协作和符号表达式。仓颉语言使用用户模式线程和并发对象库来简化开发并提高资源利用率,在编译器运行时都进行了性能优化。此外,还提供了包括调试、静态验证、性能分析和测试的工具。[5]

生态

仓颉编程语言的编译器是cjc。CPM是仓颉语言内置的包管理器,命令为cjpm。CPM主要用于管理和维护仓颉项目的模块系统,并提供统一的编译入口。在仓颉中,包是最小的编译单元,每个包可以包含多个源文件(.cj文件),并有自己的命名空间;模块则是包的集合,代表一个完整的功能单元,是第三方开发者发布的最小单元。通过 cjpm init 初始化仓颉模块或者工作空间后,项目的配置储存在配置文件cjpm.toml中。[6]

鸿蒙生态向应用开发者提供仓颉和ArkTS等多语言混合开发能力。[3]

语法

仓颉的Hello world程序如下:

// main.cj
main(): Int64 {
    println("Hello, world!")
    return 0
}

不可变变量用 let 关键字声明,可变变量用 var 关键字声明。变量在读取前必须初始化。变量的类型可以根据提供的初始值自动推断。如果初始值在变量声明后才赋予,则必须显式声明类型。[7]

参考文献

  1. ^ 倪雨晴. 21深度|鸿蒙1778天“纯血”之路. 21世纪经济报道. 2024-06-21 [2024-06-30] (中文(中国大陆)). 
  2. ^ 2.0 2.1 华为发布通用编程语言“仓颉”,南京大学计算机科学与技术系冯新宇教授作为首席架构师领导研发. www.nju.edu.cn. 2024-06-21 [2024-06-30]. 
  3. ^ 3.0 3.1 3.2 汪淼. 华为:仓颉编程语言自主可控,没有基于任何现有的编程语言演进. IT之家. 2024-06-21 [2024-06-30]. 
  4. ^ 华为仓颉编程语言官方入门教程发布,一文看懂如何获取通用版本 SDK - IT之家. www.ithome.com. [2024-07-01]. 
  5. ^ Табаков, Дмитро. Huawei introduced its Cangjie programming language with integration into HarmonyOS. hi-Tech.ua. 2024-06-26 [2024-06-30] (英语). 
  6. ^ cjpm 介绍. 华为开发者联盟. 2024-06-21. 
  7. ^ 劉玥. 仓颉编程快速上手. 2024-07-01. ISBN 9787115624710. 

外部链接