编译技术
编译技术
1000+ 人选课
更新日期:2025/07/04
开课平台学堂在线
开课高校大连理工大学
开课教师徐秀娟贾棋任志磊江贺
学科专业工学计算机类
开课时间2025/01/15 - 2025/07/22
课程周期27 周
开课状态开课中
每周学时-
课程简介

编译技术是计算机科学与技术、软件工程专业一门重要的专业课。在计算机众多的原理性学习课程中,编译原理主要介绍程序语言实现原理、方法和技术。因此该课程内容有一定深度和难度,且综合性比较强,涉及的先修课程比较多,包括数据结构、离散数学、程序设计、汇编语言、操作系统等,编译技术课程涉及到的原理比较多且复杂;对学生专业知识掌握情况也要求比较高,学生在学习过程中容易感到内容抽象、算法复杂,需要学生动手实践,是一门公认比较难学、比较难教的课程。同时,计算机学科是一门对实践性要求比较高的学科,在考虑如何使学生学好《编译技术》课程理论知识时,如何把理论和实践结合起来,促进和激发学生的学习兴趣,锻炼学生用计算机解决问题的能力和逻辑思维能力,是编译原理教学的一个主要而且极其重要的问题。

  

课程大纲

01 绪论本章简要介绍编译器的各个组成部分以及编译器技术的各种应用。

02 词法分析本章介绍正规式和有限自动机的概念以及词法分析器的自动生成方法。

03 语法分析本章介绍上下文无关文法的基本概念,详细介绍适合于手工实现的预测分析技术和自动工具采用的LR分析算法。

04 语法制导的翻译本章介绍语义规则和产生式相联系的两种方式:语法制导的定义和语法制导的翻译方案。

05 运行时存储空间的组织和管理本章介绍在代码生成之前,静态的程序正文和运行时的活动之间的联系,以及静态的名字和运行时数据对象之间的绑定关系。

06 中间代码生成本章基于语法制导定义的方法,介绍编程语言的基本结构怎样被翻译成独立于机器的中间表示。

07 代码生成本章介绍代码生成器所需要解决的问题,通过一个简单的代码生成算法理解代码生成的全过程。

08 一个简易的编译器设计与实现本章介绍如何实现一个简单的基于Python的编译器。


课程大纲
第一章 绪论
编译技术绪论
第二章 基于Python的编译器框架实现
1 基于Python的编译器框架演示视频和代码
2 代码介绍
3 SimpleJava
第三章 词法分析
1  词法记号 串和语言
2  正规式 状态转换图
3  有限自动机
4  DFA构建 子集构造法 DAF化简
5 Lex
第四章 语法分析
1 上下文无关文法
2 自上而分析中的文法
3 自上而下分析
4 自下而上分析
5 LR分析器
第五章 语法指导的翻译
1 语法制导的定义
2 S属性的自下而上计算
3 L属性定义
4 L属性的自下而上计算
第六章 运行时存储空间的组织与管理
1  概述
2  全局栈式存储分配
3  调用序列
4 非局部名字的访问
第七章 中间代码生成
1 中间代码生成
2 作用域信息的保存
第八章 代码生成
1 代码生成器设计中的问题
2 目标机器
3 基本块和流图
4 一个简单的代码生成器
期末测试