전방 선언(forward declaration)은 컴퓨터 프로그래밍에서 프로그래머가 아직 완전한 정의를 제공하지 않은 식별자(유형, 변수, 상수 또는 함수와 같은 엔터티를 나타냄)의 선언이다.
컴파일러는 식별자의 특정 속성(메모리 할당을 위한 크기, 함수의 유형 서명과 같은 유형 검사를 위한 자료형)을 알아야 하지만 식별자가 보유하는 특정 값(변수 또는 상수) 또는 정의(함수의 경우)와 같은 다른 상세한 부분을 알 필요가 없다. 이는 원패스(one-pass) 컴파일러와 별도의 컴파일에 특히 유용하다.
전방 선언은 사용 전에 선언이 필요한 언어에서 사용된다. 하나의 정의에서 전방 참조 없이 그러한 함수(또는 데이터 구조)를 정의하는 것이 불가능하기 때문에 해당 언어에서는 상호 재귀가 필요하다. 함수 중 하나(각각 데이터 구조)를 먼저 정의해야 한다. 예를 들어 본체를 맨 위에 배치하고 그 아래에 함수를 호출하려는 경우 유연한 코드 구성을 허용하는 것도 유용하다.
다른 언어에서는 전방 선언이 필요하지 않다. 일반적으로 대신 다중 패스(multi-pass) 컴파일러가 필요하고 일부 컴파일은 링크 타임으로 연기된다. 이러한 경우 컴파일이나 해석을 위해 소스 코드에서 사전 정의할 필요 없이 런타임 중에 식별자를 사용하기 전에 식별자를 정의(변수 초기화, 함수 정의)해야 한다. 식별자는 기존 엔터티로 즉시 확인할 필요가 없다.