从哪里找C语言的EBNF

hongfeeling 2004-07-03 09:14:23
我现在需要C语言的EBNF描述,我在C99的规范中,找到的是BNF描述,请问哪里能找到EBNF描述,或者是C语言的语法图
...全文
597 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongfeeling 2004-07-14
  • 打赏
  • 举报
回复
谈不上项目,想实现自己的一个梦——做一个C语言编译器
expert2000 2004-07-12
  • 打赏
  • 举报
回复
学编译原理,就做课程设计的时候用了一下,以后就没有用到过。全忘光了,不知楼主要做什么项目?
hongfeeling 2004-07-12
  • 打赏
  • 举报
回复
是啊,是啊,确实是很困难。
现在正准备写预处理。
想先把EBNF整出来,好方便下一步工作。

慢慢写,写上2,3年,希望能有雏形吧。
要考研,这半年是没 什么时间了。
wisexinlei 2004-07-10
  • 打赏
  • 举报
回复
做词法分析器还可以, 如果是语法分析器就太难了,光是与算符的优先级分析就烦死你。
hongfeeling 2004-07-10
  • 打赏
  • 举报
回复
UP
lbaby 2004-07-03
  • 打赏
  • 举报
回复 1
http://www.csci.csusb.edu/dick/samples/c.syntax.html
看看是不是你想要的
还有:
http://www.csci.csusb.edu/dick/cs620/languages.html#C
好多呢

多用google 搜一下就可以了
o1n 2004-07-03
  • 打赏
  • 举报
回复
上次做<<编译原理>>课设时,语法分析,我用的是对一个给定文法进行识别,用LL1首先消除左递归,之后求first ,follow, select 集.构造LL1分析表,进行语法阶段的判断.
lbaby 2004-07-03
  • 打赏
  • 举报
回复
扩展巴科斯-诺尔范式
编译原理的东西,学的少,惭愧~~~
hongfeeling 2004-07-03
  • 打赏
  • 举报
回复
我想要具体的,详细的,最好是大家的心得。
做实际的东西,比书上的例子难多了,书上的例子有现成的语法图,现在我连语法图都没有,BNF的描述方式在编程的时候很容易遗漏一些语法要素的,如果我找不到现成的EBNF只能自己把BNF转化成EBNF,我怕的是转换的时候出错。

lbaby 2004-07-03
  • 打赏
  • 举报
回复

EBNF 好像是什么"巴什么斯范式"
那BNF呢?

见过一次,好像是跟正则表达式差不多,
up
hcj2002 2004-07-03
  • 打赏
  • 举报
回复
up
o1n 2004-07-03
  • 打赏
  • 举报
回复
语法分析:
LL1 (要消除左递归)
LR
hongfeeling 2004-07-03
  • 打赏
  • 举报
回复
UP 一下。
我 要EBNF是为了做语法分析方便一些。
不知道大家对些C语言的语法分析,有什么见解(手工编码,不使用例如YACC的工具)。
还望高手指教一二
完成对某一种常用高级语言(如Pascal、C语言、PL/0语言)的各类单词进行词法分析。 PL/0语言文法的EBNF描述: 〈程序〉∷= 〈分程序〉。 〈分程序〉∷= [〈常量说明部分〉][〈变量说明部分〉][〈过程说明部分〉]〈语句〉 〈常量说明部分〉∷= CONST〈常量定义〉{。〈常量定义〉}; 〈常量定义〉∷= 〈标志符〉=〈无符号整数〉 〈无符号整数〉∷= 〈数字〉{〈数字〉} 〈变量说明部分〉∷= VAR〈标志符〉{,〈标志符〉}; 〈标志符〉∷= 〈字母〉{〈字母〉|〈数字〉} 〈过程说明部分〉∷= 〈过程首部〉〈分程序〉{;〈过程说明部分〉}; 〈过程首部〉∷= PROCEDURE〈标志符〉; 〈语句〉∷= 〈赋值语句〉|〈条件语句〉|〈当型循环语句〉|〈过程调用语句〉|〈读语句〉|〈写语句〉|〈复合语句〉|〈空〉 〈赋值语句〉∷= 〈标志符〉:=〈表达式〉 〈复合语句〉∷= BEGIN〈语句〉{;〈语句〉}END 〈条件〉∷= 〈表达式〉〈关系运算符〉〈表达式〉|ODD〈表达式〉 〈表达式〉∷= [+|-]〈项〉{〈加法运算符〉〈项〉} 〈项〉∷= 〈因子〉{〈乘法运算符〉〈因子〉} 〈因子〉∷= 〈标志符〉|〈无符号整数〉|‘(’〈表达式〉‘)’ 〈加法运算符〉∷= +|- 〈乘法运算符〉∷= *|/ 〈关系运算符〉∷= =|#|<|>|<=|>= 〈条件语句〉∷= IF〈条件〉THEN〈语句〉 〈过程调用语句〉∷= CALL〈标志符〉 〈当型循环语句〉∷= WHILE〈条件〉DO〈语句〉 〈读语句〉∷= READ‘(’〈标志符〉{,〈标志符〉}‘)’ 〈写语句〉∷= WRITE‘(’〈表达式〉{,〈表达式〉}‘)’ 〈字母〉∷= a|b|…..|X|Y|Z 〈数字〉∷= 0|1|2|…..|8|9

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧