ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C언어, C++ 이란 무엇인가
    예전 글들/C, C++ 2011. 2. 11. 13:39
    반응형
    그냥 위키피디아에 있는 자료 나만 보기 좋게 정리
    C언어

    1.      역사

    A.     1970년대 초 켄 톰슨과 데니스 리치가 당시 새로 개발된 유닉스 운영체제에서 사용하기 위해 만든 프로그래밍 언어

    B.     켄 톰슨은 BCPL언어를 필요에 맞추고 개조해서 “B”언어(언어를 개발한 벨 연구소의 B를 따서)라 명명했고, B언어에서 C언어가 탄생했다. 유닉스 시스템의 바탕 프로그램은 모두 C로 쓰여졌고, 많은 운영체제의 커널도 또한 C로 만들어졌다. 오늘날 많이 쓰이는 C++ C에서 객체 지향형 언어로 발전된 것이다.

    C.     역사적 흐름

                    i.         1963– ALGOL 60에서 CPL이 파생

                   ii.         1969– BCPL 개발

                  iii.         1970 - B언어 개발

                  iv.         1972벨 연구소(Bell Laboratories)에 있는 Dennis Ritchie B의 후속으로 C 개발

                   v.         1983미국 국가 표준 협회(ANSI, American National Standards Institute)에서 짐 브로디 주축으로 X3J11 위원회 소집

                  vi.         1983 12 14– ANSI X3. 159-1989라는 공식명칭으로 C언어 표준 지정

                 vii.         1999 C99 표준안이 ISO/IEC 9899:1999라는 명칭으로 출간됨

                viii.         2000 5– ANSI의 표준으로 C99가 채택됨

    D.     절차적 프로그래밍

                    i.         절차지향 프로그래밍, 절차지향적 프로그래밍이라고 불리는 프로그래밍 패러다임의 일종

                   ii.         프로시저 호출의 개념을 바탕으로 하고 있는 프로그래밍 패러다임을 의미하기도 한다. 프로시저는 루틴, 하위프로그램, 서브루틴, 메서드, 함수라고도 한다.

                  iii.         수행되어야 할 연속적인 계산 과정을 포함하고 있다. 프로그램의 아무 위치에서나 프로시저를 호출될 수 있는데, 다른 프로시저에서도 호출 가능하고 심지어는 자기 자신에게서도 호출 가능하다.

                  iv.         프로시저와 모듈성

    1.      모듈성: 프로시저에 어떤 형태의 입력과 출력이 이루어지는지 명확한 규칙을 정하여 구현할 수 있다.

    A.     입력은 주로 인수(인자, 매개변수)의 형태로 문법적으로 지정하고, 출력은 결과값(반환값)으로 지정

    2.      유효범위(Scope)

    A.     프로시저가 모듈성을 잘 지킬 수 있게 해 준다. 이것은 프로시저가 다른 프로시저의 변수에 접근하거나 그 반대의 경우를 막아준다.

    B.     명시적인 허가를 하지 않으면 방금 전의 자기 자신의 변수에도 접근할 수 없게 된다.

    C.     유효 범위는 서로 다른 장소에서 같은 이름의 변수를 사용하여 혼동되는 것을 막아주고, 다른 프로시저의 영역을 침해하는 것을 막아준다.

    3.      모듈성이 덜한 프로시저는 빨리 만든 간단한 프로그램에서 사용되기도 하는데 실행환경에서 많은 변수들과 소통하는 경향이 있고, 다른 프로시저가 변수값을 수정할 수 있을지도 모르게 된다. 여러 변수가 프로그램의 다양한 부분들 사이에서 관계가 있다면 이것은 모듈성을 약하게 한다.


    C++

    1.      AT&T 벨 연구소의 비야네 스트롭스트룹이 1983년 발표하여 발전한 프로그래밍 언어이다. C언어의 문법을 대부분 사용할 수 있으며, 객체지향성이 더해진 C언어의 확장형이라고 생각할 수도 있다.

    2.      특징

    A.     C언어에 객체지향 프로그래밍을 지원하기 위한 내용이 덧붙여진 것이라고 할 수 있지만, 단지 더 좋은 C언어로서 수속형 언어로 취급하기도 한다. 초기 C++ C위에 놓은 트랜스레이터로 구현되었다. , C++프로그램을 일단 C프로그램으로 변환하고 나서 C컴파일러로 컴파일하는 식이었고 따라서 C언어에 대해 상위 호환성을 갖는 언어였다.

    B.     그 후, C언어의 표준 규격이 바뀔 때 const 수식 등 C++의 기능이 C언어에 받아들이기도 했다. 현재 C언어와 C++와의 사이에는 엄격한 호환성은 없다. 특히 C99의 출현으로 C언어와 호환성은 완전하게 없어져 버렸다.

    C.     현재 C C++가 명확한 구별 없이 혼재되어 사용되는 컴파일러가 대부분

    기능: 다중상속 / 템플릿 / 연산자 오버로드 / 예외 처리 / 실행 시 형 식별

    출처: 위키피디아
    반응형

    댓글

Designed by Tistory.