对于我的理论计算语言类,我们得到了一项家庭作业的任务分配,用一种语言来实现一段代码,该语言只有流量控制语句(没有if语句)。这主要是为了证明你可以用一个while循环写一个图灵完全语言。While语言
对于那些你们谁能够理解语言语法,这里的语言规则:
S -> S;S | while C do S od | id := E
E -> E + T | T | E - T
T -> T * F | F | F/T
F -> id | cons | (E)
C -> E = E | E > E | E < E | E >= E | E <= E | E != E | C and C | C or C | not(C)
这是从我的课堂笔记抄,所以如果有任何缺失或不正确不要怪我!
的一段代码来实现是这样的:
if d = 0 do
x := 1
else
x := a/d
无论如何,如果你想继续前进,编写使用上面的语言规则,勇往直前。否则,请继续写下你最喜欢的语言。但是有一些注意事项!
- 没有if语句或任何其他类型的流控制while循环以外。
- 没有作弊:上面的语法不包括任何中断语句,返回语句或异常。不要使用它们。
我已经为我写了一段代码(我将发布的只是为了证明这不是一个展示我的codez帖子)。我有点好奇其他人能想出什么。
+1需要额外的努力才能获得更多的解决家庭作业的反馈。 – Mostlyharmless 2009-02-03 14:41:57