Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 字符串转义码(\n,\t…)是从哪里产生的?_String_History - Fatal编程技术网

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

String 字符串转义码(\n,\t…)是从哪里产生的?,string,history,String,History,纯粹想知道。。。因为它们现在还在C#中使用 使用字符串转义码的模式从何而来?它最初是用什么语言出现的?哪些语言(如果有的话)以不同的方式解决了这个问题?我怀疑这些转义码起源于B,这是霍尼韦尔6000 GCOS操作系统的高级汇编编程语言。这种语言是贝尔实验室基于一种叫做BCPL的英国语言开发的。由于BCPL相当冗长,B开发人员简化了语法,并添加了大括号等内容来替换BEGIN和END。这就是名称B的来源,因为它是BCPL的缩写形式 后来,贝尔实验室的一些人创建了一种语言,它是B语言的继承者,主要是通

纯粹想知道。。。因为它们现在还在C#中使用


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

我怀疑这些转义码起源于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键一样。

谢谢你,谷歌:这是指ASCII ESC字符和基于它的序列。这并不是说在文字字符串中使用介绍人字符(“\”)以允许插入其他不可打印的ASCII字符。这就是为什么它是注释而不是答案……反斜杠表示法是C开发,B使用星号(“*n”)。错误,BCPL没有
开始
结束
。从内存来看,它是
$(
$)
。我也不记得它特别冗长(除非你说的是它所基于的CPL)。反斜杠转义序列开始于C。B使用星转义序列。