源程序是什么,可执行程序又是什么?

源程序是什么,可执行程序又是什么?,第1张

选D可执行程序。

计算机可直接执行的是可执行程序。

源程序指的是指未经编译的,按照一定的程序设计语言规范书写的,人类可读的文本文件,即后缀为.c或者.cpp的文件,另外在经过编译器编译后形成目标程序,是二进制文件,但这时候程序还不能直接运行。

还需要经过链接,将所包含的头文件等与自身的目标文件链接,最后形成可执行程序。

而汇编程序的含义与C语言程序等处于同一层概念,只是由不同的语言写成。

可执行程序(executable program,EXE File)是可在 *** 作系统存储空间中浮动定位的二进制可执行程序。它可以加载到内存中,由 *** 作系统加载并执行。扩展名为.exe,可以直接被计算机直接执行。

扩展资料:

可执行程序文件格式:

1、Linux32/64位可执行文件:Linux是靠文件属性来判断判断是否可执行。每个文件专门有个属性来表示文件是否可执行。

2、16位NE X86可执行文件:

通过在文件头添加ASCII字符串“NE”来标识。它只能运行在Windows和OS/2系统,而不能在DOS下运行。

3、16/32位X86可执行文件:

通过在文件头添加ASCII字符串“LE”来标识。它仅用来在Windows 3.x和Windows 9x中替代VxD驱动。

4、32位线性可执行文件:

通过在文件头添加ASCII字符串“LX”来标识。运行在OS/2 2.0以及更高版本中,也可用于某些DOS扩展。

参考资料来源:百度百科-源程序

参考资料来源:百度百科-可执行程序

参考资料来源:百度百科-汇编程序

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

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

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

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

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

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

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

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

扩展资料:

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

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


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

原文地址: https://outofmemory.cn/yw/8103034.html

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

发表评论

登录后才能评论

评论列表(0条)

保存