처리 수준
1. 저급 언어 (Low-level language)
컴퓨터에 가까운 언어, 사람이 다루기엔 난해하다.
- 기계어(Machin Language)
별 다른 해석기 없이 CPU가 바로 해석 가능한 비트 단위(1, 0)로 이루어진 언어
- 어셈블리어(Assembly Language)
기계어를 사람이 이해하기 쉽게 기호화한 언어, 어셈블러(Assembler)를 통해 기계어로 번역된다.
2. 고급 언어 (High-level language)
다른 언어권의 사람들과 대화할 때 번역기를 이용하듯이,
사람이 이해하기 쉬운 언어로 작성 후 일련의 번역기(컴파일러 혹은 인터프리터)를 통해 기계어로 번역한다.
- 컴파일 언어(Complie Language)
전체 원시코드를 컴파일러(Compiler)를 통해 기계어로 번역 후 실행
- 인터프리트 언어(Interprete Language)
원시코드를 인터프리터(Interpreter)가 한 줄씩 읽고 번역하여 실행
형태
1. 논리형 프로그래밍 언어 (Logical Programming Language)
사실(fact)과 규칙(rule)로 이루어진 문제 도메인의 모델 형성
→ 질의를 통해 논리적 추론에 기초해서 결과를 생성하는 방식
- 비절차적인(Nonprocedural) 언어
- 무엇(What)을 할 것인가?
- 기호 논리(AND, OR, NOT)에 기반
- 종류 : PROLOG(PROgramming in LOGic)
2. 명령형 프로그래밍 언어 (Imperative Programming Language)
프로그램을 기능(프로시저, 함수) 중심으로 바라보는 방식
- 절차적인(Procedural) 언어
- 어떻게(How) 할 것인가?
- 종류 : C, BASIC, PASCAL, FORTRAN
3. 객체지향 프로그래밍 언어 (OOP; Object-Oriented Programming)
프로그램을 객체 중심으로 바라보는 방식
- 누가 어떤 일을 할 것인가? → 객체를 도출하고 각각의 역할 정의
- 기본 구성 요소
- 클래스(Class) : 실세계의 모습을 추상화하여 비슷한 특성을 가진 것들을 하나로 묶는 개념적인 주체
- 객체(Object) : 클래스로부터 실체화된 것, 실제 메모리상에 할당되어 실제 프로그램에서 사용되는 데이터
- 메서드(Method) : 객체의 행위(Behavior), 메시지를 받아 실행해야 할 구체적인 연산을 정의한 것
- 변수(Variable) : 객체의 속성(Attribute), 객체가 가지고 있는 정보 또는 상태
- 메시지(Message) : 객체 간의 상호작용을 위한 수단
- 주요 특징
- 추상화(Abstraction)
- 캡슐화(Encapsulation)
- 상속(Inheritance)
- 다형성(Polymorphism)
- 동적 바인딩(Dynamic Binding)
- 종류 : 시뮬라67, 스몰톡, Java, C++
4. 함수형 프로그래밍 언어 (Functional Programming Language)
프로그램을 수학적 함수로 간주해서 처리하는 방식
- 종류 : LISP(LISt Processor)
출처: http://www.ktword.co.kr/test/view/view.php?m_temp1=4852&id=873