문맥 자유 문법과 구문 분석 표현 문법 사이의 근본적인 차이는 PEG의 선택 운영자가 주문되어 있다는 점이다. 첫 번째 대안이 성공하면 두 번째 대안은 무시됩니다. 따라서 을 선택하면 교환 할 수 없습니다. 문맥 자유 문법 및 문법과 마찬가지로 순서가 없습니다. 주문 선택은 소프트 절단 연산자를 일부 로직 프로그래밍 언어와 유사하게 사용할 수 있습니다.
왜 PEG의 선택 연산자가 일치를 단락하나요? 메모 사용으로 인한 메모리 사용을 최소화했기 때문입니까?
선택 연산자가 정규 표현식에 무엇인지 확실하지 않지만 다음과 같이 가정 해 봅시다 : /[aeiou]/
모음과 일치시킵니다. 그래서이 정규식은 교환 가능합니다. 왜냐하면 제가 5 중 하나에 그것을 쓸 수 있었기 때문입니다! 모음 문자의 (5 계승) 순열? 즉 /[aeiou]/
은 /[eiaou]/
과 동일하게 동작합니다. 교환 할 수있는 이점은 무엇입니까? (로 페놀 PEG의 비 교환 법칙)은
결과는 CFG는 PEG에 직접 자역 경우, 이전의 모든 모호성이 는 결정 론적으로 가능한 구문 분석에서 하나 개의 구문 분석을 트리를 선택하여 해결 될 것입니다. 문법 대안이 지정되어있는 순서를 신중하게 선택하면 프로그래머는 이라는 구문 트리를 선택하는 데있어 큰 제어 권한을 갖게됩니다.
이것은 PEG의 문법이 CFG보다 우수하다는 말입니까?
"수 페리 어"? "우수"에 대한 기준은 무엇입니까? – Gabe
commutativity에 관해서는 비행기의 단어와 일치 시키려고하는'(air | airplane)'을 생각해보십시오. – xanatos
선택 연산자와 캐릭터 클래스의 개념을 혼동스럽게하는 것처럼 보입니다. 정규 표현식에서 문자 클래스는 대괄호'[aeiou]'로 구분되고 선택 연산자는 파이프 문자'|'로 구분됩니다. PEG에서 선택 연산자는 대신 슬래시 문자'/'입니다. – hippietrail