图书前言

前言

随着人工智能技术的飞速发展,计算机科学与软件工程教育正面临前所未有的机遇与挑战。人工智能不仅推动了技术边界的拓展,也为高校程序设计课程的改革与创新提供了重要契机。在这一背景下,仓颉编程语言作为一款面向全场景智能开发的现代编程语言应运而生。其融合了函数式编程与面向对象编程的双重优势,兼具开发效率与运行性能,为人工智能时代的编程实践提供了强有力的工具支持。

仓颉语言在设计上充分考虑了现代软件开发的复杂性与多样性。其支持多范式编程,既具备函数式语言的高阶函数、模式匹配、代数数据类型等先进特性,也提供了面向对象语言的封装、继承、多态等经典机制。这种融合使得仓颉语言不仅适用于传统的系统开发、应用构建,更在人工智能模型训练、参数调优、数据处理等场景中表现出色。其类型安全与内存安全的特性,为构建可靠、健壮的智能系统提供了坚实基础,尤其适合高校学生在学习过程中培养严谨的工程思维。

在人工智能时代,编程已不仅是计算机专业学生的专属技能,更是跨学科人才必备的核心素养。从机器学习模型的实现到分布式系统的构建,从算法优化到系统部署,编程能力贯穿于人工智能研发的全流程。学习程序设计,不仅是掌握一门技术,更是培养逻辑思维、抽象能力和解决复杂问题能力的重要途径。仓颉语言以其简洁的语法、丰富的表达力和完善的工具链,降低了学习门槛,提升了实践效率,非常适合作为高校程序设计课程的教学语言。

笔者自1990年大学毕业至今,从事计算机程序设计与软件开发教学已逾30载。无论是教学实践的深耕,还是中途攻读硕士与博士的学术探索,每一个阶段的突破与成就,始终离不开软件所带来的抽象之力、逻辑之美与创造之自由。软件,不仅是工具,更是一种思维语言——它教会我们如何将复杂问题分解为可计算的模块,如何用算法刻画世界的运行规律,又如何通过迭代与重构不断逼近真理。这种计算思维的培养,不仅推动了个人学术发展,更催生了重要的科研创新成果。2010年,在汉字应用领域深耕多年的甲骨文编辑编码技术获得国家自然科学基金面上项目资助,基于此研发的《笔画汉字系统》《甲骨文图文编辑系统》分别荣获省级科技进步奖二等奖与三等奖。这些成就印证了软件思维在解决实际问题中的关键作用。在人工智能重塑世界的今天,这种作用愈发重要。它既是理解智能技术的基础,更是参与未来创造的起点。而仓颉语言的出现,正为我们提供了更高效、更安全、更契合时代需求的编程范式。

近年来,笔者持续追踪大模型与AIGC等前沿技术发展,并深入探索其对程序设计语言教学改革的启示。我们深刻认识到,在人工智能重塑世界的今天,程序设计教学的根本目标已不再是让学生机械记忆语法概念、生硬复现示例代码,或是局限于应对标准化试题。其核心使命在于培养学生以计算思维理解与表达世界的能力,塑造以抽象、分解、迭代、重构为核心的现代面向对象的工程化思维范式,最终使其成为能用编程语言创造性解决真实问题的实践者与创新者。这一目标体现在以下三个关键维度。

一是思维重塑。引导学生将复杂问题抽象为可计算模型,掌握“分解—问题识别—面向对象设计”的思维链条,而非停留于语法表层。例如通过仓颉语言的多范式特性(面向对象、函数式、命令式),引导学生学会根据问题本质选择表达范式,真正理解“程序是思维的具象化表达”。

二是跨界融合。推动编程与人文、科学、工程等领域的深度结合。例如,用仓颉语言的并发特性模拟身边的网络通信场景,用泛型和集合库处理自己的工作交流数据,用模式匹配和枚举类型实现日常的语言学符号分析等。

三是工程实践。超越片段化编码,强调系统设计、测试调试与重构优化的全流程能力,借助仓颉等现代语言的类型系统与工具链,培养“造软件而非仅写代码”的素养。

程序设计教育的终极意义,是赋予学生一种用逻辑重塑世界的底气。仓颉语言作为面向未来的编程语言,其类型安全、表达力强、生态兼容的特性,正为这一目标提供了坚实支撑。

本教材以仓颉语言为载体,系统讲解面向对象程序设计的核心概念与实践方法。内容涵盖从基础语法到高级特性,从类与对象到继承与多态,从泛型编程到并发处理,并结合人工智能中的典型应用场景,提供了丰富的示例,旨在帮助读者不仅掌握仓颉语言的编程技能,更能理解面向对象思想的内涵,培养在人工智能时代进行软件设计与开发的综合能力。因此,本书的知识体系会明显不同于传统的程序设计语言教材,总体而言,与其他同类的面向对象程序设计语言教材相比,本书有以下七大特色。

1. 体系完整,结构清晰

本书建立由浅入深的知识体系,从面向对象编程基础(第1章)逐步深入至仓颉语言核心特性(第2~4章)、类与对象机制(第5、6章)、类型系统与多态(第7章),最终拓展至集合与包(第8章)、I/O操作与异常处理(第9章)、网络与并发编程(第10章)。每章配备习题与程序示例,帮助读者巩固实践。

2. 融合多范式编程理念

本书详细讲解面向对象编程的类、继承、接口、多态等核心概念(第5~7章),同时深入介绍函数式编程特性(第3章),如Lambda表达式、闭包、高阶函数等,并涵盖结构体、枚举与模式匹配(第4章),体现仓颉语言多范式融合的现代设计思想。

3. 注重实践与工程应用

书中包含大量代码示例与综合案例(如TCP聊天程序、HTTP编程、WebSocket应用等),强调实际开发中的常见场景与问题解决。同时专门探讨异常处理、资源管理(第9章)、集合操作(第8章)、并发与网络编程(第10章)等工程实践内容,培养读者构建健壮、高效系统的能力。

4. 强调类型安全与抽象能力

通过泛型(第7章)、类型转换、子类型关系、Option类型(第4章)等内容的系统讲解,帮助读者建立严格的类型安全意识,并学会使用抽象工具设计可复用、可扩展的程序模块。

5. 结合人工智能时代需求

本书引入与现代人工智能开发密切相关的主题,包括并发编程支持高并发数据处理;函数式特性适配机器学习中的数据处理与变换;类型系统与泛型保障模型训练的代码可靠性;包管理与模块化设计支持大型项目与团队协作。

6. 语言对比与迁移学习

专门对比仓颉语言与C++语言的异同(第1、2章),帮助有传统语言基础的读者快速理解仓颉语言的设计理念与语法特性,降低学习成本。

7. 配套工具链与开发环境

详细介绍仓颉语言的开发工具链与集成化IDE环境(第2章),强调从编写、调试到部署的完整开发流程,助力读者快速上手实战。

作为基于仓颉语言的面向对象程序设计教材,本书在知识体系设计上紧密围绕思维重塑、跨界融合与工程实践三大核心维度展开。全书共10章,系统构建从理论到实践、从基础到进阶的教学路径。第1章为面向对象编程概述,从计算思维的本质出发,阐述面向对象程序设计的基本思想与发展脉络,通过仓颉语言与C++语言的对比分析,引导学生理解面向对象编程的特点,奠定思维重塑的基础。第2章为仓颉语言基础,聚焦仓颉语言核心语法,以数据表示、数据类型和数据转换作为主线,强调数据表达力,培养用数据精确描述问题的能力。第3章为函数编程,深入函数式范式,讲解Lambda表达式、闭包与高阶函数,展现多范式融合如何提升代码抽象层次,为跨界融合提供工具支持。第4章为结构体、枚举与模式匹配,通过代数数据类型与模式匹配机制,介绍如何用代码建模现实问题,衔接逻辑设计与程序实现。第5章为类和对象,系统解析类封装、构造函数、属性访问等面向对象核心机制,强调对象作为现实实体的抽象载体,培养领域建模能力。第6章为类继承和接口继承,剖析继承与多态性,通过接口设计实现方法的行为与实现分离,体现工程实践中模块化与扩展性的平衡。第7章为子类型关系和多态性,从类型系统视角深入多态机制,结合泛型编程与扩展方法,展示类型安全下的代码复用与适配能力。第8章为集合与包,通过容器库与模块化开发实践,介绍代码组织与数据管理策略,强化工程化开发素养。第9章为I/O操作与异常处理,以资源管理与错误处理为核心,培养学生构建健壮系统的能力,体现工程实践中的可靠性要求。第10章为网络与并发编程,最终落脚于分布式系统开发,通过Socket、HTTP及并发模型,实现从单机到网络、从顺序到并行的能力跃迁。

本书由栗青生任主编,罗欣、郑王君任副主编,参加编写的还有卞玉琳、杨帆、郑嘉雯、倪婷等。

本书在撰写过程中得到了华为技术有限公司仓颉语言生态产业发展总监王学智和仓颉语言编程生态经理刘俊杰的大力支持,在此,向他们表示衷心的感谢。

本书在撰写过程中,参考了文献资料、程序示例,有选择性地把一些重要的知识纳入本书,在此向文献的作者和单位表示衷心的感谢,由于笔者能力有限,本书难免存在不足之处,恳请广大读者批评指正。

栗青生

2026年1月