2011-04-21 4 views
12

언어, 문법, 구문 분석 및 컴파일러 관련 시험 준비 중입니다. 그것은 정말로 차 한 잔과 제가 찾은 대부분의 자료가 아닙니다. 수학의 언어를 사용하여 무역의 다른 용어를 정의하고 영어 또는 불어를 고수하기보다는 내가 알고 싶어하는 여러 가지 개념을 설명합니다. 따라서 나는 공부를 계속하려는 동기를 찾고 이론을 단순히 이해하는 데 어려움을 겪고 있습니다. 여기 내 질문이 있습니다.이 모든 것을 배우는 "재미있는"방법을 어디에서 찾을 수 있는지 아는 사람이 있습니까? 또는 적어도이 주제를 다루는 "콘크리트"가 아닌 "수학적"방법 일 것입니다.언어, 문법, 구문 분석 및 컴파일러에 대해 배울 수있는 "재미있는"방법이 있습니까?

다음과 같은 내용을 다룰 필요가 있습니다.

  • 구문 분석 (LR, LL, ...)
  • 문법 (상황 무료, 결정, ...)
  • 구문 분석 정적 흐름 분석
  • 에 소프트웨어 유지 보수 및 의존성에 관한
  • 영향 분석 사용자 인터페이스
  • 동적 분석
  • 여기

(인용 부호에 중점을두고) "재미"로 간주 될 수있는 일부 리소스는 방법 기술 주제에 대해 배우고, 내가 무엇을 찾고 있는지 알기 위해서입니다.

+0

1 주일 남았을 경우, 대부분의 주제를 다루기 위해 드래곤 북을 똑바로 읽어야합니다. 그건 재미 없을거야. –

+0

1 주일 남았을 경우 용서에 손을 충분히 빨리 가져갈 수 있을지 의심 스럽습니다. – Shawn

답변

14

당신이 짧은 시간에 많은 것을 배우고 싶은 경우에있어 Val Schorre의 1964 년 메타 컴파일러에 대해 배우십시오 (예, 올바르게 읽었습니다) MetaII 자기 컴파일 메타 컴파일러를 작성하는 방법에 대한 글. 공짜 물건으로, 그들은 또한 전통적인 lanuages를 집계 할 수있다! 이 논문은 10 페이지로, 메타 컴파일러 (가상 머신인지 아닌지를 나타냄)를 설명하고, 두 개의 완전한 컴파일러를 포함합니다.

컴파일러가 어떻게 컴파일 될지 궁금해하는 순간에 마침내 도착합니다. 필자는 70 년대 초반에 컴파일러를 배웠고, 필자가 가장 기억에 남는 컴파일러 수업이었습니다. 이것은 재미입니다.

online tutorial here which implements all the ideas in JavaScript.이 있습니다.

이 자습서의 저자는 "도메인 분석"이라는 용어를 고안 한 James Neighbors 박사입니다. 그는 MetaII 아이디어를 Draco라는 환상적인 도메인 별 코드 생성기에 사용했습니다. Draco는 지난 30 년 동안 필자가 구축해온 컴파일러와 같은 도구에 중요한 영감을주었습니다.

0

? 컴파일러를 배우는 "가장 좋은"방법은 그것들을 파헤치는 것입니다. 그렇게하는 가장 좋은 방법은 컴파일러에서 가장 좋은 책을 사용하는 것입니다. 서면 전언 : The Dragon Book 오래되었지만 굉장합니다. 그것은 싸구려가 아니지만, 아마도, 아마도 가장 구체적인 수학적 방법은 마법의 컴파일러에 대해 배울 수 있습니다. ,

그것은 어떤 깜박이는 불빛이없는 그것은 루비 가이드 같은 멋진 글꼴로하지 않습니다,하지만 상위 10 Books Every Programmer Should Read

+0

그래, 돈도없고 시간도 없어 (1 주일 남았습니다). – Shawn

+3

내가 대학에 가져 갔을 때 나는 Compilers를 정말로 좋아하지 않았지만, 돌아가서 내가 얼마나 많이 배웠는지를 보았을 때 정말 가치가있었습니다. 그것은 절름발이로 보입니다. 그러나 저는 CS에서 아직도 오늘도 참고할 4 개의 수업이있었습니다. 컴파일러 중 하나입니다. SO에 대한 발견 : http://stackoverflow.com/questions/424796/are-there-any-compiler-lectures-available-via-video –