面临的挑战是要找到一种字符串,这些字符串不能以您选择的编程语言出现在任何合法程序中。这包括注释,字符串或其他“不可执行”的部分。
挑战
- 您的程序可能特定于语言的编译器/解释器/运行时环境的特定版本或实现。如果是这样,请详细说明。
- 仅允许使用标准的编译器/解释器/运行时选项。您不能将一些奇怪的标志传递给编译器以获取特定的结果(例如,传递标志以将警告转换为错误)。
- 如果您的编程语言需要特定的编码(例如UTF-8),则还必须正确编码您的字符串(即,不允许仅由于字符解码错误而失败的字符串)。
- 您提交的文件中的每个人物都必须在法律程序中被允许;也就是说,您不能只使用总是被拒绝的字符。
- 当给出的编译器/解释/运行时必须给出一个错误的任何包含您的字符串作为一个字符串的源代码。该错误不必在程序之间相同-嵌入字符串可能会导致语法错误,而另一嵌入可能会导致运行时错误。
计分
- 每种语言的最短非法字符串将获胜。
- 您应该解释为什么字符串是非法的(为什么它不能出现在合法程序的任何地方)。
- 在评论中提出不正确的解决方案。更具体地说,您应该提供指向TIO或等效文件的链接,以证明包含所建议的子字符串的合法程序(即不产生任何错误的程序)。
- 一些语言(例如Bash,Batch,Perl)允许在不影响有效性的情况下将任意二进制数据附加到程序中(例如
__DATA__
在Perl中使用)。对于这样的语言,你可以提交了可能出现的解决方案只有在这样的后段。确保在回答中记下这一点。(此“跟踪部分”的定义取决于语言,但通常表示解析器完全停止阅读脚本之后的任何文本)。
例
在Python中,我可能会提交
x
"""
'''
但这可以嵌入到较大的程序中
"""
x
"""
'''
y
'''
所以这是不允许的。