当前位置: 首页 > ds >正文

关于华为仓颉编程语言

文章目录

  • 一、基本概况
  • 二、技术特点
    • 1. 多范式编程
    • 2. 原生智能化
    • 3. 高性能与安全
    • 4. 全场景兼容
  • 三、编译器与开发工具
  • 四、语言相似性对比
  • 五、行业应用实例
  • 总结

最近经常看到这个东西,于是搜了一下,整理了一些内容,水一篇,以后慢慢研究。
仓颉

一、基本概况

仓颉(Cangjie)是华为自研的面向全场景智能的新一代编程语言,2019年启动研发,2024年6月正式发布首个公测版本。其名称源自中国汉字创造者仓颉,寓意语言设计的创新与文化传承。仓颉定位为鸿蒙生态的核心开发语言,支持Windows、Linux、macOS及HarmonyOS系统,广泛应用于金融、通信、中间件、物联网等领域。

二、技术特点

1. 多范式编程

支持函数式、命令式和面向对象编程,融合高阶函数、代数数据类型、模式匹配、泛型、接口等特性,语法简洁高效,减少冗余代码。

2. 原生智能化

内嵌AgentDSL框架,支持自然语言与代码融合,通过多Agent协同简化智能应用开发(如AI食谱推荐)。

3. 高性能与安全

  • 性能优化:采用全并发GC、轻量化线程模型,终端场景响应更快,内存占用更低。

  • 强安全设计:静态类型系统、自动内存管理、运行时检查(如数组越界、数值溢出),实现“编码即安全”。

4. 全场景兼容

运行时环境轻量化且模块化分层,适配从内存受限设备到高性能服务器的全场景需求,支持声明式开发。

三、编译器与开发工具

  • 编译器开发语言:目前官方未公开具体实现,但存在两种推测:

    • C/C++:部分资料提到仓颉工具链中使用了Clang库及类似LLVM的后端,可能与C/C++相关。

    • Rust:开发者社区发现其文档工具链(如mdBook)、项目结构及特性(如模式匹配、宏系统)与Rust高度相似。

  • 工具链支持:提供开箱即用的IDE、调试器、包管理器(类似Rust的Cargo),并兼容C语言生态实现跨语言互操作。

四、语言相似性对比

仓颉融合了多门主流语言的特性:

  • 语法与范式:类似Swift/Go(静态类型、协程并发)、Python(简洁语法、类型推断)。

  • 安全与内存管理:接近Rust(内存安全、模式匹配),但通过GC降低开发复杂度。

  • 应用场景:对标Kotlin/Swift,作为鸿蒙生态的首选语言,类似Kotlin之于Android。

五、行业应用实例

  • 金融领域:工商银行使用仓颉开发鸿蒙原生应用的“收支日历”功能。

  • 中间件:多家企业基于仓颉开发TCP通信框架、Redis客户端、分布式追踪工具等。

  • 智能设备:华为坤灵路由交换一体机的服务模块采用仓颉开发并商用。

总结

仓颉编程语言凭借高效、安全、全场景适配等特性,成为鸿蒙生态的重要支柱。其设计融合了现代语言的优点,虽编译器实现尚未完全公开,但工具链的成熟度和社区生态已展现出潜力。对于开发者而言,仓颉的学习曲线接近Python和Go,适合全栈及智能应用开发。

http://www.xdnf.cn/news/12513.html

相关文章:

  • 从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
  • [大A量化专栏] 夏普比率
  • 动力电池点焊机:驱动电池焊接高效与可靠的核心力量|比斯特自动化
  • 【ubuntu】虚拟机安装配置,sh脚本自动化,包含 apt+时间同步+docker+mysql+redis+pgsql
  • 如何理解OSI七层模型和TCP/IP四层模型?HTTP作为如何保存用户状态?多服务器节点下 Session方案怎么做
  • 大模型低秩微调技术 LoRA 深度解析与实践
  • MySQL全文索引
  • pg数据库表里面id值,使用sql语句赋值,唯一性
  • 小知识点一:无刷电机
  • rocketmq延迟消息的底层原理浅析
  • 多航态无人艇航态变换姿态控制系统设计与实现_可复现,有问题请联系博主
  • HZOJ新手村前段时间的刷题的笔记
  • 国内软件源镜像站一览表(2025年状态更新)
  • 使用Python做bootloader下载程序
  • Linux系统删除文件后的恢复方法
  • 1.2 fetch详解
  • 【高等数学】函数项级数
  • Langchain构建聊天机器人
  • 大模型微调(5):PEFT 微调 Qwen 大模型
  • STL优先级队列的比较函数与大堆小堆的关系
  • Kubernetes任务调度:深入理解Job与CronJob
  • Linux 常用命令与 Shell 简介
  • chatshare.xyz注册登录后,提示过期的解决方式!
  • Day130 | 灵神 | 回溯算法 | 子集型 电话号码的字母组合
  • 【DAY40】训练和测试的规范写法
  • OpenWRT prplOS-- ubus命令配置参数
  • sanitizer工具
  • 基于Pandas数据分析的设备巡检计划生成算法设计及实现
  • 设置Linux时区环境变量TZ
  • Java常用工具类方法详解及使用案例