石鑫华视觉论坛

 找回密码
 注册会员
查看: 2409|回复: 0

[科技] 编译器是如何工作的?

[复制链接]
  • TA的每日心情
    开心
    2015-3-26 16:24
  • 签到天数: 161 天

    连续签到: 1 天

    [LV.7]700FPS

    发表于 2013-12-18 13:45:01 | 显示全部楼层 |阅读模式 来自:广东省东莞市 联通

    注册登陆后可查看附件和大图,以及购买相关内容

    您需要 登录 才可以下载或查看,没有账号?注册会员

    x
    解释编译器如何工作不是一件容易的事,最好的方法是用一个实例进行说明:
    编译器是这样一个电脑程序,它把用高级编程语言编写的源代码,转化成低级语言。
    最基本的,一个编译器由以下几个阶段组成:词法分析、语法分析、语义分析、IR(中间代码,intermediate Representation)产生、IR优化、代码产生、最终优化。
    mdsvnfdibb234541.jpg
    现在,看一个例子:
    compiler-sample-program-300x124.jpg
    以下就是各个步骤的详细分析。
    1.词法分析
    把一个程序转换成串行的符号。
    vdsvbebeg545t.jpg
    2.语法分析
    恢复上面扫描得到的串行符号描述的结构。
    syntax-analysis-300x2491.jpg
    3.语义分析
    保证程序的定义是明确的。
    4.IR产生
    ir-generation-300x102.jpg
    5.IR 优化
    ir-optimization-300x981.jpg
    6.代码产生
    code-generation-300x110.jpg
    7.最终优化
    optimization-300x79.jpg
    我在想,应该画一个可以清晰地表达编译器是如何工作的图解。然而,我发现在《龙书》(译注:《龙书》就是《编译原理》(Compilers—Principles, Techniques and Tools),名字源于书的封皮有一条吐火的龙)的图非常好,那就不需要自己动手了。
    compilegfmhgm547r.jpg
    我仍然想自己做一个可以从头到尾编译一个简单函数的小编译器,我会做一些调研,并可能找到一种清晰展示的方法。

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员

    本版积分规则

    LabVIEW HALCON图像处理入门教程(第二版)
    石鑫华机器视觉与LabVIEW Vision图像处理PDF+视频教程11种全套
    《LabVIEW Vision函数实例详解》教程-NI Vision所有函数使用方法介绍,基于NI VISION2020,兼容VDM21/22/23/24

    QQ|石鑫华视觉论坛 |网站地图

    GMT+8, 2024-11-20 21:21

    Powered by Discuz! X3.4

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表