평생 공부하는 빠타박스 블로그 : Learning is Happiness
article thumbnail
SMALL

C++은 기존의 C언어에 여러가지 기능을 추가하여 만든 프로그래밍 언어

 

C는 절차 지향언어 

C++은 객체 지향언어 

 

C++은 C언어에서 절차 지향적 언어의 특징을 가져오고

Simula에서 클래스를 사용하는 객체 지향언어의 특징을 가져왔다.

동시에 템플릿으로 대변되는 일반화 프로그래밍 방식의 언어이기도 하다 

 

C언어를 기초로 삼아 만든 언어여서, 기존의 C표준 라이브러리를 그대로 사용할 수 있다. 

 

 

C++의 역사


C++은 C언어가 개발된 벨 연구소의 비야네 스트롭스트룹(Bjarne Stroustrup)에 의해 개발 되었다.

1970년에 비야네 스트롭스트룹은 객체지향적 언어의 Simula의 개념을 C언어에 추가하여 "C with C lasses"라는 이름으로 새로운 언어를 발표했다.

 

이후 증가 연산자 (++)의 토입으로부터 C언어의 확장판이라는 의미를 담아 C++ 이라는 이름으로 1984년 개정 

 

C는 자바, 자바스크립트, 파이썬, PHP, GO와 같은 언어들에 영향을 많이 미침 

= 화성탐사선이 그예 250만줄 C언어로 작성되어있음 (메모리가 충분하지 않고 프로세싱 파워도 약하기 떄문에 가능한 

가능한 적게 공간을 쓰면서 빠른 언어가 필요하다.

 

부가 설명 알아두면 좋음 


C++ class가 따라온것 C는 이제 필요없다고 얘기도 함 C++를 만들때의 의도는 C++가 C의 superset이 되길 바랬다. 

superset은 언어의 확장판 같은것  ex) (자바스크립트 , 타입스크립트(자바스크립트(타입이없음) 의 확장판(타입이 추가되어있다) )) C는 class가 없고 OOP(객체지향)과 같은 컨셉은 지원하지 않았다 . 


C++를 만든사람이 말하길 .. C++가 C의 대체제가 되길 원하고, 합쳐서 한개의 언어가 되야한다. 라고 말함. 

왜냐면 C,C++은 class라는 차이점 외에는 너무너무 비슷함 

단점이 있을까?

스피드 차이는 거의 없다. 

하드웨어의 밀접성도 거의 비슷하다고 생각한다.

사람들이 C++를 선택하는 이유는 객체지향 프로그래밍을 선호해서 


C# 이건 엄청 다른 영역이다.  Java와 꽤나 비슷하다.

C# = 마이크로소프트가 만든 Java라고 생각하면됨 기업용으로 만들어진 프로그래밍 언어 

엄청난 시간과 돈을 투자함

닷넷 생태계를 위한 언어이다. 

 

기업용 월드 

Java => Oracle시스템

C#. => .NET 이 또다른 생태계 인셈 

한국은 자바를 많이 사용하는 것으로 알고 있다.

다만 미국, 유럽, 등지에서는 C#.닷넷을 많이 사용한다. 

또한 C#은 꽤나 강력하다, 백엔드, 프론트엔드를 만들 수 있다. 

 

IOS 앱도 만들고  핫한 이유는 Unity 3D때문( 엑스박스 , 플레이스테이션, ios, Android웹용 게임을 다 만들 수 있다. 

(unity 3D는 비디오 게임 엔진) 

C#은 C++보다 빠르지 않다.  

C#은 컴파일러 등의 도움을 많이 받는다. 수동으로 이루어 지지 않는다. 

 

반대로 C는 수동으로 이루어지기 때문에 좀더 기계에 가까운 언이(low level)라서 더 빠르다 

그래서 C++ 에선 기계가 빨리 작동하고,

C#에서는 개발자가 빨리 작동한다고 말한다. 

 

개인적으로 C#은 많은 개발자들이 만족할 만한 언어이다. 

개발속도가 좀 더 빠르다. C++처럼 수동으로 작업할 것이 많이 없다. 

만약 타입스크립트나 자바스크립트를 할 줄 안다면 C#은 금방 배운다,

 

-결론-

C/C++ 작은시스템, 스피드 빠름, 컴퓨터가 속도가 빠름

C# 회사용시스템, 자바랑 비슷하게 생김,  개발자 개발 속도가 빠름

언어 년도 특징 속도 설명 
C 1972 절차지향 빠름 리소스가 많이 없는 기계에서 작동할 때 유용하다.
하드웨어와 매우 밀접하게 작동한다. 
속도가 빠름
C++ 1984 객체지향 빠름 C랑 거의 비슷 클래스만 포함됨 
하드웨어 밀접 시스템적으로 거의 비슷해서 
속도가 빠름
C# 2000 객체지향 느림 완전 다른 언어 마이크로소프트가 개발함
속도느림(시스템이 자동으로 하기보다 거의 감시수준)
다양한 환경에서 쓰임 

 

c++은  1970년대 개발된 c언어와 파스칼등은 모두 1980년대에 이르러서 절차 지향적이고 구조적 프로그래밍언어로써 여러방면에 사용된다. 

새로운 프로그래밍 방식인 객체 지향 프로그래밍(oop, Object-Oriented Programming)의 개념이 스몰토크(SmallTalk)나 에이다(Ada)등의 언어를 통해 대중에게 알려지면서 이때 벨 연구소의 비야네 스트롭스트룹은 프로그래머들이 더욱 쉽고 즐겁게 유용한 프로그램을 만들 수 있는 프로그래밍 언어를 만들고자 함 

 

특징(위에서도 어느정도 파악은 했지만)

1. 절차지향적이며 구조적 프로그래밍언어

2. 객체지향 프로그래밍 언어이다.

3. 일반화 프로그래밍 언어

 

이래서 다양한 시스템에서 프로그래밍을 지원하는 유용하고도 강력한 클래스 라이브러리들이 아주 많이 제공된다.

프로그래머의 측면에서 보면 이러한 다양한 기능을 모두 배워야 하는 부담으로 작용하기도 함.

 

C++의 표준은 ANSI(American National Standards Institute)와 ISO(International OrganIzation for Standardization)가 표준화 작업을 진행함 

 

728x90
728x90
LIST
profile

평생 공부하는 빠타박스 블로그 : Learning is Happiness

@공부하는 PPATABOX

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!