• 编译原理主观题(转)


    编译原理——期末整理

    1.前言

    介绍编译原理,了解一个新的领域,得去了解它的整体框架

    • 词法分析
      • Thompson算法,子集构造算法(DFA,NFA),Hopcroft算法
    • 语法分析
      • LL(1),消除左递归,提取公共左因子,构造预测分析表,分析过程
      • LR(0),构造DFA,构造LR(0)分析表,进行语法分析,写出过程
      • 短语,巨型,产生式,直接短语,句柄概念
    • 语义分析(语法制导翻译)
      • 逆波兰表示法
      • if,while的逆波兰
    • 中间代码生成(生成汇编)
      • 数组、if、while的中间代码
    • 代码生成优化
      • DAG图的优化
    • 执行汇编(3地址或4地址代码的汇编执行)

    2.词法分析

    1.根据语言写出文法产生式

    2.构造与某一正规式等价自小DFA

    DFA(Deterministic Finite Automation):确定有限自动机

    NFA(Non-Deterministic Finite Automation):非确定有限自动机

    解题步骤:

    • 1.根据正规式画出对应状态的状态转换图
    • 2.根据状态转换图画出对应状态
    • 3.根据状态转化矩阵得到重命名的状态转换矩阵
    • 4.根据重命名状态转换矩阵得出DFA

    3.DFA化简

    解题步骤:

    • 1.划分初态集合和终态集合
    • 2.划分
    • 3.画出新DFA

    4.总结

    3.语法分析

    1.消除左递归

    2.LL(1)分析法

    LL(1)3个条件:

    1.有没有左递归 2.有没有回溯 3.first和follow集合有没有相交

    3.根据产生式画出语法树,写出短语,直接短语,句柄

    4.LR(0)分析法

    4.语义分析

    1.逆波兰表达式(只考算术表达式)
    a+b*c+d的逆波兰为 abc*+d+

    5.中间代码生成

    1.数组,if语句,while的翻译

    5.优化

    DAG图优化

    本文作者:Steve Yu's blog
    本文链接:https://www.cnblogs.com/littlepage/p/12099968.html

    知足上进且温柔
  • 相关阅读:
    java实现网上购物车的简单功能
    java类的访问权限
    linux shell 参数传递
    shell编程之tput
    Linux编程时获取当前时间实例解析
    shell中的引号,单引号,反引号
    Linux 查看Shell类型
    迭代器(lterator)
    在AIX系统下查询硬件信息的方法
    LINUX,HPUX,AIX系统查询主机配置信息
  • 原文地址:https://www.cnblogs.com/nn-y/p/13167244.html
Copyright © 2020-2023  润新知