순서 제어 (프로그래밍 언어)
IT위키
더 많은 작업
- Sequence Control; 실행 순서 제어
- 프로그램을 실행할 때 연산·문장·서브프로그램이 어떤 순서로 실행될지를 정하는 구조
- 순서를 누가 정하느냐에 따라 묵시적(implicit) 순서 제어와 명시적(explicit) 순서 제어로 나눈다.
- 순서를 정하는 단위에 따라 수식 수준, 문장 수준, 서브프로그램 수준으로 나눈다.
| 구분 | 묵시적 순서 제어 | 명시적 순서 제어 |
|---|---|---|
| 정하는 주체 | 언어가 미리 정한 규칙 | 프로그래머가 직접 지정 |
| 수식 수준 | 연산자의 우선순위와 결합 규칙에 따른 수식 계산 (곱셈이 덧셈보다 먼저) | 괄호를 써서 연산 순서를 바꾼다 |
| 문장 수준 | 문장을 쓰인 차례대로 하나씩 실행한다 | GOTO 문, 조건문(if·case), 반복문(for·while)으로 흐름을 바꾼다 |
| 서브프로그램 수준 | 호출이 끝나면 호출한 자리 다음으로 돌아온다 | 호출 위치·재귀 호출·예외 처리·코루틴으로 실행 단위를 옮긴다 |
묵시적 순서 제어의 대표는 "연산자의 우선순위에 따른 수식 계산"이다. 반복문·GOTO 문을 쓰는 것, 괄호로 연산자의 순서를 바꾸는 것은 모두 프로그래머가 순서를 정하는 명시적 순서 제어다.
- 우선순위가 높은 연산자를 먼저 계산한다.
2 + 3 * 4는 14 다. - 우선순위가 같으면 결합 규칙(왼쪽→오른쪽, 대입은 오른쪽→왼쪽)을 따른다.
- 괄호는 이 규칙을 덮어쓴다.
(2 + 3) * 4는 20 이다. - 언어마다 우선순위가 다르다. C 언어 표는 연산자 문서에 있다.
- 호출(call)과 복귀(return)
- 재귀 호출 — 자기 자신을 다시 호출한다
- 예외 처리 — 오류가 나면 처리기로 제어가 넘어간다
- 코루틴 — 실행을 멈췄다가 멈춘 자리에서 다시 이어 간다
- 병행 실행 — 여러 실행 단위가 동시에 진행된다