프로그래밍 언어론 6-2-1강. goto문의 구조적 대안(Structured Alternatives to goto)

[프로그래밍 언어론]

2019. 11. 22. 16:05

 

[기존의 goto문 사용처와 대체제]

: 대부분의 goto문들을 둘러싼 논란들은 구조적 방식이 나오며 종결되었다.

1) 현 subroutine의 끝으로 가기위한 jump로써 goto문 사용 => 오늘날 return문으로 대체

2) 반복문 중간에서 탈출하기 위해 goto문 사용 => 오늘날 break(exit)문, continue문으로 대체

3) 몇몇 언어에서는 한 연산자 호출로만 subroutine 중첩문으로 부터 return할수 있게 되었다.

4) exception 기능 구현위한 많은 방법 존재.

 

 

 

[다중 단계의 return들]

: return문들과 goto문들은 현재 subroutine에서 return할 수 있도록 해준다.

: 이때 goto문을 사용한 return은, 현 subroutine에서 벗어나 외부의 label로 이동해야하고 그걸 위한 permit이 필요하다.

: 그리고 이렇게 nonlocal goto의 발생에 대해서, 언어의 실행은 subroutine 호출 정보에 대한 실행 시점 스택을 복원하는 것을 보장해야한다. ( = unwinding )

: 더 자세한건 생략..