2025. 1. 2. 12:53ㆍ학부/객체지향프로그래밍(C++)
- computer programming?
Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing/building an executable computer program.
즉, 연산 결과를 얻기 위한 과정을 computer programming이라 한다.
- computer program?
A computer program is a sequence of instructions in a programming language that a computer can execute or interpret.
즉, 컴퓨터가 이해할 수 있는 명령어들의 집합을 computer program이라 한다.
- computer?
A computer is a digital electronic machine that can be programmed to carry out sequences of arithmetic or logical operations (computation) automatically.
즉, 프로그램을 실행할 수 있는 전자기기를 computer이라 한다.
computer system=hardware+software
- Computer Program and Machine Languages
컴퓨터는연산 및 정보저장과 처리등에 이진법을 사용.
따라서 프로그램은 이진문자열(bit string) 형태로이루어져있음.(효율적인 해석을 위해 bit string은 16진법으로 표현되곤함).
기계어(machine language)란 컴퓨터가 바로실행할 수 있는 프로그래밍언어집합이며 bit string으로 구성.
- Assembly Languages
기계어와 대응되면서 사람이 쓰거나 읽기에 보다 편한 형태의 프로그래밍언어를 의미함.
기계어와 비교하여서는 해석이수월하고 코딩도가능하지만, 여전히 매우 비효율적이고 초보적인 연산들만을 수행가능함.
- High-Level Languages
사람이 사용하는언어(자연어)와 유사하게 프로그래밍이 가능한 일련의 프로그래밍언어들.
C, C++, Java, Python 등 일반적으로 사용하는 대부분의 프로그래밍 언어가 이에 해당됨.
- 컴퓨터보안 등 특정분야에서는 어셈블리어를 많이 다루게될수있음 .
이와반대되는개념으로써 기계어 및 어셈블리어는 저급언어(low-level languages).
High-level language는 컴퓨터가 바로 실행할 수 없기에 compile 과정을 통해 어셈블리어코드로 변환 시켜주어야함.
- Programming Languages
Low-level language는 하드웨어 종류마다 다를 수 있기 때문에 프로그래밍하려는 하드웨어에 맞는 언어를 써야함.
high-level language는 하드웨어에 따라 달라지지 않음.
하드웨어에 맞는 compiler나 interpreter가 존재해서 똑같은 high-level language라도 각각의 하드웨어에 맞는 machine code로 변환함.
- C and C++
C 언어에 객체지향 프로그래밍 개념을 더한 언어.
C++은 데이터 추상화를 지원하고 객체지향 프로그래밍을 지원하는 특징을 지닌 범용 프로그래밍 언어.(데이터에서의 추상화라는 것은 복잡한 현실에서 핵심적인 특징만 추려내고, 나머지 세부 사항은 감추는 과정을 의미)
- 데이터 추상화
C++에서의 데이터 추상화는 클래스를 활용한 추상화, 헤더 파일을 활용한 추상화.
장점은 사용자가 low-level 코드(저수준)를 작성하지 않도록 도와주고, 코드 중복을 방지하고 재사용성을 높인다. 코드의 복잡성과 중복성을 줄여서 가독성을 높이고 프로그램 유지 보수 및 개선, 보안 등에 도움이 된다.
- 절차지향 프로그래밍 VS 객체지향 프로그래밍
절차지향 프로그래밍: 실행 순서에 따라 프로그램이 실행, 데이터와 함수(기능)이 늘 분리.
객체지향 프로그래밍: 기본적으로는 실행 순서에 따라 명령어가 실행되지만, 데이터와 함수(기능)을 모두 가진 클래스의 상호작용에 의해 프로그램이 실행될 수 있음.
- Source Code Editing → Preprocessing → Compile → Linking → Loading → Execution
1) .cpp형태로 나타나는 C++소스코드를 작성하여 저장.
2) compile전에 compiler에게 정보를 사전 처리하도록 지시함.(ex: 전처리 지시문: #include, #define)
3) compile과정을 통해 C++ 소스코드를 기계어 코드로 변환함.
4) 새로 구현하지 않고 가져다 쓰는 코드들을 연결.
5) 프로그램이 실행되기 위해서는 반드시 메모리(RAM: Random Access Memory:휘발성 메모리)에 로딩되어야 함.
6) 프로그램이 실행될 때는 CPU가 실행 순서에 따라 명령어들을 하나하나 실행함.
실행파일은 특정 하드웨어/시스템조합에서 동작하도록 생성되므로 이식불가능.
소스파일을 성공적으로 컴파일해서 다양한 시스템에서 실행 시킬 수 있음. 이식 가능.(c++ 프로그램의 이식성)
'학부 > 객체지향프로그래밍(C++)' 카테고리의 다른 글
06 ALGORITHM DEVELOPMENT AND CONTROL STATEMENTS (0) | 2025.01.03 |
---|---|
05 ALGORITHM DEVELOPMENT AND CONTROL STATEMENTS (0) | 2025.01.02 |
04 INTRODUTION TO CLASS (0) | 2025.01.02 |
03 INTRODUCTION TO CLASS (0) | 2025.01.02 |
02 INTRODUCTION TO C++ (0) | 2025.01.02 |