![]()
内容推荐 本书主要研究如何构建一种新的编程语言。书中将介绍编程语言设计方面的主题,并重点介绍编程语言实现。本书的新颖之处在于将传统的编译器-编译器工具(Flex和BYACC)与两种更高级的实现语言融合。一种非常高级的语言(Unicon)可以像黄油一样穿透编译器的数据结构和算法,而另一种主流的现代语言(Java)则展示了如何在更典型的生产环境中实现相同的代码。 本书主要面向对发明编程语言或开发领域特定语言感兴趣的软件开发人员。学习编译器构建课程的计算机科学相关专业学生也会发现这本书非常适合作为语言实现的实用指南,可以为理论教材提供有益补充。 作者简介 克林顿·L.杰弗瑞(Clinton L. Jeffery) Clinton L. Jeffery是New Mexico Institute of Mining and Technology计算机科学与工程系的教授和系主任。他在华盛顿大学获得计算机科学学士学位,在亚利桑那大学获得计算机科学硕士和博士学位。他主要从事编程语言、程序监控、调试、图形、虚拟环境和可视化方面的研究,并撰写了许多相关书籍和论文。他与同事一起发明了Unicon编程语言,该语言在Unicon网站上托管。 目录 前言 第一部分 编程语言导论 第1章 为什么要构建另一种编程语言 1.1 编写自己的编程语言的动机 1.1.1 编程语言实现的类型 1.1.2 组织字节码语言实现 1.1.3 示例中使用的语言 1.2 编程语言与库的差别 1.3 适用于其他软件工程任务 1.4 建立语言需求 1.5 案例研究:Unicon语言的创建需求 1.5.1 Unicon需求#1—保留人们对Icon的喜爱 1.5.2 Unicon需求#2—支持大型大数据项目 1.5.3 Unicon需求#3—现代应用程序的高级输入/输出 1.5.4 Unicon需求#4—提供可实现的通用系统接口 1.6 本章小结 1.7 思考题 第2章 编程语言设计 2.1 确定要编程语言提供的单词和 标点符号的类型 2.2 指定控制流 2.3 决定支持哪种数据 2.3.1 原子类型 2.3.2 复合类型 2.3.3 领域特定类型 2.4 整体程序结构 2.5 完成Jzero语言的定义 2.6 案例研究:设计Unicon中的图形功能 2.6.1 2D图形语言支持 2.6.2 添加3D图形支持 2.7 本章小结 2.8 思考题 第3章 扫描源代码 3.1 技术需求 3.2 词素、词类和标记 3.3 正则表达式 …… 第二部分 语法树遍历 第三部分 代码生成与运行时系统 第四部分 附录 附录A Unicon基础 附录B 部分章节要点 |