倉頡編程語言是一種由華為自主研發(fā)的面向全場景智能應用開發(fā)的現(xiàn)代編程語言,其設計目標是為開發(fā)者提供高效、安全、并發(fā)性強的編程體驗。
- 倉頡編程語言官網入口網址:https://cangjie-lang.cn/
- 倉頡編程語言官網下載地址:https://cangjie-lang.cn/download

以下是關于倉頡編程語言的詳細分析:
1. 倉頡編程語言的起源與背景
倉頡編程語言的名稱來源于“倉頡輸入法”,這是一種基于漢字的輸入法,由中國臺灣省的朱邦復先生在1983年發(fā)明。倉頡輸入法通過分解漢字的形、音、義來實現(xiàn)輸入,使得用戶能夠通過輸入漢字的組成部分來輸入漢字。然而,倉頡編程語言并非直接繼承自倉頡輸入法,而是華為在2019年啟動研發(fā)項目,歷經五年沉淀,于2024年6月21日在華為開發(fā)者大會(HDC2024)正式亮相。
2. 倉頡編程語言的核心特點
倉頡編程語言具有以下核心特點:
- 面向全場景智能:倉頡編程語言是華為為鴻蒙系統(tǒng)量身打造的全場景智能應用編程語言,旨在支持鴻蒙系統(tǒng)下的全場景應用開發(fā)。它支持多種開發(fā)范式,包括函數(shù)式、命令式和面向對象編程,使得開發(fā)者能夠根據(jù)業(yè)務需求選擇最合適的表達方式。
- 語法簡明高效:倉頡編程語言提供了一系列簡明高效的語法,例如插值字符串、主構造函數(shù)、Flow表達式、match、if-let、while-let和重導出等語法,旨在減少冗余書寫、提升開發(fā)效率。此外,它支持類型推斷,即編譯器根據(jù)變量或表達式的上下文信息自動推測出類型,而不需要開發(fā)者在開發(fā)階段標注類型。
- 強類型與靜態(tài)類型:倉頡編程語言是一種靜態(tài)且強類型的編程語言,要求所有數(shù)據(jù)都有確定的類型且類型不能改變。Nothing類型是倉頡語言定義的一種特殊類型,表示空類型,是所有類型的子類型。break、continue、return和throw表達式的類型都是Nothing。目前倉頡編譯器不允許顯式使用Nothing類型。此外,倉頡編程語言支持數(shù)值類型、Rune類型、Bool類型等不可變類型,以及Array類型、VArray類型等可變類型。
- 高效并發(fā):倉頡編程語言采用搶占式的并發(fā)模型,其中倉頡線程是基本的執(zhí)行單元。每個線程都具有可被搶占、并發(fā)執(zhí)行、阻塞掛起和共享內存等性質。通過spawn關鍵字和ThreadContext類型默認參數(shù)創(chuàng)建并啟動一個線程,返回Future<T>實例。Future<T>對象代表一個未完成的計算或任務,可用于獲取線程的計算結果。每個Future<T>對象都有一個關聯(lián)的線程對象,可通過thread屬性獲取。倉頡語言還提供了sleep函數(shù)讓線程睡眠指定時長,以及cancel()方法向對應的線程發(fā)送終止請求。
- 跨語言互操作:倉頡編程語言支持與C語言和ArkTS的互操作。在C語言互操作中,倉頡提供聲明式接口描述和低互操作開銷,允許在倉頡代碼中聲明被調用的C函數(shù)接口,并減少跨語言拷貝和運行時開銷。在ArkTS互操作中,倉頡提供ohos.ark_interop互操作庫,包括JSValue、JSContext和JSCallInfo等關鍵數(shù)據(jù)結構,實現(xiàn)與ArkTS的互操作。
- 內存安全:倉頡編程語言內置了豐富的運算符,包括算術運算符、關系運算符、邏輯運算符等。算術運算符用于執(zhí)行數(shù)學運算,如加法、減法、乘法等。關系運算符用于比較量的大小或相等性。邏輯運算符用于真或假邏輯運算,如邏輯非、邏輯與、邏輯或等。此外,倉頡語言還支持自增自減運算符、位運算符、賦值運算符、類型判斷運算符等。運算符可以重載,以擴展現(xiàn)有運算符的功能。倉頡編程語言還支持引用和值傳遞的方式來傳遞參數(shù)和返回值,引用傳遞可以提高性能和避免數(shù)據(jù)復制。
- 領域易擴展:倉頡編程語言基于詞法宏的元編程能力,支持尾隨lambda、屬性、操作符重載等,有利于構建領域專用語言(DSL)。它還支持創(chuàng)建DSL語言,類似Groovy和Kotlin,便于開發(fā)者快速構建領域專用語言。
- 安全與性能:倉頡編程語言追求“編碼即安全”的愿景,通過靜態(tài)類型系統(tǒng)和自動內存管理確保程序安全。同時,倉頡編譯器和運行時進行全棧優(yōu)化,包括高層編譯優(yōu)化、后端協(xié)同優(yōu)化、向量化、Intrinsic優(yōu)化等,以及運行時的輕量化設計和按需加載技術,以提升程序性能。
3. 倉頡編程語言的應用領域
倉頡編程語言主要應用于以下領域:
- 中文字符編碼和文本數(shù)據(jù)處理:倉頡編程語言充分利用漢字的結構特點來設計編碼,為開發(fā)者提供了一種高效的方式來編碼、存儲和處理中文字和詞組。
- 多領域應用:除了基本的漢字輸入和處理功能,倉頡編程語言還廣泛應用于教育、出版、歷史文獻數(shù)字化以及人工智能等領域。在這些領域中,倉頡編程語言提供的漢字處理能力能夠大大提高效率和準確性,促進相關技術和應用。
- 鴻蒙生態(tài):倉頡編程語言是鴻蒙生態(tài)基礎設施建設的重要一環(huán),旨在支持鴻蒙系統(tǒng)下的全場景應用開發(fā)。它支持與C語言和ArkTS的互操作,實現(xiàn)高效復用和生態(tài)兼容。
倉頡編程語言是一種由華為自主研發(fā)的面向全場景智能應用開發(fā)的現(xiàn)代編程語言,具有語法簡明高效、強類型、高效并發(fā)、跨語言互操作、內存安全、領域易擴展等核心特點。它旨在為開發(fā)者提供高效、安全、并發(fā)性強的編程體驗,并廣泛應用于鴻蒙生態(tài)、中文字符編碼和文本數(shù)據(jù)處理等領域。
相關導航
暫無評論...