“编译技术”是计算机软件学科的一门核心专业必修课程,是学生了解高级程序设计语言原理和。
编译相关技术的基础课,编译系统是学生接触到的第一个完整的软件系统,本课程在教学中具有重要地位。根据北航计算机学院的培养定位,要求学生既要掌握有关编译的经典基础理论,又要学会运用先进的软件开发技术构造实际编译系统的方法,因此这是一门理论和实践要求都很高的课程,也是学生在本科学习阶段培养动手能力的一个非常重要的环节。
课程划分为理论和实践(课程设计)两个部分,理论部分进行闭卷考试,实践部分要求学生独立完成课程设计题目,提交课程设计文档和程序源**,并进行现场演示考核。通过理论部分的学习,让学生了解:1)高级程序设计语言原理和相关概念;2)编译程序的构造和相关技术。
同时,通过本课程让学生掌握软件领域重要的程序(模型)等价转换技术;程序(模型)优化技术。实践部分是通过独立设计和开发一个小型编译系统,让学生:1)掌握编译程序的主要技术和算法;2)体验一个比较完整的软件系统的设计、开发、测试过程;3)结合软件工程课程,规范化文档,自己走过一个小瀑布模型。
理论部分的内容包括:
综述:讲解编译基本概念,编译过程和编译系统的结构形式语言基础。
根据编译系统的结构分章讲解,包括。
词法分析(手工编写,自动生成技术--有穷自动机理论)
语法分析(两大类,四种方法):自顶向下分析方法(递归子程序法和。
ll分析法),自底向。
上分析方法(算符优先分析法和lr分析法)
语义分析和**生成原理(属性文法和语法制导翻译)符号表管理。
运行时存储分配(静态分配和动态分配)中间**。
语义分析和**生成,包括原理和典型实例:说明语句、表达式语句、赋值语句、循环语句、
函数说明和调用语句。
**优化,包括局部优化技术、全局优化技术和面向特定微处理器体系结构的优化技术。编译程序的生成技术和其它编译技术。
主要介绍lex、yacc、自编译等编译程序生成技术,以及目前最新的编译技术,如并行编译技术、面向对象编译技术和当前的研究热点。
实践部分。实践部分要求学生完成编译课程设计,设置了不同难度等级的题目,由学生自行选择难度等级,按要求实现一个完整的小型编译器。
难度低中高。
文法类pascal文法类c文法类c文法。
生成中间**不需要不需要需要。
进行**优化不需要不需要需要。
目标**pcodepcodex86汇编。
实践项目要求:
每人独立完成一份作业。
采用递归子程序法进行语法分析,所有**要求手工编程实现完成以下文档(word文档)
p**指令系统)
需求说明(应给出语法或语法图以及。
详细设计(应给出程序结构,各函数的功能描述和调用依赖关系,符号表结构,运行栈结构,出错信息编号及描述等)
操作说明(包括程序安装、环境配置;程序启动后,编译、运行、结果显示等操作的说明)测试报告(提供至少。
10个测试程序的源程序及测试结果(其中5个有错误的文件),如有扩充,还需另外提供5个测试程序)
总结感想。用c/c++语言实现。
北航物理大作业
光。光是地球生命的 之一。光是人类生活的依据。光是人类认识外部世界的工具。光是信息的理想载体或传播媒质。1000多年来人们从为停止对光的本质的探索,并取得了辉煌的成就。萌芽阶段。在古希腊就存在两种不同的看法 坚持原子论的毕达哥拉斯学派认为光是物体发出的粒子 但亚里士多德学派认为,光是一种波动。这是关...
北航惯性导航大作业
惯性导航基础课程大作业报告 一 光纤陀螺误差建模与分析。班级 111514 姓名 学号。2014年5月26日。一。系统误差原理图。二。系统误差的分析。一 漂移引起的系统误差。1.x,y,z对东向速度误差 vx的影响。clc clear all t 1 0.01 25 g 9.8 l pi 180 3...
北航2019聚类分析大作业
应用数理统计。第二次课程 学号 姓名。2012年11月。目录。我国各省市城镇居民消费水平的聚类分析和判别分析 1 摘要 11.引言 2 1.1 研究背景 2 1.2 内容 方法和结论 2 2 解决问题的方法和计算结果 3 2.1 数据说明 3 2.2 聚类分析 3 2.3 判别分析 9 3讨论与总结...