编译原理_引论_编译过程

前言

        接续上一篇编译原理_引论_什么是编译程序-优快云博客

编译过程

        

        文字描述:词法分析→语法分析→中间代码产生→优化→目标代码产生 

词法分析

        目的:从无意义的字符串到有意义的单词串

        基本字等同于关键词

语法分析 

         目的:从单词串到语法单位

        上图中的语法规则:运算符和两边的标识符或常量表达式,形成一个算术表达式.

                                       赋值符和两边的表达式,形成赋值语句. 

中间代码产生

        目的:由语法分析产生三元式,四元式,树等指令.

        例如上图的四元式指令,第1个元素是运算符,第2/3元素是操作数,第4个是结果存储单元(T1,T2) 

优化 

目标代码生成

        目的:中间代码变成机器代码或者汇编代码,汇编代码将经由汇编器生成机器代码

        可重定位指令代码:单独的模块,经编译生成机器代码加载入程序中

 机器指令解读

         蓝色的00和01,操作数地址,00表示地址,10表示立即数

          当使用地址(00)时,表示后面的地址是一个相对地址.当操作系统在执行指令时,将该地址(R1)加上模块基地址(下面的L)值,加载到内存中

编译程序结构

        由编译程序总框,表格管理,出错管理,遍,编译器前端和后端组成.

表格

出错处理 

编译的前端和后端 

        体现的计算思维:分解和权衡

举例:Java语言的执行

 

编译程序与程序设计环境 

        程序设计环境可以简单理解为IDE(集成开发环境),IDE就是具体化的程序设计环境.

        举例:visual studio

 

编译程序生成 

        自展技术:最初没有编译器的时候,只能用汇编语言或者机器语言来写.

        第一种语言L1,最核心也是最小的内容.依次是L1+L2,直到L=L1+L2+....+Ln

        编译程序要用高级语言来写,好处是易懂易维护.

编译程序自动产生

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

重庆彭枫

你的鼓励是我创作的动力,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值