Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

XuetangX

编译原理

Xi’an University of Science and Technology via XuetangX

Overview






语言是人与人之间传递信息的媒体和手段,在计算机领域,大都应用高级程序设计语言与计算机进行通讯,但是,计算机是不能识别高级程序设计语言编写的程序,编译程序就起了一个从高级程序设计语言到机器语言的桥梁作用。编译原理课程讲授编译程序设计与实现中所涉及的主要理论和技术。

它被认为是程序员的三大“浪漫”之首。在编译领域里的经典教材《龙书》中第一章第一句提到:编译器的原理和技术具有十分普遍的意义,以至于在每个计算机科学家的研究生涯中,这些原理和技术都会反复用到。“编译原理”带领大家在系统的级别上重新认识算法和程序——如何对单词和句子进行形式化描述,基于这些形式化的描述,怎样设计出自动化处理的过程,最终实现“自动计算”。

计算学科问题求解的基本思路是“问题、形式化描述、计算机化”,以抽象、理论、设计为其学科形态。编译原理涉及的是一个比较适当的抽象层面上的数据变换,既有明确的、便于抽象的问题,又有较成熟的理论,而且在限定规模下又容易实现(设计),所以“编译原理”是计算机专业本科生的重要专业技术基础课程,属于教学计划中四大系列之软件技术系列。 除了知识外,该课程内容还含有基本问题求解的典型思想、技术和方法,所以该课程对于培养学生的计算思维、程序设计与实现、算法设计与分析、计算机系统的认知、开发和利用等 4 大学科基本能力非常重要。学生是在程序设计、数据结构与算法等课程中受到一定的锻炼后,从系统的级别上对程序、算法的认识进行再提高,通过该课程进一步提升计算机问题求解的水平,增强系统能力,体验实现自动计算的乐趣。这些方法和思想包括掌握程序变换基本概念、问题描述和处理方法(自顶向下、自底向上、逐步求精、递归求解,目标驱动,问题分析、问题的抽象与形式化描述,算法设计与实现,系统构建、模块化)。

我们将以简洁明了的方式为大家呈现编译过程的实现技巧和方法,相信大家跟随我们的课程,能够了解编译的原理,获取更多 “自动计算”的心得,提升系统和程序实现能力。欢迎大家加入《编译原理》这门课程,一起踏上探寻程序本质的旅程,感受它为我们带来的无穷乐趣吧。




Syllabus

  • 第1章 编译原理概述
    • 1.1 什么是编译原理
    • 1.2 编译的基本过程
    • 1.3 编译程序的组织
  • 第2章 编译理论基础
    • 2.1 文法与语言
    • 2.2 文法和语言的形式定义
    • 2.3 文法的类型
    • 2.4 上下文无关文法及语法树
    • 2.5 上下文无关文法的句型分析
  • 第3章 词法分析
    • 3.1 词法分析概述
    • 3.2 正规文法和状态转换图
    • 3.3 有限状态自动机
    • 3.4 NFA与DFA的等价性
    • 3.5 正规表达式与正规集
    • 3.6 正规文法与正规式
    • 3.7 正规式与FA
  • 第4章 自顶向下的语法分析
    • 4.1 自顶向下语法分析及其面临的问题
    • 4.2 文法的等价转化
    • 4.3 LL(1)文法与递归下降分析法
    • 4.4 构建FIRST集合FOLLOW集合
    • 4.5 LL(1)分析器工作原理
    • 4.6 LL(1)分析表构造算法
  • 第5章 自底向上的语法分析
    • 5.1 自底向上的语法分析及优先分析
    • 5.2 LR分析器
    • 5.3 活前缀和LR(0)项目
    • 5.4 构造识别活前缀的FA
    • 5.5 LR(0)分析表构造算法
    • 5.6 SLR(1)分析法
    • 5.7 LR(1)分析法与LALR分析法
  • 第6章 语法制导翻译和中间代码生成
    • 6.1 语义分析和语法制导翻译概述
    • 6.2 常见中间语言简介
    • 6.3 简单算术表达式和赋值语句翻译
    • 6.4 布尔表达式和复制语句翻译
    • 6.5 拉链和回填
    • 6.6 程序控制语句翻译
    • 6.7 for循环语句的翻译
    • 6.8 GOTO语句和情况语句的翻译
    • 6.9 含数组元素的算术表达式的翻译
    • 6.10 数组元素赋值语句的翻译
  • 第7章 符号表
    • 7.1 符号表概述
    • 7.2 符号表的建立
  • 第8章 运行时存储空间组织
    • 8.1 运行时存储空间组织概述
    • 8.2 运行时分配策略
  • 第9章 中间代码优化
    • 9.1 线性窥孔优化
    • 9.2 基本块及其优化方法
    • 9.3 循环概念
    • 9.4 循环优化
  • 期末考试

    Taught by

    Sun Yizhen, , and

    Tags

    Reviews

    Start your review of 编译原理

    Never Stop Learning.

    Get personalized course recommendations, track subjects and courses with reminders, and more.

    Someone learning on their laptop while sitting on the floor.