语言处理程序

类型】

解释型:直接执行源程序或源程序的内部形式(词法分析,语法分析,语义分析过程是有的,但是没有中间代码生成,也没有目标机器码代码),其最大的特点是不产生目标程序,每使用一次就要解释一次,运行效率低。
编译型:第一次使用时将可执行语句翻译成对应的机器代码并保存下来,之后直接使用保存的机器码,故运行效率高。

两者区别:在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程;而在解释方式下,解释程序和源程序(或其某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释器。解释器翻译源程序时不产生独立的目标程序,而编译器则需将源程序翻译成独立的目标程序。编译方式的程序执行效率比解释方式的高,但解释方式的灵活性要比编译方式高

编译的主要过程


词法分析:从左到右逐字符读入源程序,识别出一个个单词符号;它是根据语言的词法规则(单词结构规则)进行的。
语法分析:在词法分析的基础上将单词符号序列分解成各类,诸如“程序”,“语句”,“表达式”等语法单位。
语义分析:审查源程序有无语义错误,为代码生成阶段收集类型信息。
中间代码生成:在语法和语义分析的基础上,将源程序转变成一种内部表示形式(中间语言,中间代码),它通常易于生成,易于翻译成目标代码。不过,并不是所有的语言都必须经过这一步。中间代码不依赖于具体的机器,使用中间代码可提高编译程序的可移植性,中间代码的形式:逆波兰式,四元式,三元式,间接三元式,树和图等。
代码优化:对前阶段生成的中间代码进行变换或改造,以使生成的目标代码更节约时间和空间
目标代码生成:将中间代 码变换成特定机器上的绝对指令代码(或可重定位的指令代码,汇编指令代码)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值