상황에 맞는 (유형 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.