编译原理

了解编译原理

笑着哭i 提交于 2019-11-29 06:14:45
1) 简述编译程序与翻译程序、汇编程序的联系与区别。   编译程序将源语言源程序作为输入,将语句解释成指令执行,得到结果。 翻译程序是把源程序翻译成目标程序的语言处理程序, 翻译程序有两种: 一种是解释程序,它的执行过程是翻译一句执行一句,并且不会生成目标程序 ; 一种是编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次执行程序时,只要执行目标程序。汇编程序是将汇编指令转换为机器语言, 低级语言,可以用来直 接控制硬件 。 2) 编译过程包括哪几个主要阶段及每个阶段的主要功能。   编译过程包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成六个阶段。   词法分析:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词(亦称单词符号或简称符号),如基本字( begin、end、if、for、while),标识符、常数、运算符和界符(标点符号、左右括号)。   语法分析:在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位(语法范畴),如 “短语”、“句子”、“程序段”和“程序”等。   语义分析:审查源代码程序有无语义错误,为代码生成阶段收集类型信息。   中间代码生成:一种含义明确、便于处理的记号系统,它通常独立于具体的硬件。这种记号系统或者与现代计算机的指令形式有某种程度的接近

了解编译原理

旧巷老猫 提交于 2019-11-29 06:03:32
(1)简述编译程序与翻译程序、汇编程序的联系与区别。 (1)一个编译程序就是一个翻译程序。把一种语言(源语言)书写的程序翻译成另一种语言(目标语言)的等价程序。编译程序专指由高级语言转换为低级语言,编译过程划分词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成6个阶段。翻译程序是把一个高级语言程序翻译成某个机器的汇编语言程序来执行并生成结果,然后获取下一个语句。编译程序会生成目标代码,而翻译程序不生成目标代码。直接输出结果。汇编程序指汇编语言程序,需要通过汇编程序汇编后才能运行。而汇编程序与目标代码相连,防止出现语法错误的问题。 (2)编译过程包括哪几个主要阶段及每个阶段的主要功能。 编译过程包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成6个阶段。 ①词法分析是从左到右的一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解。 ②语法分析是在词法分析的基础上将单词序列分解成各类语法词语。 ③语义分析是审查源程序有无语义错误,为代码生产阶段收集类型信息。 ④中间代码生成是有的编译程序变成一种内部表示形式,这种内部表示形式叫做中间语言或中间代码。 ⑤代码优化是对前一段产生的中间代码进行变换或进行改造,是为了生产的目标代码更加高效。 ⑥目标代码生成是把中间代码变换成待定机器上的绝对指令代码或可重定位的指令代码或编汇指令代码。 (3

了解编译原理

孤街醉人 提交于 2019-11-29 06:03:09
1)简述编译程序与翻译程序、汇编程序的联系与区别。 编译程序就是将源代码文件以字符流的形式进行处理,进行词法和语法的分析,然后通过汇编器将源代码指令转变成汇编指令(由编译器将c源代码(.cpp)转变成汇编代码(.s));翻译程序是指将一种语言等价转换成另外一种语言,继续传达同样的意思或者功能;汇编程序是指把汇编语言代码翻译成目标机器指令(由汇编器将汇编代码(.s)转变成目标代码(.o))。三者之间都改变了原本代码,但是区别程序的不同也代表着改变的形式不同,编译程序将源代码转变成汇编指令,汇编程序则将编译程序转发成的汇编指令转化成目标机器指令,而编译程序跟汇编程序都属于翻译程序。 2)编译过程包括哪几个主要阶段及每个阶段的主要功能。 编译过程包括6个主要阶段,①首先是词法分析,它的主要功能是读入源程序,扫描和分解构成源程序的字符流并识别出每个,最后表示成计算及内部的形式;②然后是语法分析,它的主要功能是在词法分析的基础上,将单词序列分解成各类语法短语,判断语法是否正确;③再是语义分析,它的主要功能是审查源程序有无语义错误,为代码生成阶段收集类型信息;④然后就是中间代码生成,它的主要功能是将源程序翻译成一种复杂性介于源程序和目标程序之间的内部形式;⑤然后就是代码优化,它的主要功能是阶段性地把中间代码进行等价交换,生成更高效的目标代码;⑥最后就是目标代码生成

了解编译原理 作业1

僤鯓⒐⒋嵵緔 提交于 2019-11-29 06:03:05
1简述编译程序与翻译程序、汇编程序的联系与区别。 解释程序是高级 语言翻译 程序的一种 ,就像外语翻译中的“口译”一样,说一句翻一句,不产生 全文 的翻译 文本 ,,从终端把命令打入后,就能立即得到计算结果。 编译程序它把 高级语言 (如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进行翻译转换,产生出 机器语言 的目标程序,然后再让计算机去执行这个目标程序,得到计算结果。 大 多数的编译程序直接产生机器语言的 目标代码 ,形成可执行的 目标文件 ,但也有的编译程序则先产生汇编语言一级的符号代码文件,然后再调用 汇编程序 进行翻译加工处理,最后产生可执行的机器语言目标文件。 它把汇编语言源程序翻译成机器语言程序。 编译程序与汇编程序的区别:如果源语言是诸如 C、C++、Java等“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言”,这样的一个翻译程序称为编译程序。如果源语言是汇编语言,而目标语言是机器语言,这样的一个翻译程序称为汇编程序。 2 编译过程包括哪几个主要阶段及每个阶段的主要功能。 1)识别出句子中的一个个单词;词法分析 ( 2)分析句子的语法结构;语法分析 ( 3)根据句子的含义进行初步翻译;词义分析与中间代码产生 ( 4)对译文进行修饰;优化 ( 5)写出最后的译文。目标代码生成 3 简述解释程序与编译程序的区别

第一次作业---了解编译原理

家住魔仙堡 提交于 2019-11-29 06:03:00
1.简述编译程序与翻译程序、汇编程序的联系与区别。 编译程序是把高级语言程序编译成低级语言程序,一种由高级语言变为低级语言的程序;而汇编程序是一个翻译程序,他把汇编语言翻译成机器语言程序。 2.编译过程包括哪几个主要阶段及每个阶段的主要功能。 主要包括6个阶段,分别是词法分析,语法分析、语义分析、中间代码生成、代码优化和目标代码生成。词法分析的主要功能是从左到右的逐个把字符读入到源程序里,并且进行扫描和分解,从而识别出具有意义的单词。语法分析主要功能是在词法分析的基础上将单词序列分解成各类语法短语,比如“程序”、“语句”、“表达式”等。语义分析的主要功能是审查源程序有无语义上的错误,为代码生成阶段手机类型信息。中间代码生成这一阶段是在进行了语法分析和语义分析这两个阶段的工作后,有的编译程序将源程序变成了一种内部的表示形式,而这种内部表示形式叫做中间代码。代码优化这一阶段是对上一个阶段“中间代码生成”所产生的代码进行优化,使得代码变得更加的高效。目标代码生成是编译的最后阶段,主要是把优化后的中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码。 3.简述解释程序与编译程序的区别。 编译程序是一种语言处理程序,它需要把整个程序全部翻译完成之后,才能开始运行,否则是不会产生任何结果的;而解释程序与编译程序的区别主要在于,解释程序是不需要在运行前先把源程序翻译成目标代码

作业1 了解编译原理

风格不统一 提交于 2019-11-29 06:02:54
1)简述编译程序与翻译程序、汇编程序的联系与区别。    翻译程序是指把高级语言源程序翻译成机器语言源程序的软件。翻译程序有两种:一种是编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次执行程序时,只要执行目标程序。另一种是解释程序,它的执行过程是翻译一句执行一句,并且不会生成目标程序。编译程序是先完整编译后运行的程序,如C、C++等;解释程序是一句一句翻译且边翻译边执行的程序,如JavaScript、Python等。附C语言编译链接过程:编译程序与汇编程序的区别:如果源语言是诸如C、C++、Java等“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言”,这样的一个翻译程序称为编译程序。如果源语言是汇编语言,而目标语言是机器语言,这样的一个翻译程序称为汇编程序。 2)编译过程包括哪几个主要阶段及每个阶段的主要功能。   编译过程可分为五个阶段,分别是:词法分析、语法分析、中间代码生成、代码优化、目标代码生成。   词法分析:从左到右扫描源程序,识别出每个单词。   语法分析:在词法分析的基础上,根据语言的语法规则,将单词符号串分解成各类语法短语。   中间代码生成:对语法分析所识别出的各类语法范畴分析其含义,进行初步的翻译。   代码优化:对已经产生的中间代码进行加工变换,使生成的目标地阿妈更高效。   目标代码生成:把中间代码变换成特定机器上的低级语言代码

编译原理(第一次作业)

拜拜、爱过 提交于 2019-11-29 06:02:41
1.翻译程序是一种把一种语言(称作源语言)书写的程序翻译成另一种语言(称作目标语言)的等价程序。 翻译程序有两种,分别是编译程序和解释程序。 编译程序是一种将高级语言翻译成低级语言的程序。 汇编程序是一个翻译程序,它把汇编语言程序翻译成机器语言程序。 编译程序与汇编程序的区别:两者的源语言和目标语言不一样。编译程序的源语言是高级语言(如C、Pascal或FORTRAN),目标语言是汇编语言或机器语言那样低级语言;而汇编语言的源语言是汇编语言,目标语言是机器语言。 2.编译过程包括六个主要阶段: 词法分析:语法分析是第一阶段,这个阶段的任务是从左到右一个字符一个字符地读入源程序,对构成源程序地字符流进行扫描和分解,从而识别出一个个单词。 语法分析:语法分析的任务是在词法分析的基础上将单词程序分解成各类语法短语。 语义分析:语义分析是审查源程序有误语义错误,为代码生产阶段收集类型信息。 中间代码生成:在进行了上述的语法分析和语义分析阶段的工作之后,有的编译程序将源程序变成一种内部表示形式,这种内部表示形式叫做中间语言或中间代码。 代码优化:这一阶段的任务是对前一阶段产生的中间代码进行变换或进行改造,谜底是使生成的目标代码更为高效。 目标代码生成:这一阶段的任务是把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。 3.解释程序与编译程序的区别:

了解编译原理

落花浮王杯 提交于 2019-11-29 06:01:51
1)简述编译程序与翻译程序、汇编程序的联系与区别。 编译过程是编译程序完成从源程序到目标程序的翻译工作,是一个复杂的整体的过程。编译程序是一个语言处理程序,它把一个高级语言程序翻译成某个机器的汇编语言程序或者二进制代码程序,这个二进制代码程序在机器上运行以生成结果。语言翻译程序把一种语言书写的程序翻译成另一种语言的等价程序,汇编程序是一个翻译程序,它把汇编语言程序翻译成机器语言程序。 2)编译过程包括哪几个主要阶段及每个阶段的主要功能。 词法分析:从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别。语法分析:在词法分析的基础上将单词序列分解成各类语法短句。语义分析:审查源程序有无语义错误,为代码生成阶段收集类型信息。中间代码生成:在语法分析和语义分析阶段的工作之后,有的编译程序将源程序变成一种内部表示形式。目标代码生成:把中间代码变换成特定机器上的绝对指令代码或者可重定位的指令代码或者汇编指令代码。 3)简述解释程序与编译程序的区别。 编译程序是一个语言处理程序,它把一个高级语言程序翻译成某个机器的汇编语言程序或者二进制代码程序,这个二进制代码程序在机器上运行以生成结果。解释程序一般是把源程序一个语句一个语句地进行语法分析,转换为一种内部表示形式,存放在源程序区。 4)了解新开源的华为方舟编译器( https://www

9.4 作业1-了解编译原理

匆匆过客 提交于 2019-11-29 06:00:59
1)简述编译程序与翻译程序、汇编程序的联系与区别。 翻译程序是指把高级语言源程序翻译成机器语言源程序(目标代码)的软件。 翻译程序有两种:一种是编译程序,它将高级语言源程序一次性全部翻译成目标程序,每次执行程序时,只要执行目标程序。另一种是解释程序,它的执行过程是翻译一句执行一句,并且不会生成目标程序。 编译程序是先完整编译后运行的程序,如 C 、 C++ 等;解释程序是一句一句翻译且边翻译边执行的程序,如 JavaScript 、 Python 等。附 C 语言编译链接过程: 汇编程序也是一种语言翻译程序,它把汇编语言源程序翻译成机器语言程序。 编译程序与汇编程序的区别:如果源语言是诸如 C 、 C++ 、 Java 等 “ 高级语言 ” ,而目标语言是诸如汇编语言或机器语言之类的 “ 低级语言 ” ,这样的一个翻译程序称为编译程序。如果源语言是汇编语言,而目标语言是机器语言,这样的一个翻译程序称为汇编程序。 2)编译过程包括哪几个主要阶段及每个阶段的主要功能。 编译过程主要包括预编译处理 (.c) -- > 编译、优化程序( .s 、 .asm )-- > 汇编程序 (.obj 、 .o 、 .a 、 .ko) -- > 链接程序( .exe 、 .elf 、 .axf 等)这四个阶段。 这四个阶段的主要功能分别如下: 预编译: 将 .c 文件转化成 .i 文件 使用的 gcc

编译原理作业1

依然范特西╮ 提交于 2019-11-29 06:00:46
1)简述编译程序与翻译程序、汇编程序的联系与区别。 答:翻译程序是指把高级语言源程序翻译成机器语言源程序的软件,编译程序属于翻译程序的一种。汇编程序也是一种语言翻译程序,它把汇编语言源程序翻译成机器语言程序。 2)编译过程包括哪几个主要阶段及每个阶段的主要功能。 答:有6个阶段,分别为: 1、词法分析:功能是从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词。 2、语法分析:功能是在词法分析的基础上将单词序列组合成各类语法短语,如"程序","语句","表达式"等等。 3、语义分析:功能是审查源程序有无语义错误,为代码生成阶段收集类型信息。 4、中间代码生成:功能是编译程序将源程序变成一种内部表示形式,这种内部表示形式叫做中间语言或中间代码。 5、代码优化:功能是对前一阶段产生的中间代码进行变换或进行改造。 6、目标代码生成:功能是把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。 3)简述解释程序与编译程序的区别。 答:编译程序是全部编译完后,再一次性执行。而解释程序是一边解释,一边执行,不区分翻译阶段和执行阶段,不形成目标程序。 来源: https://www.cnblogs.com/cnw834575008/p/11457683.html