2011-01-16 3 views

답변

9

Mercury은 근사하고 현대적이며 프롤로그와 비슷합니다.

Mercury는 선언적 프로그래밍의 선명도와 표현력을 고급 정적 분석 및 오류 감지 기능과 결합한 새로운 논리/기능 프로그래밍 언어입니다. 최적화 된 실행 알고리즘은 기존의 로직 프로그래밍 시스템을 능가하는 효율성을 제공하며 기존의 프로그래밍 시스템에 가깝습니다. Mercury는 대규모 프로그램 개발 문제를 해결하여 모듈성, 개별 컴파일 및 수많은 최적화/시간 트레이드 오프를 허용합니다.

+1

머큐리를 훌륭한 논리적 프로그래밍 언어로 사용합니다. Mercury의 구문은 Prolog 's와 비슷할 수 있지만 강력한 유형 시스템으로 인해 하스켈에서 프로그래밍하는 것처럼 느껴질 수 있습니다. 또한 Logic Variables와 같은 일부 Prolog 기능이 필요하다면 Mercury가 지원하지 않습니다. 실제로 그것들을 피하면 프로그램을 더 유지 보수 할 수 있습니다 :-). 면책 조항 : 저는 Mercury 프로젝트에서 작업하며 코드 유지 관리 가능성에 대한 관찰은 주관적이고 일화입니다. 다른 의견은 객관적입니다. –

+1

논리 변수의 부족은 큰 단점처럼 보입니다. 프롤로그/LP의 중심적인 측면이 아닌가? – ib84

5

Curry이라는 매우 유망한 함수 논리 프로그래밍 언어가 있습니다. 그것의 새로움에도 불구하고이 두 언어의 영향을 직접 받았기 때문에 하스켈과 프롤로그를 이미 알고 있다면 카레에 익숙해 져야합니다.

카레 원활하게 결합 함수형 프로그래밍 (중첩 식 고차 함수 지연 평가) 논리 프로그래밍에서 기능 (논리 변수 부분적 데이터 구조, 내장 됨) , 동시 프로그래밍 ( 변수의 동기화를 사용하는 표현식 의 동시 평가).

1

Oz/Mozart은 로직 프로그래밍을 기능 중 하나로 지원하는 멀티 패러다임 프로그래밍 언어입니다. 나는 그것이 좋은지 말할 수 없을 정도로 그것을 사용한 적이 없다. 확실히 재미있는 것 같습니다.

면책 조항 : 저는 Mercury 프로젝트에서 일하고 있으며, 수성을 Mozilla와 Mercury 사이에서 선택합니다.

+0

Oz/Mozart 링크를 수정하십시오. – nbro

2

Prolog는 자신 만의 언어로 간주 할 수있는 많은 새로운 확장의 호스트라는 것을 잊지 마십시오. 특히 CLP (R), CLP (Q), CLP (FD)와 같은 제약 언어. CHR과 같은보다 일반적인 확장뿐만 아니라 많은 유형화 된 접근법.

이러한 언어는 일반적으로 기존 Prolog 시스템에서 라이브러리로 제공됩니다. 그 환경에서 얻을 수있는 것들은 스크래치 시스템이 제공 할 수있는 것보다 훨씬 성숙하고 안정적인 구현입니다. 결국 많은 Prolog 시스템은 거의 30 년이되었습니다.

3

Logtalk은 코드 캡슐화 및 재사용 메커니즘에 초점을 맞춘 대형 프로그래밍에 적합한 기능 세트로 Prolog 언어를 확장하고 활용하는 객체 지향 논리 프로그래밍 언어입니다. Prolog 구현을 가장 적극적으로 유지 관리하는 백엔드 컴파일러로서 이식성이 뛰어납니다. 다른 주목할만한 기능으로는 프로토 타입과 클래스, 프로토콜 (인터페이스), 동시 유도, 구성 요소 기반 프로그래밍, 이벤트 중심 프로그래밍 및 고급 멀티 스레딩 프로그래밍을 모두 지원합니다. 현재 배포판에는 많은 프로그래밍 예제, 프로그래밍 도구, 라이브러리 및 텍스트 편집기와 소스 코드 프로그래밍 및 게시를위한 구문 형광펜 지원이 포함되어 있습니다.