본 논문은 차별 가능 프로그래밍(Differentiable Programming)의 기본 개념을 종합적으로 검토하는 논문입니다. 최근 인공지능의 발전을 이끈 대규모 모델, 방대한 데이터셋, 고성능 하드웨어, 그리고 차별 가능 프로그래밍의 변혁적인 힘에 주목하며, 복잡한 컴퓨터 프로그램(제어 흐름과 데이터 구조 포함)의 엔드-투-엔드 차별화를 가능하게 하는 새로운 프로그래밍 패러다임인 차별 가능 프로그래밍을 소개합니다. 자동 미분, 그래픽 모델, 최적화 및 통계 등 컴퓨터 과학 및 응용 수학의 여러 분야를 기반으로 하며, 최적화와 확률이라는 두 가지 주요 관점을 채택하여 두 관점 간의 명확한 유추를 제시합니다. 단순히 프로그램의 미분을 넘어, 미분을 위한 프로그램의 사려 깊은 설계를 강조하며, 프로그램을 미분 가능하게 함으로써 프로그램 실행에 대한 확률 분포를 도입하여 프로그램 출력과 관련된 불확실성을 정량화하는 방법을 제공합니다.