第四章 语法分析——自上而下分析

1.总结

    语法分析的过程分两种,自上而下的推导、自下而上的规约,本章学习的重点为前者。

    语法分析是编译过程的核心部分,它的任务是在词法分析把字符串识别出单词符号串的基础上,分析并判定程序的语法结构是否符合语法规则。

    如何判断一个输入串是否符合语法规则呢,既语法分析的两种方式,或者从文法的起始符出发进行句子的推导,从句子本身出发,进行归约,看能否把句子规约为到起始符。分析之后获得一颗构造的语法树。

    自上而下推导的基本思想是,尝试一切可能的方法从根节点触发,根据文法自上而下地为输入串建立一棵语法树,为输入串寻找一个最左推导,其本质是反复使用不同产生式谋求匹配输入串的试探过程。

    自上而下分析遇到的主要问题是文法的左递归、回溯的不确定性和虚假匹配问题等,解决这些问题我们使用LL(1)分析法。

    当一个文法满足一下三个条件时被称作LL(1)文法:

    (1)文法不含左递归

    (2)对文法中每一个非终结符A的各个产生式的候选首符集两两不相交

    (3)对文法中每一个非终结符A,若它存在某个候选首符集包含ε,则A的候选首符集与它的后跟符号集两两不相交

2.作业




3.感悟

    LL(1)分析法中,消除左递归很容易理解,FIRST集和FOLLOW集很难。好在,做课后题的过程中,通过对比答案,通过具体实例理解了它们。

猜你喜欢

转载自blog.csdn.net/demagogic/article/details/80717252