编程语言在其语法中不允许的东西



有些东西我从来没有在任何编程语言中看到过,我会知道为什么。我相信这些东西可能是有用的。呜,也许当你指出时,解释会很明显。但是我们走吧。

为什么10²在语法上无效? 有时,我们希望通过使用这样的符号(就像在论文中一样)而不是预先计算的值(有时,这是一个很大的数字,并且,第一次看到时会变得有些困难,我相信这是 _ 的目的在 D 和 Java 编程语言中)或者仍然为此调用数学函数。当然,我是说编译器将此变量的值替换为计算值,不要将其保留在运行时。

-在识别符中。为什么 - 不能像 _ 一样接受?(只是Lisp方言)对我来说,int name-size = 14;并不意味着不可读。还是这个"限制"归因于计算机的字符集?

当有人回答我的问题时,我会很高兴。另外,如果您有其他指针要问,只需编辑我的答案并在其版本上发布注释或发布评论即可。

好的,所以你给出的两个具体问题:

  1. 102- 你期望如何输入这个?编程语言倾向于坚持ASCII,除了标识符。请注意,您可以在Java 和 C# 中使用double x = 10e2;...但e形式仅对浮点文字有效,对整数无效。

    正如评论中所指出的,某些语言支持指数 - 但我怀疑它只是被认为不够有用,不值得大多数语言的额外复杂性。

  2. 带有-的标识符会导致带有中缀运算符的语言中的明显歧义:

    int x = 10;
    int y = 4;
    int x-y = 3;
    int z = x-y;
    

    z等于 3(x-y变量的值)还是等于 6(从x中减去y的值)?显然,您可以提出有关会发生什么的规则,但是通过从标识符中的有效字符列表中删除-,可以消除这种歧义。使用_或只是大小写(nameSize)比在语言中提供额外的规则更简单。无论如何,你会在哪里停下来?作为标识符或+的一部分.呢?

一般来说,你应该知道语言很容易受到太多功能的影响。特别是 C# 团队对新功能进入语言的标准有多高持开放态度。每个新功能都必须被设计、指定、实现、测试、记录,然后开发人员必须了解它,如果他们要理解使用它的代码。这并不便宜,所以好的语言设计师自然是保守的。

能做到吗?

2.⁷

1.617 * 10.ⁿ(13)

显然是的。您可以修改 ruby 等语言(定义 utf-8 命名函数和猴子补丁数字类)或在 C++ 中创建用户定义的文字以实现额外的表现力。

应该这样做吗?

您将如何键入这些字符?

你会用哪个Unicode来表示,比如说,欧拉常数?U+2107?

我会说我们坚持我们可以键入并同意的代码。

最新更新