문제

이것은 프로그래밍보다 컴퓨터 과학 질문에 더 가깝지만, 이것이 모든 관련 사이트 중에서 이것을 물어볼 가장 좋은 곳이라고 생각합니다.

내가 정규 표현을 발견하고 용어를 찾았을 때 나는 "규칙 성"이라는이 속성이 표현의 언어가 정의 가능한 구조적 패턴을 가지고 있다는 사실을 의미한다고 가정했다. 그러나 주제와 이것의 이론에 대해 읽을 때 나는 규칙적이지 않은 언어가 있다는 것을 알게되었지만, 정의 된 방식으로부터 패턴이 그들과 일치 할 수 있음이 분명하다. 그러한 언어 중 하나는 (a^n) (b^n)입니다. 분명히 이것은 패턴이지만 이것은 일반적인 언어가 아닙니다. 이제 나는 일반 언어가 규칙적으로 만드는 것이 무엇인지 궁금해하고 있으며이 언어는 그렇지 않습니까?

도움이 되었습니까?

해결책

이름의 어원은 Kleene의 1950 년대 작품에서 설명합니다. 일반 세트 목적을 위해 생성 된 그의 수학적 표기법을 사용합니다. 보다 이것.

다른 팁

컴퓨터 과학을 직관적으로 설명하는 것은 ... 까다 롭습니다. 나는 그것을 발사 할 것이지만,이 중 일부는 "충분히 가까워 질 것이지만 이론적으로 엄격하지는 않을 것입니다.

일반 언어는 유한 Automata (DFA/NDFA)와 동등한 컴퓨터의 기계에 의해 결정될 수있는 언어입니다. 유한 한 오토마타는 스토리지가없는 상태에서 순수하게 작동하는 기계로 생각할 수 있습니다. 그래서 당신은 그것을 볼 수 있습니다NN A와 B의 수를 계산할 수있는 기계가 필요하므로 (따라서 무한* 저장 용량이 있어야 함) 비교할 수 있기 때문에 규칙적 일 수 없습니다.

비교를 위해, (ABC)N ~이다 반복 횟수는 관련이 없기 때문에 규칙적입니다.

보다 엄격한 (그리고 이에 따라 밀도가 높은 뷰)를 위해 위키 백과 기사 그리고 링크 된 페이지.

*무한은 여기서 중요하지 않지만 완전성에 대해 언급합니다. "운 좋게도 항상 충분한"스토리지로 생각하는 것이 더 쉬울 수 있습니다.

아마도 위키 백과 기사 일반 언어 우리가 할 수있는 것보다 더 잘 설명 할 수 있습니다. 그러나 나는 그것을 샷을 줄 것이다.

이론적 인 관점에서 볼 때 일반 언어 (현 세트)는 유한 상태 자동. 프로그래머 용어로, 이것은 그것을 사용하여 생성 할 수 있다고 말하는 것과 같습니다. 정규 표현. 따라서 모든 유한 언어 (문자열 세트)는 규칙적이지만NN FSA 또는 일반 표현을 사용하여 인식 할 수없는 모든 Na의 모든 문자열의 언어). 더 강력한 계산 장치 (예 : 최신 컴퓨터)가 있습니다. 튜링 머신) 어느 ~할 수 있다 그 언어를 인식하십시오.

정규 표현식이 문자열 검색을위한 프로그래밍에 많이 사용되는 이유는 미국 프로그래머에게 중요한 대부분의 문자열을 인식 할 수 있고 동시에 검색을 위해 구현할 수 있기 때문입니다. 매우 유한 주 자동 자마타를 빠르게 사용합니다.

단어 regular 안에 regular expression 영어 개념이 아닌 일반의 수학적 개념을 나타냅니다. 단어가 어떻게되는지처럼 prime 수학에서는 거의 관련이 없습니다 초기 쇠고기.

CS (수학의 지점)에 의해 상속되어보다 구체적인 개념을 언급합니다. http://en.wikipedia.org/wiki/regular_language

정규 표현은 실제로 규칙적이지 않으며 이름은 어원입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top