gpt4 book ai didi

language-agnostic - 递归注释的语言支持

转载 作者:行者123 更新时间:2023-12-04 09:01:54 24 4
gpt4 key购买 nike

我使用过的大多数语言都不支持递归注释。

  1. 语言设计者有什么理由选择不实现它吗?
  2. 它是否看似复杂?
  3. 它会产生不良结果吗?

递归注释的例子:

/*
for (int j = 0; j <= SourceTexture.Height; j += SampleSize)
{
...
}

// Comment within comment below:
/*for (int i = 0; i < TextureColour.Length; i++)
{
...
}*/


sourceTexture.SetData<Color>(TextureColour);
*/

编辑:到目前为止,我理解答案的论点(当您在字符串中有注释标记时会出现问题)。但是,让我感到困惑的原因是您现在遇到了这个问题。

例如,我知道下面的代码不会给出预期的结果。

/*
char *str = "/* string";
// Are we now 1 level inside a comment or 2 levels?

*/

printf("Hello world");

/*
char *str2 = "string */";
*/

但在我看来,这与以下情况中的意外结果没有什么不同:

/*
CODE "*/";
*/

这也会产生意想不到的/不希望的结果。

因此,虽然这可能是递归注释的问题,但我认为这不是不这样做的理由,因为它已经是非递归注释的问题。作为一名程序员,我知道编译器的行为是这样的,我会解决它。我不认为使用递归注释来解决同样的问题需要付出更多的努力。

最佳答案

Is there any reason why language designers would choose not to implement this?

这使得词法分析更难实现。

Is it deceptively complex?

恕我直言,不,但这是主观的。

Would it have undesired results?

很难说。您已经发现,即使是普通的 block 注释也会产生问题:

/* print ("*/");    */

我知道 2 种语言有嵌套 block 注释:HaskellFrege .

关于language-agnostic - 递归注释的语言支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7872981/

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