助力发现火星新陨石坑
|
之战 话说东汉末年,曹操、孙权、刘备在长江赤壁(今湖北蒲圻西北)进行了一次争夺老大位置的大战,这就是有名的赤壁之战。 一、还原赤壁之战 曹操统一北方后,南下打败了刘备,占领荆襄之地后,还想干掉东边的孙权,于是刘备和孙权一起联合抗击曹军八十万大军。
曹操的军队大部分都是北方的,对于水上作战的经验非常欠缺,而且很多士兵晕船,于是曹操命令军队将船尾用铁索相连,减弱了风浪颠簸,利于士兵演练。 汤普森在B中固定并延续到NB然后在C中固定的许多事物之一就是缩写运算符,这些都是为了让扩展后的语言适应当时计算机的内存限制所必需的。例如,汤普森创造了复合赋值运算符( += 为例)以及增量(++)和减量(-)运算符,作为提高语言效率的方法。此举是为了提高效率,导致BCPL的其他运算符被简化——例如,$( 和 $) 被 { 和 } 取代。 我们今天的情况 在许多编程语言中,花括号已经被用作块的主要符号,特别是那些最接近C风格的语言,包括c++、Java、c#和JavaScript。
更有趣的是,新的语言已经采用了大括号的使用,包括Go和Rust。事实上,Go要求对每个条件或循环构造都使用花括号,这是遵循编程专家的观点,即即使语言不需要花括号,程序员也应该对每个可以使用花括号的构造使用花括号。 在这里,开始部分方括号是开始一个块,因为声明紧跟着方括号。 (和) 在C中成为 { 和 } 大约在1968年或1969年,贝尔实验室的肯-汤普森和丹尼斯-里奇开始尝试使用系统编程语言开发操作系统。汤普森其实一开始就尝试使用Fortran进行探索,但当他意识到这不可能时,很快就放弃了。他决定要对BCPL进行修改,使其成为一种更符合自己喜好的系统编程语言,于是开发了B。
B虽然更接近汤普森和里奇想要的系统开发语言,但仍然不能完全满足他们的需求,所以里奇开始为新的B开发另一种语言NB。NB的生命力并不长,最终被一种全新的语言所取代,他们自然而然地称之为C。如果你对C语言是如何从BCPL、B和NB发展而来的感兴趣,我鼓励你阅读丹尼斯-里奇的《C语言的历史》。 你应该能看出来,Algol版本的区块结构让它更像你我今天习惯阅读的代码。 转到BCPL 块结构语言的语法的下一个变化是1967年由剑桥大学的马丁·理查兹(Martin Richards)开发的BCPL语言。在1960年至1967年Algol最初开发期间,编译器和系统开发人员一直在寻找使用机器语言和汇编语言以外的语言开发系统应用程序(如操作系统)的方法。我之所以强调BCPL,是因为C是通过Ken Thompson开发的一种名为B的中间语言,作为BCPL的完善和改进而开发的。 Richards将BCPL开发为一种系统开发语言,它与汇编语言一样高效,但具有更高级别的语法,从而使编码更简单、更高效。这意味着高级语言(如Algol)的许多特性需要以更有效的方式包含在BCPL等语言中。 实现这一效率的方法之一是将一个代码块的指定从单词(begin 和 end)简化为符号。对于复合语句和代码块,Richards选择了符号 $( 代表开头和 )$ 代表结尾,这些符号称为节括号。 在BCPL中,如果 $( 和 )$ 与一个结构体一起使用,比如 if 语句或循环,那么它们就是在限定一个复合语句,如果 $( 包括一些声明,那么它们就是在给一个块划定界限。
例如,下面是BCPL中带有复合语句的 if 语句的写法: (编辑:淮安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
