[기존의 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 )
: 더 자세한건 생략..
'[프로그래밍 언어론]' 카테고리의 다른 글
프로그래밍 언어론 6-4강. 선택(selection) (0) | 2019.11.23 |
---|---|
프로그래밍 언어론 6-3강. 시퀀싱(Sequencing) (0) | 2019.11.23 |
프로그래밍 언어론 6-2강. 구조화, 비구조화된 흐름(Structured and Unstructured Flow) (0) | 2019.11.22 |
프로그래밍 언어론 6-1-5강. 단락 평가(Short-Circuit Evaluation) (0) | 2019.11.21 |
프로그래밍 언어론 6-1-4강. 표현식 내의 순서(Ordering within Expressions) (0) | 2019.11.18 |