简述将源程序编译成可执行程序的过程

如题所述

一个源程序到一个可执行程序的过程:预编译、编译、汇编、链接。其中,编译是主要部分,其中又分为六个部分:词法分析、语法分析、语义分析、中间代码生成、目标代码生成和优化。

预编译:主要处理源代码文件中的以“#”开头的预编译指令。处理规则如下:

1、删除所有的#define,展开所有的宏定义

2、处理所有的条件预编译指令,如“#if”、“#endif”、“#ifdef”、“#elif”和“#else”。

3、处理“#include”预编译指令,将文件内容替换到它的位置,这个过程是递归进行的,文件中包含其他文件。

4、删除所有的注释,“//”和“/**/”。

5、保留所有的#pragma 编译器指令,编译器需要用到他们,如:#pragma once 是为了防止有文件被重复引用。

6、添加行号和文件标识,便于编译时编译器产生调试用的行号信息,和编译时产生编译错误或警告是能够显示行号。

扩展资料:

编译过程中语法分析器只是完成了对表达式语法层面的分析,语义分析器则对表达式是否有意义进行判断,其分析的语义是静态语义——在编译期能分期的语义,相对应的动态语义是在运行期才能确定的语义。

其中,静态语义通常包括:声明和类型的匹配,类型的转换,那么语义分析就会对这些方面进行检查,例如将一个int型赋值给int*型时,语义分析程序会发现这个类型不匹配,编译器就会报错。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-28
编好的代码(源代码)经过编译,链接,生成可执行的文件,然后就可以执行。即编辑的代码要最重生成可执行的程序(可执行的文件),需要经过编译、链接两个步骤。编译的作用是对代码进行语法检查,而链接的作用是链接代码中用到的编译器提供的资源。所以,通常通过编译、链接后形成的只形成一个可执行的文件。本回答被网友采纳
第2个回答  2021-11-20
编辑 编译 链接 执行又或者预处理 编译 链接才能确保程序正确执行。本回答被网友采纳
第3个回答  2018-11-15
编译和链接装配

简述将源程序编译成可执行程序的过程
一个源程序到一个可执行程序的过程:预编译、编译、汇编、链接。其中,编译是主要部分,其中又分为六个部分:词法分析、语法分析、语义分析、中间代码生成、目标代码生成和优化。预编译:主要处理源代码文件中的以“#”开头的预编译指令。处理规则如下:1、删除所有的#define,展开所有的宏定义。2、处理...

源程序->可执行程序
从.c到.exe:编译与链接的交汇点 以C语言为例,源代码文件.c经过编译,首先生成目标文件.obj,这是C编译器的工作成果。然后,目标文件.obj通过链接步骤,转化为我们能在计算机上直接运行的.exe文件。这个过程中,.obj文件会被链接生成.exe文件后删除,可见它们之间的转换是不可或缺的步骤。预处理:宏...

一个源程序(.c)变成可执行(.exe)文件要经过几个步骤?详细一点
第一步是预处理,包括语法检查等工作。gcc -P abc.c第二步由源程序生产汇编语言代码。gcc -S abc.c会生成abc.s文件,这个文件里就是汇编代码。第三步编译器生成目标代码,一个源文件生成一个目标代码。gcc -c abc.c会生成abc.o第四步连接器从目标代码生成可执行文件。目标代码包括机器码和符号...

从源文件到可执行文件得过程是什么?
预处理阶段通过命令 `-E` 单独执行。编译阶段则通过 `-S` 选项控制。汇编过程通常在编译阶段内部处理,用户无需显式命令。链接阶段通过 `-c` 或 `-S` 选项进行,根据目标文件的来源自动生成链接操作。链接中可选择静态或动态链接,使用 `-static` 指令指定静态链接。理解从源代码到可执行文件的这一...

如何将编写好的C语言源程序变成可执行文件EXE?
1、第一步,打开C语言编译软件,输入你要执行的程序源代码,如下图所示。2、第二步,代码编写完成之后,依次点击”编译“、”组建“、”执行“三个选项,也可以通过依此右边的三个快捷键完成上述操作,如下图所示。3、第三步,上述操作完成之后,按”回车键“就可以执行当前程序了,如下图所示。4、...

源程序文件是怎样变成可执行的二进制文件的
步骤如下:1、驱动程序首先调用C预处理器(CPP)把源文件翻译成一个ASCII中间文件mian.i,预处理器会把#include所包含的内容都插入到声明的位置,并且做宏替换,把main.c 文件的第3行     的SIZE替换成2(注意这里只是做简单的文本替换)。2、接下来驱动程序的C编译器将main.i翻译成...

C语言源程序到运行程序经过哪几个步骤
这一阶段,编译器对源码进行词法分析、语法分析、优化等操作,最后生成汇编代码。这是整个过程中最重要的一步,因此也常把整个过程称为编译。可以通过选项-S使GCC在进行完编译后停止,生成.s的汇编程序。例如:gcc -S -o hello.s hello.c 3、汇编 这一阶段使用汇编器对汇编代码进行处理,生成机器...

把高级语言编写的源程序转换为可执行程序的过程叫什么?
这个过程有两个叫法,编译或者解释。有些高级语言在把源程序转换为可执行程序的时候,需要先对完整的源程序做词法分析、语法分析等一系列检测,所有语法都没有问题后,一次性把所有源代码翻译成机器码,这要求源程序中不能有任何语法错误,否则将不会生成可执行程序,直到所有语法错误都改正,这种转换的...

用C语言写出来的程序如何打包成完整的软件?
1. 使用Visual C++(VC++),您可以直接创建一个Release版本的exe文件,这是完整的软件可执行格式。2. 如果您使用GCC编译器,将源代码编译成可执行软件的过程可以分为四个步骤:- 第一步是预处理,这时编译器会进行语法检查,并处理源代码中的宏定义。您可以使用命令 `gcc -E abc.c` 来完成这一...

...的源程序,将其转化成能在计算机上运行的程序过程是( )。
首先通过一个对应于所用程序设计语言的编译程序(翻译)对源程序进行处理,经过对源程序的词法分析、语法分析、语意分析、代码生成和代码优化等阶段所处理的源程序转换为用二进制代码表示的目标程序,然后通过连接程序处理,使之构成一个可以连续执行的二进制文件。调用这个文件就能实现指定的功能。

相似回答