2016-11-03 3 views
0

작은 프로젝트 (예 : 실험실 프로젝트)에서 MPS를 사용 했으므로 MPS 사용 방법에 대한 기본적인 이해를했습니다 (2.4 버전이나 서로 같은). 이제는 MPS 기능 위에 구축 된 유틸리티 소프트웨어 (이상적으로 IntelliJ 용 플러그인)를 소개하려고합니다. MPS가 널리 사용되는 것은 아니기 때문에 여기에 경험이 많은 사람들과 상담하고 싶습니다.MPS : abstract (generatorless?) 언어 및 구현입니다.

내가하고 싶은 일은 관계형 지식 데이터베이스 액세스 (SQL 쿼리)를 MPS 기반 플러그인으로 래핑하는 것입니다. 빨리 시작할 수 있고 이미 존재하는 jdbc-wrapping 라이브러리에 코드를 생성 할 수 있기를 원합니다. 그리고 앞으로는 추가 된 db 관련 기능을 사용하여 구현으로 전환 할 수 있기를 원합니다. 동시에 새로운 언어로 쉽게 전환 할 수 있도록 기존 사용자 모델을 보존하고이 새로운 언어로 문제가있을 경우 다시 되돌리고 싶습니다. 이 쉬운 스위치 기능을 구현하는 방법은 무엇입니까? 나의 첫 번째 아이디어는 생성자없이 추상적 인 언어를 사용하고 Idea의 mps 기반 모듈에 구현 언어를 의존성 (하나 또는 다른 것)으로 추가하는 것이었지만, 이것이 가능한지 확실하지 않습니다.

답변

1

네가 올바르게 이해한다면, 이것은 쉽게 가능해야한다. 생성자없이 언어를 만들 필요는 없지만 생성자와 모든 언어로 언어를 설계 할 수 있습니다. 그런 다음 이미 정의 된 구문 외에도 사용자가 사용할 수있는 새로운 구문을 간단하게 추가하려는 경우 db 관련 기능에 대해보다 구체적인 언어로이 언어를 확장 할 수 있습니다 (여러 언어로 된 전문 기술을 사용하려는 경우 언어). 또는 동일한 언어를 계속 사용하고 업데이트하려는 경우 MPS는 이전 버전의 언어로 작성된 기존 모델을 최신 버전으로 업그레이드하는 방법을 지정할 수있는 마이그레이션 스크립트를 제공합니다. MPS를 사용하여 Idea 플러그인을 만드는 데 대한 출발점은 https://confluence.jetbrains.com/display/MPSD30/Using+MPS+inside+IntelliJ+IDEA을 참조하십시오.