[참고 :이 단락은 이제 구식입니다.] 귀하의 질문 제목에는 의도하지 않은 가정, 즉 프로그래밍 언어가 "수학의 기초에 기반을 둔"것으로 포함되어 있습니다. 비록 두 영역이 중요한 관계를 가지고 있지만 이것은 일반적으로 그렇지 않습니다. 보다 정확한 설명은 (일부) 프로그래밍 언어가 기초 기술을 사용하여 설계되었다는 것입니다. 더 좋은 질문은 "프로그래밍 언어와 수학 기초가 어떻게 관련되어 있는가"입니다.
가장 일반적인 연결은 여러 가지 방식으로 작동하도록 프로그램 에 따라 슬로건 증명으로 구현됩니다 . 카레 - 하워드의 대응은 가장 확실한 하나입니다. 그것으로 우리는 한 번에 유형 이론, 논리 및 프로그래밍을 관련시킵니다. 그러나 Curry-Howard 통신은 모든 범용 프로그래밍 언어가 지원하는 일반적인 재귀가있을 때 (모든 유형이 거주하기 때문에) 잘 작동하지 않는다는 점을 강조해야합니다.
프로그램으로 슬로건 증명을 작동시키는 미묘한 방법은 실현 가능성 을 사용하는 것 입니다. 여기에도 증명과 프로그램이 관련되어 있지만 이제는 증명에서 프로그램으로 방향이 바뀝니다. 모든 증명이 프로그램을 제공하지만 모든 프로그램이 반드시 증명은 아닙니다.
기초 기반의 프로그래밍 언어의 주요 예입니다 AGDA 간단 하다 의존의 형태 이론의 구현입니다. 그러나 Agda는 일반적인 재귀를 지원하지 않기 때문에 범용 프로그래밍 언어가 아닙니다. Agda의 모든 함수는 총계이며 Agda에서는 구현할 수없는 계산 가능한 함수가 있습니다. 실제로 프로그래머는이를 알지 못하지만 Agda는 무한 루프와 같이 정의되지 않은 값을 허용하지 않습니다.
COQ는 것입니다 하지 프로그래밍 언어가 아니라 증거 조수. 그러나이 프로그램에는 추출 기능이있어 프로그램을 증명할 수 있습니다. 교정 보조자와 프로그래밍 언어를 서로 혼동해서는 안됩니다.
프롤로그 및 기타 논리 프로그래밍 언어는 계산이 증거 검색 이라는 아이디어에서 영감을 얻는다 는 것을 잊지 말아야합니다 . 이것은 물론 논리와 밀접한 관련이 있습니다.
Haskell은 도메인 이론을 기반으로하는 범용 프로그래밍 언어입니다 . 즉, 그 의미론은 부분 함수와 재귀를 설명해야하기 때문에 도메인 이론적입니다. Haskell 커뮤니티는 카테고리 이론에서 영감을 얻은 여러 기술을 개발했으며, 그 중 모나드 는 가장 잘 알려져 있지만 모나드 와 혼동해서는 안됩니다 . 보다 일반적으로 고급 프로그래밍 기능은 일반적으로 도메인 이론과 범주 이론의 조합으로 처리되지만 거리에있는 Haskell 프로그래머에게는 적합하지 않습니다. 하스켈 유형의 소위 "구문 범주"는 하스켈과 범주 이론이 어떻게 일치하는지에 대한 평신도의 견해입니다.
집합 이론 (고전적 또는 건설적)은 프로그래밍 언어의 아이디어를 덜 자극하는 것으로 보인다. 물론, 구성 집합 이론은 구성 논리를 통해 프로그래밍과 연결되어 있습니다. Alex Simpson은 직관적 도메인 이론을 프로그래밍 언어에 적용한 한 가지 중요한 응용 프로그램을 사용하여 합성 도메인 이론을 작동 시켰습니다. 그러나 이것은 상당히 진보 된 것 입니다. 이 슬라이드를 볼 수도 있습니다 . Jean-Louis Krivine은 고전 세트 이론에 대한 매우 흥미로운 실현 가능성 브랜드를 개발했습니다. 이것은 고전 세트 이론과 프로그래밍을 관련시키는 좋은 방법 인 것 같습니다.
요약하면, 프로그래밍 언어 이론은 기초 기술을 사용합니다. 우리가 계산을 기본 개념으로 생각하기 때문에 이것은 놀라운 일이 아닙니다. 그러나 프로그래밍 언어가 특정 기초에 기반을두고 있다고 말하는 것은 너무 순진합니다. 사실, 기초의 삼분법 "세트 이론-유형 이론-범주 이론"은 다양한 방식으로 수학적으로 정밀하게 만들 수있는 유용한 높은 수준의 관찰이지만, 그에 대한 필요는 없습니다. 역사적인 사고입니다.