문제

위키 문서에 효 시스템 현재 그냥 짧은 스텁 및 제가 궁금했는데면 무엇으로 효력이 시스템입니다.

  • 어떤 언어를 효과 체계에서 더 유형 시스템입니까?
  • 는 것이 무엇이 가능한(가)표기에 언어는 당신이 익숙한 모습과 같은 효과를 볼 수 있습니까?
도움이 되었습니까?

해결책

"유형 및 효과 시스템"은 프로그램의 값의 종류뿐만 아니라 해당 값의 변경 사항을 설명합니다. "Typestate"점검은 관련 아이디어입니다.

예는 파일 핸들을 추적하는 유형 시스템이 될 수 있습니다. close 반환 유형으로 void, 유형 시스템은 다음을 기록합니다 효과close 파일 리소스 처리로 - 호출 후 파일을 읽거나 쓰려고 시도합니다. close 유형 오류가됩니다.

주류 프로그래밍 언어로 나타나는 유형과 효과 시스템은 모릅니다. 그것들은 정적 분석을 정의하는 데 사용되었습니다 (예 : 효과 측면에서 적절한 잠금/잠금 해제에 대한 분석을 정의하는 것은 매우 당연합니다). 따라서 효과 시스템은 일반적으로 콘크리트 구문이 아닌 추론 체계를 사용하여 정의됩니다. 구문이 같은 것을 상상할 수 있습니다

File open(String name) [+File]; // open creates a new file handle
void close(File f)     [-f]   ; // close destroys f 

더 많은 것을 배우고 싶다면 다음 논문이 흥미로울 수 있습니다 (공정한 경고 : 논문은 이론적입니다).

다른 팁

(이것은 신뢰할 수 있는 대답;을 트롤 나의 메모리가 있습니다.)

어떤 의미에서 어떤 시간에 당신은 코드는'상태로피컬'에어,당신이 사용하는 유형을 시스템을 잠재적으로 효력이 시스템입니다.그래서"국가"또는"IO"용을 캡처 이 개념(IO 캡처하고 다른 많은 효과뿐만 아니라).나는 막연하게 읽고 기억 논문에 대해 다양한 언어로 사용하는 진보된 유형을 시스템을 포함한 것처럼"종류"을 제어하는 세밀한 관리의 효과,그래서 예를 들어 입력/효력 시스템에 대한 정보를 캡처하는 메모리 위치 수정할 것에 주어진 데이터를 입력합니다.이는 유용하는 방법을 제공합니다 두 가지 기능을 수정하는 상호 배타적인 비트 상태의 허용하는"출퇴근"(사용해하지 않는 일반적으로 출퇴근 및 다른 사용해하지 않는 항상성을 잘 다른 하나는 종종 어렵게 만드를 입력(읽기:지정한 정적 형식)'합리적'프로그램)...

비유에 손으로 물결 모양의 수준은 어떻게바가 확인 예외가 있습니다.당신 express 추가 정보를 유형 시스템에 대한 특정 효력을(당신이 생각할 수 있는 예외로는'효과'에 대한 목적의 비유)지만,이러한 효과'일반적으로 누출을 통해 모든 프로그램과하지 않는 구성에서 잘 연습(너와 끝까지 만'throw'절 또는 다른 리조트를 많이 선택되지 않은 런타임 예외 형식).

내 생각에 많이 연구에서 수행되는 이 영역 모두에 대한 연구-y 와 주류-y 언어할 수 있는 능력으로 주석 기능으로 효력한 정보의 잠금을 해제할 수 있습 컴파일러의 기능을 할 수의 최적화에 영향을 줄 수 있는 동시성을 위해 위대한 일을 할 수있는 다양한 프로그램으로 분석하고 도구입니다.나 개인적으로는 높은 대한 희망을 최대한 빨리,하지만,나는 생각이 많은 스마트 사람들이 그것에 노력하고 오랜 시간이 아직 약간은 그것을 표시합니다.

당신은 볼 수 있습니다 http://www.haskell.org/haskellwiki/ddc

효과 시스템을 구현하는 Haskell의 버전입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top