我最近试图找出导致在c语言和same family的其他语言中对块(复合语句)使用大括号的原因。
认为数组的方括号或改变运算符优先级的圆括号似乎来自于用于这些事情的mathematicalnotation,所以这对我来说是有意义的。分号也很有意义,它的意思是分隔related sentences with independent clauses,它在c中做了类似的事情。
但我找不到类似的花括号:它们在数学中用于sets,它们在合奏音阶中的用法是相似的,它们用来表示所有音阶上的音乐是同时演奏的(虽然用法不完全相同,但我认为它比它们在数学中用于集合的用法更接近)。
另外,我想知道C到底是第一个引入这种块语法的语言,还是只是普及了它?

最佳答案

第一个curly brace programming language是1966年的BCPL,尽管它允许$($){}之外划分块。
bcpl是基于CPL的,它使用不寻常的(对现代程序员来说)§来打开一个块,并用一条线穿过同一个符号来关闭块。martin richards是"How BCPL evolved from CPL":中bcpl的发明者,他说:
cpl使用一个节符号(§)来等价于algol的BEGIN
用斜线套印以表示END的节符号。采用BCPL
$($)对于这些令牌以及对于cpl,这样的节括号可以
被标记,允许闭合段括号闭合多个
部分。不幸的是,这个惯例导致了相当模糊的
当花括号({})变成
可用,它们仅用作未标记的节括号和
不鼓励使用$($)
花括号是通过B(1969)发展到c(1972)的。

10-06 03:53