编译原理
Rave1sking
二进制安全
展开
-
【编译原理】手工构造词法分析器
【问题描述】通过设计c语言常见单词的正规文法或正规式,而后得到NFA,再确定化得到DFA,根据DFA的转换矩阵或转换图,用c++语言实现词法分析器。【输入形式】输入一段完整的c语言程序【输出形式】各类单词的token字【样例输入】int main(){ int a = 10; double b = -20.9; if(a<=b) a+=b; return a;}【样例输出】line1:(type, int)l原创 2021-01-09 21:15:22 · 1497 阅读 · 0 评论 -
【编译原理】基于Flex构造词法分析器
【问题描述】设计c语言常见单词的正规式,编制lex源文件,利用flex编译得到词法分析的.c文件,继而对该文件编译得到词法分析器。【输入形式】输入一段c语言程序【输出形式】各类单词的token字,或者给出程序中的单词错误。【样例输入】int main(){ int a = 10; double b = 20.9; if(a <= b) a+=b; else a = 0; return a;}【样例输出】原创 2021-01-09 21:11:46 · 772 阅读 · 0 评论 -
【编译原理】基于LR分析表编写语法分析器
问题【问题描述】已知文法G[E]:E → E + T | TT → (E) | id | id[E]设计LR分析表,并用c++语言编写语法分析器。【输入形式】一个句子【输出形式】句子语法结构正确,输出“Syntax analysis is right”反之输出“Error on syntax analysis”【样例输入】a1+a2【样例输出】Syntax analysis is right【样例说明】【评分标准】根据通过的测试数据个数评分思路0x01 画出LR(0)项目集规范族原创 2021-01-09 21:06:23 · 1023 阅读 · 0 评论 -
【编译原理】用C++编程实现LL(1)语法分析器
【问题描述】给定以下文法G[E]:E->TE′E′->+TE′| ε\varepsilonεT ->FT′T′->*FT′| ε\varepsilonεF -> a | (E)构建LL(1)预测分析表,并用C++编程实现LL(1)语法分析器【输入形式】一个句子【输出形式】若句子语法正确,输出"Syntax analysis is right"若语法语法错误,输出"Error on syntax analysis"注:输出不包括引号【样例输入】a+a原创 2020-12-10 19:35:35 · 4569 阅读 · 0 评论