프로그래밍언어분석 12주차

윤영훈·2020년 12월 12일
0

식과 배정문

언어는 연산자 평가 순서를 명세한다

  • 연산자 우선순위 p. 344 ~ 345

  • 결합규칙 ( 좌결합이냐, 우결합이냐 )

  • 괄호

피연산자 평가 순서

  • 피연산자 유형
  1. 변수
  2. 상수
  3. 괄호에 포함된 식
  4. 함수 호출
  • 연산자의 모든 피연산자가 부작용을 갖지 않으면, 피연산자의 평가 순서는 무관하다.

함수의 부작용

: 함수가 양방향 매개변수나 전역변수 변경시 발생
p.350

함수의 부작용 문제

  • 피연산자 평가 순서에 영향을 미침

해결책

참조 투명성

  • 프로그램에서 동일한 값을 갖는 임의 2개 식이 프로그램의 행동에 영향을 미치지 않으면서 프 로그램의 임의 위치에서 서로 대체 가능하면, 프로그램은 참조 투명성의 특징을 갖는다고 말한다.

타입 변환

  • 축소 변환 : 원래 타입에 속한 모든 값들의 근사치마저도 저장할 수 없는 타입으로 변환

  • 확장 변환 : 적어도 원래 타입의 모든 값들의 근사치를 포함할 수 있는 타입으로 변환

  • 혼합형 식 : 한 연산자가 다른 타입을 갖는 피연산자들을 갖는 식이며, 이를 허용하는 언어는 묵시적 피연산자 타입 변환을 허용 (확장 변환으로)
    => 묵시적 타입 변환은 컴파일러에 의해서 수행되는 타입 강제변환

단축회로 평가 : 식에 포함된 모든 연산자나 피연산자가 평가되지 않고서 식의 값이 결정
p364

profile
리액트를 좋아하는 개발자입니다.

0개의 댓글