평가 전략 (컴퓨터 프로그래밍)

평가 전략()은 프로그래밍 언어에서 함수 호출의 아규먼트(argument)의 순서를 언제 결정하고 함수에 어떤 종류의 값을 통과시킬지 결정하는 것이다. 람다 대수에서 축소 전략(reduction strategy)과 유사하지만 다르다.
근래의 대부분의 프로그래밍 언어들은 값에 의한 호출(call-by-value)과 참조에 의한 전달(pass-by-reference)가 통합되고 있다. C++와 같은 일부 안전하지 않은 오래된 프로그래밍 언어들은 파라미터 통과의 여러 가지 개념을 혼용한다. 역사적으로, 값에 의한 호출과 이름에 의한 호출(call-by-name)은 1950년대 후반에 설계된 Algol 60까지 거슬러 올라간다. Clean이나 하스켈과 같은 순수한 함수 언어(functional language)는 요구에 의한 호출(call-by-need)를 사용한다.

 엄격한 평가 
 인자 우선 계산(Applicative order)
 값에 의한 호출(Call by value)
 참조에 의한 호출(Call by reference)
 공유에 의한 호출(Call by sharing)
 copy-restore에 의한 호출(Call by copy-restore)
 부분 평가

 엄격하지 않은 평가 
 일반 순서(Normal order)
 이름에 의한 호출(Call by name)
 요구에 의한 호출(Call by need): 느긋한 계산법 참고
 매크로 확장에 의한 호출(Call by macro expansion)
 같이 보기 
 프로그래밍 언어의 비교
 Eval
 람다 대수