C의 영향을받는 인기 프로그래밍 언어가 몇 개인 이유 [닫은]

TIOBE 지수 에 따르면 톱 10 프로그래밍 언어 는 C의 영향을 많이받는 것으로 보입니다.

1. 자바

이 언어는 C 및 C ++에서 많은 구문을 파생하지만 더 간단한 객체 모델과 더 적은 수준의 기능을 갖습니다. – wikipedia.org

2. C

C는 가장 널리 사용되는 프로그래밍 언어 중 하나이며 C 컴파일러가 존재하지 않는 컴퓨터 아키텍처는 거의 없습니다. – wikipedia.org

3. C #

.NET Framework를 개발하는 동안 클래스 라이브러리는 원래 SMC (Simple Managed C)라는 관리 코드 컴파일러 시스템을 사용하여 작성되었습니다. 1999 년 1 월 Anders Hejlsberg는 “C-like Object Oriented Language”를 뜻하는 Cool이라는 새로운 언어를 개발할 팀을 구성했습니다. – wikipedia.org

4. C ++

Bjarne Stroustrup은 1979 년 Bell Labs에서 C 언어를 향상시키기 위해 개발했습니다. – wikipedia.org

5. 목표 -C

Objective-C는 스몰 토크 스타일 메시징을 C 프로그래밍 언어에 추가하는 반사 형 객체 지향 프로그래밍 언어입니다. – wikipedia.org

6. PHP

그는이 스크립트를 C 프로그래밍 언어 CGI (Common Gateway Interface) 바이너리로 다시 작성하여 웹 양식을 사용하고 데이터베이스와 통신하는 기능을 추가하고이를 “개인 홈 페이지 / 양식 해석기”또는 PHP / FI라고합니다. – wikipedia.org

8. 파이썬

파이썬은 1980 년대 후반에 고안되었으며 1989 년 12 월 네덜란드 CWI의 귀도 반 로섬 (Guido van Rossum)이 예외 처리 및 Amoeba 운영 체제와 인터페이스 할 수있는 ABC 프로그래밍 언어 (SETL에서 영감을 얻음)의 후계자로 구현되었습니다. – wikipedia.org

ABC (프로그래밍 언어) 설계자는 ABC 프로그램이 일반적으로 동등한 파스칼 또는 C 프로그램 크기의 1/4 정도이며 더 읽기 쉽다고 주장합니다. – wikipedia.org

9. 펄

Perl은 C, 쉘 스크립팅 (sh), AWK 및 sed를 포함한 다른 프로그래밍 언어에서 기능을 차용합니다. – wikipedia.org

10. 자바 스크립트

JavaScript는 C의 영향을받는 구문을 사용합니다.- wikipedia.org

그들 중 대부분은 C에서 구문을 빌리거나 적어도 처음에는 여러 가지 다른 방식으로 많은 영향을받는 것으로 보입니다. 왜?



답변

1970 년대 UNIX의 등장으로 표준 시스템 프로그래밍 언어 C는 빠르게 프로그래밍 세계 의 언어 가되었습니다 . 꽤 오랫동안 C는 모든 프로그래머에게 실질적으로 필수였습니다. 따라서 C가 어떤 식 으로든 그 뒤에 오는 거의 모든 프로그래밍 언어에 영향을 미친다는 사실은 두 가지 이유로 놀랍지 않습니다.

  • 새 언어를 디자인 할 때는 가능한 경우 일반적인 지식으로 간주 될 수있는 널리 사용되는 기존 언어를 기반으로 구문을 분석하는 것이 좋습니다.
  • 학습 곡선이 얕 으면 새로운 언어가 성공할 가능성이 높으며, 이미 알려진 언어와 유사한 구문은 배우기가 더 쉽습니다 (겉으로 유사한 점에도 불구하고 근본적으로 다르게 행동하지 않는 한). 따라서 C에서 구문을 빌리는 언어는 일반적으로 그렇지 않은 언어보다 더 빨리 견인력을 얻습니다.

그러나 다른 언어가 존재했지만 여전히 C를 포섭하는 일부 언어도 있습니다 .LISP 패밀리 (CL, Clojure 및 Scheme이 가장 인기있는 현대 방언 임), ML 가족 (몇 가지 현대적인 방언 포함), 전체 군대가 있습니다. 기본 방언 (VB.NET 및 VBA는 최신 구현), 파스칼과 그 친척 (Delphi가 가장 잘 알려진 언어) 및 다른 많은 언어의 영향을 받아 여러 가지 자체를 발명 한 많은 ‘oddball’언어가 있습니다. 예를 들어 Go, Python, Lua, Haskell (및 이전 버전 인 Miranda), Prolog 및 Erlang이 있습니다. 이 언어들 (파이썬 제외) 중 어느 것도 상위 10 개 언어에 속하지는 않지만, 대부분의 언어는 안정적인 사용자 기반과 활발한 커뮤니티를 가지고 있습니다. 그들은 확실히 떠나지 않을 것입니다.

또한 이러한 언어에서 C의 영향은 거의 100 % C 호환 언어 C ++ 및 Objective-C에서 Python (고의적으로 많은 C의 구문 기능을 포기 함)에 이르기까지 크게 다릅니다. 그리고 그것은 구문에 불과합니다. 의미 론적으로, 그 목록에있는 대부분의 언어는 C와 공통점이 많지 않습니다. 압도적 인 대다수는 언어에 메모리 관리 기능이 내장되어 있으므로 복사 의미론, 인수 전달 등이 있습니다. 매우 다릅니다. 예를 들어, JavaScript는 Scheme의 의미에 큰 영향을 미치며, 구문은 Java와 유사하게 설계되었습니다 (이는 의미론이 아닌 C의 비트 및 조각 구문을 기반으로 함). 다른 차이점은 (C와 하위 호환되는 C ++ 및 Objective-C를 제외하고) 오류 처리, 범위 규칙,#include) 및 이러한 많은 언어가 ‘가상화’되었다는 사실, 즉 인터프리터, JIT 컴파일러 또는 가상 머신에서 실행됩니다.

그건 그렇고, 파이썬은 C에 영향을 미치지 만 C에 기반을두고 있지는 않습니다. 문법과 의미는 C와는 크게 다르며 이것은 의도적으로 설계된 것입니다. 파이썬은 다른 대안이 똑같이 “좋은”( import this파이썬 인터프리터에서 “Zen of Python”에 따라) C에서 기능을 빌려옵니다 .

프로그래밍의 미래에 관해서는; 예측은 다양합니다. C의 영향은 사라지지 않지만 최근의 하드웨어 개발 (멀티 코어 머신이 일반화되고 강력한 GPU, CPU가 일반적인 성능 병목 현상이되고 CPU 속도가 빠르며 안정적인 네트워크 연결 등이되고 있음)의 프로그래밍은 근본적으로 다른 프로그래밍 방식을 요구합니다. 일반적으로. 명령형 언어로 다중 스레드 분산 응용 프로그램을 작성한 사람이라면 누구나 어렵다는 것을 알 수 있지만 Haskell과 같은 언어는 대부분의 일반적인 문제를 제거하고 분산, 동시 및 병렬 처리에 대한 더 추상적이고 구조적인 접근 방식을 제공하는 기능을 가지고 있습니다 (이 맥락에서 순도는 중요한 개념이다). 최신 프로그래밍 언어 (예 : C # 또는 D)에는 이미 이러한 관용구를 지원하는 많은 기능이 포함되어 있습니다. 어쨌든


답변

이것은 왜 영어가 미국에서 지배적 인 언어인지 묻는 것과 매우 흡사합니다. 왜 스페인어 나 프랑스어가 아닙니까? 그들은 영국 식민지보다 더 많은 미국 영토를 통제했습니다. 왜 네덜란드어가 아닙니까? 최초의 미국 수도는 전 네덜란드 식민지였습니다. 이에 대한 “답변”이있을 수 있는지 잘 모르겠습니다.

그러나 “컴퓨터 언어 기록”타임 라인 ( http://www.levenez.com/lang/ )은 가능한 모든 답변을 제공합니다.


답변

새로운 프로그래밍 언어를 만드는 경우 널리 사용되는 기존 언어와 비슷한 구문을 사용하면 새로운 사용자가 쉽게 배울 수 있습니다. 특히 언어간에 많은 개념이 유사한 경우.

또한 C 스타일 구문은 비교적 읽기 쉽다고 생각합니다. Pascal과 비교할 때 코드 블록에 “{“및 “}”기호를 사용하는 것은 식별자와 광학적으로 매우 유사한 “시작”및 “끝”보다 읽기 쉽습니다. 파이썬은 훨씬 더 읽기 쉽지만 구문에 공백을 포함 시키면 편집에 새로운 문제가 생깁니다. 또 다른 예 : Lisp와 JavaScript는 몇 가지 아이디어를 공유하지만 C 스타일 구문으로 동일한 내용을 작성하면 덜 모호합니다.

모든 사람들이 자신이 좋아하는 언어를 가지고 있기 때문에 많은 사람들이 두 번째 단락에 동의하지 않을 것이라고 확신하지만 C 스타일 구문의 인기는 부분적으로 역사적인 우연의 일치라고 생각합니다. 결정.


답변

프로그래밍 언어는 자연 언어와 마찬가지로 시간이 지남에 따라 진화하며, 일부 오래된 언어는 다른 언어보다 더 강력한 방식으로 진화하는 데 영향을 미치며 다른 언어는 모호하게 사라지고 그 영향이 표면 수준, 즉 구문에서 추적하기가 더 어렵습니다.

C의 영향은 여러 출처에서 비롯됩니다. 낮은 수준이고 널리 퍼져 있으며 Unix와 Microsoft 서클 모두에서 지원했습니다. 그것은 또한 가장 적합한 이슈의 생존이기도하다. 1970 년대와 1980 년대에 간장 한 C- 유사 구문이 파스칼과 다른 C의 경쟁자에 대한 장황한 Algol 파생 구문보다 더 매력적이라는 것을 쉽게 알 수있다. 따라서 그것은 그 뒤를 따르는 언어들에 의해 널리 채택되었습니다.

현재 멀티 스레드 프로그래밍의 중요성이 커지고 기능 언어가 특히 적합 해짐에 따라 앞으로 그 영향이 커질 것입니다. 적절한 예 : 파이썬, 심지어 질문 게시물에 해당 목록을 만들었습니다.

숙고 할 언어 역사의 멋진 타임 라인보기


답변

당신이 열거 한 대부분의 언어는 C와 관련이 없으며, 관련없는 구문상의 유사점과는 별개입니다. 실제 C 파생물은 Objective-C와 C ++뿐입니다.


답변