본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Procedural Programming
프로그램을 순서대로 실행되는 명령과 이를 묶은 프로시저(함수, 서브루틴)의 호출로 구성하는 프로그래밍 패러다임
  • 명령형 프로그래밍의 한 갈래로, "어떻게(How)" 처리할지를 단계별로 기술한다.
  • 큰 문제를 작은 프로시저로 나누는 하향식(Top-down) 설계와 순차·선택·반복의 구조적 제어 흐름을 사용한다.
  • 데이터와 이를 처리하는 함수가 분리되어 있다.
  • 순차적 실행: 명령이 작성된 순서대로 실행되며, 제어문(if, for, while)으로 흐름을 바꾼다.
  • 모듈화: 반복되는 처리를 함수로 만들어 재사용한다. 관련 문서: 모듈
  • 변수와 상태 변경: 대입문으로 변수의 값을 바꾸어 가며 결과를 만든다.
  • 장점: 실행 흐름이 직관적이고 컴퓨터 동작 방식과 가까워 실행 속도가 빠르다.
  • 단점: 데이터가 여러 함수에 공유되어 규모가 커질수록 유지보수와 재사용이 어렵다. 데이터 보호(은닉)가 약하다.
언어 특징
FORTRAN 1950년대 IBM에서 개발한 최초의 고급 언어 중 하나. 과학·수치 계산용
COBOL 사무·업무 처리용. 영어 문장과 비슷한 문법, 금융권 레거시 시스템에서 사용
Pascal 교육용 구조적 프로그래밍 언어. 강한 타입 검사
C 언어 시스템 프로그래밍용. 포인터로 메모리 직접 접근, 이식성이 높음
ALGOL, BASIC 구조적·교육용 언어

다른 패러다임과 비교

편집 원본 편집
구분 절차적 객체지향 함수형 선언형
기본 단위 프로시저(함수) 객체(클래스) 순수 함수 규칙·질의
관점 처리 순서(How) 데이터와 행위의 결합 함수의 조합·평가 원하는 결과(What)
상태 변경 변수 값 변경 객체 내부 상태 변경 불변 데이터 지향 기술하지 않음
핵심 개념 순차·선택·반복, 모듈화 캡슐화, 상속, 다형성 일급 함수, 고차 함수 선언적 명세
대표 언어 C, Pascal, FORTRAN, COBOL Java, C++, C#, Smalltalk Haskell, LISP, Erlang SQL, Prolog, HTML
  • 관련 문서: 객체지향 언어, 함수형 프로그래밍, 스크립트 언어
  • 선언형 언어는 함수형 언어와 논리형 언어(Prolog)를 포함하는 넓은 개념으로 분류하기도 한다.
  • 현대 언어(Python, C++, JavaScript 등)는 여러 패러다임을 함께 지원하는 멀티 패러다임 언어이다.
#include <stdio.h>

int sum(int n) {               /* 1부터 n까지 합을 구하는 프로시저 */
    int total = 0;
    for (int i = 1; i <= n; i++)
        total += i;
    return total;
}

int main(void) {
    printf("%d\n", sum(10));   /* 55 */
    return 0;
}
  • 같은 결과를 선언형으로 표현하면 SQL의 SELECT SUM(n) FROM t; 처럼 처리 방법 없이 원하는 결과만 기술한다.
  • 절차적 언어의 예(C, FORTRAN, COBOL, Pascal)와 객체지향 언어의 예(Java, C++, Smalltalk)를 구분한다.
  • 절차적은 "How", 선언형은 "What"을 기술한다는 차이가 출제된다.
  • 선언형 언어의 예로 SQL, Prolog, HTML, Haskell을 기억한다.