在企业级的软件开发市场,Java语言当前处于绝对领先的位置,其中的原因比较多,例如开放性、生态等。除此之外,Java语言在开发过程中的易用性,也为此做出了贡献,例如Java中的注解,通过简单的一个标记,就能完成复杂的功能,而Spring等第三方框架的出现,更是让注解如虎添翼,大大简化了Java程序的开发工作,初学者经过一段时间的培训,就可以使用基于注解的Spring进行企业级开发。
仓颉语言作为一种面向应用层的通用开发语言,和Java的开发范围高度重合,在对标Java注解这一方向上,仓颉的宏在性能上有一定的优势,因为仓颉的宏是在编译期展开的,不需要运行时处理,这样,性能会更高一点。不过,Java注解和仓颉的宏并不完全一致,各有各的特点,使用得当都可以简化开发工作。
元编程本身有一定的复杂性,针对仓颉语言来讲,需要了解抽象语法树(AST)的基本概念和用法,然后才能更好地使用仓颉宏。市面上介绍元编程的书籍不多,笔者在实际使用仓颉宏解决开发问题时感受到了仓颉宏的巨大潜力,在和清华大学出版社沟通后,决定写一本关于仓颉语言元编程的入门书籍,希望能帮助读者更好更快地掌握仓颉宏的用法。
本书主要内容
第1章元编程简介,介绍了什么是元编程及两种主要元编程的实现模式。
第2章仓颉元编程初探,通过对一个典型问题的两种解决方式对比,展示仓颉元编程的强大能力。
第3章词法单元,词法单元是抽象语法树的基础,本章介绍了词法单元的构造方式及如何使用。
第4章表达式,在仓颉语言中绝大多数对象是表达式,本章详细介绍了常用的表达式及其成员,并通过示例演示成员函数的用法。
第5章类型,仓颉语言包括多种数据类型,这些数据类型在抽象语法树中由对应的类型表示,本章详细介绍了几种主要的类型。
第6章基础声明,介绍了变量和接口声明的成员函数及使用方式。
第7章函数声明,介绍了普通函数声明与main函数声明的使用方式,并通过一个示例演示面向切面编程思想的实现。
第8章class声明,介绍了与class声明相关的成员函数声明、主构造函数声明及属性声明。
第9章泛型与模式匹配,介绍了在元编程中泛型及模式匹配的使用,重点介绍了6种常用的模式。
第10章代码结构,介绍了文件节点中包节点和导入节点的用法,建立了抽象语法树的完整轮廓。
第11章宏,介绍了宏的定义及调用方式,通过示例演示宏的用法。
第12章宏示例实战解析,详细解析了第2章演示的宏的实现代码,并介绍了如何增强该宏的功能。
本书特色
(1) 易于入门。使用通俗易懂的示例讲解元编程的基础概念,即使对仓颉元编程不太了解,也可以通过脚本语言或者Java语言的示例了解元编程。
(2) 培养兴趣。通过普通编程和仓颉元编程对同一问题的解决方案对比,展示仓颉元编程的强大能力,从而培养读者学习元编程的兴趣。
(3) 循序渐进。按照知识点自身的依赖关系,逐步掌握抽象语法树的各个知识点,在本书的最后才水到渠成地学习仓颉宏的知识。
(4) 丰富的代码示例,简单易行的验证步骤。针对每章节的内容都精心设计了对应的示例代码,代码结构简洁明了,包括详细的注释和说明,均可以独立运行。所有与仓颉元编程直接相关的示例都同时支持Linux和Windows环境,演示步骤按照Windows环境编写,易于操作。
扫描目录上方的二维码可下载本书源代码。
致谢
感谢以华为编程语言实验室为代表的仓颉语言开发者,你们多年默默无闻的工作创造了仓颉语言。
感谢仓颉语言社区众多第三方开发者,你们为仓颉社区生态的发展壮大贡献了力量,也让我从中学习了更多的仓颉语言开发知识。
特别感谢多年合作的清华大学出版社赵佳霓编辑,即使在书籍出版过程中遇到了困难和挫折,也始终如一地坚持高标准的书稿审校工作,一字一句地推敲斟酌,为出版高质量的书籍提供了最终的保障。
作者
2024年5月于青岛