2013-01-23 4 views
2

기존 언어 (예 : Python, SQL)로 변환 할 수있는 도메인 관련 언어를 만들고 싶습니다. 나는 완전한 컴파일러를 구축하는 것을 피하려고 노력했으며 XTextXpand을 살펴 보았다. Xtext는 문법을 디자인하고 구문 분석 트리를 생성하는 데 사용되므로 Xpand는 구문 분석 트리를 사용하여 기존 언어의 코드를 생성합니다 (내가 틀렸다면 수정하십시오).내 DSL을 기존 프로그래밍 언어로 변환하는 방법?

여기에 대한 의견은 무엇입니까? XText & Xpand에 대한 더 나은 대안이 있다고 생각합니까? 제 목적을 달성하는 데 사용할 수 있습니까?

+0

기본적으로 소스 - 소스 컴파일러를 빌드하는 데 사용할 수있는 라이브러리 나 도구를 요구합니다. 여기에는 다양한 가능성이 있습니다. 유용한 대답을 얻으려면 소스 및 대상 프로그래밍 언어와 컴파일러를 작성하려는 프로그래밍 언어를 설명해야합니다. – Heatsink

+0

@Heatsink : 그리고 자신이 지정한 방식대로 질문을 좁히고 선택한 경우 C, C++, C#, Java 등의 공용 언어로 번역자를 작성하는 경우에도 여전히 광범위한 라이브러리 또는 도구가 제공되므로 도움이 될 것입니다. 그가 질문하는 것은 Xtext보다 나은 것이 있다면, 구문 분석 트리의 실제 빌드를 다루지 않거나 코드 생성을위한 특정 지원을 제공하지 않기 때문에보다 일반적인 응답의 대부분이 실패 할 것입니다. –

답변

1

DMS 소프트웨어 리엔지니어링 도구 키트를 고려해보십시오.

범용 프로그램 (예 : 임의 언어 또는 DSL) 구문 분석, 분석 및 변환을 제공하도록 설계되었습니다. 문맥 자유 문법에서 자동으로 AST를 생성하고, 기호 테이블을 작성하고 흐름 분석을 지원하며, 변환을 가능하게하는 소스에서 소스로의 변환을 제공하고, AST에서 전체 사전 타자를 입력합니다. 이 모든 기계의 목적은 강력한 도구를 구축하고 지원하기위한 최소한의 노력을 가능하게하는 것입니다.

나는 DMS가이 목적을 위해 Xtext보다 훨씬 성숙하며, 13 년 넘게 사용되었다고 생각합니다 .YMMV).

관련 문제