我最近试图找到导致在C语言和same family的其他语言中使用花括号(复合语句)的花括号的原因。
对于数组或括号来说,更改运算符优先级的方括号似乎来自用于这些事情的mathematical notation,所以它对我有意义。分号也是有意义的,它意味着分开related sentences with independent clauses,它在C中做类似的事情。
但我找不到类似花括号的东西:它们在数学中用于sets,而在musical notation( Ensemble staves 中使用它们的方式类似于它们)他们习惯于表示所有五线谱上的音乐都要同时播放(不完全相同的用途,但我认为它比他们在数学中用于集合更接近)。
另外,我想知道C是否真的是引入这种块语法的第一种语言,还是仅仅推广它?
答案 0 :(得分:4)
1966年第一个curly brace programming language为BCPL,但除了$(
和$)
之外,它允许{
和}
分隔块
BCPL基于CPL,它使用不寻常的(对于现代程序员眼睛)§
来打开一个块,并使用相同的符号通过它来关闭块。 BCPL的发明者马丁理查兹在"How BCPL evolved from CPL":中说:
CPL使用部分符号(
§
)等同于Algol的BEGIN
和 部分符号用斜杠叠印以表示END
。 BCPL采用 对于这些令牌,$(
和$)
以及与CPL一样,此类部分括号可以 被标记,允许关闭部分括号关闭多个 部分。不幸的是,这种惯例导致相当模糊 当大括号({
和}
)成为编程错误时 可用,它们仅用作未标记的截面括号和 不鼓励使用$(
和$)
。
大括号通过B(1969)来到C(1972)。