1940년 대 : Machine Languages
- 이진법 바탕의 기계어
- 사람에게는 친숙하지 못함
1950년 대 : Symbolic Languages
- 알파벳 기호 등 인간이 판독하기 쉬운 기호 형식으로 기계 명령(machine instruction)에 대응하는 저수준 언어
- 여전히 사람에게는 어려움
1960년 대 : High-Level Languages
– 하나의 코드가 여러 다른 컴퓨터에 적용될 수 있음 / 높은 프로그래밍 효율! / 이해하기 쉬움
* 하지만 컴퓨터가 이해할 수 있는 언어는 여전히 machine language이다.
프로그래밍 코드를 사람이 입력하면 -> (전처리과정(Preprocessor) + 번역과정(Translator) = 컴파일(Compile))과정) + Link 과정)= Build과정을 거쳐서 executable loader에서 프로그래밍 실행
- 전처리과정 : #이 들어가 있는 명령어를 전처리 명령어, 혹은 전처리기라고 하는데, 번역을 하기 직전에 전처리 명령어 안의 내용을 포함시켜주는 것
- Link과정 : 전처리과정단계에서는 파일단위로 번역을 수행하는데, 대부분의 프로그램은 한개의 프로그램을 구성하는 데에 여러 문서들이 있다. 각각의 파일마다 Object코드가 생성되고, 이 Object코드들을 합쳐서 하나의 실행파일 exe로 만드는 것을 Link과정이라고 한다.
In computing, a loader is the part of an operating system that is responsible for loading programs and libraries. It is one of the essential stages in the process of starting a program, as it places programs into memory and prepares them for execution. Loading a program involves reading the contents of the executable file containing the program instructions into memory, and then carrying out other required preparatory tasks to prepare the executable for running. Once loading is complete, the operating system starts the program by passing control to the loaded program code.
- Wikipedia
-> 컴퓨터에서는 실행한 뒤 output 도출 -> results
System development model
Systems requirements – Analysis – Design – Code – System Test – Maintenance
* Based on
- Understand the problem
- Develop a solution
- Hierarchy(계층제) chart, Flow chart,
- Write a program
- 본격적으로 프로그래밍!
- Text editor or source file로 프로그램을 짜던가 작성하고, compiling
- compiler : preprocessor/trnaslator
In computer science, a preprocessor is a program that processes its input data to produce output that is used as input to another program. The output is said to be a preprocessed form of the input data, which is often used by some subsequent programs like compilers.
- Wikipedia
- linking program. 이 때, linker 사용. linker는 모든 함수를 모아서 실행가능한 프로그램에 준다.
- Test the program
- Blackbox Test : 프로그램에 input을 넣으면, output이 나오도록 하여 결과를 보는 것(When the problem definition is either incorrectly stated or misinterpreted. They should be caught during blackbox testing.)
- Whitebox Test : Output이 잘 안나오면 내부의 구현되어 있는 코드를 직접 따라가면서 확인하는 단계(Logic errors can be corrected only by thorough whitebox testing.)
즉, 무작정 코딩에 들어가지 말고, 문제를 이해하고 어떻게 접근하고 풀어갈지를 충분히 생각한 다음 디자인하고 코딩을 해라.
'DEVELOPMENT > C++' 카테고리의 다른 글
C++ : C++ 구조 (0) | 2017.01.21 |
---|