http://k.daum.net/qna/view.html?category_id=QCA&qid=3QPPh&q=%B0%B3%C3%BC+%BA%AF%BC%F6+%B6%C7%B4%C2+With+%BA%ED%B7%CF+%BA%AF%BC%F6%B0%A1+%BC%B3%C1%A4%B5%C7%BE%EE+%C0%D6%C1%F6+%BE%CA%BD%C0%B4%CF%B4%D9&srchid=NKS3QPPh


C가 전세계적으로 가장 많은 사랑을 받고 가장 널리 사용되는 프로그램 전문 언어
중의 하나이기는 하지만 이 언어 역시 한계에 부딪히게 되었습니다.
이에 따라 고도로 복잡한 프로그램을 관리하기 위하여 C++가 탄생하게 된것이죠.
1980년 잔 트루스트럽(Bjarne Stroustrup)이란 사람이 뉴저지주의 머리 힐에 있
는 벨 연구소에서 근무할 당시 상업용 소프트웨어 개발을 위한 가장 일반적인 언
어였던 C를 확장해서 개체 지향 프로그래밍을 구현하는 데 필요한 기능은
제공하였습니다. 그는 C++를 만들었고, 10년이 채 지나지 않아 소수의 AT&T 개발
자가 사용하는 것에서 시작하여 세계적으로 대략 백만 이상의 개발자들이 선택하
는 프로그래밍 언어가 되었습니다. 처음 이 언어의 이름을 "C with Classes"로 
지었는데, 1983년에 C++로 그 이름을 바뀌었습니다.
C++는 C 언어의 모든 것을 담고 있기 때문에 C와 호환이 됩니다.
즉 C++는 새로운 프로그래밍 언어가 아니며 이미 널리 사용되고 있는 언어를 향상
시킨 것입니다.

C++는 처음 소개된 이후로 1985년과 1989년, 그리고 C++에 ANSI표준을 적용하기 
시작한 시기 등 3번에 걸처 개정되었습니다.
1994년에 최초로 표준안이 발표되었으며 ANSI의 C++위원회는 사실상 스트루스트럽
이 설정한 모든 사양을 그대로 수용하고 그 외의 약간의 사양을 덧붙였을 뿐입니다.
그렇기 때문에 C++는 C프로그래머가 쉽게 C++를 사용할 수 있다는 관련성에서 큰 장점이 있습니다. 

C++은 흔히 객체지향적 언어라고 합니다.
이렇듯 객체 지향 프로그래밍을 지원하도록 고안되었습니다.
객체 지향 프로그래밍은 새로운 방식의 프로그래밍 접근 방법입니다. 프로그래밍이 탄생한 이후로 그 방식은 많은 변화를 겪었는데. 프로그래밍이 현격하게 다른 변혁을 겪을 때마다 새로운 접근 방식이 나타나 프로그래머가 그 전 단계보다 훨씬 더 복잡해진 프로그램을 처리할 수 있도록 도왔습니다.
예전의 구조적인 프로그래밍은 복잡한 프로그램 작성시 프로그램의 규모가 일정 한계를 넘으면 가끔씩 실패하는 경우를 제외하고 상당히 우수한 기능을 해왔지만 그 보다 좀더 복잡한 프로그램을 쓸 수 있는 새로운 프로그래밍 방식이
필요했는데, 그래서 탄생한 것이 객체 지향 프로그래밍(Object Oriented Programming)입니다. OOP는 구조적인 프로그래밍에서 사용되는 개념들을 최대한 활용하여 종전과는 다른 방식으로 이러한 개념을 엮어내는 역할을 합니다.
객체 지향 프로그래밍을 사용하면 한 문제를 관련 하위 그룹으로 나눌 수 있습니다. 각 하위 그룹은 객체와 연결을 시켜주는 고유의 코드와 데이터를 가지고 있는 독립적인 객체가 됩니다. 이렇게 함으로써 문제가 훨씬 더 단순해지고 
프로그래머들의 규모가 큰 문제들을 관리할 수 있게 되는 것입니다.
C++는 개체 지향 프로그래밍을 완전하게 지원하며 개체 지향 개발의 네 가지 중심인 캡슐화(encapsulation), 데이터 숨김(data hiding), 상속(inheritance),
그리고 다형성(polymorphism)을 모두 포함하고 있습니다.


C와C++의 차이점이라면 C 에서는 프로그램을 작성할때 거의 대부분 stdio.h 를 포
함시켰었으나 C++ 에서는 iostream.h 을 사용합니다.
C에서 입출력 함수로 애용되던 printf(), scanf()대신 cout, cin등의 객체를 주로 사용합니다. 
함수의 선언시에 프로토타입까지 반드시 선언해주어야 하고 매개변수(가인수)의
생략이 불가능합니다.
C 의 확장자는 ".C" 인 것에 비해서 C++ 의 확장자는 ".CPP"를 사용합니다.

C++에서 향상된점이라면 변수 선언이 함수의 머릿부가 아닌 중간에서도 선언이
가능하다는 것입니다. 그러나 재정의는 불가능합니다. 
자동변수는 블럭을 벗어나면 소멸되어 버리지요.


C++의 특징은 C의 대부분의 특징을 포함하고 있으므로 시스템 프로그램에 적당할 뿐만 아니라 클래스, 연산자 중복, 가상 함수 등과 같은 특징을 갖추고 있어 객체 지향 프로그래밍에 적합합니다. 또한 C와 일치하는 부분이 C++를 널리 대중적인 언어가 되는데 도움을 주었습니다.

 

 

출처: http://kin.naver.com/open100/db_detail.php?d1id=1&dir_id=10104&eid=hgFNqGM4pYyS2CeYI+RmGyT1VLgdB3VN&qb=Y7/NIGMrK8L3wMw=

 

 

 

일단 자바도 c에서 많은 부분이 파생이 되었구요.
4GL(4세대언어)대부분이 c에 뿌리를 두고 있읍니다.
먼저 c는 순차적인 언어이구요.
자바는 객체지향적인 언어있니다.
이게 가장 큰차이인데요.
어렸을때 많이 배웠던 베이지, 포트란 등이 순차적인 언어죠.
아실거에요.
프로그램의 흐름이 프로그램 코드상에서 시작에서 부터 끝까지 순차적으로 내려가죠.
하지만 자바나 c++등과 같은 객체지향언어는 순차적언어와 달리
일상생활의 모든 것을 객체화 해서 코드로 바꾸고 그것을 사용하게됩니다.
이렇게 만든 객체로 이객체 저객체를 호출하고 서로 서로 옮겨가면서 흐름이 진행되구요
그리고 c는 컴퓨터 시스템에 직접접근할수 있게 프로그램을 짜기 때문에 속도적인 면을 월등하다고 할수 있읍니다. 하지만 그만큼 코드량이 많아지고 프로그래머가 건들려야하는 부분이 많아지고 그만큼
많은 부분을 알아야합니다.
하지만 자바는 중간에 버츄얼 머신이 존재하고 프로그래머는 시스템자체를 건드릴필요가 없읍니다.
이미 그런부분들은 다큐먼트로 이미 짜여저 있기 때문에 프로그래머는 그러한 것들을 가져다 호출만 
하면 아주 간단하게 짤수 있겠죠

 

 

c언어가 가장 기초적이며 객체지향이 가장큰 차이겠지요

객체지향과 순차적언어의 차이

 

 

출처:   http://himedianara.com/online/main2.htm

반응형

+ Recent posts