统一门户网站建设规范,手工制作花,试用型网站怎么做,新网站怎样做优化词法说明
(1)关键字 main, int, char, if, else, for, while, void
(2)运算符 - * / !
(3)界符 ; ( ) { }
(4)标识符 ID letter(letter|digit)*
(5)整型常数 NUM digit digit*
(6)空格 ‘ ‘ ‘\n’ ‘\r’ ‘\t’ 空格用来分隔ID,NUM,运算符,界…词法说明
(1)关键字 main, int, char, if, else, for, while, void
(2)运算符 - * / !
(3)界符 ; ( ) { }
(4)标识符 ID letter(letter|digit)*
(5)整型常数 NUM digit digit*
(6)空格 ‘ ‘ ‘\n’ ‘\r’ ‘\t’ 空格用来分隔ID,NUM,运算符,界符和关键字
上下文无关文法描述
程序 :: main()语句块 语句块 :: ‘{’语句串‘}’ 语句串 :: 语句{;语句}; 语句 :: 赋值语句 | 条件语句 | 循环语句 赋值语句 :: ID表达式 条件语句 :: if(条件) 语句块 循环语句 :: while(条件) 语句块 条件 :: 表达式关系运算符表达式 因子 :: ID | NUM | (表达式) 项 :: 因子{*因子 | /因子} 表达式 :: 项{项 | -项} 关系运算符 :: | | | | | !
单词的种别编码方案 词法分析程序的主要算法思想
设置单词种别码用正规式编写词法规则根据正规式构造出识别语言单词的状态转换图让状态转换图中的每一个状态对应一小段程序根据扫描到单词符号的第一个字种类拼出相应的单词符号
语法分析方法的算法思想的详细描述
递归下降语法分析
根据程序语言规则编写上下文无关文法对每一个非终结符构造分析函数根据前导符号来指导函数的选择识别该非终结符所表示的语法成分。当该非终结符的规则有多个时按LL(1)文法的条件能唯一地选择一个候选规则。 ①遇到终结符号a时if(当前输入符号a)读入下一个输入符号 ②遇到非终结符号A时调用A ③遇到规则A → ε if(当前输入符号ϵFOLLOW(A)){ } else error()
语义分析方法的算法思想的详细描述
递归下降语法制导翻译
将语义子程序嵌入到每个递归过程中通过递归子程序内部的局部量和参数传递语义信息。
每个A构造一个函数函数的返回值为A的综合属性出现在A的产生式中的每个符号X的每个属性都在函数中设一个局部变量;A的函数过程中根据当前输入符号决定使用哪个候选式每个产生式对应的程序代码按照从左到右的顺序对b、B、{}分别进行 (1)对带综合属性x的终结符b,存x的值到相应变量中;产生一个匹配b的调用,继续读入下一个输入符号。 (2)对每个B产生一个右边带有函数调用的赋值语句cB()其中c为B的综合属性对应变量。 (3)对{}把动作代码抄进分析器中用代表属性的变量来代替对属性的每一次引用。
赋值语句翻译
在表达式分析函数和项分析函数中加入赋值语句语义分析程序为每个子表达式和项生成四元式在表达式分析函数中下一个读取到的符号仍然为‘’或‘-’则生成临时变量存储计算结果并继续生成四元式项分析函数中则读取到符号为‘*’或‘-’则继续生成四元式算法与表达式分析函数同理。
if语句翻译
在条件语句分析函数中加入if语句翻译处理为if语句生成两条四元式分别为条件成立的跳转和条件不成立的跳转四元式这里应注意通过ntc、nfc、nNXQ变量记录真链、假链和下一条语句的生成式位置先将nNXQ通过bp函数回填到ntc所指四元式中再在if语句语法分析的末尾将if语句的结束位置回填到nfc所指四元式中。
while语句翻译
while语句翻译和if语句相似但要注意while语句语法分析结束后的处理和if不同因为while语句若条件继续成立就会继续执行所以要在末尾多生成一个跳转四元式跳转回while的条件判断四元式。