2008-09-29 5 views
3

잠시 동안 내 머리 속에서 소리 지르고있다.컴퓨터 과학 교과서/xml/모든 구문 분석을 수행하는 방법

나는 컴파일러/플렉스/바이슨과 물건에 대한 조사를 해왔지만, "파싱 스택"에 대해 자세히 이야기 한 좋은 레퍼런스를 찾지 못했습니다.

누구든지 따라 잡을 수있는 좋은 참고 문헌을 알고 있습니까?

편집 : 나는 모든 컴파일러 참조를 감사 할, 내가 열거 된 책의 일부를 얻을거야,하지만 내 주요 초점은 구문 분석 자체에 있었다 당신이 후 그것으로하지 않을 것.

답변

3

이것은 정답으로 받아 들여지는 Dima의 대답에 대한 응답입니다. 구문 분석이 오토마타 이론과 관련이 있다고 말하는 것은 좋지 않은 대답은 아니지만, 필자는 여기서 오해가 있음을 느낍니다.

  • 첫째, 유한 상태 오토마타 정규 언어 (예를 들어, 정규 표현식)를 인식 할 만 할 수 있습니다. 문맥 자유로운 언어를 인식하기 위하여는 푸시 다운 오토 마톤이 더 강력합니다. 더 많은 오토 마톤과 다른 언어 클래스와의 관계에 대해서는 http://en.wikipedia.org/wiki/Automata_theory#Classes_of_automata을 참조하십시오.

  • 둘째, 파싱는이 인식 다르다. 문자열 인식은 문자열이 문법에 의해 생성 된 언어인지 여부 만 알려줍니다. 파서의 목적은 더 어렵고 일반적으로 더 유용한 구체적인 구문 트리를 만드는 것입니다.

이 분석 방법의 다양한 밖에, 그래서 그것은 당신에게 당신이 일반적으로, 당신은 top-down parsingbottom-up parsing의 차이를 이해한다 ... 알아야 할 사항을 알려줍니다 하나의 특정 참조를 제공하기 어렵다 .그러나 여기 경우 파서 발전기에 의해 고용 몇 가지 일반적인 기술이 관심의 개요입니다 : 대한

편집 : 나는이 질문을 다시 해주 미안 해요, 난 그냥 context-free languages and push-down automata, regular languages and finite automata 사이의 관계를 설명하는 두 개의 우수한 게시물에 걸쳐 일어났다. 이 질문을하는 사람들에게 흥미로울 수 있습니다.

+0

실제로 당신의 대답은 훨씬 더 유용합니다. –

0

amazon

컴파일러 건설이 하나의 좋은 예를

10

Dragon book입니다보십시오! RTF로 작성된 템플릿 파일을위한 처리 언어 용 컴파일러를 작성하기 위해 최근에 컴파일러를 작성했습니다 ...

0

"Binch Hansen on Pascal Compilers"는 1985 년에 작성되었지만 작년에 Per Brinch Hansen이 작성한 컴파일러 코스에서 사용되었고, 컴파일러 디자인에 매우 간결하고 도움이되었다.

1

파서는 기본적으로 유한 상태 기계, 일명 유한 자동 기계입니다. 유한 오토마타, 일반 언어, 문맥 자유 언어 등을 다루는 계산 이론에 대한 책을 찾아야합니다.

+0

FSM은 일반 언어를 인식 할 수 있지만 상황에 맞는 언어를 인식하려면 PDA가 필요합니다. 게다가, automata는 오직 * 그것을 * 구문 트리로 변환하지 않는 언어의 문자열을 인식합니다. –

관련 문제