컴퓨터 과학에서 소스 코드에 대한 모든 진술 (일반적으로 소스 코드나 코드만 해당) 또는 인간이 읽을 수 있는 컴퓨터 프로그래밍 언어의 서면 진술 모음입니다. 소스 코드는 프로그래머가 동작을 지정하는 데 가장 많이 사용하는 메커니즘으로, 컴퓨터에 의해 수행됩니다.
소스 코드는 일반적으로 하나 이상의 텍스트 파일 또는 데이터베이스에 저장됩니다. 저장 프로그램으로 책이나 기타 미디어의 인쇄된 코드 조각에 프로그램이 나타날 수도 있습니다. 많은 수의 소스 파일을 하나의 디렉토리 트리로 구성할 수 있습니다. 이 경우 나무의 소스라고도 합니다.
컴퓨터 프로그램의 소스 코드는 사람이 읽을 수 있는 형식에서 특정 유형의 컴퓨터에 대한 실행 파일의 이진 형식으로 변환해야 합니다. 컴파일러는 소스 코드를 실행 파일로 변환할 수 있습니다.
특정 소프트웨어 저작물의 소스 코드는 단일 파일 또는 여러 파일에 포함될 수 있습니다. 이 방법은 흔하지는 않지만 프로그램의 소스 코드는 다른 프로그래밍 언어로 작성할 수 있습니다. 일부 소프트웨어 구성 요소는 모든 프로그래밍 언어로 작성 및 컴파일할 수 있습니다 (예: Java 언어: 각 클래스는 별도의 파일로 컴파일되고 런타임 시 링크가 해석됨).
소스 코드는 주로 실행 파일을 생성하는 입력 프로세스 (즉, 컴파일 또는 해석) 로 사용됩니다. 또한 사람과 사람 사이에 소통하는 방법과 알고리즘 (예: 코드 조각) 으로도 사용할 수 있습니다.
프로그래머는 일반적으로 기존 소스 코드를 통해 프로그래밍 기술을 이해합니다. 소스 코드는 개발자들 사이에서 프로그래밍 기술을 더욱 성숙하게 하는 촉진 요인으로 자주 사용된다. (윌리엄 셰익스피어, 소스, 소스, 소스, 소스, 소스, 소스, 소스, 소스) 어떤 사람들은 소스 코드가 예술 언어의 표현이라고 생각합니다.
소스 코드가 없으면 일반적으로 소프트웨어를 다른 컴퓨터 플랫폼으로 마이그레이션하는 것이 어렵습니다.
실행 파일의 디컴파일은 어셈블리 코드든 고급 언어든 소스 코드를 생성하는 데 사용할 수 있습니다.
미국에서는 2003 년까지 법원이 소스 코드를 표현의 자유에 대한 헌법 보호 형식으로 간주할지 여부를 결정하지 못했다. 소스 코드가 전달하는 정보는 프로그래머의 언어이며 공유할 수 있기 때문에 소스 코드는 표현의 자유에 대한 논거로 사용될 수 있습니다. 유머와 같은 다른 예술들처럼, 그것은 보호받는 교류의 한 형태이다. 반면, 소스 코드는 주로 기능을 실현하는 데 있어 예술 기능보다 기능이 많기 때문에 미국 헌법 제 1 개정안의 권리로부터 보호받지 못한다.
소스 코드의 본질에 관한 첫 번째 법정 사건은 언론의 자유를 포함한다. California 수학 교수인 댄 번스타인 (Dan Bernstein) 은 그가 설립한 소스 대학 인터넷에 암호화 프로그램을 발표했다. 당시 암호화 알고리즘은 국가 안보로 분류되었고, 미국 정부가 다른 나라에 무기를 수출하는 암호화는 것은 국가 안보 문제로 간주되어 국무원의 비준을 받아야 했다. 전자프론티어 재단은 미국 정부를 대표하여 본스탄을 기소했고, 법원은 그 소스 코드가 언론의 자유에 속하며 제 1 개정안의 보호를 받는다고 판결했다.