博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编译器的主要组成部分
阅读量:6701 次
发布时间:2019-06-25

本文共 406 字,大约阅读时间需要 1 分钟。

 http://blog.sina.com.cn/s/blog_13de2f64d0102vcr8.html

一个现代编译器的主要工作流程如下: 

源程序(source code)→预处理器(preprocessor)→编译器(compiler)→汇编程序(assembler)→目标程序(object code)→连接器(链接器,Linker)→可执行程序(executables)

 

编译器的主要组成部分:

1、源文件
2、词法分析
3、语法分析
4、语义分析
5、中间代码生成
6、优化代码
7、目标代码生成

 

 

 

图1 编译器基本结构

 

 

 

编译器的阶段

产生的结果

用途

词法分析

单词流

语法高亮

语法分析

抽象语法树

语法高亮;代码格式化;代码折叠

语义分析

带类型信息和符号表的抽象语法树

重命名;重构;代码自动生成;代码自动改写

数据流分析

控制流图、冲突图

编辑后继续运行(Edit and Continue)

转载地址:http://exgoo.baihongyu.com/

你可能感兴趣的文章
cocos2d-x-3.1 数据结构之Vector (coco2d-x 学习笔记六)
查看>>
将树莓派Raspberry Pi设置为无线路由器(WiFi热点AP,RTL8188CUS芯片)
查看>>
OA系统权限管理设计方案
查看>>
TI C66x DSP 系统events及其应用 - 5.11(中断控制寄存器)
查看>>
《开源框架那点事儿25》:对框架模板引擎实现方式的改造实录
查看>>
『Scrapy』全流程爬虫demo
查看>>
Android跳转到系统Wifi界面的方式
查看>>
细说业务逻辑 -- 丢失的业务逻辑层
查看>>
阿里云自动快照有什么用,如何设置?
查看>>
xshell 与 putty
查看>>
Oracle用户、权限、角色管理
查看>>
2. Ext中关于Ext.QuickTips.init()的使用
查看>>
SIGTERM等信号含义【转】
查看>>
剑指offer三十六之两个链表的第一个公共结点
查看>>
hadoop之 Hadoop 2.x HA 、Federation
查看>>
spring-boot-starter-data-redis与spring-boot-starter-redis两个包的区别
查看>>
Django And Django-Rest-Framework 异常记录
查看>>
MLP(多层神经网络)介绍
查看>>
[原创]用C#实现微信“跳一跳”小游戏的自动跳跃助手
查看>>
测试日报模板
查看>>