欢迎来到中国铁道出版社有限公司官网!
$itImage.title$

编译原理实践教程

书      号:9787113318345

丛  书 名:“十四五”高等学校新工科计算机类专业系列教材

作      者:张敬敏,李霞,齐净垒

译      者:

开      本:16开

装      帧:平装

正文语种:汉文

出  版 社:中国铁道出版社

定      价:26

  • 内容简介

    本书按照编译原理的核心理论和编译器的开发实际而编写,主要介绍TPL语言、编译器设计与实现过程,通过实验步骤和指导过程引导读者完成一个实际可用的编译器,从而了解编译程序构造的一般原理和基本方法。为便于理解,还提供了不同类型的测试样例来验证编译器实现的正确性,包括词法分析、语法分析、语义分析和代码优化等实验内容,具有系统完整、测试指导明确、帮助验证和难度可调等特点。本书适合作为普通高等学校计算机科学与技术、软件工程、数据科学与大数据技术、信息安全等相关专业的教材,也可供科技工作者及软件研发人员学习和参考。
  • 前言

    “编译原理”是计算机类专业的必修课,属于专业核心课,在课程体系中处于十分重要的地位。课程主要介绍运用程序设计语言编译程序的基本原理、设计方法、主要实现技术和一些自动构造工具,通常包含语言基础知识、词法分析、语法分析、语义分析及中间代码生成、中间代码优化、目标代码生成等内容。
    “编译原理”是理论和实践并重的课程,由于这门课程相对抽象且内容复杂,一直是最难学的课程之一。目前,市面上大部分的编译原理实践类教材适用对象过广、内容偏多,有的教材偏难,不适合应用型院校学生;有的教材实验内容是独立的多个实验,缺少系统性,与现阶段人才培养不接轨。因此本书尝试以通俗、简明的语言编写,契合应用型院校学生的特点,并且紧跟专业学科发展的热点和工程认证理念,培养系统分析能力。
    本书设计了一种以C语言为基础的面向教学的简单高级程序设计语言TPL,主要介绍了编译器的设计与实现的过程,强调编译的总体设计、各个阶段的接口安排,但不涉及目标代码生成阶段,也不涉及具体的目标机,因此,编译器设计难度适中,适合应用型院校学生。
    TPL具有概念简明、结构易理解、教学友好等特点。通过上机实践,设计一个相对完整的编译器,一方面可以使学生增加对编译程序的整体认识和了解,快速掌握编译器的核心原理和技术,巩固“编译原理”课程所学知识;另一方面,在上机练习过程中,学生也可以进一步理解程序调试技巧和设计大型程序的一般原则,如模块接口协调、数据结构合理选择等,为后续学习更复杂的语言和编译器打下坚实的基础。
    总的来说,本书具有以下特色:
    (1)系统性:书中的实验内容不是支离的,而是构成一个完整的编译器,让学生对编译器有整体认识,培养其系统思维与能力。
    (2)通俗易懂:本书采用深入浅出、通俗易懂的语言编写,并结合案例说明,帮助学生更直观地了解编译器的工作机制。
    (3)案例有设计、代码:既给出编译器的设计原理,也给出对应的参考代码,提升教材实用性,有利于学生更深入地理解编译器的工作原理。
    (4)融入OBE理念:教材内容与国际工程教育认证接轨,知识点与实践内容讲解均围绕预期学习成果展开,编译程序按照OBE理念进行设计,以设计思路-设计原理-存储结构-函数说明-主要算法-测试用例的思路,明确学习目标与方法,便于学生核查知识与方法的掌握情况,进而提升解决实际问题的能力。
    为了使学生能尽早动手实践,建议将实践分成两部分学习。首先学习本书第1章和第2章,这两章就TPL语言的文本及其编译程序的各个阶段作了简单介绍,以便对TPL语言编译程序有个初步的印象。然后按照第2章的实验要求设计实现TPL语言编译器。同时也鼓励使用编译开源工具,推荐词法分析器Lex和Flex,语法分析器Yacc、Bison和JavaCC等,它们应用广泛,且有多个不同语言的实现版本(如C、Python等),支持跨平台(包括Windows、Linux、Mac等),学生可以选择熟悉的平台和语言进行尝试。
    由于这门课实验难度较大,所以希望教师在实验前安排好学生的预习工作,在上机前要求学生进行实验预习。
    本书参考和引用了国内外大量优秀的编译原理教材和著作中的相关内容,也参考了网络上的相关内容,在此谨向原书作(译)者深表敬意和感谢;河北地质大学信息工程学院的杨钊宁同学和杨帅同学分别参与了本书第3章代码和第5章代码的编写工作,对两位同学表示感谢。与本书配套的源代码可从中国铁道出版社教育资源数字化平台https://www.tdpress.com/51eds下载,也可与作者联系获取。邮箱:290162056@qq.com;微信号:bxxwyh89、Matrix_ys。
    本书获得了河北地质大学教材出版基金的资助。
    由于编者水平有限,书中难免存在疏漏之处,恳请广大读者批评和指正。
    编 者
    2024年12月
  • 目录

    第1章TPL语言.11.1TPL语言设计原则.11.2字符集合21.3数据类型21.4TPL语言的符号.31.5表达式.31.6语句.41.6.1赋值语句41.6.2if条件语句.51.6.3while循环语句.51.6.4for循环语句.61.6.5复合语句.71.7程序结构.8第2章TPL语言编译器设计.92.1基本工作流程.92.2词法分析程序设计.102.2.1词法分析任务102.2.2高级语言实现词法分析(实验一).102.2.3自动生成工具实现词法分析(实验二).152.3语法分析程序设计.152.3.1语法分析任务152.3.2高级语言实现语法分析(实验三).172.3.3自动生成工具实现语法分析(实验四).192.4语义分析和中间代码生成程序设计.192.4.1语义分析和中间代码生成任务.192.4.2高级语言实现语义分析和中间代码生成(实验五).202.5中间代
  • 作者介绍

    张敬敏,硕士,教授,现任教于河北地质大学信息工程学院,主要研究方向为:智能计算、数据库管理系统设计。主授课程:编译原理、数值分析。主持和主研6项省级课题,8项教改项目,编写教材2部,发表核心期刊和EI检索论文20余篇,指导学生获得河北省大学生创业计划竞赛、“互联网”大学生创新创业大赛、河北省程序设计大赛等多次获奖。李霞,硕士,副教授,现任教于河北地质大学信息工程学院,教务处副处长,主要研究方向:智能计算。参与省级以上科研项目3项,主持、参与省部级教研项目4项,发表科研论文6篇,并多次荣获河北省优秀教学成果奖。齐净垒,河北泽华伟业科技股份有限公司总经理,河北工业大学人工智能与数据科学学院、电子信息工程学院企业导师,长期从事软件研发、遥感大数据处理、遥感技术应用、空间分析、新技术研究等工作,近年来参与了多项国家级、省部级课题和产业化专项项目。2024年3月被河北省软件集成电路信息服务协会授予“2023年度河北省软件和信息技术服务业优秀企业家”称号。
  • 编辑推荐

    1.从学习者角度出发,实验设计遵循循序渐进的原则,从编译的总体设计到各个阶段的接口安排模拟编译过程的各个阶段,加深读者对编译过程的认识。
    2.本书依照OBE理念进行设计,每部分实验以设计思路-设计原理-存储结构-函数说明-主要算法-测试用例的思路,明确学习目标与方法,帮助读者灵活掌握编译原理与技术的实践方法与技能,进而提升解决实际问题的能力。
  • 书评书荐

  • 附件下载

图书推荐