상황에 맞는 (유형 1) 언어의 의미는 무엇입니까?


34

에 있다고 보는 촘스키 계층 구조 유형 3 언어없는 외부 메모리 (즉, 유한 자동 장치)에있어서 A 상태 머신에 의해 2 유형의 상태 머신에 의해 인식 될 수있는 하나의 스택 (즉, 기계적 푸시 다운)에 의해 0을 입력 두 개의 스택 (또는 Turing Machine의 경우와 마찬가지로 테이프)이 있는 상태 머신 의 경우 유형 1 언어가이 그림에 어떻게 적용됩니까? 그리고 언어가 유형 0 일뿐만 아니라 유형 1임을 결정하면 어떤 이점이 있습니까?


2
cstheory.SE ( @Sunil 이 제안한)가 아닌 여기에 묻기 때문에 Type 1에 대한 간단한 설명 / 정의를 추가하는 것이 좋습니다.
Janoma

5
@Sunil 아니오, 그렇지 않습니다. 이것은 연구 수준의 질문이 아닙니다 (그렇더라도 여전히 연구 수준의 질문을 배제하지 않기 때문에 여전히 주제에 관한 것입니다.
sepp2k

3
@Janoma : 쉽게 찾을 수있는 정보를 포함시키는 것이 왜 도움이됩니까 (소음으로 간주되지 않습니까)?
비트 마스크

4
@Janoma 일반적인 지침은 질문에 대답 할 수있는 누군가가 알지 못할 수있는 개념을 설명하는 것이라고 생각합니다 (지침서에서 사이트의 일부 사용자가 알 수없는 모든 내용을 설명하는 경우 모든 것을 설명합니다) 항상 다른 SE 사이트의 표준이 아닙니다). 그리고 Chomsky 계층 구조를 모르는 사람이 질문에 대답 할 수 있다고 생각하지 않습니다. 물론 가능한 한 많이 설명하는 것이 아프지 않습니다 (질문이 길지 않는 한).이 경우에는 그것이 필요하다고 생각하지 않습니다.
sepp2k

4
모든 컴퓨터 과학 전공은 Chomsky 계층 구조를 알고 있거나 알아야합니다. 다른 사람들은 20 대 안에 찾아 볼 수 있습니다. 아마도 Wikipedia에 대한 링크 가 충분할 것입니다.
Raphael

답변:


19

상황에 맞는 언어는 선형 공간과 비결 정성을 사용하여 Turing 머신에서 인식 할 수있는 언어입니다. 지수 시간을 사용하여 이러한 튜링 기계를 시뮬레이션 할 수 있으므로 지수 언어로 이러한 언어를 인식 할 수 있습니다. 상황에 맞는 언어를 인식하는 문제는 라는 점에 유의하십시오. 즉, 지수 시간보다 더 잘 할 수 없다는 것을 확신합니다.에스에이기음이자형

이 비교는, 당신은 적어도 말할 수있는이 수단 0 언어를 입력합니다 뭔가 가 언어를 인식하는 데 걸리는 시간에 대한합니다. 타입 0 언어는 결정조차 할 수 없습니다. 정지하는 모든 튜링 머신의 언어는 타입 0 언어이지만,이 언어를 인식하는 것이 정확히 정지 문제이므로 결정하지 않습니다.

상황에 맞는 문법은 실제로 유용하지 않습니다. 상황에 무료 문법과 작업에 직관적이지만, 위키 백과 쇼의 예로 , 상황에 민감한 문법은 매우 빠르게 오히려 지저분된다. 다항식 공간을 사용하는 프로그램은 훨씬 더 쉽게 설계됩니다 (그리고 완전성은 알고리즘의 공간 사용량보다 다항식으로 만 동등한 동등한 CSG가 존재 함을 보장합니다).에스에이기음이자형

그것들이 존재하는 이유는 문맥없는 문법의 자연스러운 확장을 형성하기 때문입니다 (당신은 문맥이 어떤 작품이 유효한지를 결정할 수 있습니다). 이것은 아마도 Chomsky가 그것들을 정의하고 타입 1 언어의 이름을 짓도록 영감을 주었을 것입니다. 이 정의는 컴퓨터가 오늘날처럼 빨라지기 전에 만들어 졌다는 점을 기억하십시오. 프로그래머보다 공식 언어 이론가에게 더 관심이 있습니다.

제한없는 문법은 더 이상해집니다. 더 이상 문맥에 따라 비 터미널을 '확장'하여 생산으로 대체한다는 개념이 없습니다. 컨텍스트를 자유롭게 수정할 수 있습니다. 이로 인해 무제한 문법은 훨씬 직관적으로 작업 할 수 있습니다. 프로그램은 동등하고 훨씬 직관적입니다.


그러나 상황에 맞는 언어 유용합니다! 예를 들어이 토론 을 참조하십시오 .
Raphael

상황에 따른 민감도 는 유용하지만 언어를 설명하는 방법으로서 상황에 맞는 문법 은 매우 유용한 IMO가 아닙니다. 상황에 맞는 기능을 설명하는 다른 방법을 사용하는 것이 좋습니다.
Alex ten Brink

그러나 대부분의 답변에서 언어에 대해 이야기합니다. 문법에 대해서는 ymmw. CFG와 CSG 사이에는 자연 모델링 응용 프로그램 (예 : 커플 링 / 멀티 CFG)이있는 문법 모델이 있습니다.
Raphael

1
네 말이 맞아, 내가 보는 언어와 문법의 구별로 조잡했다. 내 답변을 업데이트했습니다.
Alex ten Brink

10

에이(에이)

요컨대, 작은 클래스의 경우 단어가 언어에 속하는지 여부를 결정하는 문제를 해결하기 위해 계산 능력이 덜 필요합니다.

Wikipedia 에 따르면 Chomsky는 상황에 맞는 문법 (예 : 유형 1)을 정의하여 자연 언어의 구문을 설명했습니다. 이것은 다른 언어 클래스와는 약간 다릅니다.이 언어는 자연 언어 (예 : 영어로 문법적으로 올바른 문장의 구문) 대신 수학 (예 : 산술 공식 구문)에 사용 된 문자열 패밀리를 설명하기 위해 도입되었습니다. .


2
간단히 말해, 작은 클래스의 경우 단어가 언어에 속하는지 여부를 결정하는 문제를 해결하기 위해 계산 능력이 덜 필요합니다. " 정확히,하지만 방법 이 유형 0 대 1 유형에 적용됩니까? 바로 질문입니다!
비트 마스크

기음기음

8

컨텍스트가없는 언어에서 입력 구문 분석의 모든 시점에서 오토 마톤은 스택에 의해 정의 된 상태에 있습니다. 각 생산은 사용 위치에 관계없이 입력을 소비 할 때 동일한 동작을합니다.

이것은 각 생산물이 스택에서 더 깊은 생산물에 의해 생성 된 것의 하위 언어를 생성한다는 점에서 흥미로운 특성으로 이어지고, 따라서 특정 입력에서 생성되고 소비되는 각 생산물 쌍 A와 B에 대해 우리는 세 가지 가능한 경우가 있습니다.

  • a : A가 소비 한 입력은 B가 소비 한 입력에 완전히 포함되어 있습니다. 또는
  • b : A에 의해 소비 된 입력은 B에 의해 소비 된 입력을 완전히 포함한다; 또는
  • c : A가 소비 한 입력이 B가 소비 한 입력과 완전히 분리되었습니다.

이는 다음과 같은 상황이 발생하지 않음을 의미합니다.

  • d : A가 소비 한 입력이 B가 소비 한 입력과 부분적으로 겹칩니다.

이와 반대로 상황에 맞는 언어에서는 각 프로덕션의 동작이 사용되는 위치에 따라 달라 지므로 프로덕션에서 소비되는 입력은 스택에서 더 깊은 입력의 하위 언어가 아닙니다 (사실, 스택이 작동하지 않습니다). 그리고 우리는 그 가능성이 생길 수 있습니다.

실제 상황에서 상황에 맞는 언어가 의미가있는 경우는 <b> 굵은 글씨 </ b>, <i> 이탈리아어 텍스트 </ i> 및 <u> 밑줄이있는 텍스트 </ u>를 나타내는 것과 같습니다. 이 html 태그는 "<i> 혼합 된 </ u> 겹치는 태그 </ i>가있는 <u> 텍스트입니다"와 같이 겹치게합니다. 구문 분석하고 모든 시작 태그가 끝 태그와 일치하는지 확인하려면 PDA는 컨텍스트가 없기 때문에 수행하지 않지만 LBA는 쉽게 수행합니다.


7

폐쇄 속성

Chomsky 계층의 모든 언어 클래스 중에서 일반 및 상황에 맞는 언어 만 보완 아래 닫힙니다 . 따라서 이는 상황에 맞는 언어의 고유 한 기능입니다.

문맥없는 언어와 달리 CS는 교차로에서 닫히고 제품을 섞습니다 .


6

유형 1 인 모든 언어는 선형 공간 만 사용하는 튜링 머신에서 인식 할 수 있습니다 (소위 선형 경계 오토마타).


2
그렇습니다, 그것은 정의입니다. 그러나이 제한이 어떻게 도움이됩니까?
비트 마스크

3
CSG를 인식하는 알고리즘의 성능을 EXP 대신 E로 제한하기 때문에 도움이됩니다. 나는 그것이 당신에게 어떻게 도움이되는지 모르겠습니다 :)
Suresh

5

타입 1 언어는 크기가 입력 크기와 선형 인 테이프의 일부만 사용할 수있는 비 결정적 튜링 기계 인 선형 경계 오토마타 로 결정될 수 있습니다.


4

Chomsky 계층은 언어보다 문법을 더 많이 분류합니다. 그러나 유형 1 및 문법에 대해 튜링 머신이있는 경우에도 유형 2 및 3에 대해 제안한 것처럼 오토 마톤이 인식해야하는 테이프 수와 관련이 있도록 설계되지 않았습니다.

Type-0 문법의 언어는 모두 Turing 기계에 의해 인식되지는 않지만 이러한 기계에 의해서만 열거 될 수 있습니다. Type-0은 재귀 적으로 열거 가능하며 Turing 기계는 재귀 언어 만 인식합니다.


4

최신 프로그래밍 언어는 항상 상황에 맞는 기능을 사용합니다. 그것들은 효율적으로 결정될 수있는 부분 집합에 속합니다.

예를 들어 이름 및 유형 분석 및 유형 유추가 있습니다.


3

다른 많은 사람들은 Type-1 언어가 선형 경계 오토마타로 인식 할 수있는 언어라고 언급했습니다. 정지 문제는 선형 경계 오토마타에 대해 결정될 수 있으며, 이는 터닝 머신에 의해 인식되는 언어에 대해 계산 불가능한 많은 다른 특성이 유형 1 언어에 대해 결정 가능하다는 것을 의미합니다.

틀림없이 선형 경계 오토마타에서 정지 문제가 결정 가능하다는 증거는 한정된 양의 테이프를 사용하면 한정된 수의 상태로만 들어갈 수 있다는 사실에 의존합니다. 루핑하고 멈추지 않습니다. 이 증명은 기술적으로 모든 실제 컴퓨터 (유한 메모리도 있음)에 적용되지만 컴퓨터에서 실행되는 프로그램의 중지 문제를 해결하는 데 실질적인 이점은 아닙니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.