2010-05-20 2 views
1

PMD를 합리적인 시간 내에 새 언어를 완벽하게 지원하도록 사용자 지정할 수 있습니까? 기술적으로 거의 모든 일을 할 수 있다는 것을 알고 있지만 이것이 적당한 시간 내에 끝날 수 있는지 궁금해합니다. 예 : < 이주새 언어를 완벽하게 지원하도록 PMD를 사용자 정의 할 수 있습니까?

이 페이지는 어떻게 CPD 파서 http://pmd.sourceforge.net/cpd-parser-howto.html

를 작성 언급하지만 이것은 단지 복사/붙여 넣기 검출입니까? CPD 파서 작성은 PMD에 대한 완전한 지원을 제공합니까?

+0

이렇게하려면 "플러그 형"또는 "확장형"방법이 있습니까? – tinny

+0

"rile sets"???? –

답변

1

나는 PMD 전문가는 아니지만 (내 자신의 편견을 가지고 있으며 내 생체를 확인합니다.) 나는 추측 할 것입니다.

  • 가 빠르게 내 langauge에 대한 구문을 정의 할 수 있습니다 (이 언어가 얼마나 지저분한 얼마나 잘에 따라, 어쩌면 및 PMD가 제공하는 분석 기계의 힘) :

    이슈는

  • 내 언어의 의미를 정의하여 PMD에서 제공하는 "의미 확인"이 작동하도록 할 수 있습니까? 구문은 구문의 의미에 대해 말 그대로 (그리고 도구) 알려주므로이를 수행해야합니다. 필자는 PMD 도구 '의미 론적 검사 (semantic checks)'가 자바의 정밀한 세부 사항에 정확하게 연결되어 있다고 생각합니다. 언어가 자바와 완벽하게 일치한다면, 이것은 제로 일 것입니다. 그러나 그렇지 않습니다, 또는 당신은 질문하지 않을 것입니다. 그리고 langauge 의미 차이, 심지어 사소한 것들은 코드의 해석에 불 연속적 변화를 일으킨다. "심각한"의미론을 수행하기 전에 코드의 식별자를 해당 기호에 대한 선언 (및 "의미 론적"유형)에 매핑하는 심볼 테이블을 작성해야 할 것입니다. 함께 작업하는 도구 인프라를 기반으로이 단계만으로도 실제 언어에 1-2 개월이 걸립니다.
  • 마지막으로, 귀하의 언어에 특정한 특수한 PMD 검사를 작성해야 할 것입니다. 시간과 에너지도 필요합니다.

필자는 일반 컴파일러 유형 기계 (파서, 플로우 애널라이저, 스타일/오류 체커)를 만들고 WRT의 모든 기계에이 질문과 동일한 질문을 받는다. 우리는 많은 기계류를 이용할 수 있도록 노력하고, 새로운 언어를 쉽게 통합 할 수 있도록 노력하고 있으며, 15 년 이상이 언어를 "편리하고 빠르게"만들려고 노력하고 있습니다. 여전히 편리하지 않으며, 몇 주 안에 도구로이를 수행 할 수있는 방법이 없습니다. 나는 PMD가 더 나은지 의심 스럽다.

+0

좋은 답변, 고맙습니다. – tinny

관련 문제