概述
语法分析器的任务是判断单词流表示的输入程序在程序设计语言中是否是一个有效的句子,为达到这个目标,语法分析器使用程序设计语言的语法,以为输入程序构建一个推导。
上下问无关语法(CFG),这周符号表示法用于规定程序设计语言的语法,上下问无关语法开发了几种技术在给定语法和输入程序的情况下,可用于查找使用与输入程序的推导。
简介
语法分析是编译器前端中的第二个阶段。语法分析器处理由词法分析器转换生成的程序,从语法分析器的视角来看,输入的程序是一个单词流,其中各个单词都标注了语法范畴(词类).语法分析器为该程序推导一个语法结构,将各个单词适配到源程序设计语言的语法模型中。如果语法分析器确定输入流是一个有效程序,它将构建该程序的一个具体模型,供编译的后续各阶段使用。如果输人流不是一个有效程序,语法分析器将向用户报告问题和适当的诊断信息。
概念路线图
语法分析器的主要任务是,确定输入程序在源语言中是否是一个语法上有效的语句。在我们可以构建回答该问题的语法分析器之前,我们既需要一种形式化的机制来规定源语言的语法,又需要一种系统化的方法,来判定输人程序是否属于这种形式化定义的语言(即成员资格问题).通过将源语言的形式限制到一个称为上下文无关语言( context- free language)的语言集
小结和展望
几乎每个编译器都包含一个语法分析器,语法分析曾经是人们很感兴趣的主题。LR(1)语法族包含了所有能够以确定性方式解析的上下问无关语法,