编译原理入门(二)——编译系统的结构

      上一篇说了关于编译的基本概念,这篇博文我们来说说编译系统的结构。

      编译系统的结构

      在下图中,高级语言是输入,而汇编语言或者机器语言是输出,编译器的作用便是做一个中间转换的过程,我们来看看编译器是怎么把源语言翻译成机器语言的,

      

      此部分我们需要借助生活中常见的英汉互译来帮助我们更好的理解编译器的整个结构和编译过程。

      如下图,学过英语的都知道一些英语的语法组成,简单的英语结构可以分为主谓宾,而下面这句话可分为主谓宾补状,四个部分,而英文就是源语言,目标语言就是汉语。

      翻译过程的第一步则为对源语言进行结构的拆解,确定句子中各个单词的词性(名词、动词、介词等等),此为词法分析;第二步则为进行语法分析,确定各个短语的组成(例如,In the room为介词短语,broke a window动词短语等),第三步为语义分析,确定各个短语在句子中充当什么成分,然后确定各个成分之间的关系。

      

     上面内容是英语翻译成汉语的过程,当然实际上可能没有那么难,这只是为了举个例子,完整的翻译过程就是如此。我们再来看看编译器的翻译过程。

     

      编译器的翻译过程与上面的类似,词法分析——语法分析——语义分析——中间代码生成——目标代码,中间还有一些代码优化的过程(代码优化过程很重要,可以节省时间和空间)。

      编译器翻译的过程其实很容易理解,后面的几篇博文将会对各个部分进行讲解。

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值