DCFL (deterministic context-free languages)과 VPL (visiblely pushdown language)은 CFL (Context-Free Language)과 REG (Regular Language) 사이의 공식 언어 세트입니다. CFL 용 Backus-Naur-Form 및 REG 용 정규식과 같은 일반 ASCII로 표현할 수있는 읽기 가능한 표기법이 있습니까?
DCFL (deterministic context-free languages)과 VPL (visiblely pushdown language)은 CFL (Context-Free Language)과 REG (Regular Language) 사이의 공식 언어 세트입니다. CFL 용 Backus-Naur-Form 및 REG 용 정규식과 같은 일반 ASCII로 표현할 수있는 읽기 가능한 표기법이 있습니까?
답변:
DCFLs에 관해서는, 나는 결정 푸시 다운 오토마타의 전환 기능보다 더 나은 표기법이 표시되지 않는, 즉 명시 적 형태의 규칙 작성 와 Q , Q ' 의 상태 , 스택 기호, 일련의 스택 심볼 및z γ a입력 기호 또는 빈 문자열 표기법 자체는 결정론을 강요하지는 않지만 쉽게 확인할 수 있습니다. 문맥없는 문법 종류의 표기법 (BNF)을 사용하면 DCFL이 CFL의 적절한 서브 클래스이므로 문제가 발생할 수 있습니다. DaniCL이 언급 한 바와 같이 CFG의 언어가 결정적인지에 대해서는 일반적으로 결정할 수 없습니다.
이 VPL와 관련하여, 기가 사용될 수의 괄호 / 괄호 스타일의 폼의 규칙에 충분한 될 것 → α의 B A가 하는 비 터미널입니다 , 통화 기호 B 복귀 기호 및 α 의 순서 혼합을 통해 정규 표현식을 내부 기호 및 비 터미널. VPL도 (D) CFL이기 때문에 푸시 다운 오토마타에 대해 위의 표기법을 재사용하고 스택 연산이 호출 및 리턴과 일치하는지 확인하거나 중첩 된 단어 오토 마톤의 전환 관계를 적어 둘 수 있습니다 (중복이 적음). .
편집 : 생각해 보십시오 .ASCII 표기법 인 RelaxNG 의 압축 구문과 같은 XML 스키마 표기법은 VPL에 쉽게 사용할 수 있습니다. 태그에 대해 일부 명명 규칙을 적용하면됩니다. 예를 들어 호출 기호의 시작 태그 "<ab>"와 반환 기호 b 의 닫는 태그 "</ ab>" 일치해야합니다 .
표준 표현을 찾으려면 다음을 고려하십시오. DCFL 클래스는 LR (k) 문법으로 생성 된 언어 클래스와 동일하며 다시 LR (1)과 동일합니다. 이것은 모든 DCFL에 대해 LR (1) 문법을 찾을 수 있음을 의미합니다. 물론, LR (1) 문법은 여전히 문맥이없는 문법이지만 특별한 속성을 가지고 있습니다 : LR (1) 문법에서, 우리는 결정 론적 파서를 안내하기 위해 구문 분석 테이블을 쉽게 만들 수 있습니다 (따라서 1 개의 기호, 따라서 LR (1)). 이 구문 분석 테이블은 읽기 쉽지는 않지만 다른 표현입니다.
그건 그렇고, 주어진 문맥이없는 언어가 결정론 적인지 여부는 결정할 수 없다는 것을 명심하십시오 (Greibach 's Theorem).
VPL에 대해 들어 본 적이 없다는 것을 인정해야합니다.