gpt4 book ai didi

parsing - Walter Bright 使用 "redundancy"... 或 'The heck does that mean?' 这个词

转载 作者:行者123 更新时间:2023-12-03 14:27:58 26 4
gpt4 key购买 nike

所以我正在阅读 Walter Bright 关于 Bitwise 中的 D 语言的采访( http://www.bitwisemag.com/copy/programming/d/interview/d_programming_language.html ),我遇到了这个关于语言解析的非常有趣的引用:

From a theoretical perspective, however, being able to generate a good diagnostic requires that there be redundancy in the syntax. The redundancy is used to make a guess at what was intended, and the more redundancy, the more likely that guess will be correct. It's like the English language - if we misspell a wrod now and then, or if a word missing, the redundancy enables us to correctly guess the meaning. If there is no redundancy in a language, then any random sequence of characters is a valid program.



现在我想弄清楚当他说“冗余”时他到底是什么意思。

我几乎无法理解最后一部分,他提到可能有一种语言,其中“任何随机字符序列都是有效程序”。我被告知存在三种错误:语法错误、运行时错误和语义错误。是否存在唯一可能的错误是语义错误的语言?组装是这样吗?机器码呢?

最佳答案

我将重点讨论为什么(我认为)Walther Bright 认为冗余是好的。我们以 XML 为例。这个片段:

<foo>...</foo>

有冗余,如果我们使用 S-Expressions 代替,结束标记是冗余的:
(foo ...)

更短,程序员不用输入 foo理解该片段的必要性往往更高。减少冗余。但它也有缺点,例如 http://www.prescod.net/xml/sexprs.html显示:
(document author: "paul@prescod.net"
(para "This is a paragraph " (footnote "(better than the one under there)" ".")
(para "Ha! I made you say \"underwear\"."))


<document author="paul@prescod.net">
<para>This is a paragraph <footnote>(just a little one).</para>
<para>Ha! I made you say "underwear".</para>
</document>

在这两种情况下,都缺少脚注的结束标记/结束括号。一旦解析器看到 </para>,xml 版本就明显无效。 . S-Expression 仅在文档​​末尾无效,并且仅当您在其他地方没有不需要的结束括号时才无效。因此,在某些情况下,冗余确实有助于理解作者的意思(并指出他表达方式中的错误)。

关于parsing - Walter Bright 使用 "redundancy"... 或 'The heck does that mean?' 这个词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3523865/

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