编译程序概述

本文详细阐述了编译程序的工作过程,包括词法分析、语法分析、语义分析与中间代码生成,随后是优化和目标代码的生成,涉及绝对机器指令、可重定位机器指令和汇编指令。同时介绍了编译程序的前后端结构。
摘要由CSDN通过智能技术生成

基本概念

1、编译程序:是一种语言翻译程序,把用高级语言编写的源程序翻译成目标程序的语言处理程序。

2、解释程序:也是一种语言翻译程序,它以源程序作为输入,但不产生目标程序,而是边解释边执行源程序本身,优点是交互式好。

3、程序的执行:正确的程序才能被执行。“一个程序是正确的”包含二层含义:一是书写正确,即合乎语法规则:二是含义正确,能够正确理解与应用程序中各种语法成分的语义定义,并在逻辑上体现了程序书写者的意图,因而在正确地输入之后,就能获得预期的运行效果。

编译程序工作过程

词法分析:识别出句子中一个个单词。

语法分析:分析句子语法结构。

语义分析与中间代码的生成:根据句子含义,初步翻译。

        中间代码:三元式、四元式、树

优化:对前段产生的代码进行加工变换,以期在最后阶段产生更高效的目标代码。

目标代码生成:把优化后的代码转换成低级语言代码。

目标代码三种形式:

绝对机器指令代码(可直接运行)

可重定位的机器指令代码(需要链接)

汇编指令代码(需要进行汇编) 

编译程序的结构

(1)端概念

编译的前端:词法分析,语法分析,语义分析,中间代码生成,代码优化(与硬件无关)

编译的后端:代码优化(与硬件相关),目标代码生成

(2)划分原因:编译程序移植

物理的遍

(1)遍概念:对源程序或源程序的中间结果从头到尾扫描一次,并做有关的加工处理,生成新的中间结果或目标程序。既可以把几个不同的阶段合为一遍,又可以把一个阶段工作分为若干遍。

(2)一遍和多遍的比较

一遍扫描的编译程序复杂度高,需要占用较大的内存空间,但是提高了编译工作速度。多遍的编译程序结构清晰,目标代码质量高,但编译速度慢。所以不能单纯的说一遍和多遍谁好,它们各有优缺点。

编译前段与后端

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值