[시퀀싱(연속적인 사건들)]
: 각각의 다른 statement들을 모아 일련된 하나의 무언가로 만드는 것(덩어리)
: 시퀀싱인 명령형 프로그래밍에서 매우 중요하다.
: side effect들의 발생(할당) 순서를 통제하는 주요 수단이다.
- 대부분의 명령형 언어들에서, statement들의 목록들은 begin..end 나 {...} 를 이용해 둘러 쌓을수 있고, 이를 단일 statement가 들어가는 자리에 사용할 수 있다.
= Compound statement ( 상태들의 덩어리 )
[특정 종류의 side effect에 대한 논쟁]
: 명령형 언어들에서, 특정 종류의 side effect들에 대해서 논쟁이 존재한다.
# Euclid, Turing : 이 언어들에선 function들은 side effect하는 것을 허용하지 않는다.
: 이와 같은 수학적 취급 언어에서는 side-effect가 일어나지 않는다
: 만약 같은 인자들로 반복적으로 호출시, 항상 같은 값 return 한다.
: 연이은 호출들이 이후의 실행의 결과에 영향을 끼치지 않는다.
# 함수내 side-effect에 매우 의존적인 상황 예시
void func(char* s) { static short int n; sprint(s, "L%d\n", ++n); // 이 함수 실행할때마다 n값 바뀐다. } |
# 함수에서 인자를 받아 내부적으로 수정해 외부에 제공 예시 (생략)
'[프로그래밍 언어론]' 카테고리의 다른 글
프로그래밍 언어론 6-5강. 반복(Iteration) (0) | 2019.11.28 |
---|---|
프로그래밍 언어론 6-4강. 선택(selection) (0) | 2019.11.23 |
프로그래밍 언어론 6-2-1강. goto문의 구조적 대안(Structured Alternatives to goto) (0) | 2019.11.22 |
프로그래밍 언어론 6-2강. 구조화, 비구조화된 흐름(Structured and Unstructured Flow) (0) | 2019.11.22 |
프로그래밍 언어론 6-1-5강. 단락 평가(Short-Circuit Evaluation) (0) | 2019.11.21 |