课程简介
介绍有穷自动机、正则表达式与正则语言,多语言联合DFA与词法分析,上下文无关文法与自上而下语法分析,下推自动机与自下而上语法分析,属性文法与SLR(1)制导的语义分析,符号表与中间代码生成,运行时环境与可执行代码构建。课程强调理论性,注重缓解“难学”制约能力的问题,取得了以下“化难为易”措施:
1、采用文法作为一条确定的、可扩展的主线来组织知识,缓解常见的编译知识“碎片化”问题,通过子文法、文法变体、文法与语言的等价性等途径增强应用知识分析问题能力。
2、采用形式化手段描述知识,有助于思维的逻辑性、抽象性和一致性。有一个同时满足简明性、一致性、完备性要求的主符号系统,作为描述课程内容和表达课程知识的手段,显著提升教学效率。
3、强调从“为什么”方面来表达知识,有助于同学在学习过程中进行主动思考。从教材和课程PPT上体现出CC2020胜任力模型的应用:形式语言的判定性质、等价性质在语言识别器上得到贯通;SLR(1)附加额外冲突消解规则满足程序设计语言语法分析;符号表、运行时环境与可执行代码框架取得统一等。
课程目标是让同学针对子文法会构建编译过程以产生可执行程序,在程序设计语言工程方面具备一定的理论基础,并有形式语言相关应用领域拓展能力。参加本课程的学习有助于提高抽象思维能力、抽象理解能力、以及形式化表达能力,有助于加强同学的计算机理论基础。