1. 절차식 언어 (Procedural) / 명령형 언어 (Imperative) ☞ 프로그래밍 패러다임 참조
ㅇ 목적달성을 위해 프로그램이 `어떻게(=로직)` 작동하는지가 중요
- 프로그램을 명령어 작성 순서대로 또는 실행 순서를 조절하면서,
- 상태를 변경하는 방식의, 프로그래밍 패러다임 임
ㅇ 특히, 계산중심적 (calculation-oriented) 언어
- 프로시져(함수) 또는 명령어가 중심이 되고, 데이터는 보조 기능을 하는 언어
- 즉, 프로그래밍을 할 때,
. 프로그램 전체 구조는 함수를 기준으로 디자인되고,
. 데이터는 한 함수에서 다른 함수로 전달되게 함
ㅇ 例)
- 절차식 언어 例 : C Language, BASIC, PASCAL, FORTRAN 등
- 비 절차식 언어 例 : 선언형 언어(SQL), 함수형 언어(LISP,...) 등
ㅇ 한편, 명령형 언어, 선언형 언어 간의 개략적인 비교
- 명령형 언어 (Imperative Language) : 컴퓨터가 어떻게 수행할 것인가에 중점을 둠
- 선언형 언어 (Declarative Language) : 컴퓨터가 무엇을 할 것인가에 중점을 둠
2. 절차적/명령형 프로그래밍의 특징
ㅇ 순차적 명령 수행을 기본으로 하며,
- 프로그램 제어(의도된 로직,Logic)에 따라,
- 순차적 실행 흐름(순차문)에,
- 실행 변화(조건부 실행,반복 실행,분기 실행)를 주게 됨
ㅇ 여기서, 프로그램의 중심적인 단위는 프로시져(함수)가 됨
- 한편, 객체지향 언어에서 프로그램의 단위는 클래스 임
. 데이터와 함수가 긴밀하게 묶여서 클래스라고 하는 패키지 형태로 캡슐화됨
. 객체지향 프로그래밍 방식은 근본적으로 이와는 다른 사고방식임
ㅇ 변수(기억장소),배정문,반복문을 그 특징으로 함
- 변수 : 이를통해 데이터를 저장하고, 상태 추적 및 조작 가능
- 배정문 : 변수의 상태를 변경하는 데 사용
- 반복문 : 실행 제어 및 효율적 반복 실행 도모
ㅇ 상태 기반의 프로그래밍 방식
- 매 명령 마다 상태를 변형시키는, 일련의 명령어들로 구성된, 프로그래밍 방식
- 항상, 프로그램 상태를 추적하도록, 프로그래머에게 집중력/주의력을 요구함
ㅇ 폰노이만 구조에 기반 함
- 명령어 저장 방식 : 정의된 명령어를 CPU가 메모리에서 순차적으로 읽어 실행
. 이는 명령형 프로그래밍의 기본적인 실행 모델을 지원
- 상태 변경 : 메모리에 저장된 데이터(즉, 상태)는 프로그램 실행 중에 변경됨
. 이는 상태 기반의 프로그래밍 방식과 일치함
- 제어 흐름 : 프로그램의 실행 순서의 조절 가능
. 명령형 프로그래밍에서 사용하는, 제어 구조(순차구조,선택구조,반복구조)에 따름