도메인 특화 변환 언어: 구체 문법 재활용
초록
본 논문은 텍스트 기반 계층형 자동자 DSL의 구체 문법을 그대로 활용하는 변환 언어를 제안한다. 도메인 전문가가 모델과 변환을 동일한 문법으로 기술함으로써 가독성과 학습 비용을 크게 낮출 수 있다. 또한 기존 DSL로부터 변환 언어를 자동 생성하는 가능성을 탐색한다.
상세 분석
DSL(도메인 특화 언어)은 특정 분야 전문가가 시스템을 직관적인 표기법으로 모델링하도록 돕는다. 그러나 DSL 인스턴스를 수정·진화시키기 위한 변환 작업은 일반적으로 그래프 기반 혹은 객체 다이어그램 기반의 범용 변환 언어에 의존한다. 이러한 접근은 DSL의 구체적 문법과 괴리되어, 전문가가 변환 규칙을 이해하고 작성하는 데 높은 진입 장벽을 만든다. 논문은 이러한 문제점을 해결하기 위해 “구체 문법 재활용”이라는 핵심 아이디어를 제시한다. 구체적으로, 텍스트 기반 계층형 자동자(HA) DSL의 문법을 그대로 차용한 변환 언어를 설계하였다. 변환 언어는 기존 DSL의 토큰, 구문 규칙, 계층 구조를 그대로 사용하면서, 변환 전후 모델을 매칭시키는 패턴 매칭 구문과 수정 연산자를 추가한다.
핵심 설계 요소는 다음과 같다. 첫째, 변환 규칙의 왼쪽(LHS)은 기존 DSL 인스턴스와 동일한 구문을 사용해 변환 대상 패턴을 기술한다. 둘째, 오른쪽(RHS)은 수정된 구문을 그대로 기술함으로써 변환 결과를 명시한다. 셋째, 조건식과 바인딩을 통해 변수와 속성값을 추출·재사용한다. 이러한 설계는 DSL 사용자에게 친숙한 문법을 유지하면서도, 변환 로직을 명시적으로 표현한다는 장점을 제공한다.
논문은 또한 변환 언어의 형식적 의미론을 정의한다. 변환 규칙은 매칭 단계와 적용 단계로 구분되며, 매칭은 구문 트리와 속성 매핑을 통해 수행된다. 적용 단계에서는 트리 구조를 교체·삽입·삭제하는 연산이 수행되며, 이는 기존 DSL 파서와 동일한 파싱 메커니즘을 재활용한다. 이로써 구현 복잡도가 크게 감소한다.
실험에서는 계층형 자동자 DSL에 대한 여러 리팩터링·진화 시나리오를 구현했으며, 변환 언어가 기존 그래프 기반 변환 도구 대비 학습 시간과 코드 길이에서 유의미하게 우수함을 보였다. 마지막으로, 기존 텍스트 DSL의 문법 정의(ANTLR 등)로부터 자동으로 변환 언어의 문법을 생성하는 메타 모델링 접근을 제시한다. 이는 새로운 DSL에 대해 동일한 변환 언어 설계 패턴을 빠르게 적용할 수 있게 한다.
전반적으로 이 연구는 DSL과 변환 언어 사이의 문법적 격차를 메우는 실용적 방법을 제시함으로써, 도메인 전문가가 모델링과 변환을 하나의 일관된 환경에서 수행하도록 지원한다는 점에서 의의가 크다.
댓글 및 학술 토론
Loading comments...
의견 남기기