程序生命周期
来源:互联网 发布:淘宝店铺名称可以修改 编辑:程序博客网 时间:2024/06/16 01:56
程序生命周期主要包括5个部分:
- 编写源代码
- 编译
- 链接
- 转载
- 执行
编译阶段
从广义上讲,编译就是将某种编程语言(高级语言:C/C++)的源代码转为另一种编程语言(低级语言:汇编。机器代码)的源代码。其中交叉编译指在同一平台上进行编译,生成的代码可以在其他平台上执行,例如在桌面操作系统上生成嵌入式设备或移动设备的代码。编译的过程分为5个阶段:
- 预处理阶段
- 语言分析阶段
- 汇编阶段
- 优化阶段
- 代码生成阶段
其中预处理阶段实现:
- 将#include包含的文件或者头文件包含到源代码文件中
- 将#define指定的值转化为常量
- 将调用宏的位置转为代码
- 根据#if,#elif和#endif指令的位置包含或者排除特定部分的代码
其中语言分析阶段功能:
- 删除注释和不必要的空格等操作
- 检查程序的语法规则(词法分析,语法分析,语义分析)
其中汇编阶段是将标准集合转为特定CPU指令集的语言集合;
其中优化阶段将程序的寄存器使用率最小化,删除冗余代码;
其中代码生成阶段:每个目标文件对应一个编译单元,汇编指令会在此阶段转为对应机器指令的二进制值,并写入目标文件的特定位置。
链接阶段
链接的输入就是目标文件的集合,由编译阶段预先生成,主要包含重定位和解析应用。
阅读全文
0 0
- 程序生命周期
- android 程序的生命周期
- Android程序生命周期-4
- iphone程序的生命周期
- iPhone程序的生命周期
- Android程序的生命周期
- ios程序生命周期。。。
- Windows程序的生命周期
- iOS程序生命周期
- Servlet 生命周期测试程序
- iOS程序的生命周期
- IOS程序生命周期
- iOS程序生命周期详解
- ios程序入口...生命周期
- iOS 程序的生命周期
- iOS程序的生命周期
- Windows程序的生命周期
- AppDelegate程序生命周期
- Android 提醒用户输入错误的方法
- 仿美团外卖菜单界面的实现
- 线程优先级
- SSH
- Docker下dubbo开发,三部曲之三:java开发
- 程序生命周期
- C#值类型与引用类型
- 第七章 Linux常用命令(基本用户管理)
- 如何解决Eureka Server不剔除已关停的节点的问题
- LeetCode 94 Binary Tree Inorder Traversal(二叉树中序遍历)
- 设计模式
- [第二章]eval函数小结
- JavaScript 万物皆对象?
- Python文件操作