이 포스팅은 Object Oriented Programming 시리즈 23 편 중 1 번째 글 입니다.
목차
C++
- 발표년도 : 1983
- 설계자 : Bjarne Stroustrup, 덴마크
- 패러다임 : 절차적 프로그래밍, 함수형 프로그래밍, 객체 지향 프로그래밍
- 절차지향, 객체지향의 성격을 동시에 띄기 깨문에, 굉장히 유연하고 강력하다. 만능설계가 가능
- 하지만 복잡하다는 단점이 있다.
Software Build Process & Tools
Build Process
Editor
- 대부분의 에디터는 신택스에러를 막기위해 색을 칠한 단어로 표기되는 경향이 있다.
- 에디터는 사용자가 프로그램의 소스코드에 들어갈 수 있게 허용한다.
- 신택스 에러가 뜬다면 컴파일이 되지 않는다.
Pre-Processor
- 전처리기는 코드를 처리하기 전에 소스코드의 요소들을 수정하고 더한다.
- 보통 #include 를 사용해서 우리 프로그램이 사용하는 라이브러리 정보를 가져온다.
Compiler
- 컴파일러는 소스 코드를 타겟 코드로 변환한다.
- 타겟 코드는 장치나 특정 플랫폼을 위한 기계 언어일지 모른다.
- 일지 모른다고 한 이유는, 특정 프로그래밍 언어를 컴파일 할 경우, 다른 언어의 소스 언어가 될지 모르기 때문이다.
- 예를 들어, 초기 C++ 컴파일러는 C로 변환했다.
- 즉 컴파일 한 타겟 코드가 다른 소스 언어로 변환 된 것이다.
- 요즘의 C++ 컴파일러는 바로 기계언어로 변환한다.
Linker
- 링커는 컴파일러에 의해 만들어진 기계 코드와, 사전에 처리된 라이브러리 코드 또는 다른 소스로 부터 만들어진 소스들을 하나의 실행가능한 프로그램으로 만들기 위해 묶는다.
- 대부분의 컴파일 된 C++ 코드는 혼자서 작동할 수 없다.
- 실행가능한 하나의 프로그램을 만들기 위해서는 추가적인 기계 코드가 필요하다.
- 이 없는 기계 코드는 이미 컴파일 되어 있고, 라이브러리 라는 저장소에 저장되어 있다.
- 이 링커라고 불리는 프로그램은 프로그래머가 한 컴파일 된 코드와 라이브러리 코드를 묶어 완성된 프로그램을 만든다.
Debugger
- 디버거는 프로그래머가 프로그램 구현시 오류를 찾아서 수정하기 위해 프로그램의 실행을보다 쉽게 추적 할 수있게 한다.
- 디버거를 사용하면 개발자는 프로그램을 구동하면서 동시에 프로그램의 동작에 있어 어떤 소스코드 라인이 책임이 있는지 알 수 있다.
Profiler
- 성능분석을 한다.
- 프로그램의 시간 복잡도를 분석한다.
- 함수 호출 주기, 빈도등도 분석할 수 있다.