华为仓颉:新一代高性能编程语言华为公司推出了自有的编程语言——仓颉(Cangjie)。这款语言定位于高性能计算和高安全性

开发环境:DebianGNU/Linux11(bullseye)

编译工具:cjc(CangjieCompiler:0.51.4)

让我们从经典的HelloWorld程序开始,这是学习任何新语言的第一步。在仓颉中,编写一个HelloWorld程序非常简单:

//thefirstcangjieprogrammain(){println("Hello,World!")}保存并编译,编译后执行程序:

#cjc./hello.cj-ohello#./helloHello,World!代码解读点评:main方法比其他语言更加简洁,感觉已经做到最简了。

仓颉目前的基本数据类型,包括:整数类型、浮点类型、布尔类型、字符类型、字符串类型、Unit类型、元组类型、区间类型、Nothing类型。

varx=100i8//xis100withtypeInt8vary=0x10u64//yis16withtypeUInt64varz=0o432i32//zis282withtypeInt32i8为Int8的简写,u64代表UInt64,i32代表Int32,其它类推。

点评:这种整数类型定义更像GO的语法

浮点类型包括Float16、Float32和Float64

leta:Float32=3.14letb:Float32=2e3letc:Float32=2.4e-1点评:跟Go一样,有点感叹仓颉是集各家语言之优点。

布尔类型使用Bool表示,用来表示逻辑中的真和假。布尔类型只有两个字面量:true和false。

leta:Bool=trueletb:Bool=false字符类型字符类型使用Char表示,可以表示Unicode字符集中的所有字符。

leta:Char='a'letnewLine:Char='\n'main(){lethe:Char='\u{4f60}'letllo:Char='\u{597d}'print(he)print(llo)}字符串类型字符串类型使用String表示,用于表达文本数据,由一串Unicode字符组合而成。支持字符串字面量跨越多行。

lets2="HelloCangjieLang"lets2="""Hello,CangjieLang"""点评:支持多行文本,也很像GO

元组(Tuple)可以将多个不同的类型组合在一起,成为一个新的类型。元组类型使用(T1,T2,...,TN)表示,其中T1到TN可以是任意类型,不同类型间使用逗号(,)连接。

main(){varpi=(3.14,"PI")println(pi[0])println(pi[1])}编译并执行上述代码,输出结果为:

3.140000PI点评:哈哈,元组这不是python的结构么,跟java的枚举很像,但java语法太啰唆,这种元组结构有点小清新。

区间类型用于表示拥有固定步长的序列,区间类型是一个泛型,使用Range表示。区间字面量有两种形式:“左闭右开”区间“和“左闭右闭”区间,格式分别为:start..end:step,start..=end:step。

letn=10letr1=0..10:1//r1contains0,1,2,3,4,5,6,7,8,9letr2=0..=n:1//r2contains0,1,2,3,4,5,6,7,8,9,10点评:区间类型放在泛型中,也许有它的用武之地吧

Nothing是一种特殊的类型,它不包含任何值,并且Nothing类型是所有类型的子类型。break、continue、return和throw表达式的类型是Nothing,程序执行到这些表达式时,它们之后的代码将不会被执行。其中break、continue只能在循环体中使用,return只能在函数体中使用。

点评:官方对这种结构,描述得不是很清楚,只是强调目前编译器还不允许在使用类型的地方显式地使用Nothing类型,慢慢学习吧。

模式匹配使代码更加简洁和易读。以下是一个使用模式匹配的示例:

main(){letx=0match(x){case1=>letr1="x=1"print(r1)case0=>letr2="x=0"//Matched.print(r2)case_=>letr3="x!=1andx!=0"print(r3)}}编译并执行上述代码,输出结果为:

x=0点评:感觉是对casewhen结构的优化和灵活化

仓颉支持高阶函数,使得函数可以作为参数传递和返回值,甚至变量类型。

示例:函数名为printAdd,其类型是((Int64,Int64)->Int64,Int64,Int64)->Unit,表示该函数有三个参数,参数类型分别为函数类型(Int64,Int64)->Int64和两个Int64,返回类型为Unit。

funcprintAdd(add:(Int64,Int64)->Int64,a:Int64,b:Int64):Unit{println(add(a,b))}函数类型作为返回类型如下示例中,函数名为returnAdd,其类型是()->(Int64,Int64)->Int64,表示该函数无参数,返回类型为函数类型(Int64,Int64)->Int64。注意,->是右结合的。

funcadd(a:Int64,b:Int64):Int64{a+b}funcreturnAdd():(Int64,Int64)->Int64{add}main(){vara=returnAdd()println(a(1,2))}函数类型作为变量类型函数名本身也是表达式,它的类型为对应的函数类型。

funcadd(p1:Int64,p2:Int64):Int64{p1+p2}letf:(Int64,Int64)->Int64=add点评:学习javascript函数的灵活式,因为灵活性才有无限多可能呀。

当开发者希望并发执行某一段代码时,只需创建一个仓颉线程即可。要创建一个新的仓颉线程,可以使用关键字spawn并传递一个无形参的lambda表达式,该lambda表达式即为在新线程中执行的代码。

fromstdimportsync.*fromstdimporttime.*main():Int64{spawn{=>println("Newthreadbeforesleeping")sleep(100*Duration.millisecond)//sleepfor100ms.println("Newthreadaftersleeping")}println("Mainthread")return0}注意:在上面的例子中,新线程会在主线程结束时一起停止,无论这个新线程是否已完成运行。上方示例的输出每次可能略有不同,有可能会输出类似如下的内容:

NewthreadbeforesleepingMainthread点评:比java创建线程语法简洁多了,是否能做到GO语言的并发性能,拭目以待吧。

仓颉语言通过其高效编译器优化和并行计算能力,在运行速度上与其他主流编程语言相比具有明显优势。以下是与常见编程语言的运行速度对比:

华为仓颉编程语言作为一款新兴的高性能编程语言,在语法设计、性能优化、安全性和兼容性方面都展现了其独特的优势。虽然目前在生态系统和社区支持方面还有待完善,但随着技术的发展和社区的壮大,仓颉有望在未来成为主流编程语言之一。最后希望仓颉越来越好,祝愿华为越来越强!

THE END
1.机器人热门编程语言及优缺点分析思岚科技这个问题困扰了很多新手学者,但遗憾的是,这是一个没有准确答案的问题,你问不同的人会得到不同的答案,对于机器人学者来说建立“编程思维“才是最关键的,而不是用一种特定语言去衡量,在很多方面,学习哪种机器人编程语言并不是最重要的,重要的是通过编程思维来不断提升自己的技能。https://www.slamtec.com/cn/News/Detail/169
2.十大编程语言优缺点对比老男孩python的技术博客python作为一门高级编程语言,它的诞生虽然很偶然,但是它得到程序员的喜爱却是必然之路,以下是Python与其他编程语言的优缺点对比: 1. Python 优势:简单易学,能够把用其他语言制作的各种模块很轻松地联结在一起。 劣势:速度较慢,且有一些特定情况下才会出现(无法重现)的 bug https://blog.51cto.com/u_12306609/2116209
3.学编程学哪一种比较好?学习编程有很多种不同的语言和领域可以选择,每种语言和领域都有其特点和适用场景。因此,选择哪种编程语言比较好取决于你的目标、兴趣和个人情况。以下是一些常见的编程语言和它们的应用领域,供你参考:1. Python:Python是一种简单易学、功能强大的编程语言,适用于各种应用领域,包括数据分析、人工智能、Web开发等https://baijiahao.baidu.com/s?id=1783519401978028857&wfr=spider&for=pc
4.盘点时下最流行的十大编程语言优缺点,附2024年5月最新的编程语言排行TIOBE公布了2024年5月最新的编程语言排行榜,本次的亮点是Fortran这个编程界的元老级语言,竟然在沉寂20多年后,再次闯入榜单的Top 10。前10名分别是Python、C、C++、Java、C#、JavaScript、Visual Basic、Go、SQL、Fortran。前20名榜单如下: 下面分别来分析一下前十名编程语言的优缺点,看看哪种语言更适合你。 https://blog.csdn.net/Vista7Malone/article/details/139095834
5.从大模型的「前世今生」看生成式人工智能的「价值涌现」Jurassic-1是AI21 Labs发布的一个1780亿参数量自回归语言模型,作为第一个使用包含多词汇(multi-word)token的语言模型,Jurassic-1相比GPT-3能够使用更少的token来表示同一个语句,提高了模型效率,且在语料库测试中表现优于GPT-3。 15)Gopher Gopher是DeepMind公司发布的2800亿参数量大语言模型[5],其以自回归Transforhttp://www.pinevc.com.cn/article/1361.html
6.编程语言类型和优缺点是什么?Worktile社区编程语言类型和优缺点是什么 回复 共3条回复我来回复 这个人很懒,什么都没有留下~ 评论 编程语言是用于编写计算机程序的一种形式化语言。根据不同的目的和应用场景,编程语言可以分为多种类型,每种类型都有其独特的优点和缺点。 一、低级语言 机器语言:直接使用二进制代码编写,能够直接与硬件交互,执行效率高,但https://worktile.com/kb/ask/2421011.html
7.编程语言的种类和优缺点辉辉辉辉a编程语言的种类和优缺点 1.机器语言 优点:最底层,运行速度快。 缺点:很复杂,开发效率低。 2.汇编语言 优点:最底层,运行速度快。 缺点:很复杂,开发效率低。 3.高级语言 (1)解释型语言: 优点:跨平台,开发效率高。 缺点:依赖环境运行,运行效率低。https://www.cnblogs.com/huizaia/p/8892463.html
8.分享cjavapython三种语言的区别以及优缺点Java语言: 跨平台性和面向对象特性使得Java适用于企业级应用开发,但相对较慢的性能是一个缺点。Python语言: 适用于快速开发、数据科学和人工智能等领域,但在性能上有一些牺牲。 选择编程语言应根据项目需求、开发人员技能和应用场景来权衡各语言的优缺点。每种语言都有自己的定位和优势,合适的语言选择可以提高开发效率https://leetcode.cn/circle/discuss/oFCjec/
9.简述计算机程序设计语言(机器语言汇编语言高级语言)的优缺点机器语言:1.优点:计算机能够直接识别,不用转换.缺点:编程很很复杂,一个字,难.相当于你要用(01)两个数字完成所有的程序编译.汇编语言:优点:编程比机器语言简单的多,但要转换后计算机才能识别.学习起来也不是很难.高级语言:优点:编程简单(比汇编还要简单,灵活),但要转换后计算机才能识别,学习起来较难. 解析看不https://www.zybang.com/question/51b4901304f68ee2b00d8066397b0384.html
10.十大热门编程语言排名编程语言排行榜编程语言哪个前景好Assembly language(汇编语言)是全球十大编程语言之一,是用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,是机器语言之上的第二代编程语言,优缺点兼具。Assembly language能够轻松读取存储器状态以及I/O接口情况,可以准确高效的被执行,具有很强的扩展性。它也具有代码冗长、编写困难、容易出BUG而且比较难调https://www.maigoo.com/citiao/list_118062.html
11.适合人工智能的九大编程语言如今有100多种算法,每种算法都有自己的语言,也各有优缺点。例如,只有少数优秀的深度学习平台可用,但有几十种决策树算法或启发式算法。 2.哪个更好——Python或R编程语言? 回答:R和Python是人工智能、机器学习和数据分析的标准编程语言。如果从人工智能和机器学习开始,用户很可能会采用这两种语言,并且必须选择一种语https://nic.hnuu.edu.cn/10043/2021/0024668.html
12.pascal编程语言有哪些优缺点问答Pascal编程语言的优点包括:1. 结构化:Pascal是一种结构化的编程语言,它强制程序员使用块结构、过程和函数,使程序的逻辑更清晰,易于理解和维护。2. 可移植性:Pascal编程语言具有很高的https://www.yisu.com/ask/64366899.html
13.现代编程语言终极测评:一星篇编者按:编程语言哪种好?这可能是许多学习编程人员甚至是外行人员都会面对的头疼问题。网络上普遍的编程语言介绍,大多都是东拼西凑的内容,并且无法让人真正认识和了解各种语言的优缺点。这篇文章,原标题是These Modern Programming Languages Will Make You Suffer,作者Ilya Suzdalnitski在文章中针对15种编程语言展开了详https://36kr.com/p/1019313908663049
14.选Python还是选Java?2020年,顶尖程序员最应该掌握的7种编程语言哪种编程语言最好?这个问题可能永远不会有答案。萝卜白菜,各有所爱,AI 工程师和科学家可以根据项目需要,从众多编程语言中选择最适合自己的。 有人曾经将编程比作做菜,那编程语言就是首先要准备的食材或厨具。 C:一把菜刀一口炒锅,一个很好用的灶,隔壁有个菜市场。 https://www.thepaper.cn/newsDetail_forward_6854020
15.各大编程语言优缺点对比2.跨平台是它最大的优点也是最大的缺点 3.复杂性(做一个项目需要很多的知识,涉及面广) C# C#是一种精确、简单、类型安全、面向对象的语言。 说到C#,就不得不先简单介绍一下.net。到底什么是.net呢,按照微软总裁兼首席执行官Steve Ballrner把它定义为:.Net代表一个集合,一个环境,它可以作为平台支持下一代https://zhuanlan.zhihu.com/p/135201642
16.苹果端开发语言Swift和Objective苹果端开发主要使用的两种编程语言是Swift和Objective-C。它们各自有一些优点和缺点,具体选择取决于项目的需求、开发团队的经验以及个人喜好等因素。 apple-system, "background-color:#F7F7F8;">Objective-C: apple-system, "background-color:#F7F7F8;">优点: http://www.apppark.cn/t-49210.html
17.python编程语言对比C++语言的优势与劣势2.支持多种编程范式:Python编程语言能够支持多种编程范式,如 面向对象、函数式编程和过程式编程等。 3.强大的标准库:Python编程语言中有大量的标准库,遍布各个领域,例如 Web 开发、科学计算、图形图像处理等等。这些库在大多数情况下不需要额外的安装和配置,可以直接使用。 https://www.bwie.com/jsgh/8.html