字符串转义码(\ n,\ t ...)的起源在哪里?

时间:2009-11-04 18:10:35

标签: string history

纯粹想知道......因为他们现在仍然在C#中使用......

使用字符串转义码的模式来自哪里?它最初出现的语言是什么?哪种语言(如果有的话)以不同的方式解决了问题?

1 个答案:

答案 0 :(得分:3)

我怀疑这些转义代码源自B,这是霍尼韦尔6000 GCOS操作系统的高级汇编编程语言。这种语言是在贝尔实验室基于英国语言BCPL开发的。因为BCPL相当冗长,B开发人员简化了语法并添加了诸如括号之类的东西来替换BEGIN和END。这就是B这个名字的来源,因为它是BCPL的缩写形式。

后来,贝尔实验室的一些人创建了一种语言,这是B的继承者,主要是通过添加输入和标准I / O库。因为它是B的继任者,所以他们选择了BCPL这个名字的下一个字母。

我不记得在B之前看到反斜杠表示法,并且由于C和UNIX从B继承了它,我认为B是这种表示法的起源,或者更具体地说,贝尔实验室是原点。这种符号完全有可能在B之前的其他贝尔实验室软件中使用,因为它们是一个多产的软件生产商,其中大部分是免费分发给大学的,比如我在1970年代中期参加的大学。

顺便说一句,转义序列的概念早在此之前就已存在,可追溯到19世纪的Baudot代码,该代码是一个固定长度的5位二进制代码,旨在取代可变长度的摩尔斯电码。 Baudot有SI(Shift In)和SO(Shift Out)代码,它们将字母转换为大写字母,就像打字机上的Shift键一样。