>백엔드 개발 >C++ >C 구문은 정말로 문맥에 구애받지 않는가, 상황에 민감한가, 아니면 더 강력한 것인가?

C 구문은 정말로 문맥에 구애받지 않는가, 상황에 민감한가, 아니면 더 강력한 것인가?

Patricia Arquette
Patricia Arquette원래의
2024-12-05 14:28:10998검색

Is C   Syntax Truly Context-Free or Context-Sensitive, or Something More Powerful?

C 구문 공개: 상황적 복잡성

C가 상황에 무관한지 상황에 민감한지에 대한 논쟁은 다음과 같은 인식에서 비롯됩니다. 특정 표현의 "모호함". 그러나 모호함은 언어 자체가 아닌 특정 문법의 특성입니다.

C 문법은 문맥 자유 문법과 문맥 인식 문법 모두의 한계를 넘어섭니다. C에는 Turing-complete 파서가 필요합니다. 이는 Chomsky 계층 구조에서 가장 강력한 유형인 "Type-0" 문법을 암시합니다.

Type-0 문법 내에서는 모든 기호 시퀀스가 ​​C의 양쪽에 나타날 수 있습니다. 튜링 완전 표현을 허용하는 생성 규칙. C 구문을 완전히 캡처하는 상황에 맞는 문법이 없기 때문에 상황에 따른 민감도가 강화됩니다.

또한 C 템플릿 인스턴스화는 그 자체로 Turing-complete이므로 구문 분석 프로세스 내에서 계산이 가능합니다. 이로 인해 C는 문맥에 구애받지 않고 문맥에 따라 분류할 수 없습니다.

C에 대해 문맥에 구애받지 않거나 문맥에 따른 문법은 이론적으로 가능하지만 이해할 수 없을 정도로 복잡하여 실용적이지 않습니다. C 표준의 기술 영어 및 알고리즘 설명에 대한 의존은 이러한 구문 불확정성에 대한 인식을 반영합니다.

공식 문법 대신 C 표준은 부록 A에 지침을 제공합니다. 그러나 이 "요약" C 구문"은 완전한 정의가 아닌 근사치입니다. 구문적으로는 유효하지만 의미적으로는 유효하지 않은 구문을 필터링하려면 명확성 규칙, 액세스 제어 및 유형 규칙이 필수적입니다.

본질적으로 C 구문은 상황에 맞는 경계와 상황에 맞는 경계를 모두 초월하여 Turing-complete 복잡성을 구현합니다. 더욱 풍부한 문법 체계가 필요합니다.

위 내용은 C 구문은 정말로 문맥에 구애받지 않는가, 상황에 민감한가, 아니면 더 강력한 것인가?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.