问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-03-26 04:21

我来回答

5个回答

懂视网 时间:2022-03-26 08:43

以C语言源程序为例,其编译程序可以直接生成可执行文件的,可执行文件即obj。obj即机器码,机器指令码是用于指挥计算机应做的操作和操作数地址的一组二进制数。机器指令码在计算机中通常被称为代码。

  

  C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%至20%。因此,C语言可以编写系统软件。

  

  当前阶段,在编程领域中,C语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显著。

热心网友 时间:2022-03-26 05:51

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

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

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

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

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

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

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

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

扩展资料:

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

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

热心网友 时间:2022-03-26 07:09

编好的代码(源代码)经过编译,链接,生成可执行的文件,然后就可以执行。即编辑的代码要最重生成可执行的程序(可执行的文件),需要经过编译、链接两个步骤。编译的作用是对代码进行语法检查,而链接的作用是链接代码中用到的编译器提供的资源。所以,通常通过编译、链接后形成的只形成一个可执行的文件。

热心网友 时间:2022-03-26 08:43

编辑 编译 链接 执行又或者预处理 编译 链接才能确保程序正确执行。

热心网友 时间:2022-03-26 10:35

编译和链接装配
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
分手后我还想着他,我该怎么办? 为什么人们会对曾经抛弃自己的人产生好感? Java 中如何加密配置文件中的数据库账号和密码? Java 实现MD5加密 我想学编程,html,css,asp,,javascript,delphi,java,jsp,Ajax那个语言最... html5初学者,想问一下好学吗 如何用支付宝给自己微信转账 亚太7号卫星天线为什么雨天图像一停一停怎样解决? 天水华阳国际购物广场 街机武侠铜钱有什么用? 用c语言编完程序怎么生成exe可执行文件? c语言如何把c程序编译成可执行的exe文件 C#编译后可以直接生成可执行文件吗? C语言编写好代码后,怎么编译,最后生成可执行文件? 骁龙888和麒麟990哪个好? 请问华为的麒麟990系列的手机,可以和9000一样升级鸿蒙系统吗? 麒麟9000和麒麟990有什么区别 麒麟990+巴龙5000是什么意思 骁龙870和麒麟990哪个好? 荣耀麒麟990系列5G手机推荐? mate30epro和mate30 pro哪个好 支持麒麟990处理器的机型? 为什么我电脑连接远程会这样 连不上 为什么我远程连接不了别的电脑? win7电脑远程操作连不上怎么办 电脑远程点不动怎么回事 我电脑上的远程连接为什么点击了没反应,开不起 为什么远程控制电脑总是连接不上 电脑无线网连不上,显示“未进行远程连接,因为远程访问服务器的名称问题没有解决”怎么办?_问一问 无法远程连接到服务器怎么回事? 如何将编写好的C语言源程序变成可执行文件EXE? C/C++程序编译步骤 如何生成可执行文件 用c++编完程序后怎么导出成.exe的可执行文件? 编译是将整个源程序代码文件一次性翻译成目标程序代码,最终生成可执行文件,对么? 如何把一个程序编译成可执行文件 Java程序可以编译成可执行程序,直接运行。这句话是否是对的 用c语言编写的程序怎样生成可执行软件。 怎样把C语言源程序代码变成可执行程序? C++中怎样将程序编译成为可以执行的exe文件 在linux中如何编译C程序,使之成为可执行文件?如何调试? c语言可执行程序文件是通过()和()生成的? C++编译后产生的可执行文件 c语言中的源程序必须经过编译连接生成可执行程序才能运行,这句话是对不对? 如何建设银行卡销户? 建行的e账户能注销么? 建设银行的网上银行,如何注销账户 如何注销手机银行建行 建行卡怎么注销 怎么注销手机建设银行?密码忘记的! 在手机上怎么注销建设银行卡