【发布时间】:2014-10-10 07:44:30
【问题描述】:
在我知道的大多数编程语言中,您不能声明一个名称也是关键字的变量。
例如在 Java 中:
public class SomeClass
{
Class<?> clazz = Integer.class; // OK.
Class<?> class = Integer.class; // Compilation error.
}
但是很容易弄清楚什么是什么。阅读它的人不会混淆变量名和类声明,编译器也很可能不会混淆它。
如果我们谈论的是 Java 编程语言,变量名称也一样,例如“for”、“extends”、“goto”或Java key words 中的任何内容。
我们有这个限制的原因是什么?
【问题讨论】:
-
好评论,这听起来像是一个答案。那么是编译速度比的原因吗?
-
这只是一种语言设计选择。 Java 采用了明确、清晰的语法,因为这使代码更具可读性。当然,其他语言以可读性为代价做出了不同的选择。
-
不仅仅是速度。它简化了编译器代码并提高了其可靠性。此外,肯定有一些案例几乎不可能绝对确定地解释。
-
您可以轻松构建编译器不唯一的示例: 采用以下(有效)代码:
while(true);这是带有签名while(boolean)或while循环的方法吗? -
你为什么想要一种语言,可以让源读者产生歧义
标签: java parsing syntax compiler-construction