查看原文
其他

华为发布自研编程语言“仓颉”:多范式、支持全并发GC、原生AI应用开发……

在今天召开的华为开发者大会(HDC 2024)上,华为正式官宣自研编程语言「仓颉」。

以下内容来自仓颉编程语言文档:

仓颉编程语言作为一款面向全场景应用开发的现代编程语言,通过现代语言特性的集成、全方位的编译优化和运行时实现、以及开箱即用的 IDE 工具链支持,为开发者打造友好开发体验和卓越程序性能。

其具体特性表现为:

高效编程支持各种常见的开发范式和编程模式,让开发者简洁高效地表达各种业务逻辑。仓颉是一门多范式编程语言,支持函数式、命令式和面向对象等多种范式,包括值类型、类和接口、泛型、代数数据类型、模式匹配、以及高阶函数等特性。

安全可靠:作为现代编程语言,仓颉追求编码即安全,通过静态类型系统和自动内存管理,确保程序的类型安全和 null safety 等内存安全;同时,仓颉还提供各种运行时检查,包括数组下标越界检查、类型转换检查、数值计算溢出检查、以及字符串编码合法性检查等,能够及时发现程序运行中的错误

轻松并发:并发和异步编程能够有效提高处理器利用率,并在交互式应用中确保程序的响应速度,是应用开发中必不可少的能力。仓颉语言实现了轻量化用户态线程和并发对象库,让高效并发变得轻松。

卓越性能:仓颉编译器及运行时从全栈对编译进行优化,包括编译器前端基于 CHIR(Cangjie HighLevel IR)高层编译优化(比如语义感知的循环优化、语义感知的后端协同优化等),基于后端的编译优化(比如:SLP 向量化、Intrinsic 优化、InlineCache、过程间指针优化、Barrier 优化等),基于运行时的优化(比如轻量锁、分布式标记、并发 Tracing 优化等),一系列的优化让仓颉充分发挥处理器能力,为应用提供卓越的性能支持。

除此之外,仓颉还支持面向应用开发的一系列工具链,包括语言服务(高亮、联想)、调试(跨语言调试、线程级可视化调试)、静态检查、性能分析、包管理、文档生成、Mock 工具、测试框架、覆盖率工具、Fuzz 工具以及智能辅助编程工具,进一步提升软件开发体验以及效率。



据介绍,
仓颉提供全并发(fully concurrent)的内存标记整理GC算法作为其自动内存管理技术的底座,具有延迟极低、内存碎片率极低、内存利用率高的优势。

相比于现有的STW GC以及mostly concurrent GC(参考下图), 仓颉的全并发GC摒弃了STW作为GC同步机制,采用了时延更短的轻量同步机制,其应用线程完成GC同步的平均耗时小于百微妙,典型情况下数十微妙即可完成GC同步。

仓颉编程语言文档还提到了开发原生AI应用的能力。

仓颉借鉴Web端和移动端的技术发展,通过DSL能力来构建类似AI领域的声明式范式。

Agent DSL是我们现在正在畅想和尝试的AI原生能力,它是一种专为AI Agent开发和多Agent协同而设计的领域特定语言,是一种内嵌在仓颉语言中的DSL(即eDSL),开发者无需额外学习复杂的库和框架,通过DSL可以简单直观地使用AI功能。
  1. // Agent的定义

  2. @agent class Planner {

  3. @prompt[pattern=APE] (

  4. action: "帮助用户制定旅行路线",

  5. purpose: "让用户在计划时间内多参观景点并得到充分休息",

  6. expectation: “生成一条合理的旅游景点路线,包括时间、景点、通勤等信息"

  7. )

  8. }


  9. // Agent的使用

  10. let agent = Planner()

  11. let result = agent.chat("我想前往上海")


从代码段不难看出,在仓颉语言中对于Agent的声明和使用语法与仓颉本身语法一致,既能享受仓颉的静态检查能力,又不会给开发者带来额外的学习负担,充分发挥仓颉语言的高效编程、安全可靠的优势。

Agent DSL不仅能让我们提升AI应用开发的效率,还能使代码更为准确地对应AI Agent的操作、决策过程。我们整体设计希望能达成如下效果:


  • 高级抽象:Agent作为DSL中的内置语言抽象,其定义和描述更加自然直观、易于理解和维护。

  • 极简多Agent协同编程:通过流式符号抽象出不同的 Agent协同模式,开发者可以轻松地利用多 Agent 协作来开发智能化程度更高的应用。

  • 智能化开发工具链:基于Agent DSL,工具链为开发人员提供从应用开发到性能调测、调优的全方位智能支持。


除了Agent DSL,原生AI应用框架也是我们正在构建的能力,通过语言原生以及框架的配合给开发者带来全场景智能化时代的应用编程新体验。


详细介绍查看《仓颉编程语言白皮书》:

https://developer.huawei.com/consumer/cn/doc/openharmony-cangjie/cj-wp-abstract



延伸阅读:
华为自研的「仓颉编程语言」要来了

END


热门文章

拜登政府全面禁售知名杀软“卡巴斯基”

“树莓派”上市了——曾坐马斯克的大火箭上太空

“鸭子数据库”正式发布1.0稳定版:C++引擎代码超30万行

Linus眼中“很烂”的C++击败了C语言

印度IT工程师被解雇后删了前东家180台服务器、造成几百万损失


继续滑动看下一个
OSC开源社区
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存