热门问题
时间线
聊天
视角
仓颉编程语言
编程语言 来自维基百科,自由的百科全书
Remove ads
仓颉编程语言是华为自主研发的编程语言,在2024年华为开发者大会上首次公开发布开发者预览版本。[1]其研发可以追溯到2019年,当时华为启动了这一项目,并由南京大学计算机科学与技术系冯新宇教授担任首席架构师。[2]语言的名称来自于仓颉造字。[3]使用预览版本SDK需要填写姓名、手机号、身份证号等信息申请后并签署保密协议。[4]
特性
华为宣称,仓颉编程语言具有原生智能化、天生全场景,高性能、强安全等特点。[2]从语言规范的制定到实现,以及未来的语言社区都将实现自主可控。[3]
仓颉内置了AgentDSL框架,简化了agent协作和符号表达式。仓颉语言使用用户模式线程和并发对象库来简化开发并提高资源利用率,在编译器和运行时都进行了性能优化。此外,还提供了包括调试、静态验证、性能分析和测试的工具。[5]
生态
仓颉编程语言的编译器是cjc。CPM是仓颉语言内置的包管理器,命令为cjpm。CPM主要用于管理和维护仓颉项目的模块系统,并提供统一的编译入口。在仓颉中,包是最小的编译单元,每个包可以包含多个源文件(.cj文件),并有自己的命名空间;模块则是包的集合,代表一个完整的功能单元,是第三方开发者发布的最小单元。通过 cjpm init
初始化仓颉模块或者工作空间后,项目的配置储存在配置文件cjpm.toml中。[6]
语法
仓颉的Hello world程序如下:
// main.cj
main(): Int64 {
println("Hello, world!")
return 0
}
不可变变量用 let
关键字声明,可变变量用 var
关键字声明。变量在读取前必须初始化。变量的类型可以根据提供的初始值自动推断。如果初始值在变量声明后才赋予,则必须显式声明类型。[7]
仓颉提供 match
表达式以进行模式匹配,包含带待匹配值的 match
表达式,和不带待匹配值的 match
表达式。带待匹配值的 match
会依次检查每个 case
,确保所有可能的值都被考虑到,通常通过在最后一个 case
使用通配符模式 _
来保证穷尽性。不带待匹配值的 match
表达式无须写条件的括号。[8]
反响
海南日报评论称,华为以「仓颉」为编程语言命名,将神话元素与科技产品巧妙融合,既形象地展示了这个产品的功用,也使产品有了浪漫与典雅的气息。[9]
参考文献
外部链接
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads