evu*_*uez 5 c syntax curly-braces notation
我最近试图找出导致C 语言和同族其他语言中块(复合语句)使用大括号的原因。
认为像数组的方括号或括号来改变运算符优先级似乎来自用于这些事物的数学 符号,所以这对我来说是有意义的。分号也很有意义,它的作用是将相关的句子与独立的子句分开,它的作用与 C 中的类似。
但我找不到与花括号类似的东西:它们用于数学中的集合,并且在某种程度上相似的是它们在乐谱(合奏五线谱)中的使用,其中它们用于指示所有五线谱上的音乐是同时播放(不完全相同的用法,但我认为它比它们在数学中的集合更接近)。
另外,我想知道 C 是否实际上是第一个引入这种块语法的语言,或者它只是普及了它?
第一个大括号编程语言是1966 年的BCPL,尽管它除了和之外还允许用$(和来分隔块。$){}
BCPL 基于CPL,后者使用不寻常的(对现代程序员来说)\xc2\xa7打开一个块,并使用相同的符号和一条线穿过它来关闭该块。BCPL 的发明者 Martin Richards 在《BCPL 如何从 CPL 演变而来》中说道:
\n\n\nCPL 使用节符号 (
\n\xc2\xa7) 等效于 Algol\xe2\x80\x99sBEGIN,并用斜线叠印的 \n 节符号来表示END。BCPL 采用了 这些标记$(,并且$)与 CPL 一样,可以对此类节括号进行标记,从而允许关闭节括号来关闭多个节。不幸的是,这种约定会导致相当晦涩的编程错误,因此当大括号({和})可用时,它们仅用作未标记的节括号,并且使用$(和$)。
大括号通过B ( 1969) 到达 C (1972 )。
\n