본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

순서 제어 (프로그래밍 언어)

IT위키
Sequence Control; 실행 순서 제어
프로그램을 실행할 때 연산·문장·서브프로그램이 어떤 순서로 실행될지를 정하는 구조
  • 순서를 누가 정하느냐에 따라 묵시적(implicit) 순서 제어와 명시적(explicit) 순서 제어로 나눈다.
  • 순서를 정하는 단위에 따라 수식 수준, 문장 수준, 서브프로그램 수준으로 나눈다.

묵시적 순서 제어와 명시적 순서 제어

편집 원본 편집
구분 묵시적 순서 제어 명시적 순서 제어
정하는 주체 언어가 미리 정한 규칙 프로그래머가 직접 지정
수식 수준 연산자의 우선순위와 결합 규칙에 따른 수식 계산 (곱셈이 덧셈보다 먼저) 괄호를 써서 연산 순서를 바꾼다
문장 수준 문장을 쓰인 차례대로 하나씩 실행한다 GOTO 문, 조건문(if·case), 반복문(for·while)으로 흐름을 바꾼다
서브프로그램 수준 호출이 끝나면 호출한 자리 다음으로 돌아온다 호출 위치·재귀 호출·예외 처리·코루틴으로 실행 단위를 옮긴다

묵시적 순서 제어의 대표는 "연산자의 우선순위에 따른 수식 계산"이다. 반복문·GOTO 문을 쓰는 것, 괄호로 연산자의 순서를 바꾸는 것은 모두 프로그래머가 순서를 정하는 명시적 순서 제어다.

수준별 순서 제어

편집 원본 편집
  • 우선순위가 높은 연산자를 먼저 계산한다. 2 + 3 * 4 는 14 다.
  • 우선순위가 같으면 결합 규칙(왼쪽→오른쪽, 대입은 오른쪽→왼쪽)을 따른다.
  • 괄호는 이 규칙을 덮어쓴다. (2 + 3) * 4 는 20 이다.
  • 언어마다 우선순위가 다르다. C 언어 표는 연산자 문서에 있다.
  • 기본은 순차 실행이다.
  • 구조적 프로그래밍은 순차·선택·반복 세 구조만으로 흐름을 짜고 GOTO 문을 피한다 → 절차적 프로그래밍
  • GOTO 는 어디로든 건너뛸 수 있어 흐름을 읽기 어렵게 만든다(스파게티 코드).

서브프로그램

편집 원본 편집
  • 호출(call)과 복귀(return)
  • 재귀 호출 — 자기 자신을 다시 호출한다
  • 예외 처리 — 오류가 나면 처리기로 제어가 넘어간다
  • 코루틴 — 실행을 멈췄다가 멈춘 자리에서 다시 이어 간다
  • 병행 실행 — 여러 실행 단위가 동시에 진행된다