首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Algol 68中,使用反向闭包词来控制结构会产生什么可读性问题?

在Algol 68中,使用反向闭包词来控制结构会产生什么可读性问题?
EN

Stack Overflow用户
提问于 2013-11-17 03:21:44
回答 2查看 689关注 0票数 0

就像在Algol 68中,if语句以fi结尾,而case语句以esac结尾,所以除了保留的单词之外,还有什么其他可读性问题在英语中是没有意义的。

如有任何建议,将不胜感激

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-17 03:43:41

没有真正的可读性问题,这只是你习惯的事情,经过一些经验,问题就从这个过程中消失了。类似于有多少Lisp用户“看不到”括号。对于有经验的读者来说,他们在一般情况下并不突出。

你必须回想起阿尔戈尔的时代,特别是1968年的"68“部分。

fi,esac和od的优点在于,它们清楚地指明了它们正在终止的是哪种块,并且它们只使用一个令牌就可以完成任务。

esac与}一样清晰,这是一个无意义的括号,除非您知道其他情况。{}具有一致性的优点,而不像Pascals开始结束的泛型块序列那样冗长.

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

因此,这是一个短暂的障碍,很快就会随着使用而消失。

票数 4
EN

Stack Overflow用户

发布于 2020-07-13 00:21:52

什么可读性问题?没有。

“分门别类”的方法消除了不明确的地方,否则就会由法令解决。

例如,在Algol 60的语法中,

代码语言:javascript
复制
 if B1 then if B2 then S2 else S3

它是模棱两可的‘那么’的‘其他’配对;它是否有效地像这样?

代码语言:javascript
复制
 if B1 then begin if B2 then S2 else S3 end

或者像这样?

代码语言:javascript
复制
 if B1 then begin if B2 then S2 end else S3

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

代码语言:javascript
复制
 if B1 then if B2 then S2 else S3 fi fi

代码语言:javascript
复制
 if B1 then if B2 then S2 fi else S3 fi

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

与之相比,C和Java之类的语言(通过编写为大括号{ })的可读性有所下降,它们已经回归到“开始/结束”风格。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20026805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档