C # 언어 이름의 유래
저는 C 및 C ++ 프로그래머이며 현재 C #을 배우려고합니다. 나는 Wrox 출판물 에서 책 Professional C # 을 구입했습니다 .
C에서 C ++로 마이그레이션하는 동안 왜 ++
C에 추가 되었는지 의문이 들었습니다 . 나중에 ++
는 증분 연산자이며 'Object Oriented Extension'을 제공하기 위해 C에 추가 되었음을 깨달았습니다 .
C #에서 의의는 #
무엇입니까?
"C 샤프"라는 이름은 악보에서 영감을 얻었습니다. 샤프는 음이 반 단계 더 높아야 함을 나타냅니다. [6] 이것은 C ++의 언어 이름과 유사합니다. 여기서 "++"는 변수가 1 씩 증가해야 함을 나타냅니다. 날카로운 기호는 또한 4 개의 "+"기호 (2x2 그리드)의 합자와 유사합니다. 언어가 C ++의 증분임을 암시합니다.
디스플레이 (표준 글꼴, 브라우저 등)의 기술적 한계와 표준 키보드에 날카로운 기호 (♯, U + 266F, MUSIC SHARP SIGN)가 없다는 사실로 인해 숫자 기호 (#, U + 0023)가 , NUMBER SIGN)는 프로그래밍 언어의 서면 이름에서 날카로운 기호를 나타 내기 위해 선택되었습니다. [7] 이 규칙은 ECMA-334 C # 언어 사양에 반영됩니다. 삼 그러나 그렇게하는 것이 실용적인 경우 (예 : 광고 또는 박스 아트 [8]) Microsoft는 의도 한 음악 기호를 사용합니다.
또한 이 인터뷰 에서 Anders Hejlseberg는 다음과 같이 말합니다.
"우리는 이름에 언어의 C 유산을 언급하고 싶었고 마침내 C #에 정착했습니다. 제가 기억하는 다른 후보로는 eC, Safe C, C-square, C-cube, C-prime, C-star, Cesium이 있습니다. … 지금은 우리의 선택에 매우 만족합니다. "
마지막으로 Naomi Hamilton은 Anders Hejlseberg에게 직접 질문했습니다 .
[NH] 원래 언어 이름이 Cool이었던 이유는 무엇이며 C #으로의 변경을 촉진 한 이유는 무엇입니까?
[AH] 코드 명은 Cool로 'C like Object Oriented Language'를 의미했습니다. 우리는 그 이름이 마음에 들었습니다. 우리의 모든 파일은 .cool이라고 불렸고 멋졌습니다! 우리는 최종 제품의 이름을 유지하기 위해 진지하게 생각했지만, 너무 많은 멋진 것들이 있었기 때문에 상표 관점에서는 실현 불가능했습니다.
그래서 명명위원회가 일을 시작해야했고 우리는 거기에 C에 대한 고유 한 참조가 있다는 개념과 C ++에 대한 약간의 단어 놀이가 마음에 들었습니다. 예리한 기호를 4 개의 플러스로 볼 수 있기 때문에 C ++++입니다. . 그리고 음악적 측면도 흥미로 웠습니다. 그래서 C #은 그랬고 실제로 그 이름에 정말 만족했습니다. 그것은 우리에게 잘 봉사했습니다.
이것이 프로그래머의 웹 사이트라는 점을 감안할 때 Microsoft 프로그래머가 프로젝트 작업을 할 때 사용한 이름 인 "실제 이름"을 나열하는 것이 흥미로울 것입니다. 이러한 이름은 고고학 기록처럼 CLR (Rotor), SDK 헤더 파일 및 참조 소스의 소스 코드에 표시되는 경향이 있습니다.
C #은 COOL (C-like Object Oriented Language)로 시작되었습니다. Rotor 메이크 파일은 초기 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 소스 코드는 COR과 구별되는 EE 약어를 매우 일반적으로 사용하며 Execution Engine의 약어이며 CLR 코드 기반의 일부 변경 사항을 사용하여 관리 코드를 실행합니다.
내가 본 내부 프로젝트 이름 :
- Rainier : Visual Studio 2002
- Everett : Visual Studio 2003
- Whidbey : Visual Studio 2005
- 오르카 : Visual Studio 2008
- 하와이 : Visual Studio 2010 (초기)
- Rotor : CLR의 공유 소스 버전
- Avalon : WPF
- 인디고 : WCF
- 유콘 : SQL Server 2005
- Katmai : SQL Server 2008
- Strike : CLR의 첫 번째 버전을 디버깅하는 데 사용되는 사용자 지정 디버거 확장으로, SOS (Son of Strike)로 발전했습니다.
1991 년 Al Stevens는 Dr. Dobbs Journal (DDJ)에 D-Flat을 소개했습니다. 사용자 인터페이스 구축을위한 DOS 기반의 이벤트 기반 프레임 워크 ( http://www.ddj.com/184408553 참조 ). 당시 D-Flat은 Al Stevens가 DDJ에 대한 C 프로그래밍 칼럼을 썼기 때문에 C로 작성되었습니다. C ++라는 이름은 이미 사용되었고 그는 C-Sharp를 고려했지만 누군가 이미 그것을 생각했다고 확신했습니다 ( http://www.ddj.com/184410858 참조 ). 제 생각에는 Al Stevens는 D-Flat이 변덕스럽지 않고 언어 경험이 많았 기 때문에 C-Sharp라는 이름에 대해 오랫동안 생각해 왔습니다.
이 설명을보십시오 : http://www.jameskovacs.com/blog/CNETHistoryLesson.aspx
C # 이름은 음악적으로 영감을 받았습니다. C / C ++보다 한 단계 위 단계 인 C 스타일 언어로, 샤프 (#)는 음표 위의 반음을 의미합니다.
'#'은 실제로 음악적 예리한 기호를 의미합니다. ++는 C ++가 C 증가, #은 C ++ 증가 또는 C ++++를 나타냅니다. 더 높은 수준의 기능을 제공하는 C 구문을 사용하는 언어입니다.
'#'은 실제로 음악적 예리한 기호를 의미합니다. ++는 C ++가 C 증가, #은 C ++ 증가 또는 C ++++를 나타냅니다. 더 높은 수준의 기능을 제공하는 C 구문을 사용하는 언어입니다.
이에 대한 wikipedia 기사 를 확인하십시오 .
이름 일뿐입니다. # 문자는 C # (C 샤프)가 C 위의 반음임을 의미하는 악보에서 가져옵니다.
C #은 부분적으로 C / C ++를 기반으로하지만 Java 및 Pascal (Delphi)도 기반으로합니다. Java와 마찬가지로 C #은 객체 지향 언어 인 반면 C ++ 및 Pascal은 객체 지향 기능이 추가 된 절차 적 언어입니다.
C #은 음악적으로 영감을받은 이름이며 Polyphonic C #도 있습니다.
다른 곳에서 언급 된 음악적 참고 문헌 외에도 '♯'및 '#'이 두 개의 '+'기호가 겹친 것처럼 보입니다.
결국 그것은 기술적 결정이 아니라 마케팅 결정이었다.
(제외로 : 당시에는 검색 엔진이 "특수"문자를 무시하고 'C'에 대한 결과를 얻을 수 있기 때문에 선택이 좋지 않다고 생각했습니다. 이제 검색 엔진이 더 똑똑해졌습니다.)
C ++가 "Object Oriented Extension"을 사용하는 C 인 반면에 C #은 C 만 구문을 기반으로하지 않고 전체적으로 객체 지향적이며 msil로 컴파일되는 반면 네이티브 C ++는 네이티브 바이너리 코드로 컴파일됩니다.
참고 URL : https://stackoverflow.com/questions/1991345/origin-of-the-c-sharp-language-name
'IT TIP' 카테고리의 다른 글
Windows / C # 개발을위한 임베드 가능한 Webkit 구성 요소가 있습니까? (0) | 2020.10.26 |
---|---|
boost :: shared_ptr이있는 static_cast? (0) | 2020.10.26 |
WeakHashMap은 있지만 WeakSet은없는 이유는 무엇입니까? (0) | 2020.10.26 |
Chrome JavaScript 디버깅-페이지 새로 고침 또는 코드를 통한 중단 사이에 중단 점을 저장하는 방법은 무엇입니까? (0) | 2020.10.26 |
매개 변수 변경시 Angular Directive 새로 고침 (0) | 2020.10.26 |