视频课程
示例代码
技术文章
仓颉语言工具链设计与实现
在软件开发中,工具链是一组编程工具,用于执行复杂的软件开发任务或创建软件产品,该软件产品通常是另一个计算机程序或一组相关程序[1]。通常这些工具可以包括包管理、调试器、静态检查、格式化、自动化测试工具等。工具链的目的是提高开发效率、简化开发流程,并帮助开发人员更好地完成项目。
2024-09-09 更新
Deriving implementation design
For frequently used interfaces one often need to write implementations for user defined types. Even though such implementations are very trivial, it takes time and sometimes it's a lot of "mechanical work", especially for so called data classes having a lot of fields. Such work is usually perceived as annoying and boring. Also some interfaces also require to implement a lot of functions, e.g. Comparable requires to implement 9 functions.
2024-09-02 更新
Cangjie macro expansion
Macros are convenient function-like procedures that help generate code during the compilation of a program. Cangjie is relatively alone among modern programming languages to support macros – Rust and Swift have macros too, but not Go, Python, C#, JavaScript, or Kotlin.
2024-08-16 更新
仓颉语言运行时轻量化实践
仓颉Native后端(CJNative)是仓颉语言的高性能、轻量化实现。这里的“轻量化”意指仓颉程序运行过程中占用系统资源(内存、CPU等)较少。轻量化对于运行在资源受限场景(典型如嵌入式、移动设备等)的程序具有重要意义,占用资源越少,系统负载越小,程序运行更加平稳,用户体验更好。
2024-08-09 更新
类型推断技术及仓颉语言实践
一门编程语言一定得包含类型系统吗? 这个问题今天看来可能显而易见,一个程序没有类型的话还能算是个完整、正确的程序吗?但是其实关于类型系统的作用,一直是存在两种针锋相对的看法的。大家普遍习惯的这种把类型作为程序不可分割的一部分的看待方式叫做“内生”(intrinsic)的理解方式,即一个程序如果没有合法的类型就不能算有意义的程序。而与之相对的,也存在一种“外生”(extrinsic)的理解方式,持这种观点的人认为,程序即使没有类型也同样有意义,类型检查只是额外地证明了这个程序的一些性质,与其他的各种程序分析工具应该处于同样的地位。
2024-08-02 更新
仓颉并发机制的设计与实现
并发编程是一种让程序能执行多个任务的编程技术,其主要目标是提高程序的运行效率和资源利用率(注意区分并发和并行,前者指代多个任务的执行时间有重合,如交替执行,而后者严格要求任务同时执行)。线程是最为常见的并发模型,通常被进一步区分为操作系统线程和用户态协程。
2024-07-26 更新
仓颉 High-Level IR 设计与实现
传统的编译架构通常基于抽象语法树(Abstract SyntaxTree,即 AST)和类三地址码形式的中间表达(Intermediate Representation,即 IR)两层数据结构建立:
2024-07-18 更新