编译是对高级语言源文件进行一系列处理的过程,最终得到可执行的二进制代码(也称为二进制文件)。编译器是一种将一种语言(通常是高级语言)翻译为另一种语言(通常是低级语言)的程序。编译程序的语法分析器接受单词符号作为输入,分析这些单词符号串是否符合语法规则,例如表达式、赋值、循环等,以判断是否构成一个合法的程序。它按照语言所定义的语法规则,分析并检查每条语句是否具有正确的逻辑结构,程序作为最终的语法单位。编译程序的语法规则通常使用上下文无关文法来描述。语法分析方法可以分为两种:自上而下分析和自下而上分析。自上而下分析是从文法的开始符号开始,向下推导生成句子。而自下而上分析采用移进归约的方法,其基本思想是:利用一个寄存符号作为栈,逐个将输入符号移进栈中,当栈顶形成一个产生式的右部时,将栈顶的内容归约为该产生式的左部。