23
您可以证明最复杂的“ Hello world”程序[关闭]
您的老板要求您编写一个“ hello world”程序。由于您获得了代码行的报酬,因此您希望使其尽可能复杂。但是,如果您仅添加无用的代码行,或者显然是无用的或令人困惑的内容,那么您将永远无法通过代码审查获得它。因此,挑战在于: 编写一个“ hello world”程序,该程序在您可以为代码中的每种复杂性给出“合理性”的条件下尽可能复杂。 该程序所需的行为是仅输出一行“ Hello world”(不带引号,但末尾带有换行符),然后成功退出。 “辩解”包括: 流行语兼容性(“现代软件是面向对象的!”) 公认的良好编程习惯(“每个人都知道您应该分开模型和视图”) 可维护性(“如果这样做,我们以后可以更轻松地进行XXX”) 当然还有其他可以证明的理由(在其他情况下)使用真实代码。 显然,愚蠢的理由将不被接受。 另外,您还必须“证明”您选择的语言(因此,如果您选择固有的冗长语言,则必须说明为什么它是“正确”的选择)。有趣的语言,如unlambda相似或INTERCAL是不能接受的(除非你可以给一个非常使用它们很好的理由)。 符合条件的条目的分数计算如下: 每条陈述1分(或您选择的语言所对应的任何陈述)。 对于函数,类型,变量等的每个定义,需要加1分(主函数除外,如适用)。 每个模块的use语句,文件include指令,命名空间using语句或类似名称为1点。 每个源文件1分。 每个必要的前向声明要加1分(如果您可以通过重新排列代码来摆脱它,则必须“证明”选择的排列为什么是“正确”的)。 每个控制结构1点(如果,同时,用于等) 请记住,您必须“调整”每一行。 如果所选语言足够不同,以致无法应用此方案(并且您可以为其使用提供很好的“证明”),请提出一种与您选择的语言最相似的评分方法。 要求参赛者计算其参赛分数并将其写在答案中。