컨텍스트 프리 언어를 캡처하는 정규식의 확장이 있습니까?


25

문맥없는 문법 (CFG)과 관련된 많은 논문에서, 그러한 문법의 예는 종종 그들이 생성하는 언어의 쉬운 특성화를 인정합니다. 예를 들면 다음과 같습니다.

SaaSb
S

생성 {a2ibi|i0} ,

SaSb
SaaSb
S

생성 {aibjij0}

SaSa
SbSb
S

생성 {wwRw(a|b)} 또는 등가 {((a|b))1((a|b))2p1=p2R} (여기서, p1 지칭 캡처 한 부분 (...)1 ).

위의 예는 모두 인덱스 ( ai ), 이러한 인덱스에 대한 간단한 제약 조건 ( i>j ) 및 정규식에 패턴 일치를 추가하여 생성 할 수 있습니다 . 이것은 정규 표현식의 일부 확장으로 모든 컨텍스트 프리 언어를 생성 할 수 있는지 궁금합니다.

문맥 자유 언어의 전부 또는 일부 중요한 부분 집합을 생성 할 수있는 정규 표현식의 확장이 있습니까?


3
인덱스 및 제약 조건을 추가하는 것은 너무 강력 것을 관찰 : 당신은 정의 할 수있을 것입니다 n 개의 B N C N CFL 아니다. anbncn
Shaull

답변:


34

그렇습니다. 컨텍스트가없는 표현식 을 다음 문법으로 생성 된 용어 정의하십시오 .

g::=ϵEmpty string|cCharacter c in alphabet Σ|ggConcatenation|Failing pattern|ggDisjunction|μα.gRecursive grammar expression|αVariable expression

이것은 일반 고정 소수점 연산자 μ α 로 대체되는 Kleene star를 제외한 일반 언어의 생성자입니다 .μα.ggμα.ϵgα

문맥이없는 표현의 해석은 자유 변수의 해석을 설명해야합니다. 따라서 환경 를 변수에서 언어로의 맵 (즉, 하위 집합 )으로 정의하고 제외한 모든 입력에서 와 같이 동작하는 함수로 둡니다. 대한 언어 을 반환합니다 .Σ [ ρ | α : L ] ρ α L αρΣ[ρ|α:L]ραLα

이제 컨텍스트없는 표현식의 해석을 다음과 같이 정의하십시오.

[[ϵ]]ρ={ϵ}[[c]]ρ={c}[[g1g2]]ρ={w1w2|w1[[g1]]ρw2[[g2]]ρ}[[]]ρ=[[g1g2]]ρ=[[g1]]ρ[[g2]]ρ[[α]]ρ=ρ(α)[[μα.g]]ρ=nNLnwhereL0=Ln+1=Ln[[g]][ρ|α:Ln]

Knaster-Tarski 정리를 사용하면 의 해석 이 표현의 가 가장 는 것을 쉽게 알 수 있습니다 .μα.g

문맥이없는 문법과 같은 언어를 사용하여 문맥이없는 표현을 제공 할 수 있음을 보여주는 것은 간단합니다 (전혀 사소한 것은 아니지만). 비사 소성은 컨텍스트가없는 표현식에 고정 된 고정 소수점이 있고 컨텍스트가없는 문법은 튜플에 대해 단일 고정 소수점을 제공한다는 사실에서 비롯됩니다. 이를 위해서는 Bekic의 기본 정리를 사용해야합니다. 즉, 중첩 된 고정 소수점을 제품에서 단일 고정 소수점으로 변환 할 수 있습니다 (반대의 경우도 마찬가지). 그러나 이것이 유일한 미묘합니다.

편집 : 아니오, 나는 이것에 대한 표준 참조를 모른다 : 나는 내 자신의 이익을 위해 그것을 해결했다. 그러나 이전에 발명되었다고 확신하는 것은 분명한 구조입니다. 일부 캐주얼 한 인터넷 검색은 Joost Winter, Marcello Bonsangue 및 Jan Rutten의 최근 논문 Context-Free Languages, Coalgebraically 을 통해 문맥이없는 표현이라고 부르는이 정의의 변형 (모든 고정 소수점을 보호해야 함)을 제공합니다.


이것은 굉장합니다. 이에 대한 표준 이름이나 참조가 있습니까?
Alex ten Brink

5
Arto Salomaa는 1973 년 그의 책“공식 언어 (Formal Languages)”에서 이것을 다루고 있습니다. 그는 이것을“일반적인 표현”이라고 부릅니다.
Tim Schaeffer

3

생성 함수가 홀로 노믹 인 언어에 대해 MathOverflow와 밀접한 관련이있는 질문 (및 여러 답변)이있었습니다 .

흥미롭게도, 위 의 의미론에 대한 Neel의 정의 는 암시 적 종 정리를 통해 재귀 종 방정식에 대한 종 솔루션의 존재에 대한 (구성 적) 증거와 정확히 일치 합니다. 불행히도, 그의 증명 개요에는 사물이 '무한한'경우가 있기 때문에 미묘한 실수가 포함되어야합니다. 다시 말해, 문법에 의해 정의 된 변환의 야 코비안에는 단수가 아닌 조건이 필요합니다. 이것이 아마도 Bonsangue-Rutten이 Jacobian 에서이 상태를 보장하는 한 가지 방법으로 고정 점을 보호 해야하는 이유 일 것입니다.μ


AFAICT, Winter 등 은 파생물을 가져와 의 Brzozowski 파생물을 취할 수 있도록하기 위해 경계 만 요구합니다 . [ μ α .μα.g[μα.g/α]g
Neel Krishnaswami

1

우리는 최근에 그렇게 할 프레임 워크의 개요를 발표했습니다. 아래 봐 뉴스 그룹 comp.compilers 좀 링크와 함께 통지를 보내.

새로운 개발은 Chomsky-Schuetzenberger 정리에서 작동하며이 결과의 완료로 간주 될 수 있습니다. Chomsky는 그 발전에 대해 알고 있으며 "잡으려고"한다는 소망을 나타냅니다.

이 개발과 함께, 우리는 문맥이없는 표현을위한 두 개의 분리 된 공식 의 동등성을 확립합니다. 2014 년에 마지막으로 공식화되었으며 2008 년에 발표되었습니다.


4
답변 자체에 모든 관련 정보를 포함하십시오. “comp.compilers를 살펴보십시오”는 이미 도움이되지 않는 답변이며 몇 달 안에 완전히 쓸모가 없습니다.
Emil Jeřábek은 Monica가

그건 완전히 틀렸어 Comp.compiler (이 사이트 및 다른 블로그와 달리)는 영구적으로 보관됩니다. 필요한 모든 세부 정보를 찾을 수 있습니다. 가장 최근에 게시 된 기사에서도 찾을 수있는 많은 링크가 있습니다. 또한 블로그 사이트와 달리 외부에 공개되어 더 많은 사람들에게 유용합니다. USENET에서 무언가를 찾는 데 어려움이 없어야합니다. 이런 쿼리를 다루고 논의해야하는 곳입니다. 어려움이 있다면 여기 링크가 있습니다. groups.google.com/forum/#!topic/comp.compilers/YCa5jHUR1iQ
NinjaDarth

2
문제는 아카이브되지 않았지만 아카이브가 방대한 것입니다. 지금 보관소를 살펴보면 맨 위 근처의 게시물을 찾을 수 있지만 누군가가 몇 개월 또는 몇 년 후에이 답변을 볼 때 파는 곳을 알 수 없습니다. 독자가보다 구체적인 위치를 가리킬 수있을 때 길고 신뢰할 수없는 검색을 수행하는 것은 오만하고 무례합니다. 이제 당신을 위해 해냈습니다. 30 초 정도 걸렸습니다. 당신은 그것을 스스로 할 수 있습니다.
에밀 예라 벡은 모니카 지원
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.