编译程序分为哪几个主要部分?(操作系统都自带编译器吗?如Windows?)

1、编译程序分为哪几个主要部分?

1、词法分析 词法分析的任务是对由字符组成的单词进行处理,从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。执行词法分析的程序称为词法分析程序或扫描器。

2、语法分析 编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位。

3、中间代码生成 中间代码是源程序的一种内部表示,或称中间语言。中间代码的作用是可使编译程序的结构在逻辑上更为简单明确,特别是可使目标代码的优化比较容易实现。中间代码即为中间语言程序,中间语言的复杂性介于源程序语言和机器语言之间。

4、代码优化 代码优化是指对程序进行多种等价变换,使得从变换后的程序出发,能生成更有效的目标代码。所谓等价,是指不改变程序的运行结果。所谓有效,主要指目标代码运行时间较短,以及占用的存储空间较小。这种变换称为优化。

5、目标代码生成 目标代码生成是编译的最后一个阶段。目标代码生成器把语法分析后或优化后的中间代码变换成目标代码。

编译程序分为哪几个主要部分?(操作系统都自带编译器吗?如Windows?)

2、操作系统都自带编译器吗?如Windows?

不一定。例如:Windows 操作系统就是不自带编译器的,它是一个独立的操作系统,如果你需要编程的话,你还需要单独购买 MS Visual C++编译器,然后在安装好 Windows系统的前提下面,再安装运行 MS VC++,此时 VC++才能够对你编写的 C 语言源程序进行编译、连接,最后产生可执行程序;而Linux则不同,它是自带编译器 gcc 的,所以你在安装 Linux系统时,只要把 gcc 选上,就可以把 gcc 编译器连同 Linux 操作系统一起安装好。就不需要单独购买 gcc 编译器软件了。

编译程序分为哪几个主要部分?(操作系统都自带编译器吗?如Windows?)

3、计算机编译程序的功能是什么?

编译程序、解释程序均是计算机语言处理程序。其区别主要为:解释程序直接执行源程序或源程序的内部形式,一般是读一句源程序,翻译一句,执行一句,不产生目标代码,如BASIC解释程序。

编译程序是将高级语言书写的源程序翻译成与之等价的低级语言的目标程序。

编译程序与解释程序最大的区别之一在于前者生成目标代码,而后者不生成;此外,前者产生的目标代码的执行速度比解释程序的执行速度要快;后者人机交互好,适于初学者使用。

编译程序分为哪几个主要部分?(操作系统都自带编译器吗?如Windows?)

4、高级语言程序的两种执行方式是什么?

编译执行:把源程序翻译成机器语言(生成可执行文件,比如com或exe文件),然后 执行。(包含汇编和链接两个过程)

解释执行:把一行源程序翻译成机器语言,然后执行;再翻译下一行源程序成机 器语言,然后执行。(翻译一句,执行一次。不生成可执行文件)

5、为什么我写的C语言程序编译时没错,运行时有错误?

建议你下断点,然后反复调试运行,肯定能找出问题所在。

我一遇到次类问题,都是这样解决的。

文章来自网络整理,侵权请联系删除.本文链接:https://www.vanillaforums.cn/n/5245.html

(0)
技术为王技术为王
上一篇 2024年 4月 15日
下一篇 2024年 4月 15日

相关推荐

  • 数控铣床加工程序的代码有哪些?(单片机keil51编程方法?)

    1、数控铣床加工程序的代码有哪些? 数控铣床加工程序的代码 G代码:G00定位 G01直线切削 G02顺时针方向圆弧切削 G03逆时针方向圆弧切削 G04暂停指令 G09正确停止检测 G10补正设定 G12顺时针方向圆周切削 G13逆时针方向圆周切削 G15极座标系统取消 G16极座标系统设定 G17XY平面设定 G18XZ平面设定 G19YZ平面设定 G2…

    php技术 2024年 4月 24日
  • 大家好,我想开个物流公司,需要办什么手续,程序是怎样的?(计算机语言分为几代具体都有什么特征我们平时常见的语言都属于哪代?)

    1、大家好,我想开个物流公司,需要办什么手续,程序是怎样的? 注册国际物流公司大致流程: 1、公司查名 2、确定注册地、编写章程 3、刻制印章,登记注册 4、办理三证(营业执照、税wu登记证、组织机构代码证) 5、开基本户、核税 6、办理发僄认购手续 国际物流公司营业条件包括: (一)有固定的营业场所,自有房屋、场地须提供产权证明;租赁房屋、场地,须提供租赁…

    php技术 2024年 4月 26日
  • 怎么插入分隔符和页码?(WORD怎么从任意页开始插入页码?)

    1、怎么插入分隔符和页码? 首先打开一个需要添加页码的word文档,选择 “插入”中的 “页码”选项,并选择页码插入的位置选项,《位置、对齐方式都可以自行修改》选好后,单击“ 确定”。 02 如果直接点击页码选项-确定后,系统默认是会从第一页插入页码; 03 但是如果第一页不需要设置和添加页码,那么我们可以选择首页不显示。也就是把首页显示页码前的那个对勾去掉…

    php技术 2024年 5月 4日
  • 在VS2010的VC++中如何编译链接运行调试程序?(MySQL的程序如何运行?)

    1、在VS2010的VC++中如何编译、链接、运行、调试程序? 在vc2010中看不到像VC6.0显式的编译、连接按钮了。只有工具栏(启动调试)和菜单栏(测试)这些功能包含编译、链接、运行(调试)所有步骤,都一键完成。实际上这些功能是编译器使用以下工具实现的:编译器CL.EXE,将.c/.cpp源代码编译成目标代码.obj,连接器LINK.EXE,将目标代码…

    php技术 2024年 4月 24日
  • kuka机器人如何设置手动或自动运行程序?(数控车床怎么手动运行程序?)

    1、kuka机器人如何设置手动或自动运行程序? 对于KUKA机器人,可以通过KUKA的RobotStudio软件进行手动和自动运行程序的设置。以下是一般步骤: 1. 打开RobotStudio软件并加载机器人模型与所需的任务程序。 2. 在RobotStudio中,选择“Station Setup”菜单,检查和设置机器人连接和操作参数。 3. 在RobotS…

    php技术 2024年 4月 26日