仓颉编程语言来了-仓颉编程语言白皮书

2024-06-21 16:36

本文主要是介绍仓颉编程语言来了-仓颉编程语言白皮书,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

随着万物互联以及智能时代的到来,软件的形态将发生巨大的变化。一方面,移动应用和移动互联网领域仍然强力驱动人机交互、设备协同、智能化、安全性等方向的创新,另一方面人工智能也同样驱动软件朝智能化、端边云协同等方向演进。新技术、新场景下应用软件的开发对编程语言提出了新的诉求和挑战。

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

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

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

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

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

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

除此之外,仓颉还支持面向应用开发的一系列工具链,包括语言服务(高亮、联想)、调试(跨语言调试、线程级可视化调试)、静态检查、性能分析、包管理、文档生成、Mock工具、测试框架、覆盖率工具、Fuzz工具以及智能辅助编程工具,进一步提升软件开发体验以及效率。以下我们将围绕上述几个方面介绍仓颉语言的主要特性,让读者能够快速了解仓颉语言的定位和主要技术特色。

链接:仓颉编程语言白皮书

这篇关于仓颉编程语言来了-仓颉编程语言白皮书的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1081743

相关文章

[图]12大编程语言收入排行榜

计算机软件开发或者说程序员工作已经成为收入最高的职业之一。BI最近的一份报告显示,近两年美国软件工程师的平均年薪已经接近10万美元(下图),与之相比欧洲的软件工程师的收入要少得多,平均年薪月5.5万美元,不过比去年同期增长了9%,呈现上升势头。 但值得注意的是,不同编程语言技巧的市场价值不同,最近Quartz对编程语言的价值进行评估后给出了收入最高的12个编程语言排行榜。Quar

(仓颉) 仓颉语言入门

文章目录 ⭐前言🔠1 基本概念🔤Hello World🔤标识符🔤内置类型🔤if表达式🔤for表达式🔤while表达式🔤demo 手动计算Π 🔠2 函数🔤普通函数🔤lambda🔤demo 递归遍历目录 🔠3 枚举🔤enum🔤match表达式🔤option 解析数字🔤demo 计算表达式 🔠4 struct🔤值类型🔤二叉树 🔠5 calss🔤引用类型�

高级编程语言翻译例题

编译器的流程 源程序—词法分析—语法分析—语义分析—中间代码生成—代码优化—目标代码生成—目标程序 选项A:先进性词法分析,接着进行语法分析,最后进行语义分析 选项B:语法分析阶段只能发现程序上的语法错误,其他类型错误不能发现 选项C:语义分析阶段与目标机器的体系结构无关 根据排除法选择D

类型 编程语言

探究技术的本质,追寻技术的乐趣!如题,今天我们来聊聊类型,这里的类型需要限定范围,特指编程语言中的类型。如果要给众多编程语言按照类型来分类的话,可以分为两类,一类是静态类型的语言,一类是动态类型的语言。静态类型的语言的典型代表Java,动态类型的语言的典型代表Python。无论是动态还是静态都逃不出类型,就如同小说中常说的一样,"跳出三界之外,仍在五行之中",显而易见,类型是编程语言最基本的语法元

编程语言之争:Rust 社区活跃开发者 Ed Page 谈 Rust 与 C++ 的未来

作者 | Annie Xu 采访 | CSDN&Boolan 首席顾问 卢威 责编 | 何苗 出品丨GOSIM 开源创新汇 你最 pick 哪种编程语言?C++、Rust,还是 Python? Ed Page 从事编程行业十几年,见证了不同编程语言的兴衰史。从 C++标准版本 C++98 的诞生,到 Jave、D、Go 等编程语言的崛起与发展,并跃跃欲试想挑战 C++ 的江湖

Flutter 创建项目时指定原生项目编程语言

最近,因工作需要,开始接触Flutter方面的开发。虽然对于App端都有开发经验,但都是原生代码。之前也接触过UniApp方面的开发,并成功上线。今天起,转入Flutter方面的开发工作。 注意:现在flutter创建的项目默认是swift跟kottlin,如果想选择不同的语言可以按照下面的几种方法进行创建。 而有时候,由于之前项目代码是原生的,所以需要指定原生项目编程语言。 flutter

2024汽车行业数字化转型解决方案白皮书

在全球经济的数字化浪潮中,汽车行业正经历着前所未有的变革。在整体经济下行的背景下,企业内功修炼成为重中之重,为实现经济转型与高质量发展,数字化转型发挥着关键支撑的作用。 这一趋势在内卷淘汰赛进入下半场阶段的汽车行业尤其凸显,数字化转型助力企业运营的优化与升级,为企业创造更多附加值。数字化浪潮已然来临,AI、云计算、大模型等技术层出不穷,使得生产效率不断提高、成本节降,如何借助数字化东风在激烈的市

编程语言 编译执行 和 解释执行 区别

一、编译执行 编译执行就是源代码经过编译器编译处理,生成目标机器码,即机器能直接运行的二进制代码,下次运行时无需重新编译。 这种代码不具备可移植性、但执行速度快, C、C++这类语言属于编译型语言。   二、解释执行 解释型语言是在代码运行期间逐行翻译成目标机器码,下次执行时,还是需要逐行解释。 我们可以简单认为 Java、Python 都是解释型语言。     https:/

艾瑞白皮书解读(四)丨深度解析企业数据治理第一步:咨询环节

2024年7月 艾瑞咨询公司对国内数据治理行业进行了研究,访问了国内多位大中型企业数据治理相关负责人,深度剖析中国企业在数字化转型过程中面临到的核心数据问题后,重磅发布《2024中国企业数据治理白皮书》(以下简称“白皮书”)。 白皮书中提到,企业数据建设是一项系统工程,需要解析业务现象背后的需求原因,针对性地实现落地,才能帮助企业善用数据资产,充分释放数据价值,进一步为实践提供指导。数据

读书笔记:代码之髓:编程语言的核心概念

一、缘由 每个大学的计算机生应该都或多或少的学过Java、C、C++,我还学习delphi(必修课,不修不行,这门语言现在基本没什么市场),毕业后又学习了python。按理说学习过这么多语言,对程序设计语言应该很了解才是,但是很惭愧,基本只是处在会使用阶段,只在语言的皮毛间徘徊,对语言核心的部分一直一知半解。相信有些从事工作好几年的工程师也未必会对这个语言的核心部分有很多了解。 最近看了王垠的