使用c语言完成的简单c0文法编译器的实现,文法为: <加法运算符> ::= +|- 1<乘法运算符>  ::= *|/ 1<关系运算符>  ::=  <||>=|!=|== 1<字母>   ::= _|a|...|z|A|...|Z 1<数字>   ::= 0|<非零数字> 1<非零数字>  ::= 1|...|9 <字符>    ::=   '<加法运算符>'|'<乘法运算符>'|'<字母>'|'<数字>' //字符不能为空 <字符串>   ::=  "{十进制编码为32,33,35-126的ASCII字符}" //字符串可以为空 <程序>    ::= [<常量说明>][<变量说明>]{<有返回值函数定义>|<无返回值函数定义>}<主函数> 1<常量说明> ::=  const<常量定义>;{ const<常量定义>;} 1<常量定义>   ::=   int<标识符>=<整数>{,<标识符>=<整数>}                             | char<标识符>=<字符>{,<标识符>=<字符>} 1<无符号整数>  ::= <非零数字>{<数字>} //无符号整数不能有0 1<整数>        ::= [+|-]<无符号整数>|0 //无符号整数属于整数 1<标识符>    ::=  <字母>{<字母>|<数字>} <声明头部>   ::=  int<标识符> |char<标识符> <变量说明>  ::= <变量定义>;{<变量定义>;} <变量定义>  ::= <类型标识符>(<标识符>|<标识符>‘[’<无符号整数>‘]’){,<标识符>|<标识符>‘[’<无符号整数>‘]’ } <常量>   ::=  <整数>|<字符> <类型标识符>      ::=  int | char <有返回值函数定义>  ::=  <声明头部>‘(’<参数>‘)’ ‘{’<复合语句>‘}’ <无返回值函数定义>  ::= void<标识符>‘(’<参数>‘)’‘{’<复合语句>‘}’ 1<复合语句>   ::=  [<常量说明>][<变量说明>]<语句列> 1<参数>    ::= <参数表> 1<参数表>    ::=  <类型标识符><标识符>{,<类型标识符><标识符>}|<空> 1<主函数>    ::= void main‘(’‘)’ ‘{’<复合语句>‘}’ 1<表达式>    ::= [+|-]<项>{<加法运算符><项>} 1<项>     ::= <因子>{<乘法运算符><因子>} 1<因子>    ::= <标识符>|<标识符>‘[’<表达式>‘]’|<整数>|<字符>|<有返回值函数调用语句>|‘(’<表达式>‘)’   <有返回值函数调用语句> ::= <标识符>‘(’<值参数表>‘)’        <语句>    ::= <条件语句>|<循环语句>| ‘{’<语句列>‘}’|<有返回值函数调用语句>;                        | <无返回值函数调用语句>;|<赋值语句>;|<读语句>;|<写语句>;|<空>;|<情况语句>|<返回语句>; <赋值语句>   ::=  <标识符>=<表达式>|<标识符>‘[’<表达式>‘]’=<表达式> <条件语句>  ::=  if ‘(’<条件>‘)’<语句>[else<语句>] <条件>    ::=  <表达式><关系运算符><表达式>|<表达式> //表达式为0条件为假,否则为真 <循环语句>   ::=  for‘(’<标识符>=<表达式>;<条件>;<标识符>=<标识符>(+|-)<步长>‘)’<语句> <步长>    ::=  <非零数字>{<数字>} <情况语句>  ::=  switch ‘(’<表达式>‘)’ ‘{’<情况表><缺省>‘}’ <情况表>   ::=  <情况子语句>{<情况子语句>} <情况子语句>  ::=  case<常量>:<语句> <缺省>   ::=  default : <语句> <无返回值函数调用语句> ::= <标识符>‘(’<值参数表>‘)’ <值参数表>   ::= <表达式>{,<表达式>}|<空> <语句列>   ::= {<语句>}//出现多次或0次ET <读语句>    ::=  scanf ‘(’<标识符>{,<标识符>}‘)’ <写语句>    ::= printf ‘(’ <字符串>,<表达式> ‘)’| printf ‘(’<字符串> ‘)’| printf ‘(’<表达式>‘)’ <返回语句>   ::=  return[‘(’<表达式>‘)’]
2020-04-04 00:05:38 20KB compiler
1
c0文法的编译器,词法分析, 文法分析,目标代码生成,目标代码的执行系统一应俱全。为北航编译技术的课程设计之一。 另有c0文法编译器的java实现,包含代码优化(dag图优化,删除公共子表达式、删除无效赋值等)、寄存器分配,目标代码为汇编码。需要者请单独跟本人联系。
2020-01-03 11:17:15 9KB c0 编译器 pcode c语言实现
1
自己做的编译课程大作业,简单的C0编译器,生成至中间代码(四元式)
2019-12-21 21:36:41 317KB c 编译器 中间代码 四元式
1
一个能编译运行大部分C0语句的编译器。北航大三上编译原理课设作业,最终得分88。有充足的注释说明,供需要的同学参考(切勿抄袭哦~)。
2019-12-21 21:28:28 31KB C0 编译器 北航 编译课设
1
用于北航本科编译原理与技术课程参考资料。资源内为C++语言实现的C0文法编译器源码,通过文件读取源程序,实现了词法分析,语法分析,语义分析,和执行等功能。vs2012编译通过。
2019-12-21 21:26:23 12KB 编译 C0 compiler 北航
1
本人大三期间做的作业,支持函数调用、多层循环、条件判断等,除全局变量外基本功能大致都有实现,里面有十几个测试程序
2019-12-21 21:12:18 99KB C0、编译原理
1
C0编译器编译原理实验 C0编译器的 设计与实现原创-当年我们交的作业被评为优秀作业!!!要不是毕业好几年我都不舍得分享出来!!!还有配套代码在我的博客 https://me.csdn.net/download/qq_27500493
1
C0编译器编译原理实验 C0编译器的 设计与实现原创-当年我们交的作业被评为优秀作业!!!要不是毕业好几年我都不舍得分享出来!!!还有配套代码在我的博客 CTRL+D收藏一下或者关注走一波-有你所需!不断更新! 其他相关下载,配套代码以及PPT。稳妥的小老弟 https://me.csdn.net/download/qq_27500493
2019-12-21 20:37:07 138KB C0编译器实现 c0编译器代码 c0编译器
1
一个简单的C0编译器,附带文法说明和源码
2019-12-21 20:32:34 71KB C0,编译器
1
c0是一个简化版的c源码编译器,符合大多数学校的编译原理课程需要,可扩充。
2019-12-21 19:56:11 15KB c0编译器 源码
1