HarmonyOS NEXT下一代编程语言仓颉介绍及入门(仓颉编程语言曝光图)

HarmonyOS NEXT下一代编程语言仓颉介绍及入门 在前两天刚刚召开的华为开发者大会(HDC 2024)上,华为内部研发已久的国产自主编程语言仓颉终于正式对外官宣。了解了下该语言&#xff0c

在前两天刚刚召开的华为开发者大会(HDC 2024)上,华为内部开发多年的本土编程语言仓颉终于正式公布。学习了这门语言后,语法简洁,功能非常强大,语言库API非常丰富,包括网络库、加解密模块、文件操作等。 C++还支持繁琐的包管理。另外,它支持包括Windows、Linux、macOS等多种操作系统,还支持调用c voice的动态库,为开发者提供了非常方便的使用场景。

如果性能好的话,我想不仅在C、C++方面尝试,在系统编程领域也可以尝试一下。

目前仓颉编程语言相关的开发文档也已经发布,包括《仓颉编程语言白皮书》、《仓颉编程语言开发指南》和《仓颉编程语言规约》。这些都可以在仓颉编程语言官网上查看。有兴趣的开发者持续关注。

仓颉编程语言介绍

仓井| 华为开发者联盟

随着万物互联、智能时代的到来,软件的形态将发生巨大的变化。与此同时,移动应用和移动互联网领域仍在强劲推动着人机交互、设备协作、智能、安全等方面的创新。另一方面,人工智能也正在推动软件向智能化方向演进。端、边、云协同等方向。基于新技术、新场景的应用软件开发,对编程语言提出了新的要求和挑战。

作为适合任何场景的应用程序开发的现代编程语言,仓颉编程语言为开发者提供了最新的语言特性、全面的编译优化和运行时实现以及开箱即用的IDE 工具链体验和支持。易于使用的开发。优秀的程序性能。其具体特点如下。

高效编程:应用程序开发需要易学易用的语言,减少开发者的入门门槛和开发过程中的精神紧张,支持多种常见的开发范式和编程模型,并希望能够使多种的表达式。让您的业务逻辑简洁高效。仓颉是一种多范式编程语言,支持函数式、命令式、面向对象等多种范式,包括值类型、类和接口、泛型、代数数据类型、模式匹配和高阶函数等功能。此外,仓颉还支持类型推断,减轻了开发者类型标注的负担。这减少了冗余编写并改进了语言支持中内置的各种语法糖和宏功能。开发人员基于仓颉的快速开发领域特定语言(DSL)构建领域抽象。

安全可靠:作为一种现代编程语言,仓颉力求编码安全,通过静态类型系统和自动内存管理来保证程序类型安全和空安全。同时仓颉还提供了各种运行时检查,包括数组。越界检查、类型转换检查、数学溢出检查和字符串编码有效性检查可帮助您快速检测程序操作中的错误。此外,还使用代码扫描工具、混淆工具和样式器来提供交叉功能。 -语言互操作性安全和代码资产保护支持。

轻松并发:并发、异步编程可以有效提高处理器利用率,保证交互应用中的程序响应速度。这些是应用程序开发的基本功能。仓颉语言实现了轻量级的用户态线程和并发对象库,以方便高效的并发。

目前仓颉语言的功能基本齐全,可以适应大部分开发场景。

作为一种多范式编程语言,仓颉支持函数式、命令式、面向对象等多种范式。这包括值类型、类和接口、泛型、代数数据类型、模式匹配和高阶函数等功能。此外,仓颉还支持类型推断,减轻了开发者类型标注的负担。这减少了冗余编写并改进了语言支持中内置的各种语法糖和宏功能。开发人员基于仓颉的快速开发领域特定语言(DSL)构建领域抽象。

下面,详细了解仓颉语言在函数式编程、高效并发、跨语言互操作、原生智能等方面的主要技术特性。 (仓颉白皮书:https://developer.huawei.com/consumer/cn/doc/openharmony-cangjie/cj-wp-abstract,仓颉语言规范:https://developer.huawei.com/consumer/cn/doc/openharmony-cangjie/摘自cj-lan-规范)

仓颉编程语言的定位和竞争力

仓颉为过程式编程、面向对象编程和函数式编程提供了优秀的支持。这包括但不限于对值类型、类和接口、泛型、代数数据类型和模式匹配以及一等公民功能的支持。

仓颉函数可以用作正则表达式、作为参数传递、用作函数返回值、存储在其他数据结构中或赋值给变量。

函数f(x: Int) {

返回

}

令a=f

let square={x: Int=x * x} //Lambda 表达式

//嵌套函数定义和函数作为返回值

func g(x: Int) { func h(){ return f(square(x)) } return h}

func h(f: ()-单位) { f()}

让b=h(g(100))

仓颉语言特性

仓颉线程采用M:N线程模型,因此本质上是用户态轻量级线程,支持抢占,占用内存资源比操作系统线程少。

这种轻量级的线程设计不仅减轻了系统的负担,而且可以让开发者在不增加编程复杂度的情况下轻松实现数千甚至数万个并发任务。其主要优点是:

简单的并发编程:仓颉线程更容易使用,因为它们不会对开发人员编写并发代码施加太多语法限制,使他们能够专注于业务处理。

轻量级开销:由于创建和切换用户态线程的开销远低于传统内核线程,仓颉语言可以快速创建和销毁大量用户态线程,使得开发高并发应用变得更加容易。

更高的并发能力:仓颉语言通过用户态线程模型可以实现非常高的并发能力,特别适合I/O密集型、高并发的网络服务场景。

降低上下文切换成本:轻量级线程模型在用户空间进行上下文切换,避免了传统线程切换所需的内核态和用户态频繁转换的高成本。有了仓颉语言,实现高效并发不再是一个复杂耗时的任务。开发人员可以使用简单的语法构建大量用户模式线程,而不必担心与传统并发模型相关的性能瓶颈。假设您有一个要求,必须同时处理多个网络请求。这在Kuratome 语言中很容易实现,如以下代码所示。

func fetch_data(url: 字符串) {

让响应=http_get(url)

过程(响应)

}

主要的() {

让urls=[\’http://example.com/data1\’, \’http://example.com/data2\’,]

让futures=ArrayListFutureUnit()

对于(网址中的网址){

let fut=spawn { fetch_data(url) } //创建仓颉线程,用于发出网络请求

futures.append(fut)

}

for (fut in futures) { //等待所有仓颉线程完成

fut.get()

}

}

在上面的例子中,我们使用spawn关键字创建新的仓颉线程,每个线程独立运行fetch_data函数。仓颉语言运行环境会自动调度这些线程,因此开发人员只需专注于实现业务逻辑。最后,我们检索线程结果并等待所有仓颉线程完成,确保主线程可以同步检索所有结果。

函数是一等公民

仓颉支持与C、ArkTS/JS、Python等编程语言的互操作,并采用便捷的声明式编程范式,与其他语言库进行高效复用和生态集成,实现兼容。

例如,语言之间的调用能力对于实现“一套代码多种用途”的愿景非常有帮助。比如最初是用C开发用于嵌入式设备,JS用于手表,Java用于手机。仓颉可以用来实现设备和多语言条件下的开发,允许调试、定位,甚至如果三种语言在同一个代码中,可以运行两种语言。跨多种语言的UI 和代码区域之间的双向预览。

以C语言互操作为例。由于C语言过于简单且不安全,仓颉规定所有与C语言互操作的函数只能在不安全的上下文中执行。使用unsafe 关键字引入不安全上下文。 unsafe关键字可以修改一段代码(其中不安全表达式的类型就是该代码块的类型)或修改一个函数。

语法定义如下:

不安全的表达

: \’ 不安全\’ \'{\’ 表达式或声明\’}\’

;

不安全函数

: “不安全”函数定义

;

此外,如果您想在仓颉编程语言中调用C 函数,您必须在仓颉代码中声明该函数并使用foreign关键字对其进行修改。

外部函数foo(): 台

外部变量a: Int32=0 //编译器错误

external function bar(): unit { //编译器错误

返回

}

仓颉通过调试器cjdb提供源代码级调试能力,支持多语言功能代码单步进入/退出等多语言调试,查看多语言完整调用堆栈,用一个调试器完成多语言调试。同时支持仓颉和使用线程进行调试,最大限度地提高用户的调试体验。

高效并发:轻量化线程模型

从计算机和软件演化的角度来看,语言每十年都会随着硬件和应用的创新而发生重大变化。也经历了几个时代,包括Lisp、C、C++等隐藏PC服务器上硬件细节的高级语言,以及传统互联网的跨平台。

易于移植的语言,如Java、JS、Python,以及针对移动互联网开发门槛较低、强调开发体验的语言,如Swift、Kotlin。进入万物智联时代,我们需要一种能够适应任何场景的AI母语。

尽管人工智能技术已广泛应用,但开发人工智能应用程序通常需要深厚的开发人员专业知识,并面临某些挑战,例如陡峭的学习曲线和集成复杂性。

华为希望使用仓颉语言提供原生人工智能功能,简化开发。这意味着模型部署、智能决策等人工智能相关功能成为语言表达力的一部分,实现高效开发。开发经验。

传统的AI赋能是通过提供AI应用框架来实现的,但通过基于原生语言特征提供更简洁的语法表达,我们可以降低开发者创建AI应用的门槛,这将是非常美妙的。因此,仓颉希望利用Web和移动设备的技术发展,通过领域特定语言DSL能力构建类似于AI领域的声明性范式。

Agent DSL是仓颉团队目前正在设想和试验的原生AI功能,是专门为AI代理开发和多代理协作而设计的领域特定语言。这是仓颉语言中嵌入的DSL(eDSL)。开发者可以通过DSL轻松直观地使用AI能力,而无需学习额外的复杂库或框架。

//代理定义

@agent班级规划师{

@提示[模式=APE] (

action: \’允许用户规划旅行路线\’,

目标:“让用户能够在计划的时间内游览更多的景点并进行适当的休息”,

Expectation:“生成合理的旅游景点路线,包括时间、景点、通勤等信息”

}

//使用代理

让代理=Planner()

let result=Agent.chat(\’我想去上海\’)

跨语言互操作

官网文档参见《仓颉编程语言开发指南》文档中心。

定义和实例化结构

类的定义和实例化

原生智能化

文档中心——Kuramachi编程语言白皮书

华为开发者学院

华为自研编程语言“仓颉”现已上线!鸿蒙应用开发新语言,性能优于Java、Go、Swift_腾讯新闻

以上关于#HarmonyOS NEXT下一代编程语言仓颉的介绍和实现的相关内容摘自网络,仅供大家参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/91892.html

(0)
CSDN's avatarCSDN
上一篇 2024年6月24日 上午6:08
下一篇 2024年6月24日 上午6:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注