C语言是上下文无关语言,还是上下文有关语言呢?

erqerq126 2011-02-04 07:03:55
如题,能否简单的分析一下? 谢谢。
...全文
572 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
iambic 2011-02-05
  • 打赏
  • 举报
回复
自己看书。
skinnymonkey 2011-02-05
  • 打赏
  • 举报
回复
Context free
qq120848369 2011-02-05
  • 打赏
  • 举报
回复
是编译原理的内容,我简单的理解是不需要判断当前所处的环境,都可以无脑的根据产生式进行变换而不会出现歧义。
ssd189 2011-02-05
  • 打赏
  • 举报
回复
何谓上下文有关无关。
taodm 2011-02-05
  • 打赏
  • 举报
回复
呃,楼主结贴太急了吧。
rushman 2011-02-05
  • 打赏
  • 举报
回复
计算机语言基本上都采用上下文无关文法。
rushman 2011-02-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 taodm 的回复:]如果C语言没有宏。[/Quote]C语言文法不包括宏。
taodm 2011-02-05
  • 打赏
  • 举报
回复
如果C语言没有宏。
erqerq126 2011-02-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 rushman 的回复:]
引用 9 楼 erqerq126 的回复:为什么呢? C语言里面既然有全局变量的概念,那么如果一个函数需要读写这个全局变量,那不就是上下文有关了么?那是逻辑上的相关,不是文法上的相关。
比如说,自然语言中的多义词,在不同的环境下有不同的含义。这就是上下文相关。
基本上,绝大部分计算机语言的语义不管什么环境,其含义都是唯一的。这就是上下文无关。
[/Quote]

谢谢,你这样解释,我觉得醍醐灌顶,忽然开朗啊!
rushman 2011-02-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 erqerq126 的回复:]为什么呢? C语言里面既然有全局变量的概念,那么如果一个函数需要读写这个全局变量,那不就是上下文有关了么?[/Quote]那是逻辑上的相关,不是文法上的相关。
比如说,自然语言中的多义词,在不同的环境下有不同的含义。这就是上下文相关。
基本上,绝大部分计算机语言的语义不管什么环境,其含义都是唯一的。这就是上下文无关。
erqerq126 2011-02-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 dragonbooker 的回复:]
标准C语言采用的是上下文无关文法。
语言大体上可以分为4类:正则表达式,上下文无关文法、上下文有关文法、无约束短语文法。
从语法生成能力上看,依次递减。计算机不够聪明,只能理解使用上下文无关文法来描述的语言,
但现在某些编译器已经具备了少量上下文有关文法描述。但使用无约束短语文法的路还很长很长。。。。
[/Quote]

为什么呢? C语言里面既然有全局变量的概念,那么如果一个函数需要读写这个全局变量,那不就是上下文有关了么?

如何理解这个"上下文",在C语言里,指的是什么?
dragonbooker 2011-02-05
  • 打赏
  • 举报
回复
标准C语言采用的是上下文无关文法。
语言大体上可以分为4类:正则表达式,上下文无关文法、上下文有关文法、无约束短语文法。
从语法生成能力上看,依次递减。计算机不够聪明,只能理解使用上下文无关文法来描述的语言,
但现在某些编译器已经具备了少量上下文有关文法描述。但使用无约束短语文法的路还很长很长。。。。
shiweifu 2011-02-04
  • 打赏
  • 举报
回复
肯定是上下文有关阿。。考试题?

69,364

社区成员

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

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