倉(cāng)頡編程語(yǔ)言是一款面向全場(chǎng)景智能的新一代編程語(yǔ)言,主打原生智能化、天生全場(chǎng)景、高性能、強(qiáng)安全。主要應(yīng)用于鴻蒙原生應(yīng)用及服務(wù)應(yīng)用等場(chǎng)景中,為開(kāi)發(fā)者提供良好的編程體驗(yàn)。
軟件優(yōu)勢(shì):
1.多后端支持:倉(cāng)頡編程語(yǔ)言支持 CJNative 和 CJVM 兩種后端。其中 CJNative 后端將代碼編譯為原生二進(jìn)制代碼,直接在操作系統(tǒng)層面上運(yùn)行;CJVM 后端將代碼編譯為字節(jié)碼,基于 VM(虛擬機(jī))進(jìn)行運(yùn)行。本文檔適配 CJNative 后端。
2.語(yǔ)法簡(jiǎn)明高效:倉(cāng)頡編程語(yǔ)言提供了一系列簡(jiǎn)明高效的語(yǔ)法,旨在減少冗余書寫、提升開(kāi)發(fā)效率,例如插值字符串、主構(gòu)造函數(shù)、Flow 表達(dá)式、match、if-let、while-let 和重導(dǎo)出等語(yǔ)法,讓開(kāi)發(fā)者可以用較少編碼表達(dá)相關(guān)邏輯。
3.多范式編程:倉(cāng)頡編程語(yǔ)言支持函數(shù)式、命令式和面向?qū)ο蟮榷喾妒骄幊,融合了高階函數(shù)、代數(shù)數(shù)據(jù)類型、模式匹配、泛型等函數(shù)式語(yǔ)言的先進(jìn)特性,還有封裝、接口、繼承、子類型多態(tài)等支持模塊化開(kāi)發(fā)的面向?qū)ο笳Z(yǔ)言特性,以及值類型、全局函數(shù)等簡(jiǎn)潔高效的命令式語(yǔ)言特性。開(kāi)發(fā)者可以根據(jù)開(kāi)發(fā)偏好或應(yīng)用場(chǎng)景,選用不同的編程范式。
4.類型安全:倉(cāng)頡編程語(yǔ)言是靜態(tài)強(qiáng)類型語(yǔ)言,通過(guò)編譯時(shí)類型檢查盡早識(shí)別程序錯(cuò)誤,降低運(yùn)行時(shí)風(fēng)險(xiǎn),也便于代碼維護(hù)。同時(shí),倉(cāng)頡編譯器提供了強(qiáng)大的類型推斷能力,可以減少類型標(biāo)注工作,提高開(kāi)發(fā)效率。
5.內(nèi)存安全:倉(cāng)頡編程語(yǔ)言支持自動(dòng)內(nèi)存管理,并在運(yùn)行時(shí)進(jìn)行數(shù)組下標(biāo)越界檢查、溢出檢查等,確保運(yùn)行時(shí)內(nèi)存安全。
6.高效并發(fā):倉(cāng)頡編程語(yǔ)言提供了用戶態(tài)輕量化線程(原生協(xié)程),以及簡(jiǎn)單易用的并發(fā)編程機(jī)制,保證并發(fā)場(chǎng)景的高效開(kāi)發(fā)和運(yùn)行。
7.兼容語(yǔ)言生態(tài):倉(cāng)頡編程語(yǔ)言支持和 C 等主流編程語(yǔ)言的互操作,并采用便捷的聲明式編程范式,可實(shí)現(xiàn)對(duì)其他語(yǔ)言庫(kù)的高效復(fù)用和生態(tài)兼容。
8.領(lǐng)域易擴(kuò)展:倉(cāng)頡編程語(yǔ)言提供了基于詞法宏的元編程能力,支持在編譯時(shí)變換代碼,此外,還提供了尾隨 lambda、屬性、操作符重載、部分關(guān)鍵字可省略等特性,開(kāi)發(fā)者可由此深度定制程序的語(yǔ)法和語(yǔ)義,有利于內(nèi)嵌式領(lǐng)域?qū)S谜Z(yǔ)言(Embedded Domain Specific Languages,EDSL)的構(gòu)建。
9.助力 UI 開(kāi)發(fā):UI 開(kāi)發(fā)是構(gòu)建端側(cè)應(yīng)用的重要環(huán)節(jié),基于倉(cāng)頡編程語(yǔ)言的元編程和尾隨 lambda 等特性,可以搭建聲明式 UI 開(kāi)發(fā)框架,提升 UI 開(kāi)發(fā)效率和體驗(yàn)。
10.內(nèi)置庫(kù)功能豐富:倉(cāng)頡編程語(yǔ)言提供了功能豐富的內(nèi)置庫(kù),涉及數(shù)據(jù)結(jié)構(gòu)、常用算法、數(shù)學(xué)計(jì)算、正則匹配、系統(tǒng)交互、文件操作、網(wǎng)絡(luò)通信、數(shù)據(jù)庫(kù)訪問(wèn)、日志打印、解壓縮、編解碼、加解密和序列化等功能。
軟件應(yīng)用場(chǎng)景:
1.鴻蒙應(yīng)用場(chǎng)景
在鴻蒙應(yīng)用場(chǎng)景中,倉(cāng)頡編程語(yǔ)言憑借對(duì)現(xiàn)代語(yǔ)言特性的集成、全方位的編譯優(yōu)化與運(yùn)行時(shí)實(shí)現(xiàn),以及開(kāi)箱即用的 IDE 工具鏈支持,為開(kāi)發(fā)者締造了友好的開(kāi)發(fā)體驗(yàn)和卓越的程序性能。此外,面向未來(lái)的鴻蒙 AI 原生應(yīng)用開(kāi)發(fā),倉(cāng)頡語(yǔ)言提供了面向開(kāi)發(fā)者的全套內(nèi)嵌 Agent DSL 的編程框架以及智能化開(kāi)發(fā)工具,便于開(kāi)發(fā)者高效地完成鴻蒙 AI 原生應(yīng)用的開(kāi)發(fā)工作。
2.服務(wù)端/云化場(chǎng)景
在云化場(chǎng)景中,倉(cāng)頡編程語(yǔ)言提供了微服務(wù)應(yīng)用開(kāi)發(fā)框架,提供基于編譯前處理模式的IOC容器、AOP切面編程、 ORM和事務(wù)管理、端到端的異步請(qǐng)求以及與其他組件快速對(duì)接等能力,幫助開(kāi)發(fā)者快速構(gòu)建微服務(wù)應(yīng)用,并且通過(guò)倉(cāng)頡輕量級(jí)用戶態(tài)線程以及高性能網(wǎng)絡(luò)協(xié)議庫(kù),能夠充分利用系統(tǒng)資源,高效開(kāi)發(fā)出高性能云服務(wù)應(yīng)用。同時(shí),倉(cāng)頡社區(qū)協(xié)同合作伙伴以及開(kāi)發(fā)者,共同構(gòu)建了豐富的三方庫(kù)及中間件生態(tài),方便開(kāi)發(fā)者構(gòu)建倉(cāng)頡程序。