计算机程序中,用高级语言编写的程序经编译后产生的程序叫什么?

计算机程序中,用高级语言编写的程序经编译后产生的程序叫什么?,第1张

高级语言编写的代码经过编译后就是可执行程序,高级语言到可执行文件主要有七个个过程。

高级语言编译的七个过程:

预处理,词法分析,语法分析,语义分析,中间代码产生,代码优化,目标代码产生。

下面对这几个过程详细讲解:

1、预处理:

对原文件进行预处理,比如头文件,导入的模块,宏定义等进行处理;

2、词法分析:

词法分析是第一阶段,这个阶段的任务是从左到右一个字符一个字符的读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词。

3、语法分析:

语法分析的任务是在词法分析的基础上将单词程序分解成各位语法短语。

4、语义分析:

语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息。

5、中间代码生成:

在进行了上述的语法分析阶段等工作之后,有的编译程序将源程序变成一种内部表示形式,这种内部表示形式叫做中间语言或中间代码。中间代码生成阶段要在语法和语义分析的基础上,将源程序进一步变为一种内部表示形式,它通常易于生成、易于翻译成目标代码,不过不是所有的语言都必须经过这一步。

6、代码优化:

这一阶段的任务是对前一阶段产生的中间代码进行变换或进行改造,目的是使生成的目标代码更为高效。代码优化阶段,对前阶段生成的中间代码进行变换或改造,以便生成目标代码时更加节省时间和空间,这一工作也不是必须的。

7、目标代码生成:

这一阶段的任务是吧中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。

源程序是指程序员编写的代码,可以被编译程序编译为目标程序。

如果是c++,那么后缀为.cpp

目标程序是编译程序将源程序编译后的结果,如果是c++,那么后缀是.o

编译程序一般是编译器公司(比如微软

intel他们都生产编译器)做的,它将源代码转化为机器可识别的文件,经过链接,生成可执行程序。

解释程序即解释器,它不需要经过编译阶段即可根据用户源程序执行。

程序语言分编译类和解释类语言。

1、从功能上看,一个编译程序就是一个语言翻译程序。语言翻译程序把一种语言(称作源语言)书写的程序翻译成另一种语言(称作目标语言)的等价程序。 2、编译原理的过程概述编译过程从源程序到目标程序总共划分成词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成六个阶段。第三章文法和语言 1、如果在推导的任何一步α→β,其中α,β是句型,都是对α中的最左(最右)非终结符进行替换,则称这种推导为最左(最右)推导。其中最右推导常被称作规范推导,最左规约是规范规约,由规范推导和规范规约形成规范句型。 2、二义文法证明如果一个文法存在某个句子对应两棵不同的语法树,则说这个文法是二义的。或者说,若一个文法中存在某个句子,他有两个不同的最左(最右)推导,则这个文法是二义的。 3、 源程序词法分析程序语法分析程序语义分析程序目标程序中间代码生成程序目标代码生成程序代码优化程序编译程序结构框图表格管理程序出错处理程序编译程序高级语言程序(源程序) 低级语言程序(目标程序) 编译程序的功能 3 Presented by Rights Reserved. 令G是

一文法,S是文法的开始符号,αβδ是文法G的一个句型。如果有:S→αAδ且A→B则称β是句型αβδ相对于非终结符A的短语。特别,如有A→β则称β是句型αβδ相对于规则A→β的直接短语(也成简单短语)。一个句型的最左直接短语称为该句型的句柄。 4、从句型的推导树上很容易找出句型的短语和直接短语。设A是句型αβδ的某一子树的根,其中β是形成此子树的末端结点的符号串,则其中β是句型αβδ的相对于A的短语。若这个子树只有一层分支,则β是句型αβδ的直接短语。最左边的直接短语是句柄。第四章词法分析单词的描述工具正规文法、正规式(正则表达式)、正规集、确定的有穷自动机(DFA)、不确定的有穷自动机(NFA)。课后练****题: 【说明:因为老师不让拷贝课件,所以课件都是由同学用手机拍摄下来的,因为投影效果渣的要命,再加上吊灯反光以及济南雾霾影响,所以照片成像都非常模糊,不得已才用经过处理的底片形式放送,敬请谅解。】* + 4 Presented by Rights Reserved. 5 Presented by Rights Reserved. 6 Presented by Rights Reserved. 7 Presented by Rights Reserved. 8 Presented by Rights Reserved. 9 Presented by Rights Reserved. 第五章自顶向下测语法分析方法 1、 给定上下文无关文法的产生式A→αA∈V N,α∈V *,若α→ε,则SELECT(A→α)=FIRST(α)。如果α→ε,则SELECT(A→α)=(FIRST(α)—{ε})∪FOLLOW(A)。 2、 一个上下文无关文法是LL(1)文法的充分必要条件是,对每个非终结符A的两个不同产生式,A→α,A→β, 满足SELECT(A→α)∩SELECT(A→β)=○。其中α、β不能同时→ε。 设有文法G[S],其句型的素短语是一个短语,它至少包含一个终结符,并除自身外不包含其他素短语,最左边的素短语称最左素短语。课后练****题: * *


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7832038.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存