美文网首页
编译原理概述

编译原理概述

作者: 南苑bert | 来源:发表于2022-03-29 10:00 被阅读0次

    编译器原理

    词法分析器

    语法分析器

    语义分析器

    中间代码生成

    • 符号表
    • 独立机器的代码优化器
    • 代码生成器
    • 依赖于机器的代码优化器
    • 目标机器代码
    position = inital + rate * 60
    
    name value
    position ...
    inital ...
    rate ...

    <id,1><=><id,2><+><id,3><><60>*

    表达式的语法特征

    • 任何一个标识符都是表达式
    • 任何一个数都是表达式
    • 如果e1和e2都是表达式那么
      • e1+e2
      • e1*e2
      • (e1)

    例:position = inital + rate * 60

    initial+rate60 分析树*

    graph TD;
        表达式-->表达式A;
        表达式A-->initial;
        表达式-->+;
        表达式-->表达式B;
        表达式B-->表达式B1;
        表达式B1-->rate;
        表达式B-->*;
        表达式B-->表达式B2;
        表达式B2-->数60;
        
    

    <id,1><=><id,2><+><id,3><><60>*

    • 语法分析器语法树

      graph TD;
         =-->id,1;
         =-->+;
         +-->id,2;
         +-->*;
         *-->id,3;
         *-->inttofloat;
         inttofloat-->60;
      
    • 中间代码生成器

    t1 = inttofloat(60)
    t2 = id3 * t1
    t3 = id2 + t2
    id1 = t3
    
    • 代码优化器
    t1 = id3 * 60
    id1 = id2 + t1
    
    • 代码生成器
    MOVF id3,R2
    MULF #60,R2
    MOVF id2,R1
    ADDF R2,R1
    MOVF R1,id1
    
    概述
    • 解释器

      • 解释器不生成目标代码,而是直接执行源程序所指定的运算
      • 解释器也需要对源程序进行词法,语法,语义
    • 符号表管理 – 记录源程序中使用的变量的名字,收集各种属性

    相关文章

      网友评论

          本文标题:编译原理概述

          本文链接:https://www.haomeiwen.com/subject/xbzpjrtx.html