2008-10-11 2 views
1

레거시 시스템에서는 런타임에 내부 DSL을 실행하기 위해 자체 VM을 작성했습니다. 내부 VM은 내부 DSL 만 실행하도록 설계되었습니다. 우리는 기존 응용 프로그램을 다시 작성하는 중입니다. 우리가 고려하고있는 아이디어 중 하나는 내부 DSL을 외부 DSL (C# 또는 Java)으로 변환하고 해당 VM을 활용하는 것입니다.내부 DSL을 외부 DSL 안티 패턴으로 변환하고 있습니까?

Intenral DSL에 대해 자체 VM을 작성하고 외부 DSL로 변환하고 VM을 실행할 때 명확한 가이드 라인은 없습니다.

답변

3

내부 DSL/VM 대 외부 DSL/VM 결정은 모든 빌드 대 구매 대 다운로드 결정과 동일합니다. 이 지침은 모든 소프트웨어에 대해 동일하고 명확합니다.

왜 다른 사람이 Java 또는 Python을 지원할 때 자신의 VM을 지원합니까?

다음은 몇 가지 명확한 가이드 라인입니다. 이는 모든 소프트웨어에 대한 동일한 지침입니다.

  1. 자신의 소프트웨어를 계속 유지하는 것이 더 저렴합니까? 이 경우 DSL 및 VM?

  2. 자신의 DSL 및 VM이 Java 또는 Python보다 뛰어 납니까? "더 나은", 당신은 품질 요소의 조합을 작성해야합니다 빠른 등 작고, 더 안정적이고 더 나은 기능, 적은 자원 사용, 더 안전한, 더 감사,

을 혼동하지 마십시오 DSL 및 VM. 그것은 특별한 것이 아닙니다. 그것은 단지 더 많은 소프트웨어 일뿐입니다.

1

확실히 반 패턴이 아닙니다. 외부 DSL은 내부 DSL보다 많은 장점이 있습니다. 귀하의 경우 호스트 언어 또는 구현 플랫폼으로부터의 독립성이 그 중 하나입니다. 다른 장점은 구문 유연성, 모델 변형, 모델보기 등의 모델 기반 승인 사용 가능성입니다.

관련 문제