gpt4 book ai didi

java - 区分词汇错误和语义错误

转载 作者:行者123 更新时间:2023-11-30 06:52:07 31 4
gpt4 key购买 nike

这两个错误,词汇错误和语义错误有什么区别?

int d = "orange";
inw d = 4;

第一个是语义错误吗?因为你不能将文字分配给 int?至于第二个,单个标记被搞乱了,所以它是词法的?这是我的思考过程,我可能是错的,但我想多了解一点。

最佳答案

确实存在三个公认的解释级别:词汇、句法和语义。词法分析将一串字符转换为标记,句法分析将标记构建为语言中的有效语句,语义分析正确解释这些语句以执行某种算法。

您的第一个错误是语义上的:虽然所有标记都是合法的,但在 Java 中将字符串常量分配给整数变量是不合法的。

您的第二个错误可以归类为词法错误(因为字符串“inw”不是有效关键字)或语法错误(“inw”可能是变量的名称,但在其中包含变量名称是不合法的语法上下文)。

语义错误也可能是语言中合法但不代表预期算法的内容。例如:"1"+ n 是完全有效的代码,但如果它打算进行算术加法,那么它就有语义错误。现代编译器可以发现一些语义错误,但诸如此类的错误取决于程序员的意图。

查看 whats-the-difference-between-syntax-and-semantics 的答案了解更多详情。

关于java - 区分词汇错误和语义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39522765/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com