C#语言名称的来源

时间:2010-01-02 11:32:54

标签: c# programming-languages history

我是C和C ++程序员,现在正在尝试学习C#。我已经通过Wrox出版物购买了这本书Professional C#

在从C迁移到C ++时,我怀疑为什么++被添加到C.后来我意识到,因为++是一个增量运算符,它被添加到C只是为了提供一个'面向对象的扩展'。

在C#中,#的意义是什么?

10 个答案:

答案 0 :(得分:108)

  

“C sharp”这个名字的灵感来源于乐谱,其中一个尖锐的表示书面音符应该在音高上高出半步。[6]这类似于C ++的语言名称,其中“++”表示变量应增加1.锐符号也类似于四个“+”符号的连字(在2×2网格中),进一步暗示语言是C ++的增量。

由于显示器(标准字体,浏览器等)的技术限制以及尖锐符号(♯,U + 266F,MUSIC SHARP SIGN)的事实)在标准键盘上不存在,选择数字符号(#,U + 0023,NUMBER SIGN)来表示编程语言书面名称中的尖锐符号。[7]此约定反映在ECMA-334 C#语言规范中。3但是,如果这样做是可行的(例如,在广告或盒子艺术[8]中),Microsoft会使用预期的音乐符号。 / p>

From Wikipedia

此外,在this interview中,Anders Hejlseberg说:

  

“我们希望在名称中引用语言的C遗产,最后以C#为基础。我记得其他一些候选人是eC,Safe C,C-square,C-cube,C-prime,C-star和Cesium ......看起来那些现在我对我们的选择非常满意。“

最后,Naomi Hamilton asked Anders Hejlseberg the question directly

  

[NH]为什么这个语言最初命名为Cool,是什么推动了C#的改变?

     

[AH]代码名称是Cool,代表“C like Object Oriented Language”。我们喜欢这个名字:我们所有的文件都被称为.cool,这很酷!我们认真考虑保留最终产品的名称,但从商标的角度来看这是不可行的,因为那里有很多很酷的东西。

     

所以命名委员会必须开始工作,我们有点喜欢在那里有一个固有的C语言的概念,并且在C ++上有一个小词,因为你可以将尖锐的符号视为四个加号,所以它是C ++++。音乐方面也很有趣。所以C#就是这样,我真的对这个名字很满意。它很适合我们。

答案 1 :(得分:7)

鉴于这是一个程序员的网站,也许有趣的是列出“真实姓名”,即微软程序员在项目工作时使用的名称。这些名称倾向于像考古记录一样出现在CLR(Rotor),SDK头文件和参考源的源代码中。

C#最初是以COOL(类似C语言的面向对象语言)开始的。 Rotor makefile显示早期的C#代码可能已写入.cool文件扩展名的文件中。但是,也有几个地方被命名为COOLC。

CLR有几个名字。它起源于在Windows 2000的COM +上工作的组中的项目,在CLR源代码中有许多对“ComPlus”的引用。托管异常的异常代码是0xe0434f4e,0xe0 +“COM”+ 1。在WinError.h文件中,CLR错误代码使用“URT”,“Universal Run Time”。收缩“Cor”出现在托管接口的许多地方,“COM Object Runtime”。 CLR源代码通常使用EE缩写,不同于COR,Execution Engine的缩写和CLR代码库中的部分更改,以使其执行托管代码。

我见过的内部项目名称:

  • Rainier:Visual Studio 2002
  • Everett:Visual Studio 2003
  • Whidbey:Visual Studio 2005
  • Orcas:Visual Studio 2008
  • 夏威夷:Visual Studio 2010(很早)
  • 转子:CLR的共享源版本
  • Avalon:WPF
  • Indigo:WCF
  • Yukon:SQL Server 2005
  • Katmai:SQL Server 2008
  • Strike:用于调试CLR第一版的自定义调试器扩展,演变为SOS(罢工之子)。

答案 2 :(得分:6)

1991年,Al Stevens在Dr. Dobbs Journal(DDJ)中介绍了D-Flat;用于构建用户界面的基于DOS的事件驱动框架(参见http://www.ddj.com/184408553)。当时,D-Flat是用C语言编写的,因为Al Stevens编写了DDJ的C编程专栏。 C ++的名字已经被采用,他曾考虑过C-Sharp,但他确信有人已经考虑过它(见http://www.ddj.com/184410858)。我的观点是,Al Stevens长期以来一直在考虑C-Sharp这个名字,因为D-Flat不是一时兴起,他有很多语言经验。

答案 3 :(得分:4)

看看这个解释:http://www.jameskovacs.com/blog/CNETHistoryLesson.aspx

  

C#名字受到音乐启发。它是   一种C风格的语言,这是一个步骤   在C / C ++以上,其中sharp(#)表示a   在音符上方半音。

答案 4 :(得分:2)

'#'实际上是一个音乐尖锐的符号 - 因为++表示C ++是C递增,#表示C ++递增,或C ++++;一种具有C语法的语言,提供更高级别的功能。

查看wikipedia article

答案 5 :(得分:2)

'#'实际上是一个音乐尖锐的符号 - 因为++表示C ++是C递增,#表示C ++递增,或C ++++;一种具有C语法的语言,提供更高级别的功能。

答案 6 :(得分:1)

这只是一个名字。 #字符取自音乐符号,意思是C#(C sharp)是C以上半个音符。

C#部分基于C / C ++,但也基于Java和Pascal(Delphi)。与Java一样,C#是面向对象的语言,而C ++和Pascal是过程语言,具有面向对象的附加功能。

答案 7 :(得分:1)

除了其他地方提到的音乐参考,请注意'♯'和'#'看起来像两个'+'符号重叠。

最后,虽然这是一个营销决策,而不是技术决定。

(顺便说一下:当时,我们认为这是一个糟糕的选择,因为搜索引擎会忽略“特殊”字符,你会得到'C'的结果。现在,搜索引擎更聪明。)

答案 8 :(得分:1)

C#是一个受音乐启发的名字,还有Polyphonic C#

答案 9 :(得分:-1)

虽然c ++是带有“面向对象的扩展”的c,但另一方面,c#不仅仅基于c语法而且完全面向对象并且编译为msil而本机c ++编译为本机二进制代码...