※이 글은 [쉽게 풀어쓴 C언어 Express 개정판]을 읽고 정리한 내용입니다. 상업적 목적이 아닌 단순히 공부한 내용을 정리하려는 생각으로 쓴 것이니 그 점 유의하고 봐주시기 바랍니다.
http://book.naver.com/bookdb/book_detail.nhn?bid=6984786
1.2 프로그래밍 언어
● 기계어
- 컴퓨터가 바로 이해할 수 있는 단 하나의 언어이다. 모든 언어는 최종적으로 기계어가 된다.
- 기계어는 특정 컴퓨터의 명령어(instruction)를 이진수로 표시한 것이며, 컴퓨터 하드웨어를 설계할 때 결정된다. 하드웨어에 따라 달라지기 때문에 철저히 하드웨어에 종속된다.
| 00001111 10111111 01000101 11111000 | cs |
● 어셈블리어
- 기계어는 인간이 사용하기에는 어렵고 오류가 발생하기 쉬워 어셈블리 언어를 개발하게 되었다.
- CPU의 명령어들을 기호(symblic name)로 표기할 수 있으며, 더 높은 수준에서 프로그램을 작성할 수 있다.
- 어셈블리어로 작성된 프로그램은 어셈블러(assembler)라는 프로그램으로 기호를 이진수로 변환한다.
- 에섬블리 프로그램에서는 기호 이름과 CPU의 명령어가 일대일 대응되고 컴퓨터의 CPU가 달라지면 실행이 불가능하기 때문에 저급 언어(low level language)라고 불린다.
- 간단한 작업을 하려고 해도 많은 명령어를 기호로 기술하여야 했다.
| MOV AX, MIDSCORE MOV CX, FINALSCORE ADD AX CX | cs |
● 고급 언어
- 특정한 컴퓨터의 구조에 얽매이지 않고, 보다 높은 수준에서 작업 할 수 있는 언어이다.
- 고급 언어에서의 연산들은 특정한 컴퓨터의 명령어 집합보다는 훨씬 고수준이기 때문에, 특정한 컴퓨터의 구조나 프로세서에 무관하게, 독립적으로 프로그램을 작성할 수 있었다.
- 가장 큰 장점은 기계어보다는 인간의 언어에 가까운 것이다. 프로그램을 작성하기가 쉽고, 작성된 프로그램을 이해, 유지보수가 쉽다.
- 고급 언어로 작성된 프로그램은 컴파일러(compiler)를 통해 기계어로 바꾸는 과정이 필요하다.
ex) C, C++, Java, C#
| TotalScore = Midscore + FinalScore; | cs |
● 고급 언어의 종류
언어 |
특징 |
예제 |
FORTRAN |
1950년대에 가장 먼저 만들어진 언어로서 수치 계산과 과학 기술 계산에 적합하다. |
| PROGRAM HELLO PRINT '(A)', 'Hello World' STOP END | cs |
|
COBOL |
1959년 만들어진 비지니스 사무 처리 언어이다. 이 언어는 구어체 문장 형태로 기술할 수 있도록 설계되었다. |
| IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello World'. STOP RUN. | cs |
|
PASCAL |
1970년대에 니클라스 워드에 의하여 개발된 절차적인 프로그래밍 언어이다. 파스칼은 교육용 언어로 알려져 있다. |
| program Hello(output); begin writeln('Hello World') end. | cs |
|
C |
1970년대 초반, UNIX 운영체제를 위하여 AT&T의 벨 연구소에서 일하던 데니스 리치에 의하여 만들어졌다. |
| int main(void) { printf("Hello World\n"); return 0; } | cs |
|
C++ |
1983년 벨연구소의 스트로스트럽에 의하여 개발된 언어로서 C언어에 클래스 개념을 비롯하여 여러 가지 객체지향적인 특징들을 추가한 언어이다. |
| int main(void) { cout << "Hello World" << endl; return 0; } | cs |
|
Java |
1995년 선 마이크로시스템의 제임스 고슬링에 의하여 개발된 객체지향 언어이다. 자바는 인터넷 웹페이지 상에서 실행이 가능하다. |
| public class Hello { public static void main(String[] args) { System.out.printfln("Hello World"); } } | cs |
|