语义和语法有什么区别

2025-04-11 21:11:34
推荐回答(1个)
回答1:

语法正确的语义并不一定正确,比如c语言中函数定义void foo(int a){return 0;}
然后这样调用foo("bar");
显然编译不会通过。语法分析阶段是不会报错的,因为符合语法规范。语义分析阶段会报错,因为违反语义规定(语义分析阶段会进行类型检查)。
语法分析在词法分析输出单词流基础上,根据语言的语法规则注意分析这些单词流则呢组成句子,并说明句子是怎样组成程序,并能进行语法检查,而语义分析是根据语法结构分析其含义。

能理解成语法分析是从词中找出句子,而语义分析是在句子的基础上进行理解,并断句么?有人能举更好的例子么,总觉得不是理解的很透彻~谢谢~