`
chillwarmoon
  • 浏览: 153207 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

语法和语义的区别

阅读更多

一种语言是合法句子的集合。什么样的句子是合法的呢?可以从两方面来判断:语法和语义。语法是和文法结构有关,然而语义是和按照这个结构所组合的单词符号的意义有关。合理的语法结构并不表明语义是合法的。例如我们常说:我上大学,这个句子是符合语法规则的,也符合语义规则。但是大学上我,虽然符合语法规则,但没有什么意义,所以说是不符合语义的。

在antlr的文法中,可以指定自定义的语言的语法规则的集合。antlr用这些规则来产生识别器来识别该语言的句子。为了遵循语义规则,必须在文法中加入actions或者semantic predicates。actions来测试不同的tokens的“值”和它们之间的关系来决定语义是否合法。例如:在符号表中查找类型名来保证该tokens的“值”是类型而不是变量,这就是语义规则的应用。

分享到:
评论
2 楼 chillwarmoon 2007-05-10  
恩,加上去了。
1 楼 hgq0011 2007-05-10  
这两个概念其实上学时在语文课本(英文)中就说的很明白了。现在更加深刻的理解它们。

相关推荐

Global site tag (gtag.js) - Google Analytics