0

like in Algol 68 an if statement ends with fi and a case statement ends with esac , so what are some readability problem other than the reserved words doesn't really make sense in English.

Any suggestions would be appreciated

4

2 回答 2

4

没有真正的可读性问题,它只是你习惯的东西,经过一些经验后,问题就会消失。类似于有多少 Lisp 用户“看不到”括号。对于有经验的读者来说,它们在一般情况下根本不会脱颖而出。

你必须回想起大陵五的时间,尤其是“68”部分,如 1968 年。

fi、esac 和 od 的优点在于它们清楚地表明了它们要终止的块类型,并且它们使用单​​个令牌来完成。

esac 与 } 一样清晰,除非您知道其他情况,否则它是一个无意义的括号。{} 具有一致性的好处,同时比 Pascals 开始 - 结束通用块序列更简洁。

最后,考虑一下英语在计算机语言设计中的主导地位,虽然不会说英语的人最初可能对语言有一些问题,但随着时间的推移,这些问题显然会过去。

因此,这是一个短期障碍,使用后会迅速消失。

于 2013-11-17T03:43:41.220 回答
1

什么可读性问题?没有任何。

“括号”方法消除了由法令解决的歧义。

例如,在 Algol 60 的语法中,在

 if B1 then if B2 then S2 else S3

'then' 与 'else' 配对是模棱两可的;它实际上是这样的吗?

 if B1 then begin if B2 then S2 else S3 end

还是这样?

 if B1 then begin if B2 then S2 end else S3

为了解决这个问题,有一个明确的规则说它是前一种情况。这在 Algol 68 中根本不是问题。这两种情况在语法上是不同的。

 if B1 then if B2 then S2 else S3 fi fi

 if B1 then if B2 then S2 fi else S3 fi

这并不比在算术表达式中使用括号来确定含义更难阅读。

相比之下,已经回归到“开始/结束”样式(通过写成大括号 { })的 C 和 Java 等语言在可读性方面受到了影响。

于 2020-07-13T00:21:52.907 回答