본문 바로가기
Tech, Tech, Tech/C++

C++을 위한 기본 지식 [1.3 C++ 소개] [C++의 역사][C++예제][C++레이아웃]

by 결기공 2019. 12. 10.

Introduction

"C++을 위한 기본 지식" 챕터에서는 컴퓨터의 기본 구성 요소들과 프로그래밍을 하는데 있어서 기본적인 테크닉과 디자인을 간단한 예제를 통하여 알아볼 예정입니다.

 

구성은 아래와 같습니다:

 

[1.1 컴퓨터 시스템]

https://beelee.tistory.com/5

[1.2 프로그래밍 기본 원칙]

https://beelee.tistory.com/6

 

[1.3 C++에 대한 소개]

- C++의 역사

- C++예제

- C++ 레이아웃


[1.3 C++에 대한 소개] 섹션에서는 드디어 C++에 대하여 자세히 알아보게 됩니다.

C++의 역사에 대해 간략하게 다루어 보도록하고, 하나의 샘플 C++을 보여드리고, C++의 레이아웃을 살펴볼 예정입니다.

기회가 된다면 사용하는 IDE를 통하여 샘플 프로그램을 따라 작성하실 수 있습니다. 

*IDE는 "integrated development environment"의 약자로 코드를 작성하고 테스트할 수 있는 환경을 의미하며, 자주 사용하는 ide는 MS의 visual studio, vim, clion등등이 있습니다.

IDE를 받으시는게 좋겠지만, 만약 없다면 아래 링크를 통해서 간단하게 웹으로 코드를 작성하고 테스트 할 수 있습니다.

https://ideone.com/

 

C++의 역사

C++라는 언어는 C라는 언어에서 유래되었으며, C라는 언어는 B라는 언어에서 유래되었으며, B라는 언어는 BCPL이라는 언어에서 유래되었습니다. 

BCPL --> B --> C --> C++ 의 순서로 개발이 되었다고 보시면 되곘습니다.

BCPL, B에 대해서는 생략하고, C의 역사에 대해서 먼저 알아보겠습니다.

C언어는 프로그래밍의 아버지라 불리는 데니스 리치에 의하여 통신업으로 유명한 AT&T Bell labs에서 1970년대에 개발됩니다.

C언어의 창시자 데니스 리치

Bell Labs는 전자, 통신, 컴퓨터 등의 분야에 최고의 전문가들을 모아놓은 연구실이며, 

현재까지 Bell Labs에서 탄생한 노벨상 수상자만 9명이 됩니다. 

현재 Bell labs 는 노키아 소속의 연구실로 뉴저지에 위치해 있으며, 2005-2013년까지는 "김종훈"이라는 재미 교포 경영자에 의해 운영되기도 하였습니다.

뉴저지에 위치한 Bell labs

C언어는 처음에 "UNIX"라는 운영체제를 관리하기 위하여 탄생되었습니다. 

C를 통하여 어떤 프로그램이든 작성할 수 있지만, 상용화가 되는데 기여한건 바로 UNIX와의 궁합이었습니다.

얼마안가 UNIX 운영체제를 사용하는 모든 프로그램들은 C를 통하여 작성됩니다. 

 

C언어는 고급언어와 저급언어의 중간에 있는 언어로 많이 표현됩니다. 그 점이 바로 C언어의 장점이자 단점이 됩니다.

C언어는 저급언어처럼 메모리를 직접 관리할 수 있습니다.

C언어는 고급언어처럼 어셈블리어보다 읽고 작성하는 것이 편합니다.

하지만 C언어는 다른 고급 언어들처럼 객체지향적인 프로그래밍을 하거나, 자동 체크 기능이 많이 빠져 있습니다.

 

C언어의 단점을 극복하고자 1980년대에 비야네 스트롭스트룹에 의하여 C++가 탄생하게 됩니다.

비야네 스트롭스트룹은 덴마크의 개발자이며 그 또한 Bell labs 출신입니다. 

 

C++와 C언어의 가장 큰 차이는 바로 C++가 객체지향 프로그래밍을 지원한다는 점입니다. 객체지향에 대해서는 다음챕터에 다루겠습니다.

 

중요한점은 C++라는 언어는 C를 계승한 언어라는 점이며, C의 단점을 극복하고자 탄생하였으며, C와의 차이점은 객체지향 프로그래밍을 지원한다는 점입니다.


C++예제

이제 실제 C++로 작성한 프로그램을 보도록 하겠습니다. 

하나의 C++ 예제

각기의 디테일한 기능에 대해서는 차차 알아볼 예정이나, 현재로서는 어떻게 작성되어 있으며, 어떤식으로 구동되는지 먼저 보도폭 하겠습니다.

1번 부터 22번 줄 사이의 명령어들이 프로그램이며

밑의 Sample Dialogue는 프로그램을 작동하였을 때, 어떤식으로 구동되는지를 보는것입니다.

위에서 제공해드린 ide에서 https://ideone.com/ 구동하였을 때 어떤 식으로 작동되는지 확인 해보셔도 좋을 것입니다.

 

프로그램에 대한 설명을 드리자면 아래와 같습니다.

1-4번 줄

위와 같이 1-4번 줄은 프로그램이 여기서 시작한다는 것을 알리는것으로 현재는 이해하시면 되겠습니다.

21-22줄

그리고 위의 21-22번 줄은 프로그램이 여기서 끝난다는 것을 알리는 것으로 이해하면 됩니다.

 

이 둘 사이에 들어오는 것이 프로그램의 내용입니다.

 

5번 줄

5번째 줄은 변수 선언입니다.

즉, 이 프로그램에서는 number_of_pods, peas_per_pod, total_peas라는 3가지 변수를 사용할 예정이라는 것을 알 수 있습니다.

앞의 파란줄로 적힌 int는 변수의 형태입니다. 즉 number of pods를 포함하는 3가지 변수는 모두 "정수"를 다룰 것이라는 뜻입니다.

int 의 예로는 "132, -12, 0" 등등이 있습니다.

 

6번째 줄
사용자 화면에 뜨는 내용

6번째 줄은 사용자가 화면에서 볼 내용입니다.

cout<<"____"이라는 코드를 작성할 시, 이 "______" 쌍 따옴표 안에 있는 내용이 사용자 화면에 표시되게 됩니다.

 

8번째 줄

7번째 줄은 사용자가 입력하는 내용입니다.

cin>>변수 라는 코드를 작성할 시, cin>>뒤에 오는 변수에 사용자가 입력하는 값을 선언하는 것입니다.

즉 위 코드는 이전에 선언한 number_of_pods 라는 변수에, 10이라는 값을 부여하는 것입니다.

사용자가 10이라는 데이터를 입력하고 나서부터는 number_of_pods는 10이라는 값이 됩니다.

 

위 코드를 통하여, C++라는 언어로된 프로그램은 어떠한 느낌으로 작성되는지만 보시면 될듯하며, 차후에 디테일에 대해서 알아보도록 하겠습니다.


C++ 레이아웃

아래 C++로 작성한 프로그램의 레이아웃을 살펴보겠습니다.

위 레이아웃에서 보여지는 몇가지 중요한 포인트를 짚어보겠습니다.

1. #include <iostream>에서 "#include<___>"는 include directive 로 불립니다. 이는 프로그램에서 사용될 라이브러리 (코드의 모음)을 선언하는것입니다.

즉, 위 코드에서 보여지는 #include<iostream>은 "iostream"이라 불리는 몇가지 코드를 이 프로그램에서 사용할 것이기 때문에 미리 끌고와라 라는 뜻으로 이해하시면 됩니다.

 

2.using namespace std; 는 위에서 가지고온 iostream이라는 라이브러리를 std(standard)한 형식으로 사용할것이다 라고 선언해주는 것입니다. 하나의 라이브러리는 여러가지 형식으로 사용할 수 있기 때문입니다. 

 

3. main(){ 는 프로그램 명령어가 여기서부터 실행된다라는 것을 의미합니다. 용어로는 메인함수"main function"로 부르게 됩니다. 

 

4. 마지막 줄 }에서 프로그램의 명령어가 끝나게 됩니다. 즉 {___}사이에 있는 것들을 명령어들이라 보면 되겠습니다.


오늘의 포스팅은 C++의 역사와 C++로 적힌 프로그램이 어떤 형식으로 구성되어 있는지를 살펴보았습니다.

다음 포스팅 "C++ 기초 명령어" 부터 본격적인 C++프로그램을 진행하도록 하겠습니다.

 

 

댓글