仓颉基础

来自牛奶河Wiki
阿奔讨论 | 贡献2024年3月12日 (二) 17:24的版本 →‎INIT
跳到导航 跳到搜索

仓颉(Cangjie),是华为自研的编程语言,于 2020 年 3 月 16 日正式提交“华为仓颉”商标申请,2021 年开始内测。

特点

多范式编程,高效开发

仓颉语言支持函数式、面向对象和命令式的多范式编程,融合了高阶函数、 版权所有,禁止扩散 代数数据类型、模式匹配、泛型等函数式语言的先进特性,以及封装、子类型多态、接口、继承等 支持模块化开发的面向对象的语言特性,还有值类型、全局函数等简洁高效的命令式语言特性。

类型安全,类型推断

仓颉语言是静态强类型语言,通过编译时检查尽早发现程序错误,排除运行时错误。仓颉编译器提供强大的类型推断能力,减少开发时类型标注工作量,提高编码灵活性。

自动内存管理,内存安全

仓颉语言采用垃圾收集机制,支持自动内存管理,并在运行时进行数组下标越界检查、溢出检查等,确保程序内存安全。

领域易扩展,高效构建领域抽象

仓颉语言的高阶函数、尾随 lambda、属性机制、操作符重载、部分关键字可省略等特性,有利于内嵌式领域专用语言(eDSL)的构建。此外,仓颉还提供基于宏的元编程支持,在编译时生成或改变代码,让开发者可以深度定制程序的语法和语义,构建更加符合领域抽象的语言特性。

高效跨语言,兼容语言生态

仓颉语言可以实现与多语言的互通(目前已实现与 C 语言和 Python 语言的互操作),可以高效调用其他主流编程语言,进而实现对其他语言库的复用和生态兼容。

易用的并发/分布式编程

仓颉语言提供原生的用户态轻量化线程,支持高并发编程。

安装

仓颉工具链目前支持 Linux 以及 Windows 10 系统环境。

Linux 架构 运行要求
x86_64 glibc 2.22, Linux Kernel 4.12 或更高版本, 系统安装 libstdc++ 6.0.24 或更高 版本
aarch64 同上

Ubuntu 18.04/20.04、Windows11 安装成功。

  • Cangjie-0.45.2-linux_x64.tar.gz 404006673
  • Cangjie-0.45.2-windows_x64.exe 270046395
  • Cangjie-vscode-0.45.2.tar.gz 356273041

Centos 7 及以下版本因为 GCC 版本较低,会出现 libstdc++.so 版本较低,GLIBCXX_3.4.22 找不到等问题。

INIT
apt install binutils libc-dev libc++-dev libgcc-7-dev
# profile
source /opt/cangjie/envsetup.sh

cjc -v
Cangjie Compiler: 0.45.2 (cjnative)
Target: x86_64-unknown-linux-gnu
# cjvm 版本
Cangjie Compiler: 0.45.2 (cjvm)
Target: x86_64-unknown-linux-gnu
编译出来是 hello.cbc 文件,执行需要 bin/jet/profile/develop/lib/libcjvm.so & libcrypto.so
Error
# error: not found `ar` in $PATH
# Command 'ar' not found, but can be installed with:
apt install binutils