프로그래밍 언어론 6-5-2강. 조합된 루프문(Combination Loops)

[프로그래밍 언어론]

2019. 11. 29. 15:34

 

[조합된 loop문]

: 조합된 루프문. 반복을 위한 for문 안에 들어가는 first, last, step 값을 프로그래머가 따로 지정해서 루프문을 조합해 사용가능하다는 사실.

 

: Algo 60은 보다 현대적인 '열거'와 '논리적으로 통제' 된 루프의 속성을 요약하는 단일 루프 구조를 제공한다.

: 프로그래머가 단일 값 / 값의 범위(열거-제어형 반복과 유사한) / 종료 조건문 이 될수 있는 임의의 "Enumerators" 들을  for문의 header에서 지정할 수 있게 해준다. (아래 예시)

: 더 간단해진 형태의 combination loop가 C와 그 기반 언어들에서 보여진다.

: C에서의 반복문은 논리-제어형 언어이지만, 열거하기 쉽게 디자인 되었다.

 

# C에서의 반복문

for (i = first; i <= last; i+= step) { ... }    // 프로그래머가 first, last, step 값을 지정해 사용할 수 있게 해준다

# C에서의 반복문2

{

  i = first;

  while (i <= last) {

    ...

    i += step;

  }

}

: 프로그래머가 값들을 지정해 사용하는 만큼, 종료 조건에 대한 오버플로 발생은 프로그래머의 책임이다.

: 종료 조건에 포함된 모든 값들이 루프 내부에서 수정될 수 있다.

 

 

 

[반복문 header에서의 세개의 절]

: 위에서 말한 header에 프로그래머가 넣을 수 있는 절들은 null 값이 될 수 있다. (true로 취급)

: 이러한 절들은 콤마를 기준으로 분리된 표현식을 구성할 수 있다. ( for (int i = 0; i<9; i+=1) {} )

: 이러한 방식의 루프(C)의 장점은 치밀함과 명료함이다. (모든 조작이 header 안에 위치, 루프중에 무슨일이 일어나는지 알기위해 루프문의 맨위와 아래를 항상 읽어야함)