2013-07-26 43 views
1

我对这个编程挑战感到困惑 - 我不知道它是什么语言(这是乐趣的一部分,但我需要一些帮助)。 我并不是在寻找挑战的答案,即在代码中发现错误,所以不要为我破坏它。我只需要找到它所用的优秀语言。代码挑战的前提是代码中只有一行存在缺陷,所以我们必须接受多行代码中的所有内容。这段代码的编程语言是什么?

我试图妄图搞清楚。我看过rosettacode,在这里我找不到任何东西。它看起来最接近Algol 60,但它并不严格定义那里的Algol 60。有各种各样的问题。首先,评论从%开始,就像在Erlang中一样。在Algol 60中,define不在任何位置,也不是奇数<unsigned number> #语法。 Algol 60还使用了标识符的转义语法(它们有一个单独的命名空间,通常以粗体打印) - 这是无处可见的。

看看我熟悉的不太流行的东西,它不在IEC 61131-3中,也不是HAL/S。

begin 

    % Speed of light in meters/second 
    define c=2.99792458e8#; 

    % Convert frequency in Hz to free-space wavelength in meters. 
    real procedure wavelength(frequency); 
    value frequency; 
    real frequency; 
    wavelength := c/frequency; 

    real f, lambda; 

    lambda := wavelength(f); 
end. 

回答

0

第8周的Circuit Cellar Code Challenge现已关闭。这个挑战的作者已经搞砸了,我会随身携带,顺便说一句。

语言 Algol 正如我所说的。 Algol没有这样的东西,Algol 68是一个完全不同的野兽!错误与“指数”有关,据推测正确的是define [email protected]

唉,那一周的挑战是虚假的,因为他们已经拿起了一些模糊的Algol 60实现,而不是标准的,所以我对他们很生气。在代码挑战中如此晦涩难懂,应该可以由作者以外的人解决。我的意思是说,如果没有一个站点上的stackoverflow的暴露将会有一个指向该片段所在的Algol 60的不明变体的指针,那么他们是否认真考虑会有任何答案?

对于这里的大多数人来说,它甚至不是很明显,它是 Algol 60,尽管Algol 60在计算历史上算是一件大事。 Backus-Naur形式直接来自Revised Report on the Algorithmic Language Algol 60

在寻找答案时,我一直在运行Whetstone Algol从1960年代中期仿真英国电气KDF9。尽管我在首次将其转换为标准Algol 60表单(没有定义,没有评论,特殊处理关键字)后才开始编译,但似乎没有挑战代码使用该特定变体。

+0

你需要知道确切的语法,才能找到自由变量?我想你的投诉信将会让他们的日子变得更加光明。 – Marcin

+0

自由变量不是问题。即使它是像C或Pascal这样的现代语言也不会。 –

+0

“像C或Pascal这样的现代语言”Yeahhh。 – Marcin

-4

bug是

f是自由变量。

这使我相信它确实是一种化妆语言,只是为了在抽象中测试你,因为可以在不知道任何语法细节的情况下检测到这个错误。你已经分析了可能的主要候选人,并且它不是真的。如果重点不在于提高语言技能是一个难题,而是为了测试泛型编程技能,这也是有意义的。

我提示你解决这个问题的方法是尝试将其完全翻译成真正的编程语言。将会有一个你无法消除的错误。

我对你的第二个提示是:

是什么拉姆达抽象的目的是什么?

+0

这个问题特别说“*我不是在寻找答案,这是在代码*中找到一个错误”。隐藏文本的目的是什么?这似乎没有任何用处。 –

+0

@BryanOakley目的是为了隐藏答案和第二个暗示,对于那些不想看到的人。一旦你知道答案,结论只能支持。那么,你的投诉到底是什么? – Marcin

+0

我的投诉是,人们专门来此网站寻求答案。如果他们不想看到答案,他们将不会首先来到这里。 –