프로그램이 데이터를 처리하는 방법을 설명하는 모델, 즉 프레임워크
FORTRAN, COBOL, BASIC, Ada, Pascal, C, C++
프로그램을 명령어의 순차적 집합으로 보는 관점.
예컨데 아래와 같이 메모리의 상태가 4번 바뀌는 것을 순차적으로 처리하는 방식에 중점을 두는 것.input a input b sum = a + b output sum
Smalltalk, C++, Visual Basic, C#, Java
절차형은 자주 사용하는 프로시저를 미리 작성해서 활용하지만, 프로시저와 데이터 사이에 직접적인 관계는 없다.
객체 지향형은 절차형 패러다임의 개념에서 한번 더 나아가 특정 형태의 데이터에 적용할 수 있는 프로시저를 하나로 묶는다.
그렇게 공유되는 프로시저를 shared procedure(공유 프로시져)라고 한다
LSIP, Scheme
프로그램을 수학적인 함수로 보는 관점, 함수는 입력과 출력이 대응 관계를 가지는 블랙박스이다.
이 패러다임은 명령어를 사용하지 않으며 메모리의 상태를 추적하지 않는다.
Prolog
일련의 사실과 규칙을 기반으로 사용자의 입력인 쿼리에 응답함
a) 사실
Parent(Fay, Tara)
Parent (Tara, Willie)
Parent(Tara, Benji)
b) 규칙
Grandparent(X,Y) ->
Parent(X,Z) AND Parent(Z,Y)
c) 쿼리
Parent(Willile, Tara)? No
Parent(Fay, Benji)? No
Grandparent(Fay, Willi)? Yes
C++ 프로그램의 과정은 조금 복잡하다.
1. 프로그램 코드 작성
2. 프로그램 컴파일