제어 흐름: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
편집 요약 없음
MDS TC AUTO(토론)의 8226514판 편집을 되돌림 (편집 지침에 의거하지 않은 편집, 분류 삭제 등을 되돌림)
1번째 줄:
{{출처 필요}}
==정의==
{{정리 필요}}
'''control flow'''는 프로그램에서 실행되는 각 구문, 명령어나 함수가 호출되는 순서를 의미한다.
{{구별|흐름 제어}}
==범주==
'''control제어 flow흐름'''(control flow)은 프로그램에서 실행되는 각 구문, 명령어나 함수가 호출되는 순서를 의미한다.
'''control flow'''를 나타내는 구문들의 종류는 각 프로그램 언어마다 다르나, 구문들의 실행 방식에 따라 카테고리화 시킬 수 있다.
 
'''control flow'''를제어흐름을 나타내는 구문들의구문, 곧 제어문들의 종류는 각 프로그램 언어마다 다르나, 구문들의 실행 방식에 따라 카테고리화 시킬분류할 수 있다.
* 다른 구문에서 시작 (무조건 분기, 점프)
* 어떠한 조건 만족 시 한 구문의 집합을 실행 (조건 분기)
줄 11 ⟶ 13:
인터럽트와 신호는 서브루틴과 유사한 방식으로 프로그램 제어의 흐름을 변경시키는 low-level 매커니즘이다. 그러나 프로그램 내부 제어의 흐름에 의해 실행되기 보다는 외부 신호나 이벤트에 대한 반응으로 주로 발생한다.
 
기계어나 어셈블리 언어에서는 '''control flow''' 명령은 주로 프로그램 카운터를 수정하는 방식으로 작동된다. 몇몇의일부 CPU들의 '''control flow'''와flow에 관련된 명령은 조건, 무조건 분기 명령에서만 가능하다.
 
==종류==
<big>'''Goto문'''</big><br />
해당 label에 위치한 구문을 수행한다.
'''goto''' ''label''
 
[[분류:제어 흐름| ]]
<big>'''If...then...(else)문'''</big>
* if(조건문)GOTO label. 조건문을 만족하면 label에 위치한 구문을 수행한다.
* if(조건문)then(구문)(endif). 조건문을 만족하면 해당 구문을 수행한다.
* if(조건문)then(구문1)else(구문2)(endif). 조건문을 만족하면 구문1을 수행하고 만족하지 못한다면 구문2를 수행한다.<br />
 
[[en:Control flow]]
<source lang="c">
if (condition) {
statementOK;
} else {
statementNO;
}
</source>
<br />
<big>'''Case, switch문'''</big><br />
명시된 값에 해당하는 case 절로 이동하여 해당하는 구문을 수행한다. 해당되는 case가 없을 때 기본동작을(default절) 수행한다.
<source lang="c">
switch (value) {
case '1': statement1; break;
case '2': statement2; break;
case '3': statement3; break;
default: statementD;
}
</source>
<br />
'''<big>For 루프문</big>'''<br />
변수가 명시된 값에 도달할 때까지 블록 안의 구문을 반복 수행한다.
<source lang="c">
for i = 1; i < goal; i++; {
statement;
}
</source>
<br />
'''<big>While문</big>'''<br />
조건문을 더 이상 만족하지 않을 때까지 블록 안의 구문을 반복 수행한다.
<source lang="c">
while(condition){
statement;
}
</source>
<br />
==도구==
프로그램 안에는 위에 나열된 종류의 구문 외에도 많은 control flow 관련 구문들이 존재한다.
그리고 프로그램 실행 상의 control flow는 무수히 존재한다. 프로그램 정적 분석 시 이러한 프로그램 상의 control flow를 하나하나 사람이 확인하기는 실제로 힘든 일이다. 이러한 소모적인 작업을 대체해주는 정적 분석 도구들을 사용한다면 사람이 직접 분석을 할 때 보다 시간을 절약할 수 있을 것이다.