代码之家  ›  专栏  ›  技术社区  ›  Brandon

字符串转义码(\n、\t…)是从哪里产生的?

  •  3
  • Brandon  · 技术社区  · 15 年前

    纯粹的好奇…因为它们现在还在C中使用…

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

    1 回复  |  直到 15 年前
        1
  •  3
  •   Michael Dillon    15 年前

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

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

    我不记得在b之前看到过反斜杠符号,而且由于c和unix从b继承了它,我认为b是这个符号的起源,或者更具体地说,贝尔实验室是起源。完全有可能这种符号在贝尔实验室B之前的其他软件中被使用,因为他们是一个多产的软件生产商,其中大部分免费分发给大学,比如我在20世纪70年代中期就读的大学。

    顺便说一下,转义序列的概念早在那之前就已经存在了,可以追溯到19世纪的波多特码,它是一种固定长度的5位二进制代码,旨在取代可变长度的莫尔斯码。波多特有si(移入)和so(移出)代码,就像打字机上的shift键一样,将字母转义为大写字母。