编译原理ch1

合集下载

编译原理内容介绍

编译原理内容介绍

编译原理内容介绍编译原理是计算机科学中的一个重要领域,它研究的是如何将高级编程语言转换成计算机硬件能够直接执行的机器语言的过程。

在计算机科学中,编译原理是一个基础性的领域,涉及到计算机语言、计算机组成原理、最优化技术、算法分析等众多方面知识。

编译原理的研究旨在提高编程效率、代码可读性、运行效率和可移植性等方面,因此具有非常重要的意义。

编译原理主要包括以下几个方面的内容:1. 词法分析词法分析是将高级编程语言中的字符流转换为一系列有意义的词法符号的过程。

词法符号包括关键字、标识符、运算符、分界符等,它们是编程语言的基本组成部分。

词法分析器通常使用有限状态自动机来实现,可以通过正则表达式来定义词法规则。

2. 语法分析语法分析是将词法符号流转换为一个语法树的过程。

语法树是将编程语言的语法结构形式化的一种工具,它能够帮助编译器理解程序的结构和语义,为后续的中间代码的生成和优化提供便利。

语法分析器通常使用上下文无关文法来描述编程语言的语法规则,可以使用递归下降分析、LL分析器、LR分析器等算法来实现。

3. 语义分析语义分析是分析和检查程序的语义正确性的过程,它通常包括类型检查、变量声明的作用域和生命周期、函数调用和参数传递等方面的分析。

语义分析是编译器实现的关键步骤之一,它可以为代码生成和优化提供更准确的信息。

4. 中间代码生成中间代码生成是将语法树转换为具有一定格式的中间代码的过程,中间代码通常是一种类似于汇编语言的低级程序表示形式,它能够方便地被不同的目标平台所接受和执行。

中间代码的生成通常是由语法分析和语义分析过程直接实现,也可以采用优化算法对生成的中间代码进行优化。

5. 代码优化代码优化是对生成的中间代码进行优化的过程,它旨在提高代码的执行效率、减少代码大小和消除不必要的指令等。

代码优化是编译器设计的重要方面,这是因为优化好的代码可以使程序的性能和效率得到显著提升,在实际应用中具有非常重要的意义。

【精品】【考研计算机专业课】天津大学 编译原理讲义 ch1编译原理(可编辑

【精品】【考研计算机专业课】天津大学 编译原理讲义 ch1编译原理(可编辑

源程序 输入
解释器
输出
编译器和解释器的综合应用
Java语言将编译器和解释器综合使用:
先用编译器把源程序翻译成一种叫做字节码 (bytecode)的中间语言程序
再用一个虚拟机对字节码程序进行解释执行
源程序
编译器
中间语言程序 输入
虚拟机
输出
源程序如何成为可执行程序?
除编译器外,源程序要想成为可执行程序还需 要经过下列一些程序的处理:
目标代码生成阶段所做的工作:
为变量选择存储单元 把中间代码翻译成等价的机器指令序列。
此阶段的关键问题是:寄存器分配 代码生成主要在课本第九章介绍,不作
为本课程授课内容。
1.1.6 目标代码生成(续)
t1 = id3 * 60.0 id1 = id2 + t1
代码生成器
LDF R2, id3 MULF R2, R2, #60.0 LDF R1, id2 ADDF R1, R1, R2 STF id1, R1
语义分析器 中间代码生成器
代码优化器
代码生成器
目标程序
出错管理器
1.1.1 词法分析(lexical analysis)
词法分析(又称扫描scanning): 字符流词法规则 记号流(token,即课本中 所称的内部格式)
记号:<记号名,属性值> 二元组
共用名称,表示类别 词法单元的专属特征值
优化在课本第八章介绍,不作为本课程 授课内容。
1.1.6 目标代码生成
代码生成阶段:由中间代码生成目标代 码(机器指令或汇编码)
目标代码的种类:
不可重定位的机器指令代码(具有绝对地址, 直接可运行)
可重定位的机器指令代码(模块化,具有相 对地址,需链接运行)

ch1-编译程序概论-v2

ch1-编译程序概论-v2
4
翻译程序
翻译程序是指将一种语言(源语言)所写的程序( 翻译程序是指将一种语言(源语言)所写的程序(源 程序)翻译成与之等价的另一种语言(目标语言) 程序)翻译成与之等价的另一种语言(目标语言)的程序 目标程序)的程序。 (目标程序)的程序。 源程序 翻译程序 目标程序
源语言: 源语言:source language 源程序: 源程序:source program 目标语言: 目标语言:object or target language 目标程序: 目标程序:object or target program
词法分析:根据英语的词法规则,从由字母、空格字符和各种标点 词法分析:根据英语的词法规则,从由字母、 符号所组成的字符串中识别出一个一个的英文单词。 符号所组成的字符串中识别出一个一个的英文单词。 语法分析:根据英语的语法规则,对词法分析后的单词串进行分析、 语法分析:根据英语的语法规则,对词法分析后的单词串进行分析、 识别,并做语法正确性检查, 识别,并做语法正确性检查,看其是否组成一个符合英语语法的句 子。 语义分析:对正确的英文句子分析其含义并用汉语表示出来。 语义分析:对正确的英文句子分析其含义并用汉语表示出来。 根据上下文的关系以及汉语语法的有关规则对词句作必要的修饰工 作。 最后翻译成中文。 最后翻译成中文。
采用编译方式在计算机上执行高级语言编写的程序,一般 采用编译方式在计算机上执行高级语言编写的程序, 分两大阶段,编译阶段和运行阶段。 分两大阶段,编译阶段和运行阶段。 初始数据 编 译 源程序 程 序 程序
8
源程序的加工过程
如果编译阶段生成的目标程序不是机器程序, 如果编译阶段生成的目标程序不是机器程序,而是汇编程 则程序的执行需分三个阶段,编译阶段、汇编阶段和 序,则程序的执行需分三个阶段,编译阶段、汇编阶段和 运行阶段。 运行阶段。

ch1

ch1

命令式:

程序特点: 语句1; 语句2; 语句3; ……
语言执行的解释: 编译技术发展快: 改变机器状态 系统语言 内存 自动化生成技术 各种寄存器 的内容 外存
与冯诺曼机的体系结构一般

应用式(函数式): 程序特点:
Function n(…funetion2(funetion1(data))…)

???
再如:

语句y=c+)d*(x+b 分析过程
思考:计算机 如何做推导或 规约?
语法分析方法(二) 语法树


语法分析过程也可以用一颗倒着的树来表示, 这颗树称为语法树。 例如:

x=a+b*50的语法树 根据语法规则判断 是否正确,可以通 过构造语法树,这 是计算机可以实现 的。
k=1 m=i n=j L: if k<=100 then { m=n+10 n=n+10 k++; goto L}
200次乘法和加法=>200次加法
6.目标代码生成

任务:


把经过优化的中间代码转化成特定机器上的低级语 言代码 目标代码的形式


绝对指令代码:可立即执行的目标代码。 汇编指令代码:汇编语言程序,需要通过汇编程序汇编 后才能运行。 可重定位指令代码:先将各目标模块连接起来,确定变 量、常数在主存中的位置,装入主存后才能成为可以运 行的绝对指令代码。

推导:是一个根据语法规则推出我们最希望得 出的结论的过程。

最左推导 最右推导

=>x=a+b*50

归约:推导的逆过程
最右归约、最左归约

张幸儿编译原理ch1

张幸儿编译原理ch1

考虑下面的一段源程序
var area, radius:real; begin read(radius); area:3.1415926*radius*radius; end. 保留字: var, begin, end, read,real 运算符: *, : 界符:‘(’,‘)’,‘; ’,‘.’ 标识符: radius, area
常用方法
删除公共子表达式 强度削弱 循环不变

目标代码生成
主要工作

是整个编译过程的最后一个阶段,这一阶段 的工作是把中间代码变换成特定目标机器上 的绝对指令代码或可重定向的指令代码或汇 编指令代码
编译程序的两大部分
分析:揭示源程序的结构和基本数据。 综合:从源程序的中间表示建立和源程序等 价的目标程序。
高级语言程序 (源程序)
编译程序 (器)
低级语言程序 (目标程序)
初始数据
源 程 序
编 译 程 序
目标 程序
计 算 结 果
源程序
初始数据
解 释 程 序
计 算 结 果
解释程序与编译程序的特点
概念上的不同 基于解释执行的程序可以动态修改自身, 而基于编译执行的程序则需要动态编译 技术,难度较大。 基于解释方式有利于人机交互。 解释执行速度要慢。 编译产生的目标代码所占用的空间通常 要比 解释方式多
应用软件层 语言处理系统 操作系统 裸机
解释程序:接受所输入的用程序语言(源 语言)编写的程序(源程序),然后直接解 释执行源程序。相当于源程序的抽象执 行机,是语 言的实现系统。
高级语言源程序 数据 解释程序 (器) 计算结果
编译程序:源语言为高级语言,目标语 言是低级语言(汇编或机器语言)的翻译程 序。

CH01--编译概述

CH01--编译概述
插入转换符的语法树
total:=total+rate*4 的各分析步骤及其中间结果
total:=total+rate*4
词法分析
id1:=id1+id2* 4
语法分析
:=
id 1
+
id 1
*
id 2
4
语义分析
:=
id 1
+
id 1
*
id 2
inttoreal
4
二、综合阶段
任务:根据所制定的源语言到目标语言的对应关系, 对分析阶段所产生的中间形式进行综合加工,从而 得到与源程序等价的目标程序。
二、翻译程序
翻译程序扫描所输入的源程序,并将其转换为目标 程序,或将源程序直接翻译成结果。
源程序
翻译程序
目标程序或执行结果
编译器(即编译程序):把源程序翻译成目标程序的 翻译器
解释器(即解释程序):直接执行源程序的翻译器
编译程序
源程序是用高级语言或汇编语言编写的,目标程序 是用目标语言表示的。
编译程序的设计涉及到的知识:
–程序设计语言 –形式语言与自动机理论 –计算机体系结构 –数据结构 –算法分析与设计 –操作系统 –软件工程等
1.1 翻译和解释
一、程序设计语言 二、翻译程序
一、程序设计语言
低级语言
–机器语言 –符号语言 汇编语言
高级语言
–过程性语言—面向用户的语言 如:C、Pascal –专用语言—面向问题的语言 如:SQL –面向对象的语言 如:Java、C++
一、分析阶段
任务:根据源语言的定义,对源程序进行结构分析 和语义分析,从而把源程序正文转换为某种内部表 示。

编译原理(龙书)

bid2(25)int辛明影简变
4
16
2013-12-11计算机学院
符号表的接口: 符号表的作用就是存放字符串或词素 当一个字符串或词素被保存时,与之相对 应的记号也被保存
符号表上的操作: Insert(s,t):将符号串s和记号t插入符号
表,返回相应表项的指针 Lookup(s):在符号表中查找字符串s,查找 成功返回相应指针,否则返回0
33
2013-12-11计算机学院
辛明影
赋值、分支、循环语句: S → id=E S → if B then S S → if B then S else S S → while B do S S →{ L } L → L ;S L→S
2013-12-11计算机学院
辛明影
34
调用语句: S→call id(Elist) Elist →Elist,E
辛明影
31
主要语句的形式描述:
表达式:
E→E+T E→E-T E→T T→T*F T→T/F T→F F→(E) F→ id
2013-12-11计算机学院
辛明影
32
布尔表达式: B→ B or B B→ B and B B→ not B B→(E) B→ id relop id B→ true B→ false
其它
T 7
*
30
二.语法规则
语法规则规定了如何从单词符号形成更 大的结构(即语法单位),换言之,语法 规则是语法单位的形成规则 一般的程序设计语言的语法单位有: 表达式 、语句 、分程序 、 函数 、 过程和程序等
下推自动机理论和上下 文无关文法是我们讨论语法 分析的理论基础
2013-12-11计算机学院

编译原理词法程序实验介绍

编译原理实验报告实验名称:编写词法分析程序实验类型:设计性实验指导教师:*****专业班级:软件工程1401姓名:****学号:**********实验地点:东六E座301实验成绩:_________________日期:2016 年5 月8 日实验一编写词法分析程序一、实验目的1.通过设计、调试词法分析程序,掌握词法分析程序的设计工具(有穷自动机),进一步理解自动机理论2.掌握正则文法和正则表达式转换成有穷自动机的方法及有穷自动机实现的方法3.确定词法分析程序的输出形式及标识符与关键字的区分方法4.加深对理论知识的理解二、实验设计1.设计原理:对源程序代码从头到尾扫描,将符合词法语言规则的单词输出,包括:标识符、保留字、无符号整数、分界符、运算符、注释分离;判断程序的词法是否正确TEST语言的词法规则如下:1)、标识符:字母打头,后接任意字母或数字。

2)、保留字:标识符的子集,包括:if,else,for,while,do, int,write,read。

3)、无符号整数:由数字组成,但最高位不能为0,允许一位的0。

4)、分界符:(、)、;、{、}5)、运算符:+、-、*、/、=、<、>、>=、<=、!=、==6)、注释符:/* */2.设计方法:1)用正则表达式或正则文法描述程序设计语言的词法规则,通常采用正则表达式;一个正则表达式对应一条词法规则2)为每个正则表达式构造一个NFA,用来识别正则表达式描述的单词将每一个NFA合并、化简得到最简的DFA3)将多个NFA合并为一个NFA4)将NFA转换成等价的DFA。

5)最小化DFA6)确定单词的输出形式。

7)化简后的DFA+单词输出形式⇒构造词法分析程序3.设计过程:1)将TEST语言的六个语法规则分别转换成正则表达式2)为每个正则表达式构造一个NFA,用来识别正则表达式描述的单词3)将5个NFA转换成一个NFA,再将NFA化简确定化。

编译原理第一章PPT课件


掌握编译原理有助于提高程序员对程序性能、代码质量和软件
03
工程实践的理解。
编译原理的应用领域
编译器设计
编译原理的核心应用领域之一 是编译器设计,包括源代码到
目标代码的转换、优化等。
解释器设计
解释器是另一种将源代码转换 为机器码的程序,编译原理同 样适用于解释器的设计。
程序分析
编译原理中的一些技术可以用 于程序分析,例如静态分析、 动态分析和程序切片等。
从高级语言的设计开始,逐步向下设计低级语言和机器语言。
数据结构和算法选择
选择合适的数据结构和算法,提高编译器的性能和可维护性。
代码优化
在生成目标代码之前,对中间代码进行优化,以提高目标代码的性能 和质量。
04 语言与语法
语言的定义与分类
总结词
语言的定义与分类是编译原理的重要基础,它涉及到语言的语法、语义和语用等方面。
语言的语义分析
总结词
语义分析是编译过程中的重要环节,它涉及 到对语言意义的解释和理解。
详细描述
语义分析是对源代码进行静态分析的过程, 目的是理解源代码的意义和功能。在语义分 析阶段,编译器会检查源代码中是否有语法 错误、类型错误、逻辑错误等,并对其进行 相应的处理。同时,语义分析还会进行符号 表管理、类型检查、控制流分析等工作,以
详细描述
中间代码生成是编译过程的第三步,其主要任务是将抽象语法树转化为中间代码。中间代码是一种抽象的、与具 体机器无关的代码形式,通常采用三地址码、四元式等表示方式。中间代码的主要目的是为了方便后续的优化和 目标代码生成。
代码优化
总结词
对中间代码进行优化,提高执行效率。
详细描述
代码优化是编译过程中非常重要的一步,其主要任务是对中间代码进行优化,以提高生成的目标代码 的执行效率。常见的优化技术包括常量折叠、无用代码删除、循环展开等。

编译原理chpt1概述


line
is
a
longer sentence
pronoun noun verb article adjective noun
subject
sentence
object
语言的语法规则规定了如何从单词符号形成更大的结构(即语法单位:表达式、语句、子 程序等)
position:=initial + rate * 60 ; 结构描述 <赋值语句>::=<标识符>“:=”<表达式> <表达式>::=<表达式>“+”<表达式> <表达式>::=<表达式>“*”<表达式> <表达式>::=“(”<表达式>“)” <表达式>::=<标识符> <表达式>::=<整数> <表达式>::=<实数>
语言的单词符号是由词法规则所确定的。词法规则规定了啥样的字符串是一个单词符号 position := initial + rate * 60;
单词类型 标识符1(id1) 算符(赋值) 标识符2(id2) 算符(加) 标识符3(id3) 算符(乘) 整数 分号
单词值 position
:= initial
中间代码(中间表示)生成(翻译)
源程序的中间表示: 三元式、四元式、P-Code、bytecode、……
id1:= id2 + id3 * 60
(1) (inttoreal,
60
-
(2) (* ,
id3
t1
(3) (+ ,
id2
t2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
世 界 技 术 报 效 国 家
3
课程简介
教材和参考书
– 陈火旺、刘春林等,程序设计语言编译原理(第3版), 陈火旺、刘春林等,程序设计语言编译原理( 版 国防工业出版社, 国防工业出版社,2011 – Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman , , , Compilers: Principles,Techniques,and Tools ※ – Andrew W.Appel,with Jens Palsberg ,Modern , Compiler Implementation in C – Steven S.Muchnick,Advanced Compiler Design , and Implementation
世 界 技 术
报 效 国 家
9
1.1 什么是编译程序
编译程序与解释程序的区别
–一个语言的解释程序是着样的程序:它以该语 言写的源程序作为输入,但不产生目标程序, 而是边解释边执行源程序本身。 –术语“编译”的内涵是实现从源语言表示的算 法向目标语言表示的算法的等价变换。
世 界 技 术
报 效 国 家
10
1.1 什么是编译程序
名词概念
– 诊断编译程序:用于帮助程序开发和调试 诊断编译程序: – 优化编译程序:提高目标代码的效率 优化编译程序:
• 宿主机:运行编译程序的计算机 • 目标机:运行编译程序所产生的目标代码的计算机
– 交叉编译程序:编译程序产生不同于宿主机的机器代 交叉编译程序: 码 – 可变目标程序代码:不需重编译程序中与机器无关的 可变目标程序代码: 部分就能改变目标机。 部分就能改变目标机。
– 编译程序是源转换系统,而解释程序是源程序的一个 编译程序是源转换系统, 执行系统 – 编译程序的结果是得到等价源程序的某种目标机程序, 编译程序的结果是得到等价源程序的某种目标机程序, 而解释程序的结果是得到源程序的执行结果, 而解释程序的结果是得到源程序的执行结果,即它相 当于执行源程序的抽象机
世 界 技 术 报 效 国 家
19
1.2 编译过程概述
〈id, 1〉 〈=〉 〈id, 2〉 〈+〉 〈id, 3〉 〈∗〉 〈60〉 ← 记号流 〉 〉 〉 〉 〉 〉 符 号 表 1 position . . . 语法分析器 ... 2 initial ... 3 rate 〈=〉 〉 〈+〉 〉 〈id, 1〉 〉 〈∗〉 〈id, 2〉 〉 ← 语法树 〈60〉 〉 〈id, 3〉 〉
世 界 技 术 报 效 国 家
18
1.2 编译过程概述
表达式的语法特征 表达式 任何一个标识符都是 表达式 表达式 表达式 + 任何一个数都是表达 式 表达式 表达式 * 如果e1 和e2 都是表达式,标识符 (initial) 那么 标识符 数 • e1 + e2 (rate) (60) • e1 * e2 • (e1) 也都是表达式 initial + rate * 60的分析树 的
15
L
世 界 技 术
报 效 国 家
1.2 编译过程概述
复习2 复习
– 二叉树 二叉树(Binary Tree)是另一种树形结构,它的特点是 是另一种树形结构, 是另一种树形结构 每个结点至多只有二棵子树( 每个结点至多只有二棵子树(即二叉树中不存在度大 的结点),并且, 于2的结点),并且,二叉树的子树有左右之分,其次 的结点),并且 二叉树的子树有左右之分, 序不能任意颠倒。 序不能任意颠倒。 – 二叉树的遍历(若二叉树为空,则空操作) 二叉树的遍历(若二叉树为空,则空操作) 先序遍历
• 高级语言设计、计算机体系结构的优化(并行、内存分层)、 高级语言设计、计算机体系结构的优化(并行、内存分层) 新型计算机体系结构设计、程序翻译、 新型计算机体系结构设计、程序翻译、提高软件开发效率的工 具 、高可信软件 • 理论基础坚实,其形式化系统不仅应用于编译技术,还大量应 理论基础坚实,其形式化系统不仅应用于编译技术, 用于人工智能、 用于人工智能、多媒体技术及数据库等领域
课堂要求
– 按时到课,不无故迟到、早退、缺席 按时到课,不无故迟到、早退、 – 上课认真,能与老师良性互动 上少而精, – 按时、保质、保量完成作业 按时、保质、
实验课最后十五分钟评定成绩(实验报告) 实验课最后十五分钟评定成绩(实验报告)
世 界 技 术 报 效 国 家
• (1)有且仅有一个特定的称为根(Root)的结点; • (2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集 T1,T2,…,Tm,其中每一个集合本身又是一棵树,并且称为 根的子树(SubTree)。 结点拥有的子树数称
A
为结点的度(Degree)
B E K F C G H M D A I J
世 界 技 术 报 效 国 家
20
1.2 编译过程概述
〈=〉 〉 〈id, 1〉 〉 〈+〉 〉 〈∗〉 〈id, 2〉 〉 〈60〉 〉 〈id, 3〉 〉 语义分析器 〈=〉 〉 〈id, 1〉 〉 〈+〉 〉 〈∗〉 〈id, 2〉 〉 〈id, 3〉 inttofloat ← 语法树 〉 〈60〉 〉
1.访问根结点 2.先序遍历左子树 3.先序遍历右子树
中序遍历
1.中序遍历左子树 2.访问根结点 3.中序遍历右子树
后序遍历
1.先序遍历左子树 2先序遍历右子树 3.访问根结点
世 界 技 术 报 效 国 家
16
1.2 编译过程概述
复习3 复习
– 右图表示下述表达式
• a+b*(c-d)-e/f + a b c * d e / f -
世 界 技 术 报 效 国 家
23
rate
...
t1 = id3 * 60.0 id1 = id2 + t1
1.2 编译过程概述
t1 = id3 * 60.0 id1 = id2 + t1 三地址中间代码 ← 三地址中间代码 符 号 表 1 position . . . ... 2 initial 3 MOV MUL MOV ADD MOV id3, R2 #60.0, R2 id2, R1 R2, R1 R1, id1 rate ...
世 界 技 术
报 效 国 家
2
课程简介
学习意义
– 对编程语言的设计和实现有深刻的理解 , 对和编程语 对编程语言的设计和实现有深刻的理解, 言有关的理论有所了解,对宏观上把握编程语言来说, 言有关的理论有所了解 , 对宏观上把握编程语言来说 , 起一个奠基的作用 – 从软件工程看 , 编译器是一个很好的实例 , 所介绍的 从软件工程看, 编译器是一个很好的实例, 概念和技术能应用到一般的软件设计之中 – 编译技术的应用和编译技术的发展
世 界 技 术
报 效 国 家
11
1.1 什么是编译程序
交叉编译程序
– 编译程序在一个机器(宿主机)上运行,产生另一个 编译程序在一个机器(宿主机)上运行, 机器(目标机)的汇编语言。 机器(目标机)的汇编语言。嵌入式系统中的应用程 序正是借助这样的编译程序生成。 序正是借助这样的编译程序生成。
世 界 技 术
世 界 技 术
报 效 国 家
1.2 编译过程概述
源程序 符号表 词法分析器
独立于机器的代码优化器
语法分析器 代码生成器 语义分析器
依赖于机器的代码优化器
中间代码生成器 目标机器代码
世 界 技 术 报 效 国 家
14
1.2 编译过程概述
复习1 复习
– 树(Tree)是n个结点的有限集。在任意一棵非空树中 个结点的有限集。 是 个结点的有限集
报 效 国 家
12
1.2 编译过程概述
英译与编译的比较
1.识别出句子中的一个个 单字 2.分析句子的语法结构 3.初步翻译句子的含意 4.译文修饰 5.写出最后译文 3.语义分析中间代码生 3.语义分析中间代码生 成 4.优化 4.优化 5.目标代码生成 5.目标代码生成
13
1.词法分析 1.词法分析 2.语法分析 2.语法分析
← 语法树
符 号 表 1 position . . . ... 2 initial 3 rate ...
三地址中间代码 ← 三地址中间代码
世 界 技 术 报 效 国 家
22
1.2 编译过程概述
t1 = inttofloat(60) t2 = id3 ∗ t1 t3 = id2 + t2 id1 = t3 三地址中间代码 ← 三地址中间代码 符 号 表 1 position . . . ... 2 initial 3 代码优化器 三地址中间代码 ← 三地址中间代码
– 如果源语言是诸如 如果源语言是诸如FORTRAN、Pascal、C、Ada、Smalltalk或 、 、 、 、 或 Java这样的“高级语言”,而目标语言如汇编语言之类的“低级 这样的“ 这样的 高级语言” 而目标语言如汇编语言之类的“ 语言” 语言”,这样的翻译程序则称之为编译程序。
编译程序又简称为“编译器” 编译程序又简称为“编译器”
世 界 技 术
报 效 国 家
4
课程简介
前导课程
– 汇编语言 – 高级语言程序设计(C语言) 高级语言程序设计( 语言 语言) – 数据结构
后继课程
– 形式语言与自动机理论
学时安排: 教学学时 教学学时+16实验学时 学时安排:48教学学时 实验学时
世 界 技 术 报 效 国 家
5
课程简介(平时要求) 课程简介(平时要求)
6
课程简介
对任课老师的要求
– 认真备课,倾听同学的意见与建议 认真备课, – 按时到课,不迟到早退,认真授课 按时到课,不迟到早退, – 认真评改作业,实验报告 认真评改作业, – 对学生的评价公平公正
相关文档
最新文档