1) 저급 언어와 고급 언어
① 저급 언어 (Low-Level Language)
- 기계 중심의 언어
- 실행 속도가 빠름
- 상이한 기계에서 수정을 해야 실행 가능하다
기계어 (Machine Language) : 컴퓨터가 직접 이해할 수 있는 언어, 0과 1의 2진수 형태로 표현되며 수행시간이 빠름
전문적인 지식이 없으면 프로그램 작성 및 이해가 어렵다, 기종마다 기계어가 다르므로 언어의 호환성이 없음
프로그램 유지보수가 어렵다.
어셈블리어 (Assembly Language) : 기계어와 1:1로 대응되는 기호로 이루어진 언어, 기호 코드(Mnemonic Code)라고도 함
기계어와 가장 유사하며, 기계어로 번역하기 위해서는 어셈블러(Assembler)가 필요함
② 고급 언어 (High-Level Language)
- 사람 중심의 언어
- 실행을 위해서는 번역하는 과정이 필요함
- 상이한 기계에서 별다른 수정 없이 실행이 가능함
- 포트란 (FORTRAN) : 과학 계산용 언어로서, 뛰어난 실행 효율성으로 성공한 언어
- 코불 (COBOL) : 회사의 사무용 자료처리 언어로 개발되었다. 기계 독립적인 부분과 기계 종속적인 부분을 분리하는데 성공한
언어이다.
- ALGOL : 알로리즘의 연구개발을 위한 목적으로 개발된 언어, 실무보다는 주로 교육용으로 사용되었다.
- LISP : 리스트 처리용 언어, 인공지능 분야에서 주로 사용되었다.
- APL : 고급 수학용 프로그래밍 언어
- PL/1 : 과학, 공학 및 산업 응용 프로그램을 위해 개벌된 명령형 프로그래밍 언어
- BASIC : 교육용으로 개발된 프로그래밍 언어
- SNOBOL : 스트림 자료 활용이 가장 많은 언어, 문자열 대치, 복사, 치환 등과 같은 문자열의 조작을 편리하게 수행할 수 있도록
여러 가지 기능을 제공함
- Pascal : 간결하면서도 강력한 언어로 손꼽히고 있다. 교육용 언어로는 뛰어나다는 평가를 받고 있다
- PROLOG : 논리 기반의 비절차적 언어, 인공지능 분야에서 주로 사용되었다
- Ada : 미 국방성의 주도로 개발된 고급 프로그램 작성 언어, 데이터 추출과 정보 은폐에 주안점을 두었고, 입출력 기능이 뛰어나서 대량 자료 처리에 적합함
- C : 1972년 미국 벨연구소의 데니스 리치에 의해 개발된 언어, 고급 언어 프로그래밍과 저급 언어 프로그래밍도 가능하다
시스템 프로그래밍에 가장 적합한 언어이다.
- Java : 썬 마이크로시스템즈에서 개발한 객체 지향 프로그래밍 언어이다.
③ 저급 언어와 고급 언어의 특징
구분 | 고급 언어 | 저급 언어 |
호환성 | 좋다. | 나쁘다. |
용이성 | 쉽다. | 어렵다. |
실행속도 | 상대적으로 느리다. | 빠르다. |
2) 객체지향 프로그래밍 언어
① 객체지향 프로그래밍 언어의 개념
- 현실 세계의 현상을 컴퓨터상에 객체(Object)로 모델화함으로써, 컴퓨터를 자연스러운 형태를 사용하여 여러 가지 문제를 해결할 수 있는 언어이다.
- 절차적 언어에 비해 특히 유지보수성(Maintainalbility) 과 재사용성(Reusability) 이 좋다.
- 종류 : Ada, Smalltalk, C++, Java 등
② 객체지향 언어의 기본 구성 요소
객체(Object) | - 데이터와 메소드로 구성된다 - 데이터(Data) : 객체가 가지고 있는 정보로서, 속성(Attribute)이라고도 한다 - 메소드(Method) : 객체가 메시지를 받아 실행해야 할 구체적인 연산을 정의한다 |
클래스 (Class) | - 하나 이상의 유사한 객체들을 묶어서 하나의 공통된 특성을 표현한 것이다. |
메시지 (message) | - 객체들 간의 상호작용을 위한 수단으로 사용되며, 메시지를 받은 객체는 메소드를 수행한다. |
③ 객체지향 언어의 주요 특징
- 캡슐화 (Encapsulation) : 데이터와 메소드를 하나로 묶는 것으로, 객체 내부에서 필요로 하는 정보를 외부로부터 은닉시킨다
- 추상화 (Abstraction) : 객체의 불필요한 부분은 숨기고 객체의 속성 중에서 가장 중요한 것에만 중점을 두고 모델화하는 것
- 상속 (Inheritance) : 이미 정의되어 있는 상위 클래스와 메소드를 비롯한 모든 속성을 하위 클래스가 물려받는 것이다.