时间:2016-06-04 07:51:45

标签: c syntax notation curly-braces

我最近试图找到导致在C语言和same family的其他语言中使用花括号(复合语句)的花括号的原因。

对于数组或括号来说,更改运算符优先级的方括号似乎来自用于这些事情的mathematical notation,所以它对我有意义。分号也是有意义的,它意味着分开related sentences with independent clauses,它在C中做类似的事情。

但我找不到类似花括号的东西:它们在数学中用于sets,而在musical notation Ensemble staves 中使用它们的方式类似于它们)他们习惯于表示所有五线谱上的音乐都要同时播放(不完全相同的用途,但我认为它比他们在数学中用于集合更接近)。

另外,我想知道C是否真的是引入这种块语法的第一种语言,还是仅仅推广它?

1 个答案:

答案 0 :(得分:4)

1966年第一个curly brace programming languageBCPL,但除了$($)之外,它允许{}分隔块

BCPL基于CPL,它使用不寻常的(对于现代程序员眼睛)§来打开一个块,并使用相同的符号通过它来关闭块。 BCPL的发明者马丁理查兹在"How BCPL evolved from CPL":中说:

  

CPL使用部分符号(§)等同于Algol的BEGIN和   部分符号用斜杠叠印以表示END。 BCPL采用   对于这些令牌,$($)以及与CPL一样,此类部分括号可以   被标记,允许关闭部分括号关闭多个   部分。不幸的是,这种惯例导致相当模糊   当大括号({})成为编程错误时   可用,它们仅用作未标记的截面括号和   不鼓励使用$($)

大括号通过B(1969)来到C(1972)。