프로그래밍에서 homotopy type 이론의 실질적인 의미는 무엇입니까?


11

JavaScript / Ruby 세계에서 온 후 Haskell을 배우기 시작했습니다. 나는 https://github.com/HoTTHomotopy Type Theory book을 보았습니다 .

그러나 나는 수학과 유형 이론 개념을 배우게 될 것이므로, 호모 토피 유형 이론이 실습 프로그래머에게 어떤 의미가 있는지 이해하는 데 시간이 오래 걸릴 것 같습니다.

평신도에게 호모 토피 유형 이론이 실제로 프로그래밍에 미치는 영향을 설명 할 수 있습니까? 예를 들어, 글쓰기가 더 쉬워 질까요? 그렇다면 어떤 것입니까? 아니면 이전에는 불가능했던 프로그래밍에서 새로운 일을 할 수 있습니까? 그렇다면 어떤 것입니까?

감사합니다.보다 기본적인 수준으로 머리를 감싸기를 기대합니다.


나는 그것이 프로그래머를 연습하는 데있어 항상 필요하며 앞으로도 계속 될 것이라고 기대한다. 기껏해야 우리는 더 빠른 컴파일러 나 수학적인 장점을 이용하는 마법의 블랙 박스를 얻을 수 있습니다.
Telastyn

하하 이것이 지금까지 생각한 것입니다. 그래도 궁금합니다. 이것이 답입니까, 아니면 당신이 말한 것 이외의 것이 있습니까? 예를 들어 데이터베이스가이 혜택을 누릴 수 있습니까? 아니면 그런 것.
랜스 폴라드

1
나도 몰라 나는 초록을 읽고 즉시 학문적 인 점보 점보를 위해 양동이에 떨어 뜨 렸습니다.
Telastyn


4
@Telastyn : 포르투갈어로 책을 다운로드하면 언어를 배우려고 시도하지 않는 한 책도 필적 할 수 없습니다. 왜 멸망스러운 용어 인 점보 점보로 포르투갈어 책을 공개적으로 비난 합니까? 원시 재귀 함수를 도입하려는 Gödels의 동기는 매우 학문적이었습니다. 특히 세계는 30 년대에 어떤 프로그램도 실행하지 않았기 때문입니다. 나는 한 사람이 연습 프로그래머이기 때문에 학문적 주제는 당신의 능력에 대해 "항상 조사 할 수 없을 것"이라고 생각하지 않습니다.
Nikolaj-K

답변:


15

컴파일러가 최적화 단계에서 수행 할 수있는 강력한 작업 중 하나는 비효율적 인 표현을 동등한 것으로 대체하는 것입니다. 예를 들어, Haskell에서는 지연 목록을 사용하여 숫자의 합계를 계산할 수 있지만 GHC Haskell 컴파일러는 이것이 임시 변수에 반복을 사용하는 것과 동일하다는 것을 인식합니다. 그렇게하면 추론하기 쉬운 간단한 추상화에 대해 프로그래밍 할 수 있고, 실행 파일은 하드웨어 플랫폼에 더 적합한 표현을 활용할 수 있습니다 (그리고 규모에 대해서는 추론하기가 훨씬 더 어렵습니다).

그러나 컴파일러에 알려진 동등성은 주로 목록에 대한 스트림 융합과 같이 잘 알려지고 연구 된 데이터 구조로 제한됩니다. 어느 방향 으로든 ID를 구성하는 변환 함수 쌍을 사용하여 소스 코드에서 고유 한 동등성을 정의 할 수 있지만 수동으로 적용해야하며 모든 위치에서 사용할 올바른 유형을 선택하기가 까다로울 수 있습니다. 과도한 전환을 피하기 위해

이제 정식 조회 맵과 같이 "더 높은 유도 유형"을 정의하는 세계를 상상해 봅시다. 이 유형에는 이진 검색, AVL, 빨강-검정, Trie, Patricia 등 다양한 종류의 맵에 대한 여러 생성자가 있습니다. 일반적인 데이터 생성자와 함께 이러한 표현 사이의 다중 변환을 캡처하는 동등성 유형도 정의합니다. 변환은 다양한 차원의 효율성 (즉, 시간 대 메모리)을 제공합니다.

컴파일러가이 개념을 사용하여 오늘날지도 융합과 동일한 방식으로 맵 표현을 투명하게 다시 작성할 수 있다면 어떨까요? 한편, 코드에서 추론하기 가장 간단한 구성으로 작업하게됩니다 (그리고 그러한 환경에 있다면 증명 작업이 더 쉬워집니다). 이것은 여러 구현을 가진 추상 인터페이스처럼 들릴 수 있지만 프로그램의 의미에 영향을 미치지 않고 구현을 선택하고 필요에 따라 컴파일러가 다른 것을 대체 할 수있는 자유를 포함합니다.

HoTT는 동등성 개념을 동등성으로 승격시키기 때문에이 멋진 재 작성 메커니즘과 이러한 풍부하게 정의 된 형식을 정당화 할 수있는 형식 이론적 기초를 제공합니다. 이것이 실제로 실제로 어떻게 진행될지는 여전히 알려야하지만 미래의 작업을 기반으로하는 이론적 틀을 제공합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.