비 튜링 완전 언어는 훨씬 더 분석 가능하므로 훨씬 광범위한 최적화 가능성을 제공하므로 튜링 완전 언어에 비해 큰 이점을 제공합니다. 그러나 그것들은 거의 사용되지 않으며 Turing-completeness는 실제로 좋은 기능으로 판매됩니다.
오늘날 범용 프로그래밍을 위해 만들어진 주류 비 튜링 완료 언어가 있습니까?
비 튜링 완전 언어는 훨씬 더 분석 가능하므로 훨씬 광범위한 최적화 가능성을 제공하므로 튜링 완전 언어에 비해 큰 이점을 제공합니다. 그러나 그것들은 거의 사용되지 않으며 Turing-completeness는 실제로 좋은 기능으로 판매됩니다.
오늘날 범용 프로그래밍을 위해 만들어진 주류 비 튜링 완료 언어가 있습니까?
답변:
오늘날 주류 다목적 비 Turing 완전한 언어는 없습니다. 그러나 Turing 이외의 완전한 도메인 특정 언어가 몇 가지 있습니다. ANSI SQL, 정규식, 데이터 언어 (HTML, CSS, JSON 등) 및 s- 표현식이 대표적인 예입니다.
다목적 비 Turing 완전한 언어에는 실제로 이점이 없습니다. 내가 라이스 정리에 끄덕 였다고 가정하고있는 "훨씬 더 분석 가능한"측면이 적용되지만 여러 다른 응용 분야를 대상으로하는 언어에는 그다지 의미가 없으며 다른 요구 사항이 우선합니다. 튜링 완성도의 유연성은 복잡성보다 훨씬 중요합니다. 다른 모든 소프트웨어와 마찬가지로 프로그래밍 언어는 모두 트레이드 오프에 관한 것입니다.
반면에 도메인 특정 언어의 경우 다른 방식 일 수도 있습니다. "모든 언어를 다룰 하나의 언어"를 작성하지 않는 경우 언어의 특정 목적에 적합한 기능 만 자유롭게 구현할 수 있습니다. 튜링 완성도는 그중 하나가 아닙니다.
튜링이 불완전한 언어가 주류가 아닌 이유는 필요할 때마다 원하는 언어를 쉽게 구현할 수 있기 때문입니다. 흥미로운 예는 비트 코인 스크립트입니다 : https://github.com/bitcoin/bitcoin/blob/master/src/script.cpp