热门问题
时间线
聊天
视角

仓颉编程语言

编程语言 来自维基百科,自由的百科全书

仓颉编程语言
Remove ads

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

事实速览 编程范型, 設計者 ...

特性

华为宣称,仓颉编程语言具有原生智能化、天生全场景,高性能、强安全等特点。[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]

模式匹配

仓颉提供 match 表达式以进行模式匹配,包含带待匹配值的 match 表达式,和不带待匹配值的 match 表达式。带待匹配值的 match 会依次检查每个 case,确保所有可能的值都被考虑到,通常通过在最后一个 case 使用通配符模式 _ 来保证穷尽性。不带待匹配值的 match 表达式无须写条件的括号。[8]

反响

命名

海南日报评论称,华为以「仓颉」为编程语言命名,将神话元素与科技产品巧妙融合,既形象地展示了这个产品的功用,也使产品有了浪漫与典雅的气息。[9]

参考文献

Loading content...

外部链接

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads