Elementary Affine Logic을 실제 프로그래밍 언어의 핵심 유형 시스템으로 사용할 수 있습니까?


9

Elementary Affine Logic은 기본 시간에서 줄일 수있는 λ-Term 클래스를 캡처하는 유형 시스템입니다. 또한, Lamping 알고리즘의 추상 조각을 사용하여 EAL 유형의 용어를 줄일 수 있습니다.

내 질문은 어떻게 EAL을 기본 유형 시스템으로 사용하여 실용적인 프로그래밍 언어를 만들 수 있습니까? 즉, 그 특성에 영향을 미치지 않으면 서 핵심 유형 시스템에 어떤 종류의 확장 (고정 점, 다형성, 종속 유형, 데이터 유형 등)을 만들 수 있으며 실제로 그러한 언어를 사용할 수 있습니까? 내가 모르는 이유로 제한적입니까?


"초등 Affine Logic은 초등 시간으로 줄일 수있는 λ 항의 클래스를 캡처하는 유형 시스템입니다."이것은 정확하지 않습니다. EAL은 엄격한 하위 집합을 캡처합니다.λ- 초등 함수를 나타내는 용어 (교회 인코딩) 사실입니다 모두 각 초등학교 함수 : 기본 기능이 적용됩니다fEAL 용어 컴퓨팅이 하나 이상 있습니다. f하지만 기본 알고리즘 계산에 해당하는 다른 용어가 많이 있습니다. fEAL이 아닌
Damiano Mazza

웁스. 또한 내가 이해하는 한 추상적 알고리즘으로 줄일 수 있지만 EAL 유형이없는 용어도 있습니다. 따라서 오라클없이 모든 EAL 용어를 줄일 수는 있지만 여전히 추상 알고리즘과 EAL간에 약간의 불일치가 있습니다. @DamianoMazza
MaiaVictor

예, 맞습니다.
Damiano Mazza

1
"어쨌든 아무도 당신이 얻을 수있는 것을 시도하고 보는 것을 금지합니다!" -3 년 후 : 예, 아무도 나를 금지하지 않습니다. docs.formality-lang.org . 모든 도움을 주셔서 감사합니다 :)
MaiaVictor

답변:


10

매우 유사하지만 EAL 대신 LAL (light affine logic)을 사용하는 것이 몇 년 전 Baillot, Gaboardi 및 Mogbil에 의해 시도되었습니다 ( 여기 에서 논문을 찾을 수 있음 ). 나는 그들의 작업이보다 자유주의적인 시스템 인 EAL로 쉽게 일반화 될 수 있다고 생각합니다.

이러한 언어의 특징에 관해서는 기본적으로 다형성이 있습니다 (EAL은 2 차 선형 논리의 제한 사항입니다). 내가 아는 한, 아무도 의존 유형을 보지 못했지만 왜 작동하지 않아야하는지 모르겠습니다. 실제로 형식화되지 않은 EAL은 형식화 속성이 형식에 의존하지 않기 때문에 형식화 된 EAL과 마찬가지로 작동합니다.

한 가지 결과는 EAL에서 임의 유형의 고정 소수점을 사용하고 (예를 들어 Baillot의 다른 논문 참조 ) 자연 재귀 스타일로 데이터 유형을 정의 할 수 있다는 것입니다 (예 :list A:=nil|A  list A(프로그래밍 관점에서 볼 때) 시스템 F 정의와 함께 자연스럽지 않습니다. 그러나 형식화되지 않은 정규화에 대한 위의 설명에 따르면 EAL을 기반으로 한 프로그래밍 언어는 항상 총계 이므로 고정 점 결합기가 없으며 재귀 유형의 사용이 예상보다 자연스럽지 않습니다. 예를 들어, 스캇 (Scott) 숫자를 사용하십시오. 재귀 적 정의가 없으면 (fixpoint combinator에 의해 제공됨)이 정수 표현으로 상수 시간 이상의 작업을 표현하는 것은 어렵습니다. 따라서 반복을 위해 교회 숫자를 계속 사용해야합니다 (예 :for 빛 논리의 기본 계층화 제한 (복잡성 속성 제공)에서 발생할 수있는 함수를 사용하면 함수를 반복 할 수 없습니다. NatNat 그 자체가 반복에 의해 정의되었습니다 (Nat 교회 정수의 유형은 다음과 같습니다).

예를 들어 "Church integer hacking"을 사용하면 EAL에서 정의 할 수 있습니다. dbl:NatNat 그런 dbl n_=2n_ 반복 사용 하지 않고 . 그런 다음 반복 할 수 있습니다dbl 지수 함수를 정의하기 위해 exp그러나 반복 될 수는 없습니다 . 따라서 EAL을 기반으로하는 프로그래밍 언어는 반복적으로 특정 정의를 금지하는 일종의 메커니즘이 필요합니다. 그러한 제한이 어떻게 프로그래머에게 어색한 언어를 만들지 않을지는 상상하기 어렵다. 어쨌든 아무도 당신이 얻을 수있는 것을 시도하고 보는 것을 금지하지 않습니다!

어쨌든, 당신이 일반적으로 최적의 평가, EAL과 가벼운 논리의 관계에 관심이 있다면, 2000 년 초에서 중반까지 코폴라의 논문 을 살펴볼 것을 제안합니다 .

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