仓颉 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
仓颉 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
仓颉 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 未知
开发语言
操作系统 跨平台
软件类型 开源软件
所属分类 编程语言
开源组织
地区 国产
投 递 者
适用人群 未知
收录时间 2024-06-25

软件简介

仓颉编程语言是一款面向全场景智能的新一代编程语言,主打原生智能化、天生全场景、高性能、强安全。融入鸿蒙生态,为开发者提供良好的编程体验。

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

  • 高效编程:面向应用开发,我们希望语言能够易学易用,降低开发者入门门槛和开发过程中的心智负担,支持各种常见的开发范式和编程模式,让开发者简洁高效地表达各种业务逻辑。
    仓颉是一门多范式编程语言,支持函数式、命令式和面向对象等多种范式,包括值类型、类和接口、泛型、代数数据类型、模式匹配、以及高阶函数等特性。
    此外,仓颉还支持类型推断,能够降低开发者类型标注的负担;通过一系列简明高效的语法,能够减少冗余书写、提升开发效率;语言内置的各种语法糖和宏(macro)的能力,支持开发者基于仓颉快速开发领域专用语言(DSL),构建领域抽象。

  • 安全可靠:作为现代编程语言,仓颉追求编码即安全,通过静态类型系统和自动内存管理,确保程序的类型安全和 null safety 等内存安全;
    同时,仓颉还提供各种运行时检查,包括数组下标越界检查、类型转换检查、数值计算溢出检查、以及字符串编码合法性检查等,能够及时发现程序运行中的错误;
    此外,还通过代码扫描工具、混淆工具以及消毒器,进一步提供跨语言互操作安全和代码资产保护等支持。

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

    仓颉语言采用用户态线程模型,每个仓颉线程都是极其轻量级的执行实体,拥有独立的执行上下文但共享内存。对开发者来说,用户态线程的使用和传统的系统线程的使用方式保持一致,没有带来额外负担;
    而从运行态视角看,线程的管理由运行时完成,不依赖操作系统的线程管理,因此线程的创建、调度和销毁等操作更加高效,且资源占用比系统线程更少。
    为了避免数据竞争,仓颉语言提供了并发对象库,并发对象的方法是线程安全的,因此在多线程中调用这些方法和串行编程没有区别,应用逻辑的开发者无需额外关心并发管理。
    对于一些核心库,仓颉还提供了无锁或者细粒度锁的算法实现,能够进一步减少线程的阻塞,提升并发度。

  • 卓越性能:仓颉编译器及运行时从全栈对编译进行优化,包括编译器前端基于 CHIR(Cangjie HighLevel IR)高层编译优化(比如语义感知的循环优化、语义感知的后端协同优化等),基于后端的编译优化(比如:SLP 向量化、Intrinsic 优化、InlineCache、过程间指针优化、Barrier 优化等),基于运行时的优化(比如轻量锁、分布式标记、并发 Tracing 优化等),一系列的优化让仓颉充分发挥处理器能力,为应用提供卓越的性能支持。
    另外仓颉语言对运行时进行原生的轻量化设计,通过对运行时模块化分层设计,定义仓颉公共对象模型和运行时公共基础组件,基于公共对象模型,实现运行时的内存管理、回栈、异常处理、跨语言调用等基础能力,大幅减少多个能力间的冗余对象设计,精简运行时体积。
    同时通过包的按需加载技术,减少仓颉应用启动的冗余包内存开销,因此对于资源敏感设备,占用资源更少,支持更友好。

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

示例代码

  • 数据处理
// 数据处理示例
data = [1, 2, 3, 4, 5]  // 定义一个包含数字的数组

// 使用数据流模型进行处理
result = data.filter(x -> x > 2).map(x -> x * 2)  // 过滤出大于2的数字,并将其乘以2

print(result)  // 输出 [6, 8, 10]
  • AI 支持
// 导入AI模块
import ai.tensorflow as tf  // 导入TensorFlow库并命名为tf

// 定义一个简单的神经网络
model = tf.Sequential([  // 创建一个顺序模型
    tf.Dense(128, activation='relu', input_shape=(784,)),  // 添加一个128个神经元的全连接层,激活函数为ReLU
    tf.Dense(10, activation='softmax')  // 添加一个10个神经元的全连接层,激活函数为Softmax
])

// 编译模型
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])  // 使用Adam优化器,损失函数为稀疏分类交叉熵,并评估准确率

// 训练模型
model.fit(train_data, train_labels, epochs=5)  // 训练模型,使用训练数据和标签,训练5个周期

// 评估模型
loss, accuracy = model.evaluate(test_data, test_labels)  // 使用测试数据和标签评估模型,获取损失和准确率
print('Test accuracy:', accuracy)  // 输出测试准确率
  • 直观易读的语法
// 定义一个函数
function greet(name) {  // 定义一个名为greet的函数,接受一个参数name
    return "Hello, " + name + "!"  // 返回一个问候字符串
}

print(greet("World"))  // 输出 Hello, World!

仓颉语言入门教程:视频课程 & 文档

展开阅读全文

评论

点击引领话题📣 发布并加入讨论🔥
发表了资讯
今天 10:25

仓颉开源智能体开发框架:Cangjie Magic

仓颉社区正式推出Agent开发框架Cangjie Magic。 作为首个基于仓颉编程语言原生构建的LLM Agent开发平台,该框架通过三大核心技术突破重构智能体开发范式: 独创Agent DSL架构 - 基于仓颉语言特性设计的领域专用语言,实现智能体建模的声明式编程; 原生支持MCP(Model Context Protocol)通信协议; 智能调度引擎 - 集成模块化服务调用机制与动态任务规划算法。 其核心组件Cangjie Agent DSL通过语义化建模语言,为开发者提供从...

0
0
发表了资讯
2024/11/04 19:36

开源日报 | 仓颉首个公测版本;程序员的新时代调试秘诀;AI搜索不是赚钱的生意;中国云市场格局生变

欢迎阅读 OSCHINA 编辑部出品的开源日报,每天更新一期。 # 2024.11.4 今日要闻 Java 反编译器 Fernflower 作者 Stiver 逝世 JetBrains 于日前发文纪念 Java 反编译器 Fernflower 的原作者 Stiver —— 因胶质母细胞瘤于 10 月 20 日逝世。 Stiver 是一名俄罗斯裔德国程序员,主要开发医疗设备软件。曾在 2006 年发布了一篇文章,介绍了如何在 Java 1.5 刚发布时使用 Unsafe 调整 Java 类层次结构。并在 2008 年左右开始对 Java...

0
1
发表了资讯
2024/11/03 10:33

仓颉编程语言官网正式上线,首个公测版本开放下载

仓颉编程语言官网已于 2024年10月30日10:08 正式公开上线,首个公测版本开放下载。 中文官网地址:https://cangjie-lang.cn/ 英文官网地址:https://cangjie-lang.cn/en HarmonyOS Developer 仓颉主页地址(2024年6月21日已公开):https://developer.huawei.com/consumer/cn/cangjie/ 根据介绍,本次仓颉编程语言官网上线了首页、在线体验、文档、学习、下载、动态以及三方库共六个模块。 首页主要从仓颉语言的特征、仓颉语言的...

13
3
发表了资讯
2024/06/26 19:08

开源日报 | 开源“卖货主播”AI大模型;PG开发者年薪比MySQL的高;我做了一个AI搜索引擎;OpenAI终止对中国提供服务影响有多大?

欢迎阅读 OSCHINA 编辑部出品的开源日报,每天更新一期。 # 2024.6.26 今日要闻 首批基于仓颉编程语言的高性能图像处理算法库发布 复旦大学工研院认知与智能技术实验室(CITLab)领衔的研发团队与华为仓颉编程语言团队建立了的长期合作关系,早在仓颉语言内测启动以来,就密切关注其技术动态和应用前景。 经过调研,团队发现仓颉语言生态还缺少图像处理算法库的支持。结合团队在图像处理方向积累的丰富研发经验,通过对两个广泛...

0
1
发表了资讯
2024/06/26 10:41

首批基于仓颉编程语言的高性能图像处理算法库发布

2024年6月21日下午,华为终端BG软件部总裁龚体先生在华为开发者大会主题演讲《鸿蒙原生应用,全新出发!》中向全球开发者介绍了华为自研仓颉编程语言,并发布了HarmonyOS NEXT仓颉语言开发者预览版。这是华为首次公开发布仓颉编程语言。 据介绍,复旦大学工研院认知与智能技术实验室(CITLab)领衔的研发团队与华为仓颉编程语言团队建立了的长期合作关系,早在仓颉语言内测启动以来,就密切关注其技术动态和应用前景。 复旦大学...

0
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
5 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部