首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java中的词汇、句法或语义错误差异

Java中的词汇、句法或语义错误差异
EN

Stack Overflow用户
提问于 2014-06-04 05:49:21
回答 3查看 4.4K关注 0票数 3

我正在练习词汇、句法和语义上的差异(使用Java语言)。对于下面的集合,我想识别它们是词法错误、句法错误还是语义错误。只是想确保我做的对,并希望得到一些反馈。

代码语言:javascript
运行
复制
a) double if;             Syntactical Error
b) doif (1 ==1);          Syntactical Error
c) x12 = “x12”;           Semantic Error
d) int double = 1.0;      Syntactical Error
e) 0-;                    Syntactical Error
f) int a = 09 – 90;       Syntactical Error
g) int $10 = 10;          No Error
h) char $dollar = ‘$’;    No Error

我觉得我错过了最后两件事。不过,我使用Eclipse进行了检查,但没有显示任何错误。这真的“没有错误”吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-06-04 05:53:07

“没有错误”确实是正确的。美元符号是否允许--包括在-- Java标识符的开头 (尽管JLS建议只在机械生成的代码中使用它,或者用于访问遗留系统上已有的名称)。

票数 0
EN

Stack Overflow用户

发布于 2014-09-21 22:39:50

int a= 09-90;

词法错误八进制数字从零开始,可以使用0-7的数字.因此,09既不是八进制也不是整数。因此,在JAVA中它不是一个令牌。而且,任何在java中不是标记的东西都会出现词法错误。

doif (1 ==1);

语义错误 doif是一个完美的标识符(函数名),我们在这里传递它(1==1),它是真值。因此,这个例子遵循'function‘的语法。但是,这里的问题是doif函数在使用之前没有定义。标识符的未初始化使用会导致语义错误。因此,给定的示例是一种语义错误。

票数 1
EN

Stack Overflow用户

发布于 2018-08-20 07:48:47

对于任何语言,词汇、句法或语义错误都可以如下所示

词法分析-检查语言中是否存在所有标记。例如,foo a=1; foo在java中不是令牌/关键字,所以词法错误。

句法分析-检查所有语句是否符合语法规则。int 1a=0;没有词汇错误,但语法错误。不遵循命名标识符的语法规则。

语义分析-检查语句是否有意义。int a=1/0;没有词法错误,句法错误,但语义错误。因为零除法是不可能的。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24029944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档